# Tariffs

## Price of a reservation

Every reservation or usage of the vehicle is charged in the internal currency `credits`. The monetary value in euro's of a credit can be fixed, or can depend on the prepaid bundle or subscription chosen by the user.&#x20;

With a different credit price a user can be charged differently for an identical reservation while the price model is the same. If the price model says a reservations costs 10 credits/hour the actual price paid by the user depends on the value of a credit for that user.&#x20;

During platform setup you can configure which prepaid bundels and which subscriptions are available to the users.&#x20;

It is also possible to set a fixed credit price equal to one euro(cent) to have a direct relation between credits and euros. In this case the app is setup to only show euros, as the concept of credits is irrelevant here. This is the default and recommended configuration.

## Price models

There can be one or more price model defined. Each vehicle should be assigned a price model. Assigning price models is done in the control center.&#x20;

#### Default price model

When a new vehicle is added the default price model is automatically set (only in the new control center).&#x20;

### Dynamic price models

Price models can be dynamic, meaning parts of the price model are dependent on certain parameters which are taken into account during the price calculation. The calculation is done in a certain *context.*&#x20;

#### Possible parameters

* group the reservation is made in
* category of the vehicle model
* vehicle model
* product of the active subscription of the user
* product type of the active subscription of the user
* in-app shop available to the user
* end date of the active subscription of the user
* custom

Examples of use cases:

* &#x20;If a user has a certain subscription active the user does not pay for time.&#x20;
* The reservation is made in an organization group. Distance is not billed and there is only a fixed cost.&#x20;
* For vehicles with category *van* a surcharge of 10% is added to the reservation
* For a Tesla a surcharge of 30% is added to the reservation

Dynamic price models are a 2nd way to differentiate tariffs. (The first being a different credit price).

See also below in [#different-prices-for-different-users](#different-prices-for-different-users "mention")

### Price calculation

The price of a trip is not calculated at once, but in several steps:

1. **at creation**: the reservation cost is charged as well as the reserved time
2. **on update**: the cancelled time is (partially) refunded and the additional time is charged
3. **on cancellation**: the cancelled time and reservation cost is (partially) refunded
4. **on usage end**: the remaining time is (partially) refunded and extra time, distance and/or consumed energy charged
5. **on marked as unconsumed**: if the reservation is never started the reserved time can be billed at a different rate

These are the items that can be charged:

* **usage time**
* **cancelled time**
* **over time use**
* **reservation cost**
* **distance**
* **energy consumed**
* **energy charged**
* **custom**

This price calculation can be performed by the TMF platform or by an external service. See more information in the developer docs

### Different prices for different users

As mentioned above there are 2 ways to differentiate prices for certain users. Both can be combined as well.

1. different credit price
2. different tariff applied during the billing stages through a dynamic price model

#### **Example: different credit prices**

In this example usage time is billed at 100 credits/hour. User1 buys a bundle of 1000 credits for €10. This user has a credit price of €0.01 User2 buys a bundle of 2200 credits for €20. This user has a credit price of €0.009

User1 would pay €1 to use the car for one hour. User2 would pay €0.9. User2 has a better rate because he bought more credits at once.

The credit price is calculated based on the purchases done by that user. If credits of different values are being combined over time the global credit price will be adjusted. What happens if user1 buys an additional bundle of 2200 credits for €20?

His new credit price will not be €0.009 as this would change the value of the credits of his previous bundle. Instead the average is taken. User1 has 900 credits left from the first bundle. His new credit price would be:

(900 credits \* 0.01 €/credits) + €20 = €29

€29 / (2200 credits + 900 credits) = 0.009355 €/credits.

If this user now drives for one hour he would pay €0.94 for the usage time.

#### **Example: different tariffs applied through a dynamic price model**

User1 buys a bundle of 1000 credits for €10. This user has a credit price of €0.01 User2 has an active subscription. He pays a fixed price of €10/month. His consumed credits are billed postpaid at the end of the month. User2 also has a credit price of €0.01

The price model is dynamic in such a way that it detects if a subscription is active or not. If a subscription is active usage time is billed at 80 credits/hour. If no subscription is active usage time is billed at 100 credits/hour.

User1 would pay €1 to use the car for one hour. User2 would pay €0.8. User2 has a better rate because he has an active subscription.

### Display of prices

How prices are formatted can be configured. How prices are formatted is defined according to a format pattern.&#x20;

```dart
  /// [pattern] supports the following characters
  ///   * S outputs the currencies symbol e.g. $.
  ///   * C outputs part of the currency symbol e.g. USD.
  /// You can specify 1,2 or 3 C's
  ///       * C - U
  ///       * CC - US
  ///       * CCC - USD - outputs the full currency code regardless of length.
  ///   * &#35; denotes a digit.
  ///   * 0 denotes a digit and with the addition of defining leading
  /// and trailing zeros.
  ///   * , (comma) a placeholder for the grouping separtor
  ///   * . (period) a place holder fo the decimal separator
```

{% hint style="info" %}
The default formatting pattern is  `S #,00`
{% endhint %}

## Community groups

When a vehicle is shared through a community group (peer-2-peer carsharing) the owner of the vehicle can set a price for the use of the vehicle.&#x20;

### Default price model for a community service

A default price model for the community group service has to be defined. This default price model defines the different components of the price the owner of the vehicle can control. For example time and distance.&#x20;

### Price model for vehicle shared in a community group

Via the portal the owner of the vehicle can set a price for the different components of the default price model specific for this vehicle. The price can be different for every community group the vehicle is shared in.&#x20;

The cost of the reservation is calculated according to the default price model and the specific values the owner has entered.&#x20;

{% hint style="info" %}
The cost of a reservation cannot be directly settled with the owner. It is possible to settle the costs for the reservation if the organization providing the carsharing service acts as an intermediary.&#x20;
{% endhint %}
