Conflict and Aggregation Strategies
How Sixième Étoile resolves pricing conflicts when a trip matches multiple zones — zone conflict strategies, multiplier aggregation strategies, and their trade-offs.
Overview
When a trip's pickup or dropoff address falls inside more than one PricingZone, the pricing engine cannot apply all matching multipliers simultaneously — it must pick one. Two separate configuration settings control this resolution:
zoneConflictStrategy— decides which zone "wins" when multiple zones match the same address.zoneMultiplierAggregationStrategy— decides how to combine the winning pickup zone multiplier and the winning dropoff zone multiplier into a single factor.
Both settings live on OrganizationPricingSettings and apply globally to all quotes for the organization.
Zone Conflict Strategy (zoneConflictStrategy)
This strategy is evaluated independently for the pickup address and for the dropoff address. For each address, the engine collects all matching zones and applies the strategy to select one.
| Value | Behavior | Best for |
|---|---|---|
SPECIFICITY | POINT > smallest RADIUS > POLYGON. Among zones of the same type, the smallest wins. This is the default. | Most operators — automatically favors precise rules over broad ones |
PRIORITY | The zone with the highest priority integer wins. Ties are broken by SPECIFICITY. | Operators who want explicit manual control over which zone wins |
MOST_EXPENSIVE | The zone that produces the highest price (highest priceMultiplier) wins. | Revenue-maximizing configurations |
CLOSEST | The zone whose center (centerLatitude, centerLongitude) is closest to the trip address wins. Requires all polygon zones to have a center configured. | Regions where geographic proximity is the natural tiebreaker |
PRIORITY_THEN_MOST_EXPENSIVE | First filter to the set of zones sharing the highest priority value, then among those apply MOST_EXPENSIVE. | Fine-grained control: explicit priority groups, revenue maximization within each group |
PRIORITY_THEN_CLOSEST | First filter to the set of zones sharing the highest priority value, then among those apply CLOSEST. | Fine-grained control: explicit priority groups, geographic proximity within each group |
SPECIFICITY in Detail
SPECIFICITY applies the following ordering:
POINTzones are the most specific — a coordinate that falls on a POINT zone always uses that zone.- Among
RADIUSzones, the one with the smallestradiusMetersis more specific. POLYGONzones are the least specific. When multiple polygons overlap, the one with the smallest area wins.
Note:
centerLatitudeandcenterLongitudeonPOLYGONzones are not used bySPECIFICITY. They are only used byCLOSESTandPRIORITY_THEN_CLOSEST.
CLOSEST Requirement
To use CLOSEST or PRIORITY_THEN_CLOSEST, every POLYGON zone must have centerLatitude and centerLongitude set. If a polygon zone is missing a center, it is excluded from distance comparison and will only win if it is the sole matching zone.
Multiplier Aggregation Strategy (zoneMultiplierAggregationStrategy)
After the conflict strategy resolects one winning zone per address endpoint, the engine holds two multiplier values: one for the pickup zone and one for the dropoff zone. The aggregation strategy combines them into a single factor applied to the base price.
| Value | Formula | Behavior | Best for |
|---|---|---|---|
MAX | max(pickupMultiplier, dropoffMultiplier) | Uses the higher of the two multipliers. This is the default. | Prevents double-charging; applies the surcharge only once for the "more premium" endpoint |
PICKUP_ONLY | pickupMultiplier | Uses only the pickup zone multiplier; ignores the dropoff zone. | When pricing is driven exclusively by where the trip starts |
DROPOFF_ONLY | dropoffMultiplier | Uses only the dropoff zone multiplier; ignores the pickup zone. | When pricing is driven exclusively by where the trip ends (e.g., airport delivery charges) |
AVERAGE | (pickupMultiplier + dropoffMultiplier) / 2 | Averages the two multipliers. | Balanced charging for trips that cross two distinct surcharge zones |
Example
Suppose a trip picks up in zone A (priceMultiplier = 1.5) and drops off in zone B (priceMultiplier = 1.2), with a base price of €100.
| Strategy | Calculation | Final price |
|---|---|---|
MAX | max(1.5, 1.2) = 1.5 → €100 × 1.5 | €150 |
PICKUP_ONLY | 1.5 → €100 × 1.5 | €150 |
DROPOFF_ONLY | 1.2 → €100 × 1.2 | €120 |
AVERAGE | (1.5 + 1.2) / 2 = 1.35 → €100 × 1.35 | €135 |
Configuring the Strategies
Both strategies are configured in Settings → Tarification → Conflict & Aggregation (screen N-09):
- Open Settings → Tarification.
- Click the Conflict & Aggregation sub-section.
- Select the desired
zoneConflictStrategyfrom the dropdown. - Select the desired
zoneMultiplierAggregationStrategyfrom the second dropdown. - Save. Changes take effect on all new quotes immediately; existing quotes are not retroactively recalculated.
Practical Tips
- Leave
SPECIFICITY+MAXas defaults unless you have a specific reason to change. They produce intuitive results for most operators. - Use
PRIORITYwhen you have explicit zone hierarchies. For example, if you want your "airport zone" to always win over your "city center zone" even when the airport is inside the city boundary, assign a higherpriorityto the airport zone. - Use
MOST_EXPENSIVEwith caution. This always charges the highest possible rate, which may surprise clients if they receive a higher price than expected for a trip between two lightly-zoned areas. - Test
CLOSESTbefore enabling it in production. Make sure all polygon zones have a center configured, then verify the results with a few representative trips in the quote cockpit.
Pricing Zones
Configure pricing zones — point, radius, and polygon — their multipliers, priorities, and role in dynamic pricing in Sixième Étoile.
Routes and Pricing Grids
Configure zone-to-zone contractual fixed prices (ZoneRoute) and pricing grids in Sixième Étoile — purpose, fields, Fixed Grid mode, and bidirectional pricing.