Fee Catalog and Advanced Rates
Configure supplementary fee types (OptionalFee.feeType) and time-window advanced rates in Sixième Étoile — every enum value documented with purpose, allowed values, and effect.
Overview
The fee catalog and advanced rates system covers two distinct mechanisms for adding charges on top of the base trip price:
- Optional Fees — supplementary charges that an operator explicitly adds to a quote line (seat charges, waiting time, custom items).
- Advanced Rates — automatic percentage or fixed-amount surcharges triggered by time-window conditions (night, weekend).
Optional Fee Types (OptionalFee.feeType)
Every OptionalFee record must have a feeType. This determines how the fee is labelled, how it is displayed on quotes and invoices, and in some cases how it is calculated.
feeType value | Description | Typical configuration |
|---|---|---|
CUSTOM | A free-form charge with an operator-defined description and amount | Use for one-off or organization-specific items not covered by standard types |
SUPPLEMENTAL_HOUR_DAY | Extra hour billed during daytime (day rate) | Rate from OrganizationPricingSettings.supplementalHourRates.day for the vehicle category, overridable per partner contract |
SUPPLEMENTAL_HOUR_NIGHT | Extra hour billed during night-time (night rate, canonical window 21:00–07:00) | Rate from OrganizationPricingSettings.supplementalHourRates.night for the vehicle category, overridable per partner contract |
BABY_SEAT | Provision of a baby seat (for children up to approximately 18 months) | Fixed or per-unit price configured in the fee catalog entry |
BOOSTER_SEAT | Provision of a booster seat (for children approximately 3–10 years) | Fixed or per-unit price configured in the fee catalog entry |
EXTRA_LUGGAGE | Additional luggage beyond the standard allowance | Fixed per-bag or per-unit surcharge |
WIFI | In-vehicle Wi-Fi access provided during the trip | Fixed per-trip or per-hour charge |
PERSONALIZED_WELCOME | Welcome service with personalised sign, name card, or dedicated meet & greet | Fixed per-trip charge |
REFRESHMENTS | Beverages or snacks provided in the vehicle | Fixed per-trip or per-passenger charge |
CLEANING | Post-trip cleaning surcharge (e.g. after an incident or special event) | Fixed charge, usually applied retroactively |
WAITING | Waiting time beyond the included free wait period | Per-minute or per-15-minute rate; typically triggers after the free window ends |
NO_SHOW | Client no-show charge when the driver attended but the client did not board | Fixed fee, configured as the contractual no-show penalty |
Fee Catalog Entry Fields
Each fee type can have a default configuration in the catalog:
| Field | Purpose | Allowed values | Effect |
|---|---|---|---|
feeType | Type identifier | One of the values above | Links the entry to the standard type |
defaultAmount | Default charge amount | Decimal ≥ 0 (HT in euros) | Pre-filled when the fee is added to a quote line; operator can override per line |
defaultVatRate | Default VAT rate for this fee | Decimal (e.g. 10.00 = 10%, 20.00 = 20%) | Used for VAT breakdown on invoices |
unit | Billing unit | FIXED, PER_HOUR, PER_MINUTE, PER_UNIT, PER_PASSENGER | Determines how quantity × rate is calculated |
isActive | Whether this entry appears in the fee picker | true / false | Inactive entries are hidden from the slash menu |
Supplemental Hour Rates
Supplemental hour rates are configured at two levels:
Organization-level (OrganizationPricingSettings.supplementalHourRates)
A JSON object keyed by vehicle category code:
{
"BERLINE": { "day": 45.00, "night": 60.00 },
"VAN": { "day": 55.00, "night": 75.00 },
"MINIBUS": { "day": 70.00, "night": 95.00 }
}| Sub-field | Purpose | Allowed values |
|---|---|---|
day | Hourly rate for SUPPLEMENTAL_HOUR_DAY | Decimal > 0 (HT per hour) |
night | Hourly rate for SUPPLEMENTAL_HOUR_NIGHT | Decimal > 0 (HT per hour) |
Partner contract-level (PartnerContract.supplementalHourOverrides)
Same structure as supplementalHourRates. When a partner contract defines an override for a vehicle category, those rates supersede the organization defaults for all quotes associated with that partner.
Cascade Resolver (FR404)
The engine resolves the rate for a supplemental hour fee in this order (first match wins):
PartnerContract.supplementalHourOverrides[vehicleCategory].day/night— partner-specific overrideOrganizationPricingSettings.supplementalHourRates[vehicleCategory].day/night— org-level rate for the categoryOrganizationPricingSettings.supplementalHourRates.DEFAULT.day/night— org-level fallback for unconfigured categories- Hardcoded platform default (40.00 HT/h day, 55.00 HT/h night) — only if no org-level rate exists
Advanced Rates
Advanced rates are automatic surcharges applied by the pricing engine when the trip falls within a configured time window. They are not added manually by the operator — they trigger automatically during quote calculation.
Advanced Rate Fields
| Field | Purpose | Allowed values | Effect |
|---|---|---|---|
name | Descriptive label | Free text | Displayed in the trip analysis panel |
rateType | Surcharge method | PERCENTAGE or FIXED_AMOUNT | PERCENTAGE: multiplies by (1 + rate/100); FIXED_AMOUNT: adds the amount to the line price |
rate | Surcharge value | Decimal ≥ 0 | For PERCENTAGE: e.g. 20.00 = +20%. For FIXED_AMOUNT: e.g. 15.00 = +€15 HT |
windowType | Time window trigger | NIGHT or WEEKEND | NIGHT: applies when trip departs within the night window. WEEKEND: applies on Saturday and Sunday. |
nightWindowStart | Night window start time | Time string (e.g. "21:00") | Canonical default: 21:00. Configurable per organization. |
nightWindowEnd | Night window end time | Time string (e.g. "07:00") | Canonical default: 07:00. Configurable per organization. |
vehicleCategory | Scope to a vehicle category | Category code or null | If null, applies to all categories |
isActive | Whether this rate is evaluated | true / false | Inactive rates are skipped |
Night Window
The canonical night window is 21:00 to 07:00. A trip is considered "night" if its scheduled departure time falls within this window. The window spans midnight (e.g., a 23:30 departure and a 02:00 departure are both "night").
Operators can adjust the window start and end times in Settings → Tarification → Tarifs avancés. This affects all advanced rate rules that use windowType = NIGHT.
Application in the Pricing Chain
Advanced rates are applied at step 3 of the pricing chain (after zone multiplier, before seasonal multiplier). See Overview for the full chain.
Configuring Fees and Advanced Rates
Adding a Fee Catalog Entry
- Go to Settings → Tarification → Catalogue de frais (screen N-09).
- Click Add Fee.
- Select the
feeTypefrom the dropdown. - Enter
defaultAmount,defaultVatRate, andunit. - Save. The fee type appears in the slash menu (
/) in the quote cockpit.
Adding an Advanced Rate
- Go to Settings → Tarification → Tarifs avancés (screen N-09).
- Click Add Advanced Rate.
- Enter a name, select
rateType, enter theratevalue. - Select
windowType(NIGHTorWEEKEND). - If
NIGHT, optionally override the night window times. - Optionally scope to a vehicle category.
- Save. The rate is automatically applied to all new quote lines that match the window.
Practical Tips
- Use
CUSTOMonly for genuinely one-off charges. If a charge recurs across multiple quotes, define it as a proper catalog entry with a specificfeeTypeso it is searchable and consistently labeled. - Set the night window to your contractual definition. If your contracts specify a different night rate window (e.g., 20:00–06:00 instead of 21:00–07:00), update the
nightWindowStartandnightWindowEndsettings. This applies globally — if you have different windows for different clients, manage them via partner contract overrides. - Verify supplemental hour rates by category. Check that
supplementalHourRatesis configured for all vehicle categories you operate. Missing categories fall back to the hardcoded default, which may not reflect your cost structure. - Test NO_SHOW before going live. No-show charges are sensitive commercially. Set up a test contact with a no-show fee and verify the amount matches your contracts.
Margins and Multipliers
Configure global and per-category margin percentages and base multipliers in Sixième Étoile — purpose, allowed values, stacking order, and effect on final HT price.
Seasonal Multipliers
Configure seasonal price multipliers in Sixième Étoile — date range definitions, multiplier values, stacking order, and interaction with the pricing chain.