Configuration → Behaviour Complete field-to-behaviour mapping for OrganizationPricingSettings — every field, its default, and exactly where the engine reads it.
OrganizationPricingSettings is the single configuration object the engine receives at calculation time. This page maps every field to the behaviour it controls, grouped by concern.
Admin UI reference: the operator-facing configuration screens are documented in Operators — Pricing Config (FR410).
Field Type Default Where it is used baseRatePerKmnumber— Dynamic base price: distanceKm × baseRatePerKm / (1 − margin/100) baseRatePerHournumber— Dynamic base price: durationMin / 60 × baseRatePerHour / (1 − margin/100) targetMarginPercentnumber— Denominator of both base price formulas; also used in profitability calculations
Both rate fields fall back from VehicleCategory.baseRatePerKm / baseRatePerHour first.
Field Type Default Where it is used fuelConsumptionL100kmnumber | undefined8.0 Fuel cost: (distKm / 100) × consumption × pricePerLiter; level 3 in the four-level resolution chain fuelPricePerLiternumber | undefined1.789 (DIESEL) Fuel cost: overrides CollectAPI and cache results; level 3 in the fuel price chain tollCostPerKmnumber | undefined0.15 Toll estimate fallback: distKm × tollCostPerKm; used when Google Routes and TollGuru APIs return no data wearCostPerKmnumber | undefined0.10 Wear cost: distKm × wearCostPerKm driverHourlyCostnumber | undefined25.00 Driver cost: (durationMin / 60) × driverHourlyCost emptyReturnCostPercentnumber | undefined100 Scaling factor applied to Segment C internal cost: returnCost × (emptyReturnCostPercent / 100)
Field Type Default Where it is used greenMarginThresholdnumber | undefined20 ProfitabilityIndicator = "green" when marginPercent ≥ greenMarginThresholdorangeMarginThresholdnumber | undefined0 ProfitabilityIndicator = "orange" when marginPercent ≥ orangeMarginThreshold; "red" below
Field Type Default Where it is used zoneConflictStrategyZoneConflictStrategy | nullspecificity order resolveZoneConflict(): selects one zone when a point falls in multiple overlapping zoneszoneMultiplierAggregationStrategyZoneMultiplierAggregationStrategy | null"MAX"applyZoneMultiplier(): determines which of pickup/dropoff multiplier is used
Valid values — zoneConflictStrategy: "PRIORITY" "MOST_EXPENSIVE" "CLOSEST" "COMBINED".
Valid values — zoneMultiplierAggregationStrategy: "MAX" "PICKUP_ONLY" "DROPOFF_ONLY" "AVERAGE".
Field Type Default Where it is used difficultyMultipliersRecord<string, number> | null{1:0.85, 2:0.92, 3:1.0, 4:1.15, 5:1.30}Applied to private contacts with a non-null difficultyScore; skipped for AGENCY / PARTNER contacts
Field Type Default Where it is used roundingRulestring | null"NONE"applyPriceRounding(): rounds the client TTC price after all multipliers; HT back-calculated from rounded TTC via decimal.js
Valid values: "NONE" "CEIL_1" "CEIL_5" "CEIL_10" "FLOOR_5" "FLOOR_10" "ROUND_5" / "NEAREST_5" "ROUND_10" / "NEAREST_10".
Field Type Default Where it is used minimumTripPriceHtnumber | nullnullHard floor applied after all calculations; prevents pricing below a minimum revenue per trip shortTripThresholdKmnumber | nullnullDistance below which shortTripMultiplier is applied shortTripMultipliernumber | nullnullMultiplier applied to base price when distance < threshold
Field Type Default Where it is used excursionMinimumHoursnumber | undefined— Minimum billable hours for excursion trips excursionSurchargePercentnumber | undefined— Percentage surcharge added on top of excursion price excursionBaseFeenumber | undefined— Fixed base fee added to every excursion quote excursionMinimumPricenumber | undefined— Price floor for excursion trips excursionRatePerKmnumber | undefined— Per-km rate used for excursion distance-based pricing
Field Type Default Where it is used dispoIncludedKmPerHournumber | undefined— Free km per hour of dispo; excess billed at dispoOverageRatePerKm dispoOverageRatePerKmnumber | undefined— Rate applied per km above the included km for the booked duration madTimeBucketsMadTimeBucketData[] | undefined— Time-bucket based pricing catalogue for DISPO; matched on vehicleCategoryId + durationHours timeBucketInterpolationStrategyTimeBucketInterpolationStrategy | null— How the engine selects a bucket when no exact match exists: "ROUND_UP" "ROUND_DOWN" "PROPORTIONAL" autoSwitchToMADboolean | undefined— When true, the engine may auto-switch a long-wait transfer to a DISPO quote airportWaitingTimeMinutesnumber | undefined— Standard airport wait buffer added to mission duration for cost calculation
Field Type Default Where it is used autoSwitchRoundTripToMADboolean | undefined— When true, long round-trips with high waiting time are converted to DISPO roundTripBuffernumber | null— Extra minutes added to the gap between legs when deciding round-trip mode maxReturnDistanceKmnumber | null— Maximum empty-return distance before flagging for review minWaitingTimeForSeparateTransfersnumber | null— Minimum waiting time (minutes) to treat a round-trip as two separate transfer legs
Field Type Default Where it is used transitDiscountEnabledboolean | undefinedfalseEnables automatic discount when trip passes through configured transit zones transitDiscountPercentnumber | undefined— Percentage discount applied when transit zone is matched transitZoneCodesstring[] | undefined— Zone codes that qualify for the transit discount
Field Type Default Where it is used denseZoneSpeedThresholdnumber | null— Speed (km/h) below which a zone is considered dense; affects time estimation denseZoneCodesstring[] | undefined— Zone codes explicitly marked as dense
Field Type Default Where it is used staffingSelectionPolicyStaffingSelectionPolicy | null— Selects which compliance staffing arrangement to use: "CHEAPEST" "FASTEST" "PREFER_INTERNAL" staffingCostParametersExtendedStaffingCostParameters | null— Override costs for relay driver, double-crew, and multi-day staffing scenarios
Field Type Default Where it is used enableDefaultEstimationboolean | undefined— When true, uses default distance/duration estimates when no vehicle is assigned defaultEstimationDistanceKmnumber | undefined— Default service distance used for estimation defaultEstimationDurationMinutesnumber | undefined— Default service duration used for estimation defaultOperatingBaseIdstring | null | undefined— Default base ID used for shadow calculation when no vehicle is assigned estimationFallbackStrategyEstimationFallbackStrategy | undefined— Rate resolution order when estimating: "CATEGORY_THEN_GLOBAL_THEN_FIXED" "GLOBAL_THEN_CATEGORY_THEN_FIXED" "FIXED_ONLY"
Goal Field(s) Change the dynamic base price level baseRatePerKm, baseRatePerHour, targetMarginPercentChange internal cost model fuelConsumptionL100km, tollCostPerKm, wearCostPerKm, driverHourlyCostChange profitability thresholds greenMarginThreshold, orangeMarginThresholdAdd zone price rounding roundingRuleEnforce a minimum price minimumTripPriceHtSurcharge or discount short trips shortTripThresholdKm, shortTripMultiplierAdjust empty return cost weighting emptyReturnCostPercentControl how overlapping zones are resolved zoneConflictStrategyControl which zone multiplier wins zoneMultiplierAggregationStrategyTune client difficulty multipliers difficultyMultipliersSelect compliance staffing staffingSelectionPolicy, staffingCostParameters
Was this page helpful? Yes No