Record attendance (actuals)
Goal
Record what actually happened — who was present, late, or absent — by Excel import or by editing a day's records, so reconciliation can compare actuals to the planned roster.
Who can do this
- Import (Excel):
attendance.import— System Administrator, HR Administrator, Planner (and HR Director, COO). - Capture:
attendance.capture— Supervisor (or System Administrator). - Validate:
attendance.validate— Supervisor, Manager, Planner. - Review / revert an edit:
attendance.review— Manager (or System Administrator).
Before you start
- The day's planned shift exists (e.g. SHT-EVE-16 — Evening Shift 16:00–00:00 on 2026-06-01).
- For import: an
.xlsxmatching the template (columnsEmployee_Code, Date, Shift_Code, Time_In, Time_Out, Status, Notes), ≤ 10 MB.
Steps
- Import: open Attendance import (
/admin/attendance/import), Download template, fill one row per employee per day (statusPRESENT/ABSENT/LATE/ …), then Preview and Commit. - Or edit a row: open Attendance (
/admin/attendance), filter to the date/terminal, and edit a record. Every edit raises a pending review for a Manager. - View the day's actuals — e.g. for 2026-06-01 at Demo Container Terminal: one ABSENT (no-show), one LATE at 16:45, the rest PRESENT.

What the system does
Attendance is the actuals record (one row per employee per day) — the canonical source is Excel import (Source = EXCEL_IMPORT); there is no biometric clock / punch feed. An Admin/Planner edit applies immediately but is surfaced to a Manager as a pending review to acknowledge or revert. Reconciliation then compares these actuals to the published roster — see View reports.
What can block you
- Cross-midnight clock-out is rejected (finding F3). For the 16:00→00:00 evening shift, importing the true end time
00:00fails validation (TIME_OUT_BEFORE_IN) — the importer compares times same-day. Night-shift end times cannot be recorded as00:00via import; use a pre-midnight time, and don't document00:00clock-out as supported. - One row per employee per day — a single shift per day (no multiple punches).
- A Manager revert can fail (409 stale) if the record changed after the edit was raised — re-fetch and retry.
Related
- View reports (variance) · Employees & skills