May 24, 2026 · 3 min read
It wasn't fraud. It wasn't carelessness. It was a wrong job number copied from the guy next to him — and it nearly cost us a prevailing wage contract.
Nobody thought he was lying.
That's the part that gets me. When we found it, the first instinct was to call him in, sit him down, and have a very uncomfortable conversation. But the more we looked at it, the more it was obvious — this wasn't fraud. This wasn't even carelessness.
It was just a wrong job number. Copied from the guy next to him.
It was a Thursday in October. We had three crews running simultaneously on adjacent floors of the same commercial building — different GCs, different contracts, different cost codes. Job 4401, 4402, and 4403. Same elevator. Same parking lot. Same coffee truck out front.
The new hire — three weeks in, good kid, works hard — punched in at the end of his shift like everyone else. He looked over at the guy next to him filling out his timesheet and just... did the same thing. Same job number. Didn't know the difference. Nobody told him the three jobs on that building weren't all the same job.
Nine hours. Job 4402. He was on 4403 all day.
Job 4402 was a prevailing wage contract with the city. Job 4403 was a private commercial job. The pay rates were different. The certified payroll reporting was different. The documentation requirements were different.
So now I've got nine hours of labor billed to a public works contract for a worker who was never on that contract. His name is on a certified payroll he shouldn't be on. His rate is wrong. And I didn't catch it until the GC's compliance team flagged it two weeks later during an audit.
Two weeks. Payroll had already run. The certified payroll report had already been submitted.
The fix took a full day. Back-corrections, revised reports, a very awkward call with the GC's project manager explaining what happened. Nothing got us disqualified, but it was close — and it was entirely, completely avoidable.
The problem wasn't the new guy. The problem was the process.
When we built Scribta, one of the first things we solved was job selection. Workers don't enter a job number from memory — they search. By job number, project name, address, or even floor. If you're on the 4th floor of a building with three active contracts, you can find the right job in seconds without knowing the exact number off the top of your head.
And when the timesheet is submitted, it doesn't go straight to payroll. It goes to the foreman first. That's a second set of eyes — someone who was actually on site, who knows which guys were on which job that day. If the new hire picks the wrong one, there's a real chance the foreman catches it before it ever becomes a compliance problem.
Two layers. Search that makes it easy to get it right the first time, and approval that catches it if you don't.
The new guy is still with us, by the way. He's actually one of our best guys now.
He just needed a better system — not a conversation about why he should've known the difference between Job 4402 and Job 4403 on his third week.
Scribta lets workers find the right job instantly by name, number, address, or floor — and routes every timesheet through foreman approval before it touches payroll.