Route optimization options: the complete guide
AIRO turns a list of orders and vehicles into routes. Most plans need no option at all: the defaults give the shortest plan that respects capacities, time windows and shifts. This guide explains every option, what it changes in the plan, what it costs in distance, and when it is worth turning on.
How the engine works
- Your file is read and validated row by row: addresses, quantities, time windows. Problems are reported before anything is optimized, with the row and what to fix.
- Addresses are located (geocoded). Then real road distances and drive times are measured between the places in the plan.
- A deterministic solver (Google OR-Tools) searches for the best routes within a time limit of a few seconds. No AI model computes or changes your routes; Claude and ChatGPT only call the engine through the connector.
- Every order that cannot be served is listed as unassigned, with the reason and what to change. Nothing is silently dropped.
All options at a glance
| Option | What it does | Effect on the plan | Default |
|---|---|---|---|
| Objective | Minimize kilometres or driving time | Duration favours faster roads, sometimes longer ones | Fewest kilometres |
| Vehicles to use | As many as is cheapest, all of them, or as few as possible | Fewest = fuller vehicles, longer days; all = shorter days, more distance | As many as is cheapest |
| Balance the work | Even working time, stop count or load across vehicles | Fairer days; usually some extra distance | Off |
| Capacity, weight, volume | Vehicle limits in load units, weight and volume | Orders are split across vehicles so no limit is exceeded | Capacity required; weight and volume optional |
| Time windows | Earliest and latest arrival per stop | Routes are ordered around appointments; can need more vehicles | None |
| Service time | Minutes spent at each stop | Longer days; fewer stops per vehicle | 5 minutes |
| Shifts | When each vehicle can work | Routes fit inside the shift | 08:00–18:00 |
| Breaks | One break per driver, inside a window | Break placed where it costs least | None |
| Skills | Equipment or certifications an order needs | Only matching vehicles take the order | None |
| Priority | High, normal or low | When everything cannot fit, low goes first and high is kept | Normal |
| Route limits | Max hours, km or stops per route | Shorter routes; can leave orders unassigned | None |
| Start and end per vehicle | Each vehicle leaves from and returns to its own place | Multi-depot plans; drivers starting from home | The depot |
| Open routes | Routes end at the last stop | No return leg: less distance and time | Off |
| Pickup and delivery | Collect at one address, deliver to another | Same vehicle does both, pickup first | Off (loaded at the start) |
| Assigned vehicle | Lock an order to a vehicle | The engine only orders that vehicle's stops | Engine chooses |
| Typical traffic | Drive times at the departure time, rush hours included | More realistic arrival times; higher price | Off |
| Work type | Deliveries (goods on board) or service visits | Decides how a day is re-planned: hand over loads, or spread visits | Deliveries |
| Re-plan the rest of the day | New plan from a time of day, vehicles where they are | Absorbs breakdowns, late orders and early finishes | On demand |
Choosing options in three steps
- Start with no option. Run the plan and compare it with your current routes (the baseline comparison is free). That is the cheapest plan that respects your data.
- Add the hard rules of your business: time windows, skills, weight limits, breaks, route limits. Each one makes the plan more realistic and can add distance or vehicles.
- Then add preferences: balance the work, use every vehicle or as few as possible, typical traffic. Compare plans side by side before you send them to drivers.
Each guide page covers one family of options: /docs/optimization/goals, /docs/optimization/constraints, /docs/optimization/routes, /docs/optimization/dispatch and /docs/optimization/travel-times. /docs/optimization/industries gives ready-made setups by industry, and /docs/optimization/spreadsheet-columns lists every column the import understands.