Guide
How to level contractor bids on a small TI job, step by step
You have three drywall bids on your desk for a 6,000 square foot office build-out. The numbers are $4,700 apart. Before you call the low bidder, you need to know whether those three prices cover the same work. Leveling is how you find out. Here's how to do it step by step on a small tenant-improvement job, in about an hour per trade.
Bid leveling means adjusting every bid so it covers the same scope, then comparing the adjusted totals. You aren't changing anyone's price. You're adding back the cost of whatever each bidder left out, so you can see which bid is really lowest for the whole job.
Step 1: Get every bid in the same shape (before they come in)
Leveling is ten times easier when every bidder priced the same list. If you haven't sent bids out yet, do this first:
- Send every bidder for a trade the same scope checklist. Each trade page has one, and the bid package builder puts the checklists, bid instructions and a bid form together for the trades you pick.
- Ask them to mark each line Included, Excluded or Add $. The scope letter template spells this out in plain language.
- Give everyone the same allowances to carry, and list the alternates and unit prices you want priced separately.
If the bids are already in, that's fine. You'll just do more of the sorting yourself in steps 3 and 4.
Step 2: Read every proposal all the way through
Most of what matters isn't on the first page. Read each proposal start to finish, including the boilerplate at the end, and write down:
- The documents and addenda the price is based on. A bid based on last month's drawings may be missing an addendum.
- Every exclusion, every “by others” and every qualification, wherever they appear. They're often split between a list at the end and sentences in the middle.
- Assumptions about working hours, access, phasing and schedule.
- How long the price is valid, and whether tax, bond and permits are in.
Watch for small phrases that carry big scope, like “per plans”, “as required” or “standard”. They mean whatever the bidder needs them to mean later. Treat them as not stated until the bidder confirms in writing.
Step 3: Separate the base bid from everything else
Pull out the base bid, the one lump sum for the work you asked for. Then list alternates, unit prices and allowances on their own lines. Two common traps:
- Alternates baked into the base. A bidder who “included Alternate 1” will look high next to one who didn't. Back it out so every base bid is on the same footing.
- Different allowances. If you asked for a $5,000 door hardware allowance and one bidder carried $3,000, their base is $2,000 low for reasons that have nothing to do with their price. Adjust them all to the amount you asked for.
Step 4: Mark every scope line for every bidder
Use the trade's checklist as your rows and the bidders as your columns. The free leveling sheet does this in your browser. Pick the trade and enter the bidders. Then mark each line with one of four answers:
- Included: the bid clearly covers it.
- Excluded: the bid clearly leaves it out, or says “by others”.
- Add $: the bid gives a separate price to add it.
- Not stated: the bid doesn't say. Silence is not inclusion.
Be strict. If you have to guess, mark it not stated. You'll ask about it in step 8.
Step 5: Check the edges between trades
On a TI job, most gaps sit where one trade's scope ends and another's begins. While you're marking lines, check the usual handoffs:
- Blocking and backing for millwork, grab bars and wall-hung equipment, between drywall, millwork and specialties.
- Patching and painting after electrical, plumbing and fire alarm work.
- Ceiling removal and replacement when HVAC or sprinkler work happens above an existing ceiling.
- Floor prep under new flooring or tile, after demolition.
- Power and control wiring to equipment that another trade furnishes.
If one trade says “by others” and no other bid on your desk carries the item, the “other” is you. Price it in the next step.
Step 6: Price the gaps, the same way for everyone
For every line marked Excluded or Not stated, put a cost to cover it. This is the heart of leveling. Good sources, in order:
- A firm add price from that same bidder (ask for it in writing).
- Another bidder's price for the same item, if their bid broke it out.
- A quick quote from someone who does that work.
- Your own estimate or your design team's, clearly marked as an estimate.
Use the same cover cost for every bidder who left the line out. The point is to compare scopes fairly, not to punish anyone. A cover cost only changes the ranking when bidders differ on that line, so don't agonize over items every bidder excluded. Those go in your budget, not your comparison.
Step 7: Compare leveled totals, then look for outliers
Leveled total = base bid + your cover cost for every excluded or not-stated line + any add prices the bidder quoted. Now compare.
Made-up example
Three drywall and framing bids for an imaginary office TI (names and numbers invented to show the math):
| Bidder A | Bidder B | Bidder C | |
|---|---|---|---|
| Base bid | $41,800 | $46,500 | $44,200 |
| Sound batts in partitions (cover $3,200) | Excluded: +$3,200 | Included | Included |
| Blocking for millwork and grab bars (cover $1,400) | “By others”: +$1,400 | Included | Add $900 |
| Patching at demo areas (cover $1,800) | Included | Included | Not stated: +$1,800 |
| Leveled total | $46,400 | $46,500 | $46,900 |
Illustrative only. Not real bids, companies or cost data.
Bidder A is still lowest, but the gap shrank from $4,700 to $100, and A is the bid with the most open items. Bidder B covers everything as written. Leveling doesn't make the decision for you. It tells you what you're really choosing between.
Also look hard at any bid that's far below the others after leveling. A big gap usually means a missed item, a misread drawing or a different assumption about conditions. It's better to find that now than after award.
Step 8: Ask, in writing, and get revised numbers
Send each bidder a short list of their open items: every not-stated line, every vague phrase, and any edge you're unsure about. The trade pages each have a list of questions to ask bidders that you can borrow. Ask for answers in writing, and ask for a revised price if their scope changes.
A 20-minute scope review call with your top one or two bidders is worth it on anything over a few thousand dollars. Walk the checklist line by line. Then have them confirm the result in writing.
Step 9: Carry the leveled scope into the contract
Leveling only protects you if the result ends up in the contract. Attach the final marked-up checklist, the bidder's clarifications and the alternates you're accepting as part of the agreement. Whatever stays excluded goes in your budget, either as another trade's scope or as an owner cost, along with a reasonable contingency. Have your contract reviewed by a qualified professional.
That's what keeps an excluded item from coming back as a change order three weeks into the job.
Quick checklist
- Same checklist, allowances and alternates sent to every bidder
- Every proposal read start to finish, including the boilerplate
- Documents and addenda confirmed for each bid
- Base bid separated from alternates, unit prices and allowances
- Allowances adjusted to the same amount
- Every line marked Included, Excluded, Add $ or Not stated
- Trade edges checked, and every “by others” assigned
- Same cover cost used for every bidder on each gap
- Outliers questioned
- Open items answered in writing, revised prices received
- Leveled scope attached to the contract
General guidance, not legal, engineering or estimating advice. Check scope against your own plans, specs and contract, and confirm code questions with your design team/AHJ.
Sponsor spot open: reach owner-side PMs on BidGaps guides. Become a founding sponsor →