---
title: Attendance review and policies
description: The manager queue for exceptions and corrections, live presence, and how attendance policies resolve per employee
order: 3
---

**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](/docs/attendance/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](/docs/attendance/overview/).

### 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.

> [!AGENT]
> List the open attendance review items for my team, grouped by reason, and flag the correction requests waiting on me.

## Related

- [Attendance](/docs/attendance/overview/)
- [Connect Claude to SquadBear](/docs/getting-started/connect-an-agent/)
- [The developer API](/docs/agents/api/)
