OPEN BOOKCONTRACTOR Request a call

Why your labour hours always blow the estimate

If your hours come in over on most jobs, the problem is not your crew. It is that you are estimating from a good day and paying for an average one.

Materials have invoices. Subs have invoices. Labour has an assumption, and assumptions are where margin goes.

The short answer: hours run over because the estimate was built from a good day rather than a typical one, and because non-productive time is missing from the number. Track actual against estimated hours on every job, flag anything over ten percent, and feed real figures back into the next estimate. Most overruns are estimating errors, not crew problems.

That distinction matters enormously, because the two have opposite fixes. One is solved with a spreadsheet. The other gets solved by leaning on people who are already working hard, which damages the business and does not fix the number.

The five real causes

Nearly every labour overrun traces to one of these.

1. The estimate came from a best-case day. You remember the time the crew did that roof in a day and a half. You do not remember that it was June, the access was perfect, everyone showed up, and nothing went wrong. Memory keeps the highlight and discards the conditions. Estimate from that memory often enough and you are pricing every job as though it will be your best one.

2. Non-productive time is missing. The estimate covers the work. It does not cover driving between sites, loading, unloading, the supply run, setup and teardown, the conversation with the homeowner, or the twenty minutes finding somewhere to park. That time is paid, it lands on the job, and it is usually nowhere in the number.

3. Scope moved and hours moved with it. The customer asked for something small. Somebody said yes. It cost four hours and nobody wrote it down. This is properly a change-order problem and it is covered in its own piece, but it shows up first as a labour overrun.

4. Supervision thinned out. One foreman across two jobs runs differently from one foreman on one. Not because anyone is slacking — because decisions wait. A crew that is 15 minutes into a question is 15 minutes off the work.

5. Rework. Something was done twice. Rework almost never gets recorded as rework, because nobody wants to write it down. It gets absorbed into general hours and the cause disappears.

Notice that only one of those five is about how fast people work.

How to see it while it still matters

Costing a job after it closes tells you what happened. It does not save the job. For that you need a mid-job check, and it can be crude.

Compare percentage of hours burned against percentage of work complete. That is it.

If a job was estimated at 240 hours and you have burned 140, you are at 58% of budget. If the foreman says the job is roughly half done, you are 8 points ahead of where you should be — on pace to land around 280 hours, or 17% over.

You now have options you would not have had at the end: send help, adjust sequencing, get the change order signed, or at minimum know what is coming.

Do this once at roughly the halfway mark on any job over a week long. It takes five minutes and it is the single highest-value thing you can do with timesheet data.

The ten percent rule

Any single job more than ten percent over on hours is worth understanding.

Not a disciplinary matter — an investigation. One question: what was different about this job?

The answers are almost always specific and almost always repeatable:

  • Access was worse than assumed
  • Material arrived late and the crew waited
  • Two people were on a job that needed three
  • The customer was on site asking questions
  • It rained for a day and a half
  • The work was a type you have not done much of

Each of those is a thing you can price for next time. None of them are fixed by telling a crew to move faster.

Feed it back or nothing changes

This is the step that gets skipped, and skipping it is why the same overrun happens for years.

After a job closes, take the actual hours and put them into your estimating reference. Not the bid hours. The real ones.

Job type Bid hours/sq Actual avg Use this
Asphalt, simple 1.8 2.3 2.3
Asphalt, complex 2.4 3.1 3.1
Steep / restricted access 3.0 4.2 4.2

After eight or ten jobs of a given type you have a real production rate rather than a remembered one. That table is worth more than any estimating software, because it is built from your crews, your market, and your kind of work.

Expect the real numbers to be uncomfortable at first. A 25% gap between remembered and actual production rates is common. That gap has been in your pricing the whole time.

The number to put in the estimate

Two ways to handle non-productive time, and either works as long as you pick one.

Build it into the production rate. If real-world production including travel and setup is 2.3 hours per square, use 2.3. The overhead is baked in and you never think about it again.

Or estimate clean work and add a factor. Estimate the work at 1.8 hours, then add 25 to 30% for everything around it. Cleaner conceptually, easier to explain to an estimator, and easier to adjust when a job has unusual travel.

The one thing that does not work is estimating clean hours and adding nothing, which is the most common approach in the trades.

What this does to your pricing

Fixing hours usually means your estimates go up, and that is the point.

Say you have been estimating 240 hours on a job type that really takes 291. At a burdened rate of $50 that is $2,550 of labour missing, plus overhead applied to 51 hours that you never charged for. At $48 an hour of overhead that is another $2,448.

Just under $5,000 per job, invisible, repeating.

Across forty jobs a year that is $200,000 — considerably more than most trades businesses make in net profit. Which is the uncomfortable reality of labour estimating: for many contractors, the entire year's profit is sitting inside the gap between estimated and actual hours.

Start with your last five jobs

Pull the timesheets for the last five completed jobs. Total the hours against what you estimated. Work out the variance in percentage terms.

If four of five came in over, you have an estimating problem, and you can fix it this week by adjusting your production rates.

If one of five came in way over and the others were fine, you have a job-specific problem, and the question is what was different about that one.

Either way you will know something by Friday that you have been guessing about for years — and unlike most fixes in this business, this one costs nothing but an hour of looking.

The jobs where hours run worst

Overruns are not spread evenly. They concentrate in five predictable places, and knowing which ones apply to you is most of the fix.

The first job of a type. Anything your crew has not done before carries a learning cost that nobody estimated. The second one usually lands close to the estimate; the first one does not. If you are bidding a job type for the first time, add hours deliberately rather than discovering them.

Small jobs. Setup, travel, loading and cleanup barely scale with job size. A two-day job carries nearly the same fixed time as a five-day job, which is why small work routinely runs 30% over an estimate built from a big-job production rate. Estimate small jobs from small-job history.

Jobs with a new crew member. A three-person crew with one new person is not a three-person crew. Productivity drops for both the new person and whoever is teaching them. Two weeks of that is real, and it belongs in the estimate.

Occupied properties. Working around a customer who is home, furniture that has to be moved, and access that is negotiated rather than given all add time that never appears in a production rate taken from empty-property work.

Anything that follows another trade. If you are the fourth trade in, you inherit whatever the previous three left. Waiting, re-doing and working around are hours, and they get charged to your job.

The pattern in all five is the same: the estimate was built from a production rate measured in different conditions than the job will actually run in.

Once you are tracking estimated against actual hours, sort your overruns into these categories. Most contractors find three or four of the five explain nearly all of the damage — and each one has a fix that costs nothing more than a conversation at estimating time.

The 10 Numbers I Check Every Monday

One page. Ten minutes, every Monday. Every number has a line next to it that tells you when to act.

Get the sheet — free

Common questions

How do I track hours if my crew does not fill in timesheets?

Start with job totals rather than daily detail. At the end of each job, the foreman writes down total hours by person. That is enough to compare against the estimate and to build production rates. Daily coding is better, but a business with job totals is far ahead of one with nothing, and it is a much easier habit to establish.

Should I tell the crew I am tracking hours against estimates?

Yes, and frame it as estimating accuracy rather than performance monitoring. If people think hours are being used to judge them, the numbers get massaged and you lose the data. If they understand you are trying to price jobs properly so the business stays healthy, most crews will help you find the truth.

What is a reasonable variance between estimated and actual hours?

Within about ten percent is normal variance from weather, access and the ordinary friction of site work. Consistently over on most jobs points at the estimate rather than the crew. One job dramatically over, with the rest fine, points at something specific about that job worth understanding.

← All articles