```json
{
    "title": "API – 01 Survey API 2026 EN",
    "url": "https://kardinal.ai/survey-api-2026/",
    "datePublished": "2026-09-16",
    "dateModified": "2026-09-17",
    "language": "en-GB",
    "description": "Independent benchmark of 11 route optimization engines scored on 149 real-world business constraints — Kardinal leads at 93.3% coverage.",
    "author": "Kardinal",
    "publisher": "Kardinal"
}
```

# API – 01 Survey API 2026 EN

# What Route Optimization APIs Can Really Model

> Eleven route optimization APIs tested against 149 business constraints drawn from real operations, across seven sectors. One question per cell: is the constraint explicitly documented and enabled through the API? More than 1,600 evaluations, all traceable down to the source-file line.

**Status:** Route Optimization · Functional Coverage · August 2026

## Key Figures

- **149** constraints evaluated
- **11** engines compared
- **93.3%** Kardinal coverage, top of the panel
- **10** constraints only Kardinal covers (the market's blind spots)
- **12** constraints covered by the whole panel (universal baseline)

## How These Figures Are Computed

Public documentation only. A constraint counts when it is explicitly documented and enabled through the API.

- **Source — Public documentation.** Only the public documentation of each API counts as proof. For every constraint Kardinal covers, the implementation proof is provided in the explorer below.
- **Scope — 149 constraints, 7 sectors.** 149 business rules across 11 functional families. 21 belong to a generic core, 128 are tied to one of seven sectors: parcel, retail, bulky, cold-chain, long distance, waste, field services.
- **Scoring — Three states, not two.** Each cell is covered, partial or absent. Partial counts as half a constraint, which avoids treating an incomplete implementation as a plain absence. Formula: `score = (covered + 0.5 × partial) / 149`.
- **Panel — 11 engines.** Kardinal, plus 10 market solutions: Routific, Timefold, NextBillion.ai, Solvice V2, GraphHopper, Google Route Optimization, HERE Tour Planning V3, Mapbox Optimization API v2, Verso, LogisticsOS.

**Consistency check.** The 10 competitor scores were recomputed cell by cell from the raw constraint data and compared with the aggregate stats: all 10 match exactly, full and partial coverage included.

### Two Methodological Points to Keep in Mind

**The reference set is not neutral.** It gathers business constraints documented and met in real operations. Kardinal covers 139 of 149, or 93.3%, and provides the implementation proof for each of those 139. The figure to read is not that score, but the gap between the other APIs and a catalogue of real business needs.

**No popularity filter was applied.** A constraint enters the scope because it matches a documented operational need, not because several vendors handle it. Ten of them are covered by none of the ten competing APIs and therefore mechanically pull every score down.

## Part 1 — Overall Ranking Across the 149 Constraints

The solid bar measures fully covered constraints, the hatched band partial coverage. Kardinal leads at 93.3%; no competing engine reaches three quarters of the reference set.

| Rank | Engine | Full covered | Partial | Not covered | Score |
|---|---|---|---|---|---|
| 1 | Kardinal | 139 | 0 | 10 | **93.3%** |
| 2 | Solvice V2 | 102 | 18 | 29 | **74.5%** |
| 3 | LogisticsOS | 91 | 15 | 43 | **66.1%** |
| 4 | HERE Tour Planning V3 | 73 | 31 | 45 | **59.4%** |
| 5 | Google Route Optimization | 72 | 27 | 50 | **57.4%** |
| 6 | NextBillion.ai | 66 | 20 | 63 | **51.0%** |
| 7 | GraphHopper | 59 | 1 | 89 | **39.9%** |
| 8 | Timefold Pickup & Delivery routing | 44 | 8 | 97 | **32.2%** |
| 9 | Verso | 38 | 11 | 100 | **29.2%** |
| 10 | Routific | 31 | 6 | 112 | **22.8%** |
| 11 | Mapbox Optimization API v2 | 19 | 3 | 127 | **13.8%** |

**Tiers:** premium > 70% · standard 50–70% · basic < 50%. Calculation: (covered + 0.5 × partial) / 149.

### What the Ranking Shows

- **Solvice** — 1st in the competitor panel at 74.5%, i.e. 102 fully covered constraints out of 149. The only one past the two-thirds mark.
- **LogisticsOS** — 2nd in the panel at 66.1% with 91 full constraints. A broad profile, close to the top without reaching it.
- **HERE** — At 59.4% with 31 partial covers, the most of the panel. Many constraints approached without being fully modeled.
- **Google** — Just behind at 57.4%, 72 full constraints and 27 partial. Position sensitive to how partial is counted.
- **GraphHopper** — A clear-cut profile: 59 fully covered constraints and a single partial. What it does, it does clearly, but the scope stays narrow.
- **Mapbox** — Last at 13.8%. Coverage is limited to the universal core plus a few extensions.

## Part 2 — Coverage by Functional Family

The 149 constraints split into 11 families. This is where profiles diverge: an engine can be strong on time windows and absent on route structure.

| Family | N | Kardinal | Routific | Timefold | NextBillion.ai | Solvice | GraphHopper | Google | HERE | Mapbox | Verso | LogisticsOS |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Objectives & balancing | 36 | **100.0%** | 41.7% | 40.3% | 50.0% | 72.2% | 41.7% | 62.5% | 68.1% | 1.4% | 22.2% | 63.9% |
| Cost & fleet economics | 24 | **75.0%** | 0.0% | 0.0% | 16.7% | 54.2% | 4.2% | 50.0% | 39.6% | 0.0% | 4.2% | 75.0% |
| Route structure & limits | 23 | **100.0%** | 4.3% | 4.3% | 56.5% | 71.7% | 47.8% | 43.5% | 47.8% | 21.7% | 43.5% | 69.6% |
| Pickup, delivery & returns | 20 | **95.0%** | 35.0% | 70.0% | 70.0% | 90.0% | 60.0% | 65.0% | 70.0% | 35.0% | 35.0% | 45.0% |
| Capacity & load compatibility | 9 | **100.0%** | 11.1% | 44.4% | 66.7% | 88.9% | 44.4% | 55.6% | 44.4% | 11.1% | 11.1% | 55.6% |
| Service time | 9 | **100.0%** | 11.1% | 11.1% | 22.2% | 100.0% | 22.2% | 88.9% | 100.0% | 11.1% | 100.0% | 100.0% |
| Assignment, continuity & access | 9 | **66.7%** | 16.7% | 16.7% | 33.3% | 66.7% | 33.3% | 33.3% | 33.3% | 0.0% | 0.0% | 33.3% |
| Shifts, breaks & timing | 7 | **100.0%** | 42.9% | 35.7% | 57.1% | 71.4% | 71.4% | 71.4% | 42.9% | 35.7% | 35.7% | 71.4% |
| Travel time & road network | 6 | **100.0%** | 41.7% | 66.7% | 100.0% | 58.3% | 91.7% | 50.0% | 100.0% | 25.0% | 25.0% | 83.3% |
| Real-time & re-optimization | 4 | **100.0%** | 25.0% | 100.0% | 100.0% | 100.0% | 0.0% | 50.0% | 62.5% | 0.0% | 62.5% | 87.5% |
| Time windows | 2 | **100.0%** | 50.0% | 75.0% | 100.0% | 100.0% | 50.0% | 100.0% | 100.0% | 100.0% | 50.0% | 100.0% |

*Reading: share of the family's constraints covered by the engine, partial counted 0.5. The number of constraints in each family (N) is shown next to its name. A 2-constraint family (Time windows) only moves in 25% steps.*

## Part 3 — Coverage by Sector

Each constraint carries a scope: generic, or tied to a sector. Two readings are possible, and they do not tell the same story.

### Reading A — Generic core + sector constraints

Shown: generic core + sector constraints. This is the reading closest to a real need: a carrier in a sector must handle both the common core and the constraints specific to its trade.

| Sector | N | Kardinal | Routific | Timefold | NextBillion.ai | Solvice | GraphHopper | Google | HERE | Mapbox | Verso | LogisticsOS |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Parcel & express | 41 | **95.1%** | 37.8% | 47.6% | 68.3% | 79.3% | 52.4% | 65.9% | 73.2% | 25.6% | 43.9% | 76.8% |
| Retail last-mile | 37 | **97.3%** | 40.5% | 45.9% | 70.3% | 78.4% | 52.7% | 70.3% | 71.6% | 31.1% | 45.9% | 82.4% |
| Bulky & heavy goods | 37 | **94.6%** | 39.2% | 44.6% | 67.6% | 78.4% | 50.0% | 70.3% | 70.3% | 31.1% | 45.9% | 79.7% |
| Cold-chain last-mile | 40 | **97.5%** | 40.0% | 50.0% | 75.0% | 80.0% | 56.2% | 72.5% | 73.8% | 28.7% | 45.0% | 78.8% |
| Heavy Long Distance | 44 | **95.5%** | 28.4% | 39.8% | 59.1% | 69.3% | 44.3% | 62.5% | 61.4% | 26.1% | 36.4% | 65.9% |
| Waste Collection | 40 | **97.5%** | 35.0% | 47.5% | 65.0% | 72.5% | 48.8% | 66.2% | 72.5% | 26.2% | 40.0% | 73.8% |
| Field Services | 36 | **97.2%** | 43.1% | 54.2% | 72.2% | 77.8% | 54.2% | 70.8% | 70.8% | 29.2% | 45.8% | 77.8% |

### Reading B — Sector-specific constraints only

Shown: sector-specific constraints only (excludes the 21 generic-core constraints). A far more discriminating reading, but based on smaller counts: a single gap weighs more here.

| Sector | N | Kardinal | Routific | Timefold | NextBillion.ai | Solvice | GraphHopper | Google | HERE | Mapbox | Verso | LogisticsOS |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Parcel & express | 20 | **90.0%** | 20.0% | 30.0% | 47.5% | 80.0% | 40.0% | 50.0% | 62.5% | 5.0% | 27.5% | 65.0% |
| Retail last-mile | 16 | **93.8%** | 21.9% | 21.9% | 46.9% | 78.1% | 37.5% | 56.2% | 56.2% | 12.5% | 28.1% | 75.0% |
| Bulky & heavy goods | 16 | **87.5%** | 18.8% | 18.8% | 40.6% | 78.1% | 31.2% | 56.2% | 53.1% | 12.5% | 28.1% | 68.8% |
| Cold-chain last-mile | 19 | **94.7%** | 23.7% | 34.2% | 60.5% | 81.6% | 47.4% | 63.2% | 63.2% | 10.5% | 28.9% | 68.4% |
| Heavy Long Distance | 23 | **91.3%** | 4.3% | 17.4% | 32.6% | 60.9% | 26.1% | 45.7% | 41.3% | 8.7% | 15.2% | 45.7% |
| Waste Collection | 19 | **94.7%** | 13.2% | 28.9% | 39.5% | 65.8% | 31.6% | 50.0% | 60.5% | 5.3% | 18.4% | 57.9% |
| Field Services | 15 | **93.3%** | 26.7% | 40.0% | 50.0% | 76.7% | 40.0% | 56.7% | 53.3% | 6.7% | 26.7% | 63.3% |

## Part 4 — The Market's Blind Spots

Ten constraints in the reference set are covered, even partially, by none of the ten competing engines. Kardinal covers all ten. Almost all of them concern operations where a route is not a simple sequence of deliveries.

- **C-81 — Breaks allowed mid-travel** (Heavy Long Distance): Allow a break to be taken partway through a driving leg between two stops, not only while parked at a stop, so a required pause can be placed wherever it best fits along the road.
- **C-82 — Breaks allowed during service** (Field Services): Allow a break to interrupt an ongoing on-site service, so a long task can be paused and resumed around a required break rather than forcing the entire service before or after it.
- **C-102 — Consolidation loop generation** (Heavy Long Distance): Build grouping loops that let several orders travel together on a direct point-to-point trip, consolidating volume into line-haul legs rather than routing each order separately.
- **C-103 — Preloaded first trip** (Heavy Long Distance): The first trip of the day leaves the depot already loaded with a predetermined set of orders, so the optimizer plans that trip around the goods physically on board rather than choosing its contents freely, while later trips are planned normally.
- **C-104 — Site concurrency limit** (Heavy Long Distance): Limit how many vehicles may be present at the same site at the same time, for safety or because loading doors are limited, spreading arrivals across the day so the on-site count never exceeds the allowed maximum.
- **C-105 — Site concurrency limit at facilities** (Waste Collection): Limit how many trucks may be at the same facility at once, spreading their arrivals across the day so the on-site count never exceeds the maximum. Applies at disposal facilities, where tipping bays and weighbridges are limited, and at collection sites such as civic amenity centers, where yard space and safety rules cap simultaneous vehicles.
- **C-132 — Roll-off container swaps** (Waste Collection): Handle skip and roll-off operations where the vehicle drops an empty container and collects a full one at the same site or in a defined sequence, tracking empty and full containers as distinct loads carried on the vehicle.
- **C-140 — Vehicle-specific time windows** (Retail last-mile): Attach time windows that apply only to certain vehicles. A driver holding the store key can deliver over a wider window than one who does not, so the same stop carries different windows depending on who serves it.
- **C-141 — Vehicle-specific time windows** (Cold-chain last-mile): Attach time windows that apply only to certain vehicles. A driver with badge access to the airlock can deliver over a wider window than one without, so the stop's effective window depends on the assigned driver's access.
- **C-142 — Vehicle-specific time windows** (Heavy Long Distance): Attach time windows that apply only to certain vehicles or carriers. Some warehouses reserve distinct loading slots per company, so in a multi-subcontractor optimization each subcontractor has its own pickup windows for the very same orders, and the applicable window depends on which carrier is assigned.

### Covered by a Single Engine (out of all 11)

- C-55 — Per-visit facility cost (Solvice)
- C-56 — Time-of-day-dependent hourly cost (Solvice)
- C-57 — Time-of-day-dependent hourly cost (Solvice)
- C-58 — Time-of-day-dependent hourly cost (Solvice)
- C-59 — Time-of-day-dependent hourly cost (Solvice)
- C-60 — Time-of-day-dependent hourly cost (Solvice)
- C-81 — Breaks allowed mid-travel (Kardinal)
- C-82 — Breaks allowed during service (Kardinal)
- C-97 — Maximum distance from depot (Kardinal)
- C-98 — Maximum distance from depot (Kardinal)
- C-99 — Maximum distance from depot (Kardinal)
- C-100 — Maximum distance from depot (Kardinal)
- C-101 — Maximum distance from home base (Kardinal)
- C-102 — Consolidation loop generation (Kardinal)
- C-103 — Preloaded first trip (Kardinal)
- C-104 — Site concurrency limit (Kardinal)
- C-105 — Site concurrency limit at facilities (Kardinal)
- C-132 — Roll-off container swaps (Kardinal)
- C-134 — Stops bound to a PUDO (HERE)
- C-140 — Vehicle-specific time windows (Kardinal)
- C-141 — Vehicle-specific time windows (Kardinal)
- C-142 — Vehicle-specific time windows (Kardinal)
- C-143 — Solver-decided job synchronization (Solvice)
- C-144 — Solver-decided job synchronization (Solvice)
- C-145 — Solver-decided job synchronization (Solvice)

### Covered by All Ten Competitors (Universal Baseline)

- C-67 — Custom service time per stop
- C-78 — Flexible lunch break
- C-83 — Custom start/end per vehicle
- C-106 — Custom capacity dimensions
- C-115 — In-route pickup and delivery
- C-116 — In-route pickup and delivery
- C-117 — In-route pickup and delivery
- C-118 — In-route pickup and delivery
- C-119 — In-route pickup and delivery
- C-120 — In-route pickup and delivery
- C-121 — In-route pickup and delivery
- C-135 — Hard time windows

## Constraint Explorer — All 149 Constraints

The entire source file, row by row. Yes / Partial / No per engine, for every constraint evaluated. This table is normally only visible after JavaScript renders it — reproduced here in full so it's readable without running any code.

| ID | Constraint | Family | Sector | Kardinal | Routific | Timefold | NextBillion.ai | Solvice | GraphHopper | Google | HERE | Mapbox | Verso | LogisticsOS |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C-01 | Prioritized optimization goals | Objectives & balancing | Generic | Yes | No | No | No | No | No | No | Yes | No | No | No |
| C-02 | Minimize lateness on booked appointments | Objectives & balancing | Bulky & heavy goods | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes |
| C-03 | Minimize lateness on technician appointments | Objectives & balancing | Field Services | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes |
| C-04 | Minimize lateness against the announced ETA | Objectives & balancing | Parcel & express | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes |
| C-05 | Minimize lateness on preferred store windows | Objectives & balancing | Retail last-mile | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes |
| C-06 | Minimize lateness before service opening | Objectives & balancing | Cold-chain last-mile | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes |
| C-07 | Even out working time across courier routes | Objectives & balancing | Parcel & express | Yes | Yes | No | Yes | Yes | Yes | No | No | No | No | Yes |
| C-08 | Even out working time across retail rounds | Objectives & balancing | Retail last-mile | Yes | Yes | No | Yes | Yes | Yes | No | No | No | No | Yes |
| C-09 | Even out working time across crews | Objectives & balancing | Bulky & heavy goods | Yes | Yes | No | Yes | Yes | Yes | No | No | No | No | Yes |
| C-10 | Even out working time across cold-chain routes | Objectives & balancing | Cold-chain last-mile | Yes | Yes | No | Yes | Yes | Yes | No | No | No | No | Yes |
| C-11 | Even out working time across technicians | Objectives & balancing | Field Services | Yes | Yes | No | Yes | Yes | Yes | No | No | No | No | Yes |
| C-12 | Minimize and report fleet-mix CO2 | Objectives & balancing | Parcel & express | Yes | No | No | No | No | No | Yes | Partial | No | No | No |
| C-13 | Minimize CO2 and allocate it per delivery unit | Objectives & balancing | Retail last-mile | Yes | No | No | No | No | No | Yes | Partial | No | No | No |
| C-14 | Minimize CO2 across a heterogeneous van fleet with reporting | Objectives & balancing | Bulky & heavy goods | Yes | No | No | No | No | No | Yes | Partial | No | No | No |
| C-15 | Minimize and report cold-chain CO2 | Objectives & balancing | Cold-chain last-mile | Yes | No | No | No | No | No | Yes | Partial | No | No | No |
| C-16 | Minimize load-weighted CO2 on long hauls | Objectives & balancing | Heavy Long Distance | Yes | No | No | No | No | No | Yes | Partial | No | No | No |
| C-17 | Minimize load-weighted CO2 on collection routes | Objectives & balancing | Waste Collection | Yes | No | No | No | No | No | Yes | Partial | No | No | No |
| C-18 | Report distance-based CO2 | Objectives & balancing | Field Services | Yes | No | No | No | No | No | Yes | Partial | No | No | No |
| C-19 | Charter out only as overflow | Objectives & balancing | Heavy Long Distance | Yes | No | No | No | No | No | No | Yes | No | No | No |
| C-20 | Subcontract collections only as overflow | Objectives & balancing | Waste Collection | Yes | No | No | No | No | No | No | Yes | No | No | No |
| C-21 | Use backup vehicles only as a last resort | Objectives & balancing | Parcel & express | Yes | No | No | Partial | Yes | No | Partial | Partial | No | Partial | Partial |
| C-22 | Rank providers by preference, across as many tiers as needed | Objectives & balancing | Retail last-mile | Yes | No | No | Partial | Yes | No | Partial | Partial | No | Partial | Partial |
| C-23 | Rank vehicle categories by footprint and emissions | Objectives & balancing | Bulky & heavy goods | Yes | No | No | Partial | Yes | No | Partial | Partial | No | Partial | Partial |
| C-24 | Rank providers by preference, across as many tiers as needed | Objectives & balancing | Cold-chain last-mile | Yes | No | No | Partial | Yes | No | Partial | Partial | No | Partial | Partial |
| C-25 | Use backup trucks only as a last resort | Objectives & balancing | Heavy Long Distance | Yes | No | No | Partial | Yes | No | Partial | Partial | No | Partial | Partial |
| C-26 | Use backup trucks only as a last resort | Objectives & balancing | Waste Collection | Yes | No | No | Partial | Yes | No | Partial | Partial | No | Partial | Partial |
| C-27 | Preferred assignment by zone | Objectives & balancing | Parcel & express | Yes | No | Yes | No | Yes | Yes | Partial | Yes | No | No | Yes |
| C-28 | Preferred assignment by zone and customer | Objectives & balancing | Retail last-mile | Yes | No | Yes | No | Yes | Yes | Partial | Yes | No | No | Yes |
| C-29 | Preferred crew for heavy or high-value deliveries | Objectives & balancing | Bulky & heavy goods | Yes | No | Yes | No | Yes | Yes | Partial | Yes | No | No | Yes |
| C-30 | Preferred carrier for the usual customer book | Objectives & balancing | Cold-chain last-mile | Yes | No | Yes | No | Yes | Yes | Partial | Yes | No | No | Yes |
| C-31 | Preferred technician by seniority or continuity | Objectives & balancing | Field Services | Yes | No | Yes | No | Yes | Yes | Partial | Yes | No | No | Yes |
| C-32 | Core routing objectives | Objectives & balancing | Generic | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Yes |
| C-33 | Prioritize recovered and premium parcels | Objectives & balancing | Parcel & express | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
| C-34 | Prioritize customers in shortage | Objectives & balancing | Cold-chain last-mile | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
| C-35 | Prioritize full containers | Objectives & balancing | Waste Collection | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
| C-36 | Prioritize urgent over planned over discretionary | Objectives & balancing | Field Services | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
| C-37 | Standard transport cost model | Cost & fleet economics | Generic | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
| C-38 | Package and overtime thresholds | Cost & fleet economics | Parcel & express | Yes | No | No | No | Partial | No | Partial | Partial | No | No | Yes |
| C-39 | Package and overtime thresholds | Cost & fleet economics | Retail last-mile | Yes | No | No | No | Partial | No | Partial | Partial | No | No | Yes |
| C-40 | Package and overtime thresholds | Cost & fleet economics | Bulky & heavy goods | Yes | No | No | No | Partial | No | Partial | Partial | No | No | Yes |
| C-41 | Package and overtime thresholds | Cost & fleet economics | Cold-chain last-mile | Yes | No | No | No | Partial | No | Partial | Partial | No | No | Yes |
| C-42 | Overtime thresholds | Cost & fleet economics | Heavy Long Distance | Yes | No | No | No | Partial | No | Partial | Partial | No | No | Yes |
| C-43 | Package and overtime thresholds | Cost & fleet economics | Waste Collection | Yes | No | No | No | Partial | No | Partial | Partial | No | No | Yes |
| C-44 | Optimize the combined fleet bill | Cost & fleet economics | Parcel & express | Yes | No | No | Partial | Partial | No | Partial | Partial | No | No | Yes |
| C-45 | Optimize the combined fleet bill | Cost & fleet economics | Retail last-mile | Yes | No | No | Partial | Partial | No | Partial | Partial | No | No | Yes |
| C-46 | Optimize the combined fleet bill | Cost & fleet economics | Bulky & heavy goods | Yes | No | No | Partial | Partial | No | Partial | Partial | No | No | Yes |
| C-47 | Optimize the combined fleet bill | Cost & fleet economics | Cold-chain last-mile | Yes | No | No | Partial | Partial | No | Partial | Partial | No | No | Yes |
| C-48 | Optimize the combined haulage bill | Cost & fleet economics | Heavy Long Distance | Yes | No | No | Partial | Partial | No | Partial | Partial | No | No | Yes |
| C-49 | Optimize the combined collection bill | Cost & fleet economics | Waste Collection | Yes | No | No | Partial | Partial | No | Partial | Partial | No | No | Yes |
| C-50 | Minimum revenue per subcontracted resource | Cost & fleet economics | Parcel & express | Yes | No | No | No | No | No | Yes | Partial | No | No | Yes |
| C-51 | Minimum revenue per subcontracted resource | Cost & fleet economics | Bulky & heavy goods | Yes | No | No | No | No | No | Yes | Partial | No | No | Yes |
| C-52 | Minimum revenue per subcontracted resource | Cost & fleet economics | Heavy Long Distance | Yes | No | No | No | No | No | Yes | Partial | No | No | Yes |
| C-53 | Minimum revenue per subcontracted resource | Cost & fleet economics | Waste Collection | Yes | No | No | No | No | No | Yes | Partial | No | No | Yes |
| C-54 | Minimum revenue per subcontracted resource | Cost & fleet economics | Field Services | Yes | No | No | No | No | No | Yes | Partial | No | No | Yes |
| C-55 | Per-visit facility cost | Cost & fleet economics | Waste Collection | No | No | No | No | Yes | No | No | No | No | No | No |
| C-56 | Time-of-day-dependent hourly cost | Cost & fleet economics | Parcel & express | No | No | No | No | Yes | No | No | No | No | No | No |
| C-57 | Time-of-day-dependent hourly cost | Cost & fleet economics | Retail last-mile | No | No | No | No | Yes | No | No | No | No | No | No |
| C-58 | Time-of-day-dependent hourly cost | Cost & fleet economics | Bulky & heavy goods | No | No | No | No | Yes | No | No | No | No | No | No |
| C-59 | Time-of-day-dependent hourly cost | Cost & fleet economics | Cold-chain last-mile | No | No | No | No | Yes | No | No | No | No | No | No |
| C-60 | Time-of-day-dependent hourly cost | Cost & fleet economics | Heavy Long Distance | No | No | No | No | Yes | No | No | No | No | No | No |
| C-61 | Traffic-aware travel time | Travel time & road network | Generic | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Partial |
| C-62 | Vehicle-specific speed profiles | Travel time & road network | Generic | Yes | Partial | Partial | Yes | Partial | Yes | Partial | Yes | Partial | Partial | Partial |
| C-63 | Toll road policy | Travel time & road network | Generic | Yes | Yes | Yes | Yes | No | Partial | Partial | Yes | No | No | Yes |
| C-64 | Per-resource travel-time adjustment | Travel time & road network | Generic | Yes | Yes | Partial | Yes | No | Yes | Yes | Yes | No | Yes | Yes |
| C-65 | Hazardous-material road restrictions | Travel time & road network | Heavy Long Distance | Yes | No | Yes | Yes | Yes | Yes | No | Yes | No | No | Yes |
| C-66 | Hazardous-material road restrictions | Travel time & road network | Waste Collection | Yes | No | Yes | Yes | Yes | Yes | No | Yes | No | No | Yes |
| C-67 | Custom service time per stop | Service time | Generic | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-68 | Driver-dependent service time | Service time | Parcel & express | Yes | No | No | No | Yes | No | Yes | Yes | No | Yes | Yes |
| C-69 | Driver-dependent service time | Service time | Retail last-mile | Yes | No | No | No | Yes | No | Yes | Yes | No | Yes | Yes |
| C-70 | Equipment- and crew-dependent service time | Service time | Bulky & heavy goods | Yes | No | No | No | Yes | No | Yes | Yes | No | Yes | Yes |
| C-71 | Equipment-dependent service time | Service time | Cold-chain last-mile | Yes | No | No | No | Yes | No | Yes | Yes | No | Yes | Yes |
| C-72 | Equipment-dependent service time | Service time | Heavy Long Distance | Yes | No | No | No | Yes | No | Yes | Yes | No | Yes | Yes |
| C-73 | Equipment-dependent service time | Service time | Waste Collection | Yes | No | No | No | Yes | No | Yes | Yes | No | Yes | Yes |
| C-74 | Technician-dependent service time | Service time | Field Services | Yes | No | No | No | Yes | No | Yes | Yes | No | Yes | Yes |
| C-75 | Shared parking, per-drop service time | Service time | Parcel & express | Yes | No | No | Yes | Yes | Yes | No | Yes | No | Yes | Yes |
| C-76 | Dynamic route start time | Shifts, breaks & timing | Generic | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-77 | Mandatory driving breaks | Shifts, breaks & timing | Generic | Yes | No | No | Partial | Yes | Yes | Yes | No | No | No | Yes |
| C-78 | Flexible lunch break | Shifts, breaks & timing | Generic | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-79 | Shift bounds per resources | Shifts, breaks & timing | Generic | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Partial | Yes |
| C-80 | Multi-day rest scheduling | Shifts, breaks & timing | Heavy Long Distance | Yes | No | No | Partial | Yes | Yes | Yes | No | No | No | Yes |
| C-81 | Breaks allowed mid-travel | Shifts, breaks & timing | Heavy Long Distance | Yes | No | No | No | No | No | No | No | No | No | No |
| C-82 | Breaks allowed during service | Shifts, breaks & timing | Field Services | Yes | No | No | No | No | No | No | No | No | No | No |
| C-83 | Custom start/end per vehicle | Route structure & limits | Generic | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-84 | Maximum route distance | Route structure & limits | Parcel & express | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
| C-85 | Maximum route distance | Route structure & limits | Retail last-mile | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
| C-86 | Maximum route distance | Route structure & limits | Bulky & heavy goods | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
| C-87 | Maximum route distance | Route structure & limits | Cold-chain last-mile | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
| C-88 | Maximum route distance | Route structure & limits | Field Services | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
| C-89 | Multiple trips per day | Route structure & limits | Retail last-mile | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-90 | Multiple trips per day | Route structure & limits | Bulky & heavy goods | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-91 | Multiple trips per day | Route structure & limits | Cold-chain last-mile | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-92 | Multiple trips per day | Route structure & limits | Heavy Long Distance | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-93 | Zone-by-zone sequencing | Route structure & limits | Parcel & express | Yes | No | No | Partial | Yes | Yes | No | Yes | No | No | Partial |
| C-94 | Route compactness | Route structure & limits | Parcel & express | Yes | No | No | No | Yes | No | No | No | No | No | Yes |
| C-95 | Route compactness | Route structure & limits | Retail last-mile | Yes | No | No | No | Yes | No | No | No | No | No | Yes |
| C-96 | Route compactness | Route structure & limits | Field Services | Yes | No | No | No | Yes | No | No | No | No | No | Yes |
| C-97 | Maximum distance from depot | Route structure & limits | Retail last-mile | Yes | No | No | Partial | Partial | No | No | No | No | No | Partial |
| C-98 | Maximum distance from depot | Route structure & limits | Bulky & heavy goods | Yes | No | No | Partial | Partial | No | No | No | No | No | Partial |
| C-99 | Maximum distance from depot | Route structure & limits | Cold-chain last-mile | Yes | No | No | Partial | Partial | No | No | No | No | No | Partial |
| C-100 | Maximum distance from depot | Route structure & limits | Waste Collection | Yes | No | No | Partial | Partial | No | No | No | No | No | Partial |
| C-101 | Maximum distance from home base | Route structure & limits | Field Services | Yes | No | No | Partial | Partial | No | No | No | No | No | Partial |
| C-102 | Consolidation loop generation | Route structure & limits | Heavy Long Distance | Yes | No | No | No | No | No | No | No | No | No | No |
| C-103 | Preloaded first trip | Route structure & limits | Heavy Long Distance | Yes | No | No | No | No | No | No | No | No | No | No |
| C-104 | Site concurrency limit | Route structure & limits | Heavy Long Distance | Yes | No | No | No | No | No | No | No | No | No | No |
| C-105 | Site concurrency limit at facilities | Route structure & limits | Waste Collection | Yes | No | No | No | No | No | No | No | No | No | No |
| C-106 | Custom capacity dimensions | Capacity & load compatibility | Generic | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-107 | Soft capacity limits | Capacity & load compatibility | Generic | Yes | No | No | No | No | No | Yes | No | No | No | Yes |
| C-108 | Incompatible goods together | Capacity & load compatibility | Cold-chain last-mile | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes |
| C-109 | Incompatible goods together | Capacity & load compatibility | Heavy Long Distance | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes |
| C-110 | Incompatible goods together | Capacity & load compatibility | Waste Collection | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes |
| C-111 | Temperature compartment configuration | Capacity & load compatibility | Cold-chain last-mile | Yes | No | No | Yes | Yes | No | No | No | No | No | No |
| C-112 | Vehicle compartment configuration | Capacity & load compatibility | Heavy Long Distance | Yes | No | No | Yes | Yes | No | No | No | No | No | No |
| C-113 | Per-site delivery/collection limit | Capacity & load compatibility | Waste Collection | Yes | No | No | No | Yes | No | No | No | No | No | No |
| C-114 | Per-site throughput limit | Capacity & load compatibility | Heavy Long Distance | Yes | No | No | No | Yes | No | No | No | No | No | No |
| C-115 | In-route pickup and delivery | Pickup, delivery & returns | Parcel & express | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-116 | In-route pickup and delivery | Pickup, delivery & returns | Retail last-mile | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-117 | In-route pickup and delivery | Pickup, delivery & returns | Cold-chain last-mile | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-118 | In-route pickup and delivery | Pickup, delivery & returns | Bulky & heavy goods | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-119 | In-route pickup and delivery | Pickup, delivery & returns | Heavy Long Distance | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-120 | In-route pickup and delivery | Pickup, delivery & returns | Waste Collection | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-121 | In-route pickup and delivery | Pickup, delivery & returns | Field Services | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-122 | Pickup-to-delivery detour limit | Pickup, delivery & returns | Parcel & express | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| C-123 | Pickup-to-delivery detour limit | Pickup, delivery & returns | Cold-chain last-mile | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| C-124 | Pickup-to-delivery detour limit | Pickup, delivery & returns | Heavy Long Distance | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| C-125 | Pickup-to-delivery detour limit | Pickup, delivery & returns | Waste Collection | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| C-126 | Pickup-to-delivery detour limit | Pickup, delivery & returns | Field Services | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| C-127 | Conditional returns pickup | Pickup, delivery & returns | Parcel & express | Yes | No | No | No | Yes | No | No | No | No | No | No |
| C-128 | Conditional returns pickup | Pickup, delivery & returns | Bulky & heavy goods | Yes | No | No | No | Yes | No | No | No | No | No | No |
| C-129 | Optional (best-effort) stops | Pickup, delivery & returns | Field Services | Yes | No | Yes | Yes | Yes | No | No | No | No | No | No |
| C-130 | Optional (best-effort) stops | Pickup, delivery & returns | Parcel & express | Yes | No | Yes | Yes | Yes | No | No | No | No | No | No |
| C-131 | Alternative disposal facilities | Pickup, delivery & returns | Waste Collection | Yes | No | No | No | Yes | No | No | Yes | No | No | Yes |
| C-132 | Roll-off container swaps | Pickup, delivery & returns | Waste Collection | Yes | No | No | No | No | No | No | No | No | No | No |
| C-133 | FIFO loading and unloading | Pickup, delivery & returns | Heavy Long Distance | Yes | No | No | No | Yes | No | Yes | No | No | No | Yes |
| C-134 | Stops bound to a PUDO | Pickup, delivery & returns | Parcel & express | No | No | No | No | No | No | No | Yes | No | No | No |
| C-135 | Hard time windows | Time windows | Generic | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| C-136 | Preferred (soft) time windows | Time windows | Generic | Yes | No | Partial | Yes | Yes | No | Yes | Yes | Yes | No | Yes |
| C-137 | Key-holder exclusivity | Assignment, continuity & access | Cold-chain last-mile | Yes | Partial | Partial | Yes | Yes | Yes | Yes | Yes | No | No | Yes |
| C-138 | Key-holder exclusivity | Assignment, continuity & access | Retail last-mile | Yes | Partial | Partial | Yes | Yes | Yes | Yes | Yes | No | No | Yes |
| C-139 | Key-holder exclusivity | Assignment, continuity & access | Waste Collection | Yes | Partial | Partial | Yes | Yes | Yes | Yes | Yes | No | No | Yes |
| C-140 | Vehicle-specific time windows | Assignment, continuity & access | Retail last-mile | Yes | No | No | No | No | No | No | No | No | No | No |
| C-141 | Vehicle-specific time windows | Assignment, continuity & access | Cold-chain last-mile | Yes | No | No | No | No | No | No | No | No | No | No |
| C-142 | Vehicle-specific time windows | Assignment, continuity & access | Heavy Long Distance | Yes | No | No | No | No | No | No | No | No | No | No |
| C-143 | Solver-decided job synchronization | Assignment, continuity & access | Bulky & heavy goods | No | No | No | No | Yes | No | No | No | No | No | No |
| C-144 | Solver-decided job synchronization | Assignment, continuity & access | Heavy Long Distance | No | No | No | No | Yes | No | No | No | No | No | No |
| C-145 | Solver-decided job synchronization | Assignment, continuity & access | Field Services | No | No | No | No | Yes | No | No | No | No | No | No |
| C-146 | Live problem updates | Real-time & re-optimization | Generic | Yes | Partial | Yes | Yes | Yes | No | No | No | No | Partial | Partial |
| C-147 | Lock route contents | Real-time & re-optimization | Generic | Yes | No | Yes | Yes | Yes | No | Partial | Yes | No | Partial | Yes |
| C-148 | Lock route contents and sequence | Real-time & re-optimization | Generic | Yes | Partial | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes |
| C-149 | Freeze part of a route | Real-time & re-optimization | Generic | Yes | No | Yes | Yes | Yes | No | Partial | Partial | No | Partial | Yes |

## Limits and Traceability

What this benchmark measures, what it does not, and what to know before using it to pick a tool.

- **Coverage, not performance.** No measure of compute speed, solution quality or cost. An engine that models a constraint may solve it badly; an engine that does not model it cannot solve it at all.
- **Documentation, not product.** A capability that exists but is not publicly documented is counted absent. The result measures documented coverage at a given date, not everything an engine can do.
- **Versions evaluated.** The source-file labels state the versions tested (see vendor list above; e.g. Solvice V2, HERE Tour Planning V3, Mapbox Optimization API v2). A later version may have closed some gaps.

[See the full interactive benchmark →](https://kardinal.ai/benchmark-route-optimization-api-2026/)
