August 31, 2026
Estimated vs. Actual: How to Reconcile Every Roofing Job
Author
9 minute read
Share
Reconciling a roofing job means comparing what you estimated against what the job actually used, line by line, so you know whether you made the money you planned to. Estimated versus actual is the single most useful habit a roofing company can build, because a bid is a prediction and reconciliation is how you find out if the prediction was any good. Skip it and every job is a guess you never grade.
This guide covers what reconciliation is, the variance math worked on a single roof, when to do it, where roofing jobs actually go over, how to tell a bad estimate from a bad job, and how to feed what you learn back into the next bid. It is a loop, and once it is running it makes every estimate after it a little sharper.
What reconciliation actually means
Reconciliation is the close-out step where you set your estimate next to your actuals and measure the gap. It answers one question: did this job perform the way you bid it, and if not, where did it drift? That is the whole discipline, and it is separate from estimating and from invoicing even though it touches both.
Think of the estimate as the plan and the actuals as the record. Reconciliation is the comparison in the middle. It is not about blame. Cost and time overruns are an industry-wide pattern in construction, not a sign you are bad at your job, a point documented across the construction industry. Reconciliation is about information, because the gap between plan and record is the most honest feedback a roofing business ever gets, and it is sitting in every completed job whether you look at it or not.
The variance calculation, worked on one roof
The math is simple: variance is actual minus estimated, and the percentage is that gap divided by the estimate. Do it separately for materials and for labor, because they drift for completely different reasons and lumping them together hides the story.
Here is an illustrative reconciliation on a single roof (fictional numbers, units only, to show the method).
Estimated: 28 squares of shingles at three bundles per square, so 84 bundles, plus a 10% waste allowance. Labor estimated at 40 crew hours across a two day install.
Actual: 92 bundles used, and 54 crew hours logged across what became a three day install after a weather delay.
Now the variances. Material: 92 actual against roughly 92 planned with the waste allowance, so materials came in almost exactly on plan, a variance near zero. Labor: 54 actual against 40 estimated is 14 hours over, a 35% labor variance. Two numbers, two very different messages. The material plan held. The labor plan did not, and it did not miss by a rounding error, it missed by more than a third.
That split is the entire point of separating them. If you had reconciled the job as one blended number, the near-perfect material result would have partly masked a serious labor miss, and you would have learned nothing you could act on.
What this means for your business: Always reconcile materials and labor as separate lines, never as one total. A job can land on budget overall while hiding a large labor overrun offset by a lucky material buy, and the labor overrun is the one that will repeat on the next roof if you never see it.
What to reconcile, and when
Reconcile at close-out on every job, and do a quick mid-job check on anything that runs longer than a few days. The reason to check during the job, not only after, is that a drift you catch while the job is open can still be managed, while a drift you find at close-out is only a lesson.
This is a cadence, not a live feed. You are not watching a dashboard tick by the hour, you are setting a standing time, once a week and again at close-out, to compare plan against actuals and ask what moved. If what you actually want is minute-to-minute cost tracking while the crew works, that is a different tool and a different discipline, and our guide to job costing for roofers covers tracking costs in real time. Reconciliation is the slower, sharper habit that sits on top of it.
Where roofing jobs actually go over
Roofing jobs almost always go over on labor before they go over on materials, and the labor overage usually traces to roof complexity the estimate under-read. Steep pitches, cut-up hips and valleys, and multiple small facets all slow a crew down in ways a flat square count never captures. That is the first place to look.
The other usual suspects are predictable once you know them. Weather days that restart a job and cost you setup time twice. Crew composition, where a green crew on a complex roof burns hours a seasoned one would not. Late material invoices that land after you thought the job was closed. And subcontractor bills that show up after month end and quietly turn a profitable job into a thin one. None of these are exotic. They are the same handful of leaks, job after job, which is exactly why reconciling reveals them so fast.
Telling a bad estimate from a bad job
The most valuable thing reconciliation tells you is whether a miss was an estimating problem or an execution problem, because the fix is completely different. A bad estimate under-read the roof before anyone picked up a nail. A bad job was bid correctly and then run poorly. Same overage, opposite response.
Use the pattern, not the single job. If the same kind of roof, say steep and cut-up, runs over on labor again and again, that is not your crews having bad days, that is your estimate carrying the wrong assumption for that roof type. If a roof you bid accurately a dozen times suddenly runs over, look at the job, the crew, and the conditions, not the estimate. Reconciliation across many jobs is what lets you see which one you are dealing with, and it keeps you from "fixing" a good estimate because of one rough install.
What this means for your business: Before you change a price or coach a crew, ask whether the pattern points at the estimate or the execution. Chronic overages on one roof type are an estimating fix. A one-off overage on a normally reliable job type is an execution conversation. Reconciling many jobs, not one, is what tells them apart.
Feeding it back into the next estimate
The loop only pays off if the last job changes the next bid, and the way to do that is with buffers set by roof type, not one blanket number across everything. A flat 10% cushion over-pads simple roofs and under-pads complex ones, so it quietly costs you jobs on the easy work and money on the hard work.
Instead, let your reconciled history set the numbers. If steep, cut-up roofs run 30% over on labor on average, then your estimate for that roof type should carry a labor factor that reflects it, while your simple gable jobs carry a smaller one. This is how a roofing company's estimating gets better over a season instead of staying frozen at whatever the first guess was. Every reconciled job is one more data point telling you where your bids are honest and where they are wishful, and the sharper estimate you get from it starts with a clean method, which our guide on how to estimate a roofing job lays out.
The close-out checklist
Before you call a job closed, run the same short pass every time so nothing gets counted as profit before it is really in. Confirm every material invoice has landed, including the late supplier deliveries. Confirm all crew hours are logged, not just the ones someone remembered. Confirm any subcontractor bills are in or accounted for. Then compare materials and labor against the estimate, separately, note the variance and the likely reason, and record it against the roof type so it feeds the next bid.
That last step is what turns a close-out into a system. A job is not truly closed when the crew drives away, it is closed when the numbers are in and reconciled and the lesson is written down. That is also the point where the finished job becomes a clean invoice, and running the work in RoofPilot means the same record you reconcile is the one that turns every closed job into a clean invoice without retyping a thing. Where the actuals come from matters too, and connecting your books keeps them honest, which our guide to job costing for roofers and your accounting setup support.
The Bottom Line
Estimated versus actual reconciliation is how a roofing company grades its own bids and gets sharper with every job. Compare materials and labor separately, reconcile during long jobs and at every close-out, and learn where roofing work actually goes over, which is almost always labor on complex roofs. Use the gap to tell a bad estimate from a bad job, then feed reconciled history back into buffers set by roof type instead of one blanket cushion. Do it once and it is a chore. Do it every job and it is the loop that keeps your margins from leaking one roof at a time.
Related reading:


















