Documentation

Attendance review and policies

The manager queue for exceptions and corrections, live presence, and how attendance policies resolve per employee

Attendance → Live presence reports who is on the clock. Attendance → Attendance review holds system-raised exceptions and employee correction requests awaiting a decision.

Live presence

The board counts the people you manage as Working, On break and Not in, then lists each with a state badge, expected time for the day, the start of the current stretch, and a Leave badge for anyone on approved leave. Four tabs - On clock, Working, Break, Not in - open on On clock; a team selector narrows further. Admins see the workspace; managers see themselves, their direct reports and their managed teams.

It polls every 45 seconds while the tab is visible and reports state, not lateness: a work schedule sets a daily duration, not a start instant.

The review queue

A system rule is raised when a closed shift breaches a configured rule. Filter by status (Needs review, Resolved, All), origin and team. Each row carries the person, their teams, the work date, its origin and a severity-toned rule badge.

  • Auto-closed - a stale open shift the system closed.
  • Missed break - a shift that missed its break rule.
  • Short day - under expected time, past tolerance.
  • Over schedule - over expected time, past the threshold.
  • Worked on leave - work on a day approved leave had reduced.
  • Worked on a holiday - work on a public holiday.
  • Invalid punch sequence - a kiosk punch that did not fit the shift's state, or an implausible device clock.

Short day and over schedule need a known expected time.

Resolving an item

Opening an item shows the reason code and a summary; a correction adds a diff of recorded against requested times in the workspace timezone. A correction request offers Approve or Reject, a system rule Acknowledge and close; the server authors that menu and refuses anything else.

Approving applies exactly the times proposed; they cannot be edited here, so a wrong proposal is rejected. The dialog requires a reason on every decision; the server refuses a rejection without one. Every decision lands in the audit trail. An approval appends the approved timeline as real punches and marks the ones it replaces superseded.

Policies

Workspace settings → Attendance policies is admin-only: break expectations, the over-schedule threshold, short-day tolerance, when an abandoned shift auto-closes, and whether approved leave warns or blocks at clock-in.

A workspace can run several policies. Each is assigned to people, teams or countries and resolves employee → team → country → workspace default, lowest team priority first. Deleting a policy is refused with a 409 while it is active or assigned.

Northlake keeps the built-in rules - a 30-minute break due after 5h - and gives its Platform team a policy with the break due after 4h. Marta checks Aleksandra in Effective policy preview: Platform, matched by their team.

Exporting attendance data

Attendance → My attendance carries an Export button for managers and admins: the week or month on screen as CSV, one row per day with a recorded shift, carrying worked, break, expected and variance minutes. Wider reads go through MCP or an API key with the attendance:read scope. No API key writes a punch: a punch comes from the person's own agent over MCP (punch, scope attendance:write) or from a paired kiosk device posting to /api/kiosk with its device token.