How CoalTrack makes attendance hard to fake
Buddy-punching, phone clocks turned back, spoofed GPS, records edited after the fact. How CoalTrack closes each gap — and the one feature we removed because it didn’t work.

The gaps we had to close
Mining operations lose money to the same handful of attendance tricks, over and over: a card handed to a friend, a phone clock turned back to erase a late arrival, a spoofed location, and manual recaps quietly edited before they reach payroll.
None of these are exotic. They’re ordinary, and they add up. CoalTrack’s job is to make each one either impossible or obvious — without turning the daily check-in into a chore.
Server time, not phone time
The single most important decision is whose clock you trust. CoalTrack decides on-time or late using the server clock, never the device — so turning a phone back an hour changes nothing.
In the field, signal is thin, so the app can’t always reach the server. Offline, it falls back to GPS satellite time plus a monotonic counter that can’t be wound backwards. The server still owns the work-hours window; offline check-ins arrive marked as offline and queue for HR review.
One device, real GPS
Each employee has one approved device, which HR can revoke from the panel. Attendance can’t be quietly lent to a colleague, because the colleague’s phone isn’t the approved one.
Genuine GPS is required, and mock-location tools are detected and flagged rather than silently trusted. A check-in that looks wrong is marked for a person to review — it is never used to reject a worker automatically.
An audit the database enforces
The strongest guarantee isn’t a policy, it’s a constraint. PostgreSQL triggers reject UPDATE and DELETE on attendance events outright. A mistaken review is corrected by writing a new record — cancel, then restore — never by editing the old one.
That makes the trail tamper-evident by design, not by everyone agreeing to be careful. Even an administrator can’t quietly rewrite yesterday.
What we removed
CoalTrack once had face verification. We removed it on purpose after testing it on real devices: a photo of a wall passed the check. A feature that can be fooled is worse than no feature, because it invites false confidence.
So there is no camera and no photo in the attendance flow today. We would rather ship fewer checks that actually hold than a long list that looks impressive and quietly leaks.


