Driver status is derived
Driver status is computed from shifts, breaks and trips. This page explains the rules, and what to change when the status looks wrong.
The status on a driver record — Available, On Delivery, On Break, On Leave or Offline — is not a field you maintain. Cooriroo derives it from three facts about the driver right now: whether they have an active shift, whether that shift has an open break, and whether they have a trip in progress. Every shift and trip event recomputes it from those facts.
This surprises people, because the Status column on the drivers list looks like a dropdown you can use. It is worth understanding why it works this way before you spend an afternoon correcting statuses that correct themselves back.
What each status means
| Status | What it means | What produces it |
|---|---|---|
| On Break | Paused inside a shift | An open break on the driver’s active shift |
| On Delivery | Out working a trip | A trip in progress, with or without an open shift |
| Available | On duty and free to be given work | An active shift, no open break, no trip in progress |
| On Leave | Off the roster deliberately | Set by an administrator, and kept while there is no activity |
| Offline | Not working | No shift, no break, no trip, and not on leave |
The order the rules are applied in
The table above is in precedence order, and the order carries real meaning. Cooriroo checks each rule in turn and stops at the first match:
- An open break wins over everything. Breaks only exist inside an active shift, so this rule is safe to put first.
- Otherwise, a trip in progress means On Delivery.
- Otherwise, an active shift means Available.
- Otherwise, if the driver is already On Leave, they stay On Leave.
- Otherwise, Offline.
The reason a break outranks a trip is the return journey. A driver who stops for lunch halfway through a trip reads On Break while the break is open, and goes back to On Delivery when it ends — not to Available. The status is recomputed at the end of the break rather than forced to a fixed value, so it lands on whatever is actually true.
What triggers a recalculation
A driver’s status is recomputed when any of these happen to them:
- They clock in, whether by activating a scheduled shift or starting an ad-hoc one.
- They clock out.
- A break starts.
- A break ends.
- A trip of theirs starts.
- A trip of theirs reaches a final state — completed, cancelled or failed.
- The no-show sweep records that they missed a scheduled shift.
On Leave is the one you set
On Leave is the exception, and it is the only reason the dropdown is there at all. It is an administrative state rather than an operational one — nothing a driver does produces it — so recalculation preserves it whenever there is no activity to contradict it.
It is not sticky, though. Any activity overrides it immediately: a clock-in makes the driver Available, a trip makes them On Delivery. And once that activity ends they become Offline, not On Leave again. If someone is put on leave, works a day mid-way through it, and then goes back on leave, you have to set it a second time.
What to change instead
When a status is wrong, the fix is almost always upstream of it.
- 1
Look at the shift, not the status
Drivers → open a driver → ShiftsThe Shifts tab shows whether the driver has an open shift and an open break. Those two facts plus their trips fully determine the status, so if the tab and the badge disagree, the badge is stale and the next event will fix it.
- 2
Close out a stale trip
A driver stuck on On Delivery has a trip that never reached a final state. Completing, cancelling or failing that trip recalculates them.
- 3
Use On Leave for planned absence
Holiday, sickness and secondment are the case the dropdown exists for. Anything you can express as a shift should be a shift instead.
- 4
Change how shifts are tracked if clock-in is the friction
Customization → Compliance & Shifts → Tracking modeClock In/Out expects the driver to start their own shift. Auto Trip opens an ad-hoc shift for them when a trip starts. Hybrid keeps manual shifts but does not block a driver who has not clocked in.
When the status still looks wrong
Common surprises
A driver is out delivering but shows Offline
No trip is in progress against their record — the trip was never started, or it is assigned to somebody else.
Open the trip and check the assignment and the state. On Delivery follows a trip that has actually been started, not one that is merely scheduled.
A driver clocked out but is still On Delivery
Clocking out recalculates rather than forcing Offline, and a trip in progress outranks a closed shift.
This is deliberate. Someone finishing their shift while still mid-delivery is not offline, and reporting them as such would be worse than the alternative. They move to Offline once the trip reaches a final state.
I set a status and it changed back within the hour
The driver had a shift or trip event, and the status was recomputed from their real state.
Expected. Except for On Leave, a written status survives only until the next event for that driver.
A driver shows Available although nobody clocked them in
In Auto Trip mode, starting a trip opens an ad-hoc shift, and that shift can outlive the trip.
When a trip finishes in Auto Trip mode, the shift is closed only if the driver has nothing else coming up soon. If they do, the shift stays open and they read Available between trips, which is the correct answer.
A driver missed a scheduled shift but is not Offline
The no-show sweep recalculates rather than forcing Offline.
A driver who missed their scheduled shift but clocked in on an ad-hoc one, or who is mid-trip, keeps their real status. The no-show is still recorded against their compliance either way.
Driver status is about availability, not about location. Where a driver is comes from live tracking and appears on the live map, which is a separate signal with its own feature gate.
Terminology
Your organisation can rename these. If your screens say something else, this is what they mean here.
- Driver
- The person the status belongs to. Some organisations call these operators, couriers, riders or crew.Rename it in Customization → Terminology
- Shift
- A period on duty. It is the single biggest input to driver status, so renaming it renames half this page for your team.Rename it in Customization → Terminology