Corvus Logistics · 2024
Route planning and ETAs for 1,400 Corvus vehicles that planners actually accept
Corvus planned 220 daily routes by hand and quoted ETAs that were often an hour wrong. We paired a solver seeded with the previous day's plan with a gradient-boosted ETA model, and gave drivers an app that queues work offline. Planning fell from four hours to 22 minutes a day.
- Logistics & Supply Chain
- 8 months
- 6 engineers, 2 data scientists, 1 designer
- 9 minutes
- p90 ETA error, down from 70 minutes
- 18% to 11%
- Empty running as a share of fleet kilometres
- 22 minutes
- Daily planning time, down from 4 hours
The challenge
What was wrong
Three planners built 220 routes a day for 1,400 vehicles in a spreadsheet, and quoted customer ETAs that were routinely 70 minutes out, which kept two people on the phone full time. GPS pings drop in tunnels and on rural runs, so any model had to work across 8 to 12 minute gaps. Drivers had already abandoned one app that assumed a live connection, and driver hours rules with 30-minute delivery windows made naive optimiser output unusable on the road.
The approach
What we did
Two stages. A metaheuristic solver runs on a 45-second budget seeded with yesterday's plan, so today's routes stay recognisable to the planner who has to defend them. That seeding costs roughly 2 per cent against the theoretical optimum and is the reason planners use the output instead of overriding it. ETAs come from a gradient-boosted model over 26 months of pings rather than a sequence model, because 8 ms inference and per-feature attribution mattered more than the last point of accuracy.
“Seeding the solver with yesterday's plan sounds like a small decision. It is the whole reason my planners trust the output instead of quietly rebuilding it themselves.”
Stack
What it runs on
- Python
- OR-Tools
- LightGBM
- FastAPI
- Flutter
- SQLite
- PostGIS
- Apache Kafka
Services
Practices involved
AI & Data
Machine Learning
Forecasting, ranking and detection models that keep working after the data shifts.
Engineering
Mobile App Development
Native and cross-platform apps built for field conditions, not conference demos.
AI & Data
Data Engineering
Pipelines with contracts, tests and an on-call rota, not a folder of scheduled scripts.
Engineering
API Development
Contract-first interfaces with versioning, quotas and deprecation rules agreed up front.
More work
Other engagements
Meridian Exchange · 2024
Bidding engine rebuild
Meridian was losing bids to lock contention in the closing seconds of every auction, and disputes over bid order had to be settled manually. We rebuilt the engine around per-lot single-writer partitions and an append-only log, trading cross-lot transactions for provable ordering at 1,800 bids per second.
Kestrel Industrial · 2023
Shop-floor system modernisation
Four plants, 300 machines and a VB6 application nobody could test safely. We replaced it one production cell at a time behind a routing gateway, keeping Oracle as the book of record until the final cell was live. Total unplanned stoppage across the entire programme came to 11 minutes.
Northwind Commodities · 2025
Incremental end-of-day valuation
A seven-hour overnight batch left Northwind's traders working from yesterday's P&L whenever a curve was corrected. We replaced it with an incremental graph over versioned inputs, cutting the full run to 34 minutes and a curve correction to 90 seconds, with 12 months of valuations replayable to the input.

