The most common cause. The crew is running 15–25% over estimated hours on a specific phase. Early in the job, the over-hour rate is small and the total variance looks manageable. By 50–60% complete, the overrun has compounded to the point where it's consuming margin that was bid on other phases. A phase-level labor report shows it before it's too late to adjust crew size or production approach.
The job was bid when material costs were lower. By the time purchase orders went out, prices had moved — fuel surcharges on delivery, commodity price increases on steel or copper, supply chain delays that required sourcing from secondary vendors at higher prices. Every dollar of material cost above bid goes directly out of gross margin with no offset.
This is the one that masquerades as a loss when it isn't. T&M and change order work is completed in the field and verbally approved. The cost hits the job. The formal billing waits. The job cost report shows a large apparent overrun that is actually $40K–$80K of unbilled change order work sitting as cost without corresponding revenue. Pull the change order log and compare to what's been formally invoiced.
Early in the job, billing was ahead of percent complete — standard practice to front-load cash flow. Now the project is catching up to that billing, and the apparent margin is correcting downward. This isn't a cost problem — it's a WIP accounting correction. The job may still be on margin. The WIP schedule tells the difference.
Pull actual vs. estimated costs for every phase or cost code on the job. Not a job total — by phase. Sort by variance percentage: largest negative variance at the top. The phase with the biggest overrun relative to its estimate is where the margin went. A labor phase running 25% over at 40% complete tells you exactly what to address. A job total that's 8% over tells you nothing actionable.
Calculate percent complete (cost-to-date divided by estimated total cost), earned revenue (contract value times percent complete), and billed to date. If billed-to-date is significantly higher than earned revenue, the job is in an overbilled position — early billing is correcting. If billed-to-date is significantly lower than earned revenue, there's underbilling that needs to go out immediately. The WIP tells you whether the apparent loss is a cost problem or a billing problem. Different fixes.
The most common finding: A job that "looks unprofitable" often has $30,000–$80,000 of change order work completed and verbally approved but not formally billed. The cost is real. The revenue just hasn't been asked for yet. Pulling the change order log against formal billing almost always surfaces it.
Four causes: labor hours exceeded estimate, material cost escalation after bid, completed change order work not yet billed (costs in, revenue not), or early overbilling that corrected. The diagnosis requires a phase-level job cost report. Run it against the WIP schedule to tell the difference between a real cost problem and a billing timing issue.
Early cost visibility is limited — only completed phases have actual cost, which can make margin look better or worse than reality. As more phases incur cost, the true picture emerges. The question is whether the apparent loss is a real overrun on a specific phase or an underbilling that needs a change order invoice submitted.
Identify the specific phase driving the overrun first. Labor 30% over estimate needs a different fix than materials 15% over. Once the source is clear: labor overrun — review crew size, production rates, scope creep; materials overrun — review purchase orders against bid prices; change order underbilling — submit the T&M invoices. Schedule a call — SPM runs this analysis on active jobs for all clients.
SPM runs job cost and WIP reviews every month — so you know before closeout.
Schedule a Free Call →