---
title: 'A finished bid, one more review, and a price that changed before it went out'
url: 'https://piper-ai.com/resources/final-bid-review-case-study-finished-bid'
description: 'A $2.5B general contractor had finished a bid and reviewed it internally. One more pass found 38 issues, a third of them serious enough to hold the price. None of them were arithmetic.'
contentTypes: [customer-story]
publishedAt: '2026-09-16T12:00:00.000Z'
updatedAt: '2026-09-16T13:51:04.566Z'
author: 'Ido Gedanken, CEO'
readingTime: 4
---

# A finished bid, one more review, and a price that changed before it went out

1. Winning on a number you cannot stand behind is worse than losing, and it does not announce itself until the job is running
2. None of the 38 findings were arithmetic errors: they were correct work that stopped one step short of the price
3. A single assumption, rounded once, propagates into every calculation downstream and stays defensible in every cell it touches
4. Final bid review is not skipped, it is crowded out by the checking that has to happen first

The bid was finished. It had been priced, assembled and reviewed internally, and it was close to going out the door.

The estimating team at a general contractor with around $2.5B in annual volume decided to put it through one more pass first. What came back changed the price before it was submitted.

The contractor, the project and the owner are not named, at their request.

**38** Findings raised on a bid the team had already signed off internally

**1 in 3** Classified critical, meaning they blocked commercial approval of the price

**Zero** Of the findings were arithmetic errors. Every one was correct work that stopped short of the price

## The challenge

- A large construction tender with a long schedule and a fixed, all-inclusive price, where the commitment made on submission day has to hold for years
- A document set that kept moving while the bid was being priced, with addenda changing dates and milestones mid-flight
- A review window measured in hours, against a topic list measured in dozens

## What changed

- The pricing basis was not approved until the gaps were closed, and the bid went out corrected rather than as written
- Errors pointing in both directions were caught, including costs that had been calculated but never reached the price
- The team submitted a number it could defend for the full life of the contract, and won the job

## Why they asked for another pass

It is tempting to say contractors skip this step. They do not. This team ran a full internal review before Piper saw anything.

The problem is coverage, not diligence. A bid like this has a long list of topics that each have to be checked: dates and milestones, indexation, manning, insurance, guarantees, the payment schedule. Working through the essentials consumes the available hours. By the time the mechanical verification is done, the review is out of time, and the questions that actually deserve a senior estimator get answered quickly or not at all.

> We do not send bids out unchecked. The honest problem is that there is never enough time to check everything, so the review ends up going on technicalities instead of on how we are actually going to build the job.
>
> CEO, $2.5B general contractor

## One assumption, everywhere

The clearest finding, and the one hardest to catch by reading carefully, was the project duration.

The tender documents stated it in months. The pricing file expressed it as a rounded number of years, and that rounded figure was then used as a constant throughout the calculations. Separately, an older assumption about the schedule had survived in the assumptions sheet from a superseded version of the documents.

Three different project durations coexisted inside one bid. Every number downstream inherited whichever one it happened to reference.

No individual cell was wrong in a way a reviewer would notice. Each one was defensible on its own. The error only becomes visible when something reads the binding document and the pricing file side by side and asks whether they agree.

> Every cell we looked at was defensible. That is exactly why nobody caught it. You are not looking for a number that is wrong, you are looking for two numbers that were both right when somebody wrote them.
>
> Chief estimator, $2.5B general contractor

## The types of problem that showed up

The specific figures are not the transferable part. The failure modes are.

| Type of problem | What it looks like | Why it costs money |
| --- | --- | --- |
| Rounded assumption | A duration stated one way in the documents and rounded in the file | Propagates silently into every downstream calculation |
| Calculated but not carried | A real cost computed correctly, but the schedule it feeds returns zero | Margin looks better than it is, because a genuine cost never reaches the price |
| Deduction treated as income | An amount withheld from the contract price shown as a separate revenue line | The same money is counted twice and the bid looks more profitable than it is |
| Schedule shorter than the commitment | Costs and payments laid out over fewer periods than the job actually runs | The tail of the commitment is unpriced |
| Superseded version still live | Dates and milestones from an earlier issue of the documents after an addendum moved them | Base indices, indexation and milestone compliance all shift |
| Priced below the specification | A requirement priced at a lower count than the specification and the hours behind it require | The shortfall becomes either a compliance failure or unbudgeted cost |
| Certainty applied to a saving | An efficiency assumed at full probability without the approvals it depends on | A contingent benefit is spent in the base case |
| Sequence error | A milestone scheduled to begin before the milestone it depends on is certified complete | Costs and cover start earlier than the contract allows |
| Contingency set to zero | No unexpected-cost allowance and no margin, while the price is fixed and inclusive | Every risk that stays with the contractor has nothing behind it |
| Two files never reconciled | A cost build-up and a pricing file with no signed bridge between them | Neither can be trusted as the source of truth, and the gaps hide between them |

Read the list again and notice what is not on it. Not one of these is an arithmetic mistake. They are correct work that stopped one step short of the price, or correct work built on a document that had since been replaced.

## What it was actually worth

The errors did not all point the same way. Some made the job look cheaper than it was. Some made it look more profitable. A few made it look more expensive. Left alone they would not have cancelled out, because they sat in different parts of the price and moved independently.

So the risk was never simply losing money on the bid. It was winning the job on a number nobody could defend, and finding out which direction it was wrong in somewhere in year three, when the price is fixed and the only remaining variable is who absorbs it.

> Piper reviewed a bid we considered finished and came back with findings serious enough to hold the price. We closed them before submission and won. I would not want to send out a bid that size again without that pass.
>
> CEO, $2.5B general contractor

## What this says about final bid review

The useful conclusion is not that the team missed things. A bid this size, priced against a document set this large, under a deadline, will always have more surface area than the available review hours.

The useful conclusion is about what those hours get spent on. Checking whether a date in a file matches a date in an addendum is necessary, and it is also work that does not need a senior estimator. When that layer is handled, the final review can be about the things only experience answers: whether the schedule is real, whether the manning holds, whether the company is comfortable with what it is committing to.

That is the version of final bid review worth having. Most teams never reach it, not because they do not know it matters, but because the checking gets there first and takes the whole afternoon.

For the underlying method, see [final bid review QA and QC for general contractors](https://piper-ai.com/resources/final-bid-review-qa-qc-general-contractors). For how addenda quietly invalidate finished work, see [a finished estimate can still be stale](https://piper-ai.com/resources/a-finished-estimate-can-still-be-stale).
