Defining a shift does nothing on its own. It starts mattering when people are on it.

Three ways somebody ends up on a shift

At hire. The Work shift field on the Add employee panel assigns one, dated to their joining date — so their very first month is judged against the hours they actually started on.

By editing their record. The same field on the edit panel, which applies from today rather than backdating. That difference is deliberate and explained in Editing an Employee’s Details.

By default. Anyone with no shift of their own falls back to the shift marked DEFAULT in Work Shifts. Most companies run one pattern and only assign explicitly to the exceptions.

Assigning a shift needs the attendance settings permission, not the ordinary employee-edit permission. A shift start time is what lateness is measured against, so it is never something an employee can change about themselves.

Assignments are dated, not replaced

This is the part worth understanding properly.

Moving somebody to a new shift doesn’t overwrite the old one — it records a new assignment starting on a date, and the previous one stays in force for everything before it.

That means past attendance keeps being evaluated against the shift the person was actually working at the time. Somebody who moved from the 09:00 shift to the 14:00 shift in July doesn’t retroactively become three hours late for every day in June. It also means a mistaken assignment doesn’t corrupt history; you fix it by assigning correctly from the right date.

How late minutes are worked out

Late is shift start + grace, and anything after that counts.

Take the Morning Shift starting at 09:00 with 15 minutes of grace. A 09:12 check-in is on time. A 09:20 check-in is five minutes late — measured from the end of grace at 09:15, not from 09:00.

Grace is per day within a shift, so a shift can be relaxed about Monday mornings and strict on the rest of the week if that’s genuinely your policy.

How worked hours and overtime are worked out

Worked hours are check-out minus check-in, minus the shift’s break for that day. An unpaid lunch is deducted whether or not anybody clocked out for it — the break is a property of the schedule, not something measured.

Overtime is time past the scheduled end, beyond the overtime grace figure in the tracking settings. With that set to 30 minutes, leaving at 18:20 on an 18:00 shift is not overtime; leaving at 19:00 is half an hour of it.

An overnight shift — one that ends after midnight — is recorded against the day it started, so a shift beginning 22:00 Tuesday and ending 06:00 Wednesday is Tuesday’s record.

None of it happens unless the switch is on

Every calculation above depends on track lateness and overtime automatically being enabled in Work Shifts. With it off, check-in and check-out times are still recorded, but no late minutes, worked hours or overtime are derived from them — anything in those fields is whatever a person typed.

The other setting to get right first is the time zone. Punches are stored as exact moments; the time zone is how a 09:00 start gets interpreted. Wrong zone, and a whole workforce is systematically hours late or early.

Before you trust the numbers

Three things to check, in order:

  1. Is the time zone right? Everything else is downstream of this.
  2. Is everyone on the right shift? Someone on the default when they work evenings will show as many hours late, every day.
  3. Is the grace realistic? Zero grace turns ordinary traffic into a disciplinary record, and produces a lateness report nobody will act on.

Getting these wrong doesn’t produce obviously broken output — it produces plausible numbers that are wrong, which is harder to notice. Worth a spot-check against a few people you know the working pattern of before the figures go anywhere near a payroll conversation.