Clock in, clock out, no-shows
The full life of a shift — rostered, started, paused, closed or missed — and the rules that move it between those states.
A shift moves through a small, strict set of states, and almost every one is reached by something a driver did rather than something you clicked. This page follows one shift from the roster to the moment it closes — and covers the one path where nobody closes it at all.
Who can do this
- Role
- Any signed-in user
- Permission
shifts:write
Drivers clock themselves in and out on endpoints scoped to their own account — they cannot touch another driver’s shift. Admins can clock any driver in or out from the admin surface, and the shift records which of the two it was.
The five states
| Status | What it means | How it gets there |
|---|---|---|
| Scheduled | Planned, not started | You created it, or bulk scheduling did |
| Active | Running right now | Somebody clocked in |
| Completed | Ran and closed cleanly | Somebody clocked out |
| Missed | Nobody turned up in time | The no-show check found it overdue |
| Cancelled | Reserved in the data model | No action in the product sets it today |
Clocking in
Drivers clock in from the shift card in the driver app or the driver web portal. Both send nothing but the fact that it happened — the driver’s identity comes from their session, never from the request, so nobody can clock in as somebody else.
A bare clock-in — one that does not name a shift — does not immediately create a new one. The server first looks for a scheduled shift the driver was plausibly meant to be starting: their earliest one due to begin between the no-show grace period ago and an hour from now. If it finds one, it activates that shift instead. Without this, a driver who clocks in from the home screen rather than from their rostered shift would start an unrelated ad-hoc shift, and their real one would sit there and be flagged as a no-show while they were out working. If no scheduled shift is in that window, a fresh ad-hoc shift is created and starts running immediately.
Breaks
A break can only be started inside an active shift, and only one can be open at a time. It has no planned length — the driver starts it and ends it.
What the break does to the hours is decided when it ends, not when it starts. If it lasted at least your minimum break length it is marked deductible and its minutes come off the working total. If it was shorter it is recorded but not deducted — a two-minute pause is not a rest break, and charging it to the driver’s hours would be wrong. Both kinds stay on the shift.
Clocking out
Clocking out closes the shift and computes its numbers in one pass. If a break is still open, it is ended first, so a driver who forgets to come back from lunch does not lose the shift — the break simply runs up to the clock-out.
Four figures are written onto the shift:
- Total minutes — clock-out minus clock-in, wall to wall.
- Break minutes — the sum of the deductible breaks only.
- Working minutes — total minus break, floored at zero.
- Overtime minutes — working minutes beyond your overtime threshold, floored at zero. Anything above zero also flips the shift’s overtime flag and raises a notification for admins.
Clocking out then re-derives the driver’s status rather than forcing them offline: a driver who clocks out while still mid-delivery stays on delivery until the trip itself ends. Finally the compliance checks run over the finished shift, writing the daily, weekly, rest and maximum-duration events covered in Licences and compliance.
No-shows
Nothing marks a shift as missed at the moment it should have started. A background check runs every five minutes and looks for shifts that are still scheduled and whose planned start is further in the past than your no-show grace period, fifteen minutes by default. Each one it finds gets:
- its status set to missed, and the time of detection stamped on it;
- a
no_showentry in the compliance log at violation severity, recording the planned start and the grace period in force; - a driver-status recalculation;
- an admin notification, flagged important.
Because the check runs on a five-minute cadence rather than continuously, a shift is marked missed somewhere between the grace period and five minutes after it — never before. Only scheduled shifts are considered, so an ad-hoc shift can never be a no-show.
The status is re-derived here too, not forced offline. A driver who missed their rostered 08:00 but is out on an ad-hoc shift, or mid-trip, keeps the status their actual work implies: marking the roster is not the same as declaring the person absent.
Tracking modes change who starts the shift
Everything above describes the default. Your tenant’s tracking mode decides whether shifts are driven by the clock at all.
| Mode | When a trip starts | When a trip finishes |
|---|---|---|
| Clock In/Out | Nothing — the driver clocks in | Nothing — the driver clocks out |
| Auto Trip | A shift is created if none is open | The shift closes if no work is queued |
| Hybrid | A missing clock-in is logged, not fixed | Nothing — the driver clocks out |
In Auto Trip mode manual clock-in is refused outright, because being clocked in and being on a trip are the same thing. The automatic close is cautious: the shift stays open if the driver has another trip in progress, or a trip or scheduled shift starting within the hour, so back-to-back jobs do not clock the driver out and in between each one. Hybrid expects a clock-in before a trip and records it when there was none, but never invents the shift — there, a missing clock-in is a data problem you want to see.
When it does not look right
The driver says they clocked in, but the roster shows the shift as missed
They clocked in more than the grace period after the planned start, so the scheduled shift was no longer a candidate for matching and a separate ad-hoc shift was created instead.
Filter the roster to that driver and that day: you should see both records, the missed scheduled shift and the ad-hoc one that actually ran. If this keeps happening, the grace period is probably shorter than the way the team really starts work.
Clock-in is rejected as a conflict
The driver already has an active shift — usually one from a previous day that nobody clocked out of.
Find the open shift on the roster and clock it out from the admin side. The hours it records will be wrong, but the shift can then be closed and the driver can start a new one.
Working minutes are lower than the time the driver was actually on shift
Deductible breaks are subtracted from the total. Only breaks at or above your minimum break length are deducted, so the gap is the sum of the long ones.
Open the shift and compare its total, break and working figures. If short pauses are being counted as full breaks, raise the minimum break length.
Terminology
Your organisation can rename these. If your screens say something else, this is what they mean here.
- Shift
- One block of working time for one driver. Some tenants call these duties, tours or blocks.Rename it in Customize → Terminology
- Driver
- The person clocking in and out. Some tenants call these operators, couriers or crew.Rename it in Customize → Terminology