Search the documentation

Find a page by title or section.

Drivers and shifts

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.

Updated

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

StatusWhat it meansWhat produces it
On BreakPaused inside a shiftAn open break on the driver’s active shift
On DeliveryOut working a tripA trip in progress, with or without an open shift
AvailableOn duty and free to be given workAn active shift, no open break, no trip in progress
On LeaveOff the roster deliberatelySet by an administrator, and kept while there is no activity
OfflineNot workingNo shift, no break, no trip, and not on leave
The five driver statuses and the operational fact behind each one.

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:

  1. An open break wins over everything. Breaks only exist inside an active shift, so this rule is safe to put first.
  2. Otherwise, a trip in progress means On Delivery.
  3. Otherwise, an active shift means Available.
  4. Otherwise, if the driver is already On Leave, they stay On Leave.
  5. 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. 1

    Look at the shift, not the status

    Drivers → open a driver → Shifts

    The 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. 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. 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. 4

    Change how shifts are tracked if clock-in is the friction

    Customization → Compliance & Shifts → Tracking mode

    Clock 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
Cause

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
Cause

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
Cause

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
Cause

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
Cause

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