Every scan posts online as a row in that employee's daily attendance. Not just a timestamp — the work pattern they're measured against, the hours they actually did, where the scan happened, and a plain-language remark saying whether they were late or worked over.
One employee's month — a row per day, whether they worked it or not
A row exists for every calendar day, so a missing scan is visible as a gap rather than being silently absent from the list.
Which department the employee belongs to.
The shift they are measured against, e.g. a 5-day 0900–1800 pattern.
One row per calendar day, including weekends and holidays.
The actual scan times, colour-coded so gaps stand out.
Where the scan happened, opened on a map from the row.
Worked hours calculated from the in and out pair.
Which segment of the day the entry belongs to, such as work or lunch.
Leave taken against that day, including half-day leave.
This is the part that saves the time. Nobody sits comparing scan times against a shift pattern — each day is labelled automatically.
Arrival after the pattern start, with the number of minutes.
Time worked beyond the pattern, with the number of minutes.
Half a day worked or taken as leave.
A scan is missing — someone forgot on the way in or out.
The day fell short of the expected hours.
Non-working days in the pattern, marked rather than left blank.
Named holidays, including replacement holidays.
A full day of approved leave.
Lateness only means something relative to a start time. Each employee carries their work pattern — a five-day 0900 to 1800, for instance — and every day is judged against that, so different shifts don't need different spreadsheets.
Each scan carries a map link, so a clock-in is a place as well as a moment. That matters for site staff, multiple branches, and anyone using the mobile app away from a fixed entrance.
Tell us your headcount and shift patterns and we'll set the attendance up so the record matches how your people actually work.