How to level subcontractor bids

A practical method for turning a stack of proposals into a fair comparison: scope gaps, exclusions, alternates, allowances, unit prices, qualifications, normalizing and the questions that close the gaps.

1. Set up the package before the bids arrive

Leveling is easier when you know what you are leveling against. Before bid day, write down the package's scope: the specification sections, the drawings, the addenda, and the work that sits at the edges with other trades. Note the alternates listed on the bid form, the unit prices you asked for, and any allowances the documents specify with their amounts.

That list becomes your scope rows. Everything that follows is checking each bid against it.

2. Check each bid is complete

  • Does it acknowledge every addendum?
  • Is the bid form filled in, including alternates and unit prices?
  • Is it still valid on the date you expect to award?
  • Does it say whether bond and sales tax are included?

A missing addendum acknowledgement or a blank alternate is an open question from the start.

3. Record the base bid as stated

Take the base bid exactly as written, and note the page. If the bid breaks the price into line items and gives a total, check that they add up. A mismatch is a question for the bidder, not something to fix yourself.

4. Mark the scope, item by item

For every scope row, give each bidder one of four positions:

  • Included: the bid says the item is in its price.
  • Excluded: the bid says it is not.
  • Qualified: included with a condition, limit or substitution.
  • Not stated: the bid says nothing about it.

The fourth is the one that causes trouble. Silence is neither an exclusion nor an inclusion. If two bidders state a position on an item and a third says nothing, ask the third.

5. Read the exclusions and qualifications word for word

Sort each exclusion into one of three kinds:

  • Fair: work that belongs to another package, or that the owner provides. No adjustment, but write down where it is carried.
  • A gap: work that belongs in this package and that other bidders include. It needs a plug value or an answer.
  • A conflict: a qualification that contradicts the specification, such as a different product, a shorter warranty or a limit on hours. Decide whether it is acceptable before comparing prices.

6. Line up the alternates

Align alternates by their number and description on the bid form, not by the order they appear in each proposal. Keep add and deduct straight: a deduct entered as an add moves a total twice its value. If a bidder didn't price an alternate, record it as not stated, never as zero.

7. Normalize the allowances

Where the documents specify an allowance, every bidder should carry the same amount. If one carries a different number, or leaves it out, adjust to the specified amount so the totals compare the same thing.

8. Compare unit prices with their units

Unit prices only compare when the units match: per square foot against per square, per linear foot against each. Note any quantity included in the base bid before the unit price applies. Unit prices often decide the cost of the unknowns, such as deck replacement or rock excavation, so they deserve as much attention as the base bid.

9. Normalize the totals

The adjusted total for each bidder is base bid + the alternates you are carrying + plug values for the gaps. Plug values are your estimates, so label them as yours. Where a figure is unknown, leave the total open rather than guessing.

10. Send the open questions

Group your questions by bidder: not-stated items, unclear figures, arithmetic that doesn't add up, missing addenda, bond and tax. Send them before the scope review, and update the tab with the answers. Keep the page reference for every number so the tab can be checked later.

Where Bidtab helps

Bidtab does the reading and the retyping in steps 3 to 8. Upload the bids for a package as PDFs, and it lays out base bids, alternates aligned by number, scope with all four positions, allowances, unit prices and each bidder's exclusions as written, with the page and the words behind every figure. A figure it can't find printed on its page, a not-stated item other bidders addressed, or arithmetic that doesn't add up becomes an open question grouped under the bidder.

Steps 5 and 9 stay with you: Bidtab never prices excluded scope or ranks bidders. The exported workbook has a plug values column and an adjusted-total formula ready for your numbers. See it on a sample package.

Trade by trade

Each trade has its own usual gaps. See what to watch in:

Common questions

What is the difference between "excluded" and "not stated"?

Excluded means the bid says the item is not in its price. Not stated means the bid says nothing about it. Treat a not-stated item as a question for the bidder, not as an exclusion and not as included.

Should I add a plug value for every exclusion?

Only for scope that belongs in this package and that another bidder carries. An exclusion of work that sits in another trade package, or that the owner is providing, needs no plug, but note why.

What if a bidder did not price an alternate?

Record it as not stated and ask. Do not assume it is zero, and do not assume it is included. If you carry the alternate, that bidder’s adjusted total is incomplete until they answer.

Should the bid tab be sorted by price?

Keeping bidders in a neutral order, such as the order received, makes it easier to read each bid on its merits. The adjusted totals tell you the price story once the scope is leveled.