What a punch event contains
Each punch is a record with an employee identifier, a timestamp, a direction (in, out, or undetermined), a source (device ID or phone), and increasingly a verification result (face confidence, liveness) and a location (GPS with accuracy, geofence status). Direction can be explicit – the employee chooses In or Out – or inferred by the software from the sequence.
Timestamps should come from the server or a trusted clock, not from a phone whose time the user can change. When a punch is captured offline, the app should store both the device time and a monotonic counter so the server can validate the claimed time when it syncs.
First-in/last-out vs multiple punches
The simplest rule takes the earliest punch of the day as In and the latest as Out and treats everything between as worked time minus a fixed break. It is robust to stray punches and suits offices and most factories. Its weakness is that a worker who leaves for three hours in the afternoon still shows a full day.
The alternative pairs every In with the next Out and sums the intervals. It captures actual presence, supports paid and unpaid breaks measured from the punches, and is needed where hours are billed. Its weakness is fragility: one missing punch breaks the pairing for the whole day. Choose per shift type – first-in/last-out for general shifts, paired punches for hourly or billed work – and make the rule visible to employees. The working hours calculator shows how the two rules produce different totals from the same punches.
- First-in/last-out: simple, tolerant, hides mid-day absence
- Paired punches: precise, supports break tracking, breaks on a missed punch
- Midnight-crossing shifts need the Out to attach to the previous day's In
- Duplicate punches within a few minutes should be collapsed, not counted
Handling missed punches
A missed punch – usually the Out – is the most common attendance exception. Policies range from marking the day as half day pending correction, to auto-closing at shift end with a flag, to leaving it incomplete and blocking payroll until regularized. Auto-close with a flag is the most practical: it keeps payroll moving and gives the employee a visible prompt to correct.
Whatever the rule, make it explicit in the attendance policy and apply it consistently. The missed punch in payroll guide sets out the choices with their payroll consequences.
Shift 09:00–18:00, 1-hour unpaid break. Punches: In 08:58, Out 13:02, In 14:35, Out 18:20. First-in/last-out gives 9h 22m − 1h break = 8h 22m worked, 20 minutes over an 8-hour shift. Paired punches give (13:02 − 08:58) + (18:20 − 14:35) = 4h 04m + 3h 45m = 7h 49m, showing the break ran 33 minutes long and the day is 11 minutes short. Which number payroll uses depends on the rule the company chose.
Attend Mitra captures punch events from face, selfie, GPS, QR, kiosk, web and biometric devices with server timestamps, location and verification results, supports shifts that cross midnight, applies per-shift break rules, and routes missed punches into the regularization workflow with an audit trail.
