“We came in about where we thought.” Check.
Margin does not usually collapse. It erodes — a few points a job, from phases that quietly ran over while others quietly ran under and made the total look fine. Put one finished job in below and see what actually happened to the margin you bid.
Including approved change orders.
What you bid it at.
What it actually cost
Final, including everything you forgot to code to the job.
An 8% cost overrun does not cost you 8%. It comes entirely out of gross profit, which is a much smaller number — so it takes 28% of the profit on this job.
Where the points actually go
| Cause | What it looks like on the job | Where to catch it |
|---|---|---|
| Scope creep | Small extras done to keep the client happy, never written up.The single biggest source, and the easiest to fix. | Change order log |
| Labor overrun | Hours run past the estimate on one phase and nobody notices until closeout. | Weekly labor vs budget |
| Sub buyout gap | The sub bid more than the number you carried, and you ate the difference. | Buyout log at award |
| Rework | Doing it twice. Rarely coded anywhere, so it hides inside labor. | A rework cost code |
| Uncoded cost | Dump fees, fuel, small tools, the trailer — charged to overhead instead of the job.Makes the job look better and overhead look worse. Both numbers end up wrong. | Job cost coding |
A total that lands close to the estimate is not evidence of a good estimate. Phases cancel out. Framing runs 15% over, sitework runs 12% under because you did not need the rock excavation, and the total looks like a 1% variance. You learn nothing, and you carry both errors into the next bid. Variance is only useful at the phase level.
The point of tracking this is not the post-mortem. It is that after eight or ten jobs you stop guessing — you know which phases you habitually under-bid, and by how much, and you can fix it in the estimate instead of discovering it at closeout.
Do this at scale
One job tells you nothing. Ten jobs tell you everything.
Variance on a single job is noise. The same variance on the same phase across ten jobs is a pricing problem you can actually fix.
Job Costing & WIP Tracker
Committed and actual against estimate, phase by phase, while the job is still running — not a post-mortem after the money is gone.
Historical Data Tracker
Every finished job logged with final cost, margin and cost per square foot, so next year's estimate starts from your own history.
Excel and Google Sheets · one-time purchase · single-business commercial license