Builtech · BPM Tracker
Construction project management, reinvented
The problem
Builtech runs construction sites where most of the workforce is daily-rated. Attendance was a paper muster at the gate, wages were computed from that muster at the end of the cycle, and overtime was agreed verbally on site.
Every one of those is a dispute waiting for payday. And none of it answered the question a supervisor actually has at 9am: who is on this site right now?
What we observed
Before we wrote any code.
The face-scan devices were already installed. The data just never left them — someone exported it when they remembered to.
We also found two workforces, not one, being forced through the same process. Workers are daily-rated, punch at the gate and are paid per cycle. Staff are monthly, work across projects and manage other people. Treating them identically is why the previous attempt produced numbers nobody trusted.
And some of the workforce is never near a device — they start at a site with no scanner. Anything device-only would have quietly excluded them.
What we built
A ZKTeco SenseFace integration that streams punches to the server as they happen, with a face photo per punch, plus a selfie-and-GPS punch from the phone app for anyone working away from a device.
On top of the attendance spine: a daily review grid per project, a worker calendar with drill-down to each punch, an overtime request-and-approve workflow that records the decision before the hours are worked, separate handling for daily-rated workers and monthly staff, and the surrounding site operations — work items, procurement, HR incidents, site diary, costing codes and asset tracking.
Before vs after
The same job, the old way and the new way.
Before
After
Results
Counted from the production database on 2 August 2026. Attendance capture has been running since 22 May 2026. Build progress is published continuously on the client-facing roadmap.
Screenshots
More like this
Related work
Build something similar
Let's build yours.
Tell us what you're planning. Free 30-minute call, a written scope and a fixed quote — we reply within one working day.