Sixième Étoile — Documentation

Forfaits (Flat-rate Packages)

Configure flat-rate packages (forfaits) in Sixième Étoile — fixed prices for recurring trip patterns, zone coverage, validity dates, and how they override dynamic pricing.

Overview

Forfaits are fixed-price packages for trips that follow a predictable pattern — such as an airport transfer for a corporate client or a regular weekly shuttle between two fixed locations. Unlike dynamic zone-based pricing, a forfait applies a single flat HT price regardless of actual distance variation within its defined scope.

When a new quote line is created, the pricing engine checks for applicable forfaits before attempting zone-based or route-based calculation. If a forfait matches, it overrides dynamic pricing entirely.


Forfait Fields

FieldPurposeAllowed valuesEffect
nameDescriptive label for the packageFree textDisplayed in the forfait picker and on the quote line
originZoneOrigin zone or addressZone ID or specific addressMatched against the pickup address
destinationZoneDestination zone or addressZone ID or specific addressMatched against the dropoff address
vehicleCategoryVehicle category this forfait applies toCategory code (e.g. BERLINE, VAN) or nullIf null, matches all categories
fixedPriceHTThe flat pre-tax price for the packageDecimal > 0 (HT in euros)This exact value is used as the quote line price
validFromStart date of validityISO date (e.g. 2026-01-01) or nullIf null, the forfait is always valid from the past
validToEnd date of validity (inclusive)ISO date or nullIf null, the forfait never expires
clientIdRestrict forfait to a specific client contactContact ID or nullIf null, the forfait is available globally to all clients
agencyIdRestrict forfait to a specific agencyAgency ID or nullIf null, the forfait is available globally
isActiveWhether this forfait can be matchedtrue / falseInactive forfaits are skipped
notesInternal operator notesFree textNot shown on quotes or invoices

How Forfait Matching Works

The engine performs forfait lookup during quote line price calculation in this order:

  1. Collect all active forfaits where validFrom ≤ today ≤ validTo (or validity dates are null).
  2. Filter to forfaits where clientId matches the quote's client (or clientId = null).
  3. Filter to forfaits where agencyId matches the quote's agency (or agencyId = null).
  4. Filter to forfaits where originZone matches the pickup address and destinationZone matches the dropoff address.
  5. Filter to forfaits where vehicleCategory matches the selected vehicle (or vehicleCategory = null).
  6. If one or more forfaits remain, select the most specific one: client-specific > agency-specific > global; with vehicleCategory > without.
  7. Apply fixedPriceHT as the line price. Zone multipliers, advanced rates, and seasonal multipliers are not applied.

Override Behavior

A matched forfait completely overrides dynamic pricing for that quote line. This means:

  • Zone multipliers from PricingZone are ignored.
  • Advanced rates (night/weekend windows) are ignored.
  • Seasonal multipliers are ignored.
  • Operator margins configured in OrganizationPricingSettings are not automatically added — the fixedPriceHT is the final HT price as entered.

Important: If you want to include a margin in a forfait, incorporate it into the fixedPriceHT value at creation time. The forfait price is the final commercial HT price.


Time-limited Forfaits

Use validFrom and validTo to create event-specific packages without affecting permanent pricing:

  • Trade show weeks: set exact event dates.
  • Holiday season: set December 20 – January 5.
  • Summer peak: set July 1 – August 31.

After validTo, the forfait is automatically excluded from matching. Existing quotes created while the forfait was valid retain their price; new quotes after expiry use the regular pricing path.


Configuring a Forfait

  1. Go to Settings → Tarification → Forfaits (screen N-09).
  2. Click Add Forfait.
  3. Enter a name, select origin zone/address and destination zone/address.
  4. Set fixedPriceHT.
  5. Optionally set vehicleCategory, validFrom, validTo, clientId, or agencyId.
  6. Save. The forfait is immediately active for new quotes.

Practical Tips

  • Use client-scoped forfaits for negotiated rates. When a corporate client has a special rate for their regular airport transfer, create a forfait scoped to that clientId. Other clients continue to use dynamic pricing for the same route.
  • Name forfaits clearly. Include the client name and route in the forfait name (e.g. "Société ABC — CDG ↔ Paris 8e — Berline") so operators can identify them quickly in the picker.
  • Check for conflicts. If two forfaits both match a trip (e.g. a global forfait and a client-specific forfait), the more specific one wins. Verify with a test quote that the correct forfait is selected.
  • Forfaits are not retroactive. Changing a forfait's fixedPriceHT does not update existing quote lines. To revise a price for an existing quote, edit the quote line directly.
Was this page helpful?

On this page