A classic presentation: A contractor bids jobs at 28–32% gross margin. Jobs feel like they're running on schedule. Closeout reports show 20–24% gross margin — consistently, across every job type. The gap is 6–8 points per job. At $3M revenue, that's $180,000–$240,000 of annual margin lost to profit fade. The company is profitable on paper. It should be twice as profitable.
The estimate assumed a production rate the crew isn't hitting. Maybe the estimate was built on ideal conditions. Maybe the job has more obstacles than expected. Either way, labor hours are running 10–20% over estimate across multiple phases — and nobody's reading the report that shows it.
Material prices rose between bid date and delivery date. Without a contract escalation clause, the difference comes directly out of gross margin. On a $120K material package, a 7% escalation is $8,400 directly out of the job's margin.
Change orders are completed in the field and verbally approved. The crew moves on. The formal billing waits until the PM has time. The cost is in the account. The revenue isn't. The job cost report shows an apparent overrun that is really underbilling. Until the T&M invoice goes out, the WIP shows a false loss.
The job is billed ahead of earned revenue early on. The WIP shows an overbilled position. The contractor feels like the job is going well. At closeout, the overbilling is reconciled and the apparent margin falls. This is not profit fade — it's a WIP accounting correction — but it looks like fade if you're not reading the WIP schedule correctly.
The estimator consistently underestimates one cost category — cleanup labor, temporary power, equipment teardown — and it's been in every estimate for two years. Every job takes the hit. It looks random at the job level. It's systematic at the company level and only visible when you look across multiple closed-job reviews.
Run actual-vs-estimated cost variance at the phase level, not just job total, every month for every active job. A labor phase running 15% over at 30% complete is a problem that compounds. Seeing it at 30% gives you options. Seeing it at closeout gives you none. ControlQore produces these reports natively when the cost code structure is aligned to the estimate format.
The WIP schedule catches underbilling that masquerades as cost overrun, and overbilling that inflates apparent job margin. Run it every month at the billing cutoff date. Any job showing earned revenue materially below billed revenue at the same percent complete needs a T&M billing review immediately.
For every job that closes, run a final actual-vs-estimated comparison by phase and document the variance explanation. Over six to twelve months, patterns emerge: labor productivity on certain job types, material categories that consistently run over, estimating assumptions that are wrong. Those patterns feed directly back into the estimating process. This is how the fade stops recurring.
The consistent pattern where estimated bid margin is higher than actual closeout margin — repeatedly, across jobs. A contractor bidding at 28% gross margin and closing at 20% is losing 8 points per job to profit fade. It's not random variance. It's a structural gap between the estimate and field reality.
Five causes: labor productivity worse than estimated, material cost escalation after bid, change order work completed but not billed, early overbilling that corrects at closeout, and estimating assumptions that repeat across jobs. All five show up in monthly job cost and WIP reports before closeout — but only if someone's reading them.
Three steps running monthly: job cost reports by phase comparing actual vs. estimated costs, a WIP schedule that catches underbilling and overbilling, and a post-job review on every closed job to identify repeating patterns. SPM builds and runs all three for every client. Schedule a call to see what the reports look like.
SPM builds the reports that catch it while there's still time to act.
Schedule a Free Call →