A construction estimate can be mathematically correct and still produce the wrong bid.
The formulas only know about the information that reached the spreadsheet.
A useful final review therefore asks a different question:
If this price causes a problem later, what are the most likely reasons?
That mindset turns bid review from a last-minute glance at the total into a deliberate attempt to find missing or stale inputs.
Freeze a pre-review copy
Before changing the estimate, save a named review version.
Record enough information to know the starting point:
- estimate version;
- document issue;
- date;
- project cost;
- company-level treatment;
- calculated selling price.
Then create a review log with fields for the finding, affected work package, direct cost effect where known, status, and corrective action.
Do not silently overwrite the estimate while reviewing it.
The history shows why the final price changed and can reveal recurring weaknesses in the estimating process.
Review from the bottom of the estimate upward
A useful estimate pyramid looks like this:
Bid price depends on the commercial decision and defined offer.
Cost base depends on project cost plus the company’s deliberate cost-recovery treatment.
Project cost depends on materials, labor, subcontractors, and job-specific costs.
Detail depends on quantities, labor hours, supplier prices, and subcontract quotations.
Foundation depends on scope, current drawings, assumptions, and project information.
A problem near the bottom can affect everything above it.
That is why the review starts with scope instead of staring at the final total.
Pass 1 — Scope
Ask:
- What entire activity could be missing?
- Which interface has no clear owner?
- Is every major work package represented?
- Did an excluded or clarified item quietly become assumed?
- Does an included component have all the associated work around it?
A scope omission can leave no arithmetic error at all.
If review finds a missing activity, fix more than the current job. Add a prompt or line to the standard estimate shell so the same omission is less likely next time.
Pass 2 — Quantities
Reproduce the controlling quantities independently.
Check dimensions, units, gross and net areas, openings, counts, volume conversions, sloped-surface dimensions, and the current drawing issue.
A review that confirms a quantity is still useful. It narrows the problem and increases confidence that later corrections belong elsewhere.
Pass 3 — Labor
Test the operating story behind the hours.
Ask:
- Is the activity defined?
- Does the crew-and-time build-up make sense?
- Are important scope additions reflected in labor as well as material?
- Are the hours based on evidence or an unexplained shortcut?
- Which conditions make the assumption fragile?
Do not respond to uncertainty with a random percentage merely because the reviewer feels nervous.
Identify which activity is uncertain and why.
Pass 4 — Quotations
Reconfirm time-sensitive supplier and subcontract inputs.
Check quote date and validity, current drawing issue, scope alignment, exclusions, allowances, delivery or mobilization, trade interfaces, and changes made after clarification.
A quote can have been correct when it was entered and be stale by the time the bid is submitted.
That is not a spreadsheet formula error. It is a source-information problem.
Pass 5 — Commercial calculation
After correcting costs, rebuild the commercial calculation.
Do not adjust the final bid by intuition.
Recalculate project cost, company overhead or other deliberate treatment, markup or margin using the correct denominator, and the final rounded selling price.
Also run the double-counting check: where is each significant cost already recovered?
Pass 6 — Documents
Confirm the estimate and proposal refer to the current project information.
Check drawings, schedules, specifications where relevant, addenda, clarifications, quotation revisions, and proposal references.
A perfectly calculated quantity from an old revision is still the wrong input.
Pass 7 — Sanity
Complete the sentence:
This estimate could be badly wrong if…
List the conditions that would make the result fail.
Examples can include a hidden scope gap, a weak labor assumption, an expired supplier or subcontract quotation, a quantity based on the wrong revision, or an unverified access, delivery, or disposal condition.
Then decide what to do with each fragile assumption:
- Improve it if better information is available.
- Clarify it if another party controls the answer.
- Make it visible if it must remain an assumption.
- Check whether it changes proposal wording or bid validity.
- Record it so actual performance can test it later.
The sanity pass does not automatically add money. It identifies the weak assumptions and asks whether the evidence can be improved before submission.
Turn review findings into system changes
The most valuable result of a bid review may be a process change.
If a scope item is repeatedly found only at final review, the estimate shell needs a dedicated prompt. If expired quotations keep appearing, quote validity should be a standard review field. If labor variance cannot be understood because all hours are coded as general labor, the cost-coding system may need more useful work packages.
The estimate should get better because the process gets better, not because the estimator memorizes one more blanket percentage.
Seven-pass checklist
Before the price leaves the business:
- SCOPE: what activity or interface could be missing?
- QUANTITIES: can major dimensions and units be reproduced?
- LABOR: does the crew-and-time story make sense?
- QUOTES: are important prices current and scope-aligned?
- COMMERCIAL: has project cost and the markup/margin calculation been rebuilt after corrections?
- DOCUMENTS: are drawings, addenda, clarifications, and proposal references current?
- SANITY: what would have to be true for the estimate to be badly wrong?
Then turn the reviewed internal estimate into a customer-facing offer that clearly describes the priced scope.
A spreadsheet can calculate what it was given. The review is where you deliberately look for what never got entered.