Skip to main content

The Payroll Leak on Every Construction Site Nobody Is Measuring

· 6 min read

At 8:15am, the site admin opens the attendance WhatsApp group on his phone.

The supervisor sent the message twenty minutes ago. 40 workers. Seven teams. Badge numbers, names, designations. Who's on rest. Who moved to another project overnight.

The site admin opens the Excel sheet on his laptop. He starts typing.

XH176 — Rakesh — Rebar — Present.
XH119 — Hossain Rana — Rebar — Present.
GB447 — Rahim abdur — Rebar — Rest.
GB112 — Noyan — Formwork — Transferred.

He does this every morning. He has done this every morning for eleven months.

What the Message Looks Like

Here's a real specimen — the kind of message attendance groups generate every morning:

Site Attendance · Tower 2
Rakesh, Site PM, Store +12 more
Saturday, 03 May 2026
Rakesh
📋 Daily Manpower Enrollment
━━━━━━━━━━━━━━━━━━━━
📅 Date: 03/05/2026  🕗 Time: 08:00am
━━━━━━━━━━━━━━━━━━━━
🔩 Rebar Team
XH176 Rakesh (T.L)
XH119 Hossain Rana
GB423 Lutefor Rahman
XH376 Mahmud Rasel
🏗️ Formwork Team
XH371 AHAMED Raju (T.L)
HX127 Rakib
GB439 MIAH ALAMIN
GB267 Ridoy MD
😴 Rest
GB447 Rahim Abdur
🔄 Go To Other Project
GB112 Noyan (Welder)
🛑 Stop Work
AL26 Jahirul Islam (R/S)
━━━━━━━━━━━━━━━━━━━━
👷 Total Workers: 36 Pax
👔 Total Supervisors: 4 Pax
Total Manpower: 40 Pax
08:15 ✓✓

Everything a payroll system needs is in that message. Date, trade, individual names, badge numbers, status.

It was typed by the supervisor in three minutes.

It will be typed again by the site admin in twenty.

It will be typed a third time when accounts sits down with the vendor invoice at month end.


The Three Translation Problem

Translation 1 — Supervisor to WhatsApp.
This one is free. The supervisor is sending the message anyway. This is coordination, not overhead.

Translation 2 — WhatsApp to Excel.
This is a dedicated daily task. On most sites with 30+ workers, someone owns it — a timekeeper, a site admin, the store in-charge pulling double duty. On a good morning it takes 20 minutes. On a morning when the message came in two parts, or a worker's name is spelled differently than it was last week, or three people sent attendance for three separate teams and none of them used the same format — it takes longer.

Twenty-six working days a month. Twenty minutes each. That's roughly nine hours a month — per project — just transcribing names from one screen to another.

And the Excel sheet the site admin produces is not a clean copy of the WhatsApp message. It's a human-translated version of it. With whatever interpretation errors, spelling normalizations, and quiet guesses accumulated across each entry.

Translation 3 — Excel to payroll reconciliation.
This is what accounts receives at month end. Not the original attendance data. The translated version, carrying whatever errors were introduced in translation 2, across 26 days.

Accounts then reconciles this against each labor vendor's invoice. Two people, two hours per vendor. On a project with four subcontractors, that's a full day. Every month. Finding discrepancies between a number the vendor claims and a number derived from a human-translated Excel that was itself derived from WhatsApp.


What the Discrepancies Actually Look Like

The vendor invoice says 38 Rebar workers for the week of May 5th. Your Excel says 34. Four workers unaccounted for.

Was it a data entry error in translation 2? Did two workers show up on the day the site admin was absent and nobody covered? Did the supervisor count a transferred worker who was physically present but assigned elsewhere? Did Hossain Rana appear under two different name spellings across the week?

Nobody knows. The original attendance messages are still in the group — but tracing a specific day's count through a month of messages, then cross-referencing against a translated Excel that may have carried its own errors, means starting the reconciliation from scratch.

You settle somewhere in the middle. Mark it as resolved. Move on.

This happens on every vendor. Every month. On every project.


The Cost Nobody Calculates

GCs and PMCs track project overruns carefully. Material wastage. Equipment idle time. Delays on the critical path.

Nobody tracks the cost of this translation chain.

Site admin time for daily Excel transcription: 9 hours a month per project.
Accounts reconciliation time at month end: 1 full day per project, maybe more.
Vendor dispute resolution: variable, but never zero.

On a 10-project portfolio, the daily transcription alone adds up to 90 hours a month — more than two full-time work weeks — spent copying names from one screen to another. Names that were already written down. By the supervisor. At 8am. In the attendance group.

This cost is invisible because it's distributed. The site admin is already on payroll. Accounts is already on payroll. Nobody raises a purchase order for the translation step. It just happens, every day, as background noise.

Until it doesn't — when the site admin is on leave, or quits, or the Excel sheet gets corrupted, or accounts flags a discrepancy large enough to hold up payment.


Why Nobody Has Fixed It

The attendance message is not the problem. The supervisor is doing exactly what he should be doing.

The Excel sheet is not the problem either. Accounts needs structured data to reconcile against invoices.

The problem is the gap between them — a gap that has always required a human being to stand in the middle and translate, because WhatsApp messages and payroll systems speak different languages.

So construction sites hired people to do the translation. And those people do it every day, reliably, at a cost that never shows up as a line item anywhere.

The fix isn't a new app for the supervisor. The supervisor's three-minute message is the most efficient part of this entire chain. The fix is eliminating translation steps 2 and 3 entirely — by reading the WhatsApp message directly.


What It Looks Like Without the Translation Layer

The supervisor sends the same message he always sends. Nothing changes for him.

The moment it hits the group, individual worker records are extracted automatically. Rakesh, Rebar team, present. Rahim abdur, rest. Noyan, transferred. Every name, every badge number, every status — structured, dated, and linked to the correct project.

The site admin's Excel becomes redundant. Not because someone replaced him — because the data is already structured the moment it's written.

At month end, accounts opens a payroll report, not a spreadsheet. Every worker, every day, every trade. Normal hours computed from shift timings. The vendor invoice either matches or it doesn't. When it doesn't, the daily record shows exactly which day the count diverged and why.

The reconciliation meeting that used to take two hours takes twenty minutes. Most of that is the vendor explaining the discrepancy, not accounts searching for it.

Payroll Report
Generated 2026-06-01 09:00 UTC
ProjectMarina Bay Site 4
VendorAll vendors
CurrencySGD
Period01 May – 31 May 2026
WorkerBadgeTradeVendorDaysNorm HrsOT HrsRateOT RateTotal
RakeshXH176RebarABC Labour Co22176.014.08.5012.75SGD 1,852.50
Hossain RanaXH119RebarABC Labour Co20160.00.08.5012.75SGD 1,360.00
Minto KarmakarPrecastXYZ Precast22176.00.012.0018.00SGD 2,112.00
UNKNOWNGB99918144.08.0UNRESOLVED

One Question Before You Close This

Think about the attendance groups running on your sites right now.

How many of those messages are being retyped somewhere today?


Velora extracts individual worker attendance from WhatsApp groups automatically — names, badge IDs, trade, status — and feeds it directly into payroll computation. No new tools for supervisors. No daily transcription. No month-end translation exercise. If you want to see what this looks like on your live attendance data, book a call and we'll show you.