Appearance
Progression and ETA
What this chapter covers
This chapter is about how Korido answers "when will it arrive?" — and, just as importantly, how it refuses to promise an answer. It describes the philosophy that an ETA is an indicator, not a promise, how live progression is tracked along the route, how a continuously re-estimated arrival is built from per-segment history, known frictions, and rest modelling, what the confidence levels mean (including blocked), and why alerts are progress-based rather than target-time breaches.
The picture
Note what is not an input: a promised delivery time. Korido never measures the prediction against a target.
ETA is an indicator, not a promise
Nobody can promise arrival across 2,000 km of real corridor. The road from Douala to N'Djamena is a chain of borders, weighbridges, security stops, and the ordinary friction of a long haul through two countries. Any system that stamps a mission with a contractual arrival time and then measures reality against it is selling a fiction.
So Korido does not. It keeps two clearly separated timestamps, and the separation is the whole design — one is inert, the other is alive:
target_arrival_atis a display-only informational target arrival. The engine never reads it, never compares against it, and never raises an alert because it was missed.predicted_arrival_atis the live, re-estimated best guess. It is refreshed roughly every 10 minutes while the mission is moving, and it is honest about its own uncertainty.
The product promise is a good indicator, continuously updated, that a dispatcher can act on — not a countdown to a deadline.
Live progression
Progression is where the truck is along its route right now. The truck's latest accepted position is projected onto the mission's stored route, and that projection yields the current segment, how far into it the truck is, how far it has come along the whole route, and how far remains. This is a geometry calculation over the committed route, cheap enough to do often, and it is what the map and the progress bar are drawn from.
Progression is an input to the estimate, not the authority on which segment is done. Durable segment completion is decided by waypoint evidence — the truck actually crossing a geofence — not by projection, which keeps the record honest near boundaries and after reroutes.
The re-estimated arrival
The predicted arrival is built, every tick, by layering three kinds of knowledge over the remaining route.
Per-segment baselines. For each remaining segment, Korido looks at the history of similar traversals of the same road, bucketed by time of day, and takes a typical driving time. A seasonal adjustment — the four-bucket Sahel model — is layered over the route as a whole. Where a segment has enough observed history, that empirical baseline is used; where it does not, a routed estimate bootstraps it until observations accumulate. This is why the estimate improves as a fleet runs a corridor: the road teaches the model how long it really takes.
Known frictions. On top of the baselines, Korido adds the delays it already knows are on the road ahead:
- hotspot dwell — the typical wait at recurring stop clusters (borders, weighbridges);
- slowdown zones — stretches where trucks routinely lose speed;
- active incidents — a live anomaly on the remaining route contributes its expected drag.
Rest modelling. Finally, the estimate accounts for the human being driving. The hours-of-service inputs from the mission's rule set insert mandatory breaks, daily rest, and night stops into a long leg — a truck that must rest 11 hours tonight has that rest folded directly into its arrival estimate.
Confidence
Every predicted arrival carries a confidence level, because a number without a sense of how much to trust it is worse than useless.
- High / medium / low — reflect how much of the route rests on solid history versus bootstrap fallbacks, and how wide the spread of likely outcomes is. Low confidence also covers a mission paused with no known resume time, where the arrival is frozen rather than guessed.
- Blocked — a level of its own, reserved for when the road ahead is genuinely closed. When an active incident blocks the road ahead, the estimate is frozen and marked blocked: the honest answer is "the road is closed," not a fabricated later time.
When a recently-cleared incident intersects the mission's route, the mission surfaces a "route recovering" signal, so an operator sees the road opening back up.
Alerts are progress-based
Because there is no promise, there is nothing to breach. Delay alerts are built on progress, not on a target time:
- Route blocked — an incident ahead blocks forward progress.
- Stalled — the mission is paused with no known resume time, so its progress is indeterminate.
There is no "arriving late versus the deadline" alert, because Korido makes no deadline to be late against. An operator is told the road is blocked or the truck has stopped moving — actionable facts — rather than that an invented promise has slipped.
Edge cases
- A blocked road ahead. When an incident blocks forward progress, the arrival prediction is frozen, confidence becomes blocked, prediction rows hold their last value, and ordinary delay alerts are suppressed for that tick — the mission is genuinely blocked.
- A pause with no known resume. The arrival is frozen and confidence drops to low. Korido will not show a precise ETA for a mission that is explicitly suspended with no end in sight.
- A brand-new corridor. With no observed history, every segment leans on the routed bootstrap, confidence is lower, and unknown dwell contributes zero rather than an invented number. The estimate sharpens as the fleet runs the route.
- The pickup leg. Before loading, the estimate is the arrival at origin, and it is refined on every batch as the truck approaches — so a truck running ahead of schedule gives the dispatcher an early signal instead of a stale departure-time number.
- A rerouted segment. When the truck's road changes mid-mission, only the affected segment's geometry is replaced; the rest of the route and its history are preserved, and stale prediction rows are superseded rather than deleted.
Known limitations
- The estimate is only as sure as the road's history. Confidence reflects how much of the remaining route rests on observed traversals versus routed bootstraps, and how wide the spread of likely outcomes is. A brand-new corridor leans entirely on the routed bootstrap and reports lower confidence until the fleet has run it enough times for the baselines to settle.
- When it cannot know, it freezes rather than guesses. Two conditions take the estimate out of ordinary re-estimation: an active incident blocking the road ahead marks the prediction blocked and freezes it, and an indeterminate pause with no resume time freezes it at low confidence. In both cases Korido holds the last honest number instead of extrapolating one it cannot stand behind, and unknown dwell contributes zero rather than an invented delay.
What's ahead
- Self-calibrating friction. The frictions modelled today are hotspot dwell, slowdown zones, and active incidents, layered over per-segment baselines and a coarse four-bucket seasonal model. As traversals accumulate, Korido will attribute delay more finely — splitting a leg's drag across its causes and sharpening the seasonal and weather signal — so the estimate increasingly explains itself alongside predicting a time.
How it connects
- Segments and traversals — the observed history that per-segment baselines are learned from.
- Driving rules — the hours-of-service inputs behind rest modelling.
- The mission lifecycle — pause with and without a known resume, and arrival.
- Route Guard — deviation, distinct from a blocked road ahead.
- Part 6 (fleet intelligence) — hotspots, slowdown zones, and incidents as cross-fleet learned frictions, and how progress alerts reach people.