Attendance review and policies
The manager queue for exceptions and corrections, live presence, and how attendance policies resolve per employee
Managers get two Attendance screens: a live snapshot of who is on the clock right now, and one queue holding everything that needs a decision.
Live presence
Attendance → Live presence counts the people you manage as Working, On break and Not clocked in, then lists them with a state badge each, showing the time the current stretch started for anyone on the clock and today's worked total for everyone else. Tabs narrow the list to one state, a selector to one team. Admins see the whole workspace; managers see their direct reports and the teams they manage, and nothing else.
The snapshot refreshes about every 45 seconds while the tab is visible, and immediately when you switch back to it. It shows presence only. It deliberately does not show what anyone is working on — that is project time, a different question, and putting it here would turn a presence board into a surveillance board.
Live presence shows no "late" flag. Work schedules define how long a day is, not when it starts, so lateness cannot be computed without guessing.
The review queue
Attendance → Attendance review holds two kinds of item in one list:
- System rules — raised automatically when a closed shift breaches a configured rule.
- Employee requests — someone asked for their own record to be corrected.
Filter by status (Needs review, Resolved, All), by origin, and by team. Each item shows the person, the date, the reason code, its severity, and how long it has been waiting.
The system rules
| Rule | Raised when |
|---|---|
| Auto-closed | A stale open shift was closed by the system |
| Missed break | A closed shift did not satisfy the applicable break rule |
| Short day | Worked time fell below known expected time, beyond tolerance |
| Over schedule | Worked time exceeded known expected time, beyond the threshold |
| Work on leave | Someone worked on a day approved leave had reduced |
| Work on holiday | Someone worked on a public holiday |
| Invalid sequence | Corrected records cannot form a valid set of segments |
Short day and over schedule are never raised when expected time is unknown, so people without a work schedule do not generate noise.
Working on a holiday or during approved leave is context, not an accusation. Both exist so a reviewer can see the day for what it was.
Resolving an item
Opening an item shows the person, the date, the reason code, a summary of what happened, and the proposed times where there are any, in the timezone they were recorded in. A correction request is approved or rejected; a system rule is marked as reviewed.
Approving applies exactly the times the employee proposed: the screen shows them but does not let you retype them, so a proposal that is itself wrong is rejected and the person sends a corrected one. Rejecting requires a reason. Every decision is recorded in the audit trail alongside the original punches, which are never modified.
Policies
Attendance settings is admin-only and controls how the rules behave: break expectations, the over-schedule warning threshold, short-day tolerance, when an abandoned shift is auto-closed, and whether approved leave warns or blocks at clock-in.
A workspace can run more than one policy — a warehouse team and an office team reasonably differ. Each policy is assigned to people, teams, or countries, and the effective policy for any individual resolves in a fixed order:
- A binding for that exact employee.
- A binding for one of their teams, lowest priority number first.
- A binding for their country.
- The workspace default.
Because someone can belong to several teams, team bindings carry a priority so the result is never ambiguous. The settings screen has an Effective policy preview: pick a person and it shows which policy applies and which rule above produced it, so you never have to work it out by hand.
Disable a policy before deleting it, and remove its assignments first: a policy somebody is still bound to refuses to delete.
Getting attendance out
There is no attendance report screen and no CSV export. The screens above read a day or a shift at a time; anything wider is a job for one of the two machine surfaces:
- MCP — connect your AI client and ask it directly, for example "which people in the Platform team have an open attendance review item?" See Connect an agent.
- API keys — read one person's shifts over a date range, and current team presence,
with the
attendance:readscope. Recording a punch needs MCP; there is no REST write. See the API reference.