The estimate-to-actual gap: why GC bids miss final cost and how to close the loop
Most projects overrun the original estimate. How to measure cost variance, where overruns come from by trade and phase, and how GCs tighten the feedback loop from bid to closeout.
Author
Ido Gedanken, CEOPublished

- Type
- Research
- Read
- 4 min
- Published
On this page
The estimate-to-actual gap (cost variance) is the difference between the budgeted cost (the estimator's bid or internal takeoff) and final cost after construction. In practice, most projects come in over the original estimate. Industry analyses commonly report that roughly 85-90% of projects overrun, with average growth often in the high teens to ~20-30%. A large share of that gap traces to early estimating and scope assumptions, then to change orders and rework that land during construction.
General contractors narrow the gap with two habits: disciplined estimating before award, and a hard feedback loop that reconciles actuals back into the next estimate. That is the same institutional-memory problem described in why every construction estimate still starts too close to zero.
How to measure the gap
| Metric | Formula / definition |
|---|---|
| Cost variance ($) | Final actual cost − original estimate |
| Cost variance (%) | (Final actual − original estimate) / original estimate × 100 |
| Change-order % of contract | Cumulative approved COs / base contract × 100 |
| Contingency utilization | Contingency used / contingency carried |
Compute overall and by CSI trade (or your house trade map) and by phase (conceptual, schematic, bid, buyout, closeout). One study of hundreds of U.S. street projects found final costs averaging only a few percent above the low bid, while larger, more complex building work often sees much higher variances. Delivery method also matters (hard bid vs CMAR vs design-build).
Normalize older projects to constant dollars (BLS PPIs or similar) before you compare years. Align definitions: engineer's estimate vs GC bid vs GMP vs final approved cost are not interchangeable.
Illustrative patterns
Mock project-level rows (shape only, build your own library from closed jobs):
| Project type | Delivery | Est. cost | Final cost | Variance |
|---|---|---|---|---|
| School | Hard bid | $12.0M | $14.0M | +16.7% |
| Hospital | CMAR | $45.0M | $47.5M | +5.6% |
| Office | Design-build | $25.0M | $28.5M | +14.0% |
Mock trade rollup, finishes and sitework often run hotter than structure:
| Trade | Avg. estimate | Avg. actual | Avg. variance |
|---|---|---|---|
| Concrete | $5.0M | $5.4M | +8% |
| Mechanical / plumbing | $8.0M | $9.2M | +15% |
| Electrical | $7.5M | $7.9M | +5% |
| Finishes | $6.0M | $7.2M | +20% |
| Sitework | $3.0M | $3.6M | +20% |
If finishes routinely run 15-20% over, that is a scope and allowance problem to fix in scope generation and coverage, not a mystery for the next school job.
Distribution shape (directional). Most projects cluster in roughly +0-10% variance, with a long tail beyond +20%. That right skew is why averages look worse than "typical" jobs and why a few disasters warp company memory.
Common causes and when they hit
Industry research consistently points to:
| Driver | Approximate share / signal | When it shows up |
|---|---|---|
| Design omissions and rework | Often cited as ~half+ of overrun dollars; many projects need rework from drawing/spec inconsistency | Construction, missing scope surfaces as extra work |
| Estimating errors | Often cited ~30-35% of overruns, incomplete takeoffs, wrong quantities, missing allowances | Bid and buyout; crystallizes later |
| Change orders | Owner changes, design clarifications, unforeseen site | Mid-construction through closeout |
| Late actuals visibility | Job cost lags the field | Variance accumulates before anyone reacts |
| Market factors | Labor/material volatility; thin bidder lists | Bid day through buyout ([bid spreads](/resources/construction-bid-spread-report)) |
| Coordination failures | Duplicate work, unbilled scope, interface gaps | Buyout and construction ([scope gaps](/resources/spot-scope-gaps-before-you-carry)) |
Most overrun dollars crystallize during construction and closeout, not on bid morning. The original bid can be directionally right while pending COs and omissions still add up. Studies that find final cost highly correlated with the low bid are consistent with that: the base is real; the gap is mostly measurable adds.
Mitigation: tighten estimate → actual
- Thorough scope definition: complete trade scopes, allowances, alternates, exclusions; use coverage matrices (bid coverage)
- Consistent estimating standards: master assumptions, carry rules by delivery method and stage (carry methodology)
- Contingency with eyes open: higher early; thin coverage or incomplete design gets an explicit risk factor, not silence
- Estimate QA before bid: peer review; quantities and rates vs history; scope-completeness checks (final bid review)
- Mandatory closeout reconciliation: final costs, CO log by cause, and actual unit costs written back to the estimate library
- Change-order discipline: every extra cost documented and approved; unauthorized scope is how overruns hide
- Connect systems: when budget, buyout, and actuals live in disconnected spreadsheets, variance arrives as a surprise at closeout
The contractors who improve are the ones who compare the bid to early job-cost and buyout results while the project is still alive, not only in a postmortem nobody reads.
KPIs worth tracking
| KPI | Why it matters |
|---|---|
| Project cost variance % | Overall and by trade, the core gap metric |
| Change-order % of contract | Split by cause (owner, design, unforeseen, GC) |
| Estimate accuracy by phase | Conceptual vs schematic vs bid vs final |
| Contingency utilization | Were you carrying theater or risk? |
| Planned vs actual margin | Did the estimate protect the business? |
| Time to close books | Slow closes delay learning |
| Top overrun trades | Where to invest checklist and coverage effort next |
Useful dashboard views: share of projects within ±5% / ±10% / ±20% of estimate; average variance by trade; CO mix by cause; one sample project's estimate trail from schematic → bid → final.
Estimate → actual process
- Estimator's bid / internal estimate: documented assumptions and carry
- Award: base contract locked
- Buyout: trade prices vs estimate; first hard signal of gaps
- Construction: job cost and COs accumulate
- Closeout: final actuals
- Analysis: variance by trade and cause written into the next pursuit's standards
Skip step 6 and every new bid starts near zero again.
Building your own dataset
You do not need a national study to run this loop. Start with closed projects you control:
| Field | Why collect it |
|---|---|
| Project ID, delivery method, region | Segmentation |
| Original GC estimate (and engineer's estimate if known) | Baseline |
| Final approved cost (incl. COs) | Actual |
| Trade breakdown (est. vs actual) | Where the gap lives |
| CO total and % by cause | Why the gap grew |
| Bid date and closeout date | Cycle time and market context |
Supplement with public capital-project reports where agencies publish budget vs actual, and with bid tabs for award-price context. Adjust older dollars with PPIs. Publish or share only aggregates if confidentiality matters, the learning is in the pattern, not the named job.
How to read the mock tables. They show the shape of a useful analysis (project-level variance, then trade rollups), not Piper's audited national results. Replace them with your last 20-50 closed jobs and the hot trades will usually declare themselves.
FAQ
Should variance use the low bid, the engineer's estimate, or our internal estimate?
Pick one baseline and stay consistent. For GC learning, the internal estimate (or GMP) you actually managed to is usually the right denominator. Engineer's estimate vs low bid is a different question (owner competition), closer to [bid spread](/resources/construction-bid-spread-report) analysis.
Why do finishes and sitework often overrun more than structure?
Higher owner-driven choice, allowances, late decisions, and boundary ambiguity. Those trades reward early scope matrices and explicit allowances more than a bigger blind contingency.
Is a small average overrun "good enough"?
A company average of +5% can hide a long tail of +25% disasters. Track the distribution and the top overrun trades, not only the mean.
When should we run the reconciliation?
At buyout (early signal) and again at closeout (full actuals). Waiting until the next similar pursuit is how the gap becomes folklore.
How does delivery method change the gap?
Hard-bid gaps often show up as COs against a frozen set. CMAR/DB gaps show up as GMP growth, allowance burn, and design drift. Measure against the price commitment that method actually used.
Related reading
Why every construction estimate still starts too close to zero
Most estimating groups rebuild scope, quantities, and assumptions from scratch on every bid, then let the work evaporate when the job closes. What that actually costs, where the knowledge leaks, and what a system that keeps it looks like.

Where do preconstruction teams spend their time?
Bid leveling and scope assembly dominate precon hours (often 40-50 hours of leveling and 30-40 hours of MEP scope work per project), leaving little capacity for judgment. A synthesized view of where the time goes.

Construction bid spread report: what public bid tabs show estimators
Public bid tabulations show low-to-high spreads often in the teens to tens of percent. How bidder count, project size, and delivery method shape the gap, and how GCs should use spread as a health check on coverage and carry.

How to set a carry number you can defend
The method for getting from a submitted subcontractor bid to the number that actually goes in the estimate, including evaluated cost, expected-value risk pricing, and the duplicate-contingency trap.

Hard bid vs CMAR vs design-build: how estimating workflows differ
How GC estimators adjust for hard-bid (design-bid-build), CMAR, and design-build. Scope timing, risk allocation, and bidding process compared side by side.

Construction bid coverage: how GCs know every scope is covered
Ensure every trade has competitive bids before you lock the estimate. Track coverage with a matrix, follow up on invitations, and fill gaps so thin packages do not become expensive buyouts.

How to spot scope gaps before you carry the number
A practical review sequence for finding missing scope, duplicated cost, and unresolved trade boundaries while there is still time to price them properly.

Final bid review: a QA/QC playbook for general contractors
The pre-submission gate between a working estimate and a price you are prepared to submit, explain, contract around, and build. Workflow, checklists, review lanes, delivery-method playbooks, and the KPIs worth tracking.

Piper removes manual review from the critical path and brings project data, company knowledge, and expert checks into every preconstruction decision and workflow
See Piper on your project
Bring a current or completed project and see how Piper saves review time, surfaces scope gaps, and applies your company's knowledge.