The true cost of a construction labour hour (and why your bids depend on it)
The client called back Thursday morning. Good project, three weeks of residential work, crew of four. They wanted the labour line trimmed — could you take 10% off?
You pulled up your estimate. Materials, you knew cold — not much room there. Labour was where you'd have to look. You'd built the estimate on your standard hourly rates: multiply by hours, add a margin, done.
But you sat there for a moment. Were those rates your cost? Or just the wages on the payroll?
Your hourly rate is the starting point, not the full picture
When you pay a framer $31 an hour, you're not spending $31 an hour. Several costs layer on top of every hour worked, and they're real even when they're not obvious at estimate time.
Vacation pay. Under Quebec's construction sector framework, vacation entitlements accrue as a percentage of every hour worked. Your office manager knows this shows up in the payroll. Your bid probably didn't include it.
Statutory employer contributions. For every dollar of wages, you're covering the employer's share of QPP, EI, and CNESST. These rates change year to year — sometimes mid-season. If your office is still running off a rate sheet printed two springs ago, you may be off without knowing it.
Site premiums. Travel allowances, remote-site premiums, elevation premiums. If your crew is driving 90 minutes each way or working regularly at height, those amounts are real labour costs on every affected hour. They're not always built into the estimate.
Training fund contributions, where they apply to your sector.
Depending on your crew mix and the conditions on your typical sites, the loaded cost per hour can run 30% to 40% above the base wage — sometimes higher. That gap doesn't surface until payroll runs. By then the bid is signed.
Build a loaded rate once a year
This is a two-hour exercise worth doing every spring when Quebec construction rates update.
Take a representative worker from each occupation you use regularly — framer, labourer, foreman. Write down the hourly wage. Add vacation pay as a percentage, not a flat number. Add the employer share of QPP, EI, and CNESST. Factor in an average travel allowance if most of your sites carry one.
That's your loaded hourly rate for that occupation. Not a rough guess — a real calculation you revisit when rates change.
Keep those numbers somewhere accessible. Those are the rates that go into your bids.
Where the gap actually hurts
Materials get priced at what you pay — the supplier invoice is right there, no ambiguity. Labour is different. The wage is on the timesheet, but the true cost is split across several payroll line items that only add up at month-end.
So when estimates get built quickly — which is most of the time — it's the wage rate that goes in. The loaded cost is harder to find, so it doesn't make it into the bid.
Over a handful of jobs, that's manageable. Over a full season of bids, it compounds. Projects come in tighter than expected — not because anything went badly, but because the cost baseline was off from day one.
If you've had jobs run over on labour with no obvious explanation — no rework, no weather, no overtime blowout — look at what you bid versus your actual loaded cost. That's often where the difference lives.
Using real costs to watch a job while it runs
Knowing your loaded rate does something else: it lets you read a project while it's still live.
When your timesheets capture hours by occupation and by site, multiply by the right loaded rate. You get actual labour cost to date — not a projection, not an estimate. What was spent, by site, by week.
Compare that against your original labour budget. If you're tracking 55% of estimated hours but 70% of budgeted labour spend, something shifted — a more expensive occupation than forecast, premiums that didn't make it into the estimate, a change in crew mix. You find out while the job is still running. Not when the books close.
That's the difference between running a job on data and running it on a hunch. Sometimes the hunch is right. But when margins are thin, the week you catch a drift in progress is often the only week you can do something about it.
The 18-person contractor in Montérégie we write about tracks labour costs by site in real time, with hours clocked from phones on-site. The daily cost picture is there without anyone having to reconstruct it at month-end.
If you want to see how Heuro connects loaded rates to hours entered on site, we're happy to walk through it in 20 minutes.
Key takeaways
- The hourly wage is not your hourly cost: add vacation pay, QPP/EI/CNESST employer shares, and applicable site premiums
- Depending on crew mix and site conditions, the loaded cost per hour often runs 30% or more above the base wage
- Build a loaded rate for each occupation you use regularly, updated every spring when Quebec construction rates change
- Bidding on base wages instead of loaded costs is one of the quietest sources of margin compression — projects run over for no obvious reason
- Applying the loaded rate to site timesheets gives you real labour cost by project in real time, while there's still time to act on it