Last reviewed . If your team levels quotes a way this guide misses, tell us and we will add it.
The short version
Write the scope from the spec and the addenda before you read a quote. Check which addenda each sub priced. Read the exclusions before the price. Mark every line included, excluded or silent, put a number on every hole, and ask for the rest in writing with the section number. Before the bid goes out, make sure each answer reached the number.
An example of the gap this finds: a drywall quote that says “our price does not include acoustic sound channels or seals”, on a job where Addendum 03 added resilient channels to every Level 2 partition. Roughly 420 LF that nobody carried, found by reading one line of the quote against one section of the spec.
Checking sub quotes, in order
Build the scope sheet from the spec, not from the quotes
Before you open a single quote, write down what the trade has to include, section by section, from the specification and the drawings. For drywall that is the partition types, the framing gauges, the board types and layers, the acoustic and fire-rated assemblies, the finish levels and the accessories the spec calls for.
This is the yardstick. If you build it from the first quote that comes in, you inherit that sub’s reading of the job, including whatever they left out, and every other quote gets judged against their gaps.
Log every addendum against the sections it changes
An addendum is a change to the scope sheet, not a separate document to read once. For each one, note the sections and sheets it touches and add or change the lines on your scope sheet to match.
Then check every quote for which addenda it acknowledges. A sub who priced through Addendum 02 when Addendum 03 added scope to their section has not priced your job. That is the most common gap on bid day, and it hides in one line at the bottom of the quote.
Read the exclusions, the clarifications and the fine print
The price is the last thing to read. Read the exclusions line by line, then the clarifications, then anything that says "by others", "per our standard", "budget" or "allowance". Each one is a piece of scope the sub is handing back to you.
Copy each exclusion onto your scope sheet next to the line it affects. An exclusion that matches nothing on your sheet is fine. An exclusion that lands on a line the spec requires is a gap, and it now has a section number next to it.
| The quote says | What it usually means | What to do |
|---|---|---|
| Excludes ... (any item the spec requires) | A gap | Plug it or ask for a price, with the section number |
| Addenda 1 and 2 acknowledged | A gap if a later addendum exists | Check what the missing addendum changed in their section |
| Per plans and specs | Usually fine, never proof | Still level it line by line against your scope sheet |
| Per our standard / per manufacturer | Possibly a lesser spec | Ask which product and which assembly they priced |
| By others | Scope handed back to you | Find who else carries it, or plug it |
| Budget / allowance | Not a firm price | Carry a contingency or ask for a firm number |
| Nothing at all about an item | Silent, so unknown | Treat it as excluded until the sub says otherwise in writing |
Level on scope first, price second
Lay the quotes side by side against the scope sheet: one row per scope item, one column per sub, and in each cell one of three answers: included, excluded, or silent. Silent is the dangerous one. It means you do not know, and it usually turns into excluded after the contract is signed.
Only when every cell has an answer do the prices mean anything. The low number with three exclusions is not the low number.
Put a number on every hole
For each excluded or silent item, carry a plug: your own takeoff quantity times a unit price you can defend, or the price another sub included for the same scope. Add it to that sub’s column so the totals compare the same work.
Write down where each plug came from. On bid day somebody will ask why the second-lowest sub is carried, and the answer is a line on this sheet, not a memory.
Ask in writing, with the section and a deadline
For each gap you would rather close than plug, email the sub: the spec section, the addendum, the exact line from their quote, what you need them to price, and when you need the answer. A question with a section number gets a priced answer. A question without one gets "we will look into it".
Keep the answer with the quote. A revised number that only lives in a phone call is not in the bid.
Close every open question before the number goes out
Before the bid is submitted, walk the leveling sheet one more time. Every gap ends in one of three places: the sub priced it, you carried a plug, or you wrote it into the proposal as a qualification. Nothing stays open.
Then check that each decision actually reached the bid: the quantity, the sub’s line, the price and the proposal language. A gap that was caught and answered but never carried into the number was not caught.
Leveling against the first quote instead of the spec
The first quote is one sub’s reading of the job. Measure every quote against the scope sheet you built from the documents, or the first sub’s gaps become everyone’s.
Missing an addendum acknowledgement
A quote that stops at an earlier addendum is a price for a different job. It is one line, usually at the bottom, and it is easy to read past on bid day.
Comparing totals before scope
The lowest total with exclusions is often not the lowest price for the work. Level the scope, plug the holes, then compare.
Treating silence as included
If the quote does not mention an item, you do not know whether it is in. Silent items have a way of turning into change orders.
Asking by phone
A verbal "yes, that is included" is not in the quote and will not be in the subcontract. Get it in writing and keep it with the quote.
Catching the gap and not carrying it
The answer came back and the plug was right, but the number in the bid was never updated. Check that every decision reached the quantity, the price and the proposal.
Questions people ask
What is a scope gap in a sub quote?
Work the contract documents require that no quote in your bid covers. It usually comes from an exclusion that lands on a required item, a quote priced before a later addendum, or a quote that is silent about something the spec calls for. The gap does not show up in the total, which is why it is found by reading the quote against the spec rather than by comparing prices.
How do I level sub quotes fairly?
Build a scope sheet from the specification and drawings first, then mark every quote included, excluded or silent on each line. Put a number on each excluded or silent item, either your own quantity at a defensible unit price or another sub’s price for the same scope, and only then compare totals. Everyone is now priced for the same work.
What should I do when a sub has not acknowledged the latest addendum?
Check what the missing addendum changed in that sub’s section. If it changed nothing they price, note it and move on. If it added or changed their scope, ask them in writing to confirm or revise their price against that addendum, and carry a plug for the change until they answer.
Should I carry a plug or ask the sub to revise?
Both, usually. Ask the sub to price the gap, because their number is better than yours for their own scope, and carry your own plug in the meantime so the bid is complete if the answer does not arrive before the deadline. Write down where the plug came from so it can be checked.
How late before the bid should leveling start?
As soon as the first quotes arrive, against a scope sheet you built before they did. Leveling that starts the night before bid day leaves no time to ask questions in writing, and the gaps become plugs or qualifications rather than prices.
Caliente Vision
Caliente Vision does this check on every project
Caliente Vision reads the drawings, the spec, the addenda and the sub quotes your team already has, and flags the exclusion that lands on required scope, with both sources side by side. It drafts the question to the sub, waits for your approval before anything is sent, and tracks the answer until it reaches the bid. Caliente Vision finds, connects and checks. Estimators decide.
Why we built it: Introducing Caliente Vision.