100% money-backBook a walkthrough

Preconstruction and bidding guide

How to level construction bids

To level construction bids, build a bid tab that lays out every sub's pricing by scope line item, then normalize each bid to identical scope by pricing in excluded work, comparing alternates on the same assumptions, and adjusting for qualifications. Award on the lowest adjusted total for the scope the owner will actually sign, not on the lowest cover number, because the low cover number and the lowest real cost are often different bidders.

Updated June 2026 · Reviewed by the Ruh construction team

Reading about it is slower than watching it. 30 minutes, your drawings.

Book a walkthrough

Bid day gives you a stack of sub bids that look comparable and almost never are. One drywall sub carries the soffit framing, the next assumes the GC does it. One mechanical bid prices the full alternate, another quotes base scope only. If you award on the bottom-line number alone, you buy the gaps along with the scope, and those gaps surface as change orders after the contract is signed. Leveling bids is the discipline of putting every proposal on the same scope before you compare price. Done right, it tells you the real cost of the work and which sub is genuinely lowest. Done poorly, it hands you a low number that grows into the most expensive line in the job.

What does it mean to level a bid?

Bid leveling, also called bid tabulation, is the process of adjusting each sub bid so they all cover identical scope, then comparing the adjusted totals. The raw numbers a sub hands you reflect that sub's read of the drawings, that sub's exclusions, and that sub's assumptions about what the GC or another trade will handle. Those reads differ. Until you normalize them, you are comparing three different scopes of work that happen to share a trade name.

The output of leveling is a bid tab: a spreadsheet with one column per bidder and one row per scope item, plus rows for inclusions, exclusions, alternates, unit prices, and qualifications. You fill in what each sub priced, flag what they left out, add the cost to close every gap, and read the adjusted total at the bottom. The adjusted total, not the proposal cover number, is what you compare. The goal is apples-to-apples. Everything below serves that goal.

How do you build a bid tab?

Start with the scope of work you actually need, broken into line items that match how the trade builds it. For drywall that means metal framing, sheathing, hanging, taping and finishing, insulation if it is in the package, soffits and bulkheads, corner bead and trim accessories, and firestopping or acoustic sealant at rated walls. Each becomes a row.

Across the top, one column per bidder. In each cell, record what that bidder priced for that row: a dollar figure if they broke it out, or a note that it is carried in their lump sum, or a flag that it is excluded. Pull these from the proposal, the cover letter, and any clarifications page. Subs bury the important content in the fine print, so read every line, including the boilerplate exclusions most estimators skim.

Below the line items, add rows for total base bid, listed alternates, unit prices, and a qualifications block where you capture each assumption in plain language. Then add an adjustment section: one row for every gap or overlap you have to price so the comparison is fair. The bottom row is the adjusted total. Build the tab so the math is visible. If a reviewer cannot trace how you got from the proposal number to the adjusted number, the tab is not finished.

How do you normalize scope across bidders?

Normalizing means resolving four things on every bid: inclusions, exclusions, alternates, and unit prices.

Inclusions and exclusions are where most of the money hides. A sub who excludes a scope item is not wrong, they are telling you they expect someone else to carry it. Your job is to decide who actually carries it and price it onto whichever bids left it out. If the cleanest bidder excludes in-wall blocking and two others include it, you do not get to pretend the work is free on the low bid. You add the blocking cost to that bidder's adjusted total.

Alternates have to be evaluated on identical assumptions. If the alternate is a different ceiling assembly, every bid needs the same base and the same alternate priced separately, so you can compare base to base and add or deduct the alternate consistently. Mixing a base-only bid against an alternate-inclusive bid is the single most common leveling error.

Unit prices matter when quantities are uncertain. If the package carries an allowance for, say, additional fire caulking at penetrations, the meaningful comparison is each sub's unit cost per linear foot or per penetration, not the lump allowance, because the allowance quantity is the same for everyone and the unit rate is what you will actually pay when the real count comes in. Capture the units, with quantities, so the rate is comparable across bidders.

How do you spot scope gaps and overlaps?

A scope gap is work that no bid covers because each sub assumed another party would. A scope overlap is work two bids both carry, which means you are about to pay for it twice across two trades. Both distort the comparison and both cost real money if they reach the contract unaddressed.

Find gaps by reading exclusions across the row. Line your bidders' exclusion lists side by side. Anything excluded by even one bidder is a candidate gap: confirm who carries it, then price it onto every bid that left it out. Find overlaps at trade boundaries. If the drywall sub carries rough-in backing for casework and the casework sub carries the same backing, one of them comes out, and you adjust the tab so only one trade prices it.

The discipline is simple to state and easy to skip under bid-day pressure. Read every exclusion. Check every boundary. Price every gap. An unpriced gap is not a savings, it is a deferred change order with markup added later.

How do you adjust for qualifications?

Qualifications are the conditions a sub attaches to their price: an assumed schedule, a specific manufacturer, overtime not included, hoisting by the GC, escalation valid for 30 days only, winter conditions excluded. Each one is a future cost or a future risk, and each belongs on the tab as a note and, where it carries a dollar impact, as an adjustment.

If one sub assumes single-shift work and the schedule clearly requires double shifts, the realistic cost of that bid is higher than the number on the cover. If a sub's price is held for 30 days and your award is 60 days out, escalation is a real exposure you weigh. You will not always convert every qualification to a precise dollar figure, but you record each one and adjust the comparison where the impact is material. A clean low number wrapped in heavy qualifications is rarely the lowest real cost.

Worked example one: the low drywall bid that excludes a scope

Three drywall subs bid a tenant build-out. Cover numbers:

  • Sub A: $182,000
  • Sub B: $190,500
  • Sub C: $193,000

Sub A looks lowest by $8,500. Reading the exclusions, Sub A excludes the soffit and bulkhead framing and drywall at the lobby, which Subs B and C both include. The soffit work has to be built by someone, and it is in this trade's scope, so it gets priced onto Sub A.

Pricing the soffit gap (illustrative, US commercial): 220 linear feet of soffit framing and board. Framing labor and material at $48 per linear foot, board and finish at $19 per linear foot, for $67 per linear foot.

220 LF x $67/LF = $14,740

Add that to Sub A to make the scope equal:

  • Sub A adjusted: $182,000 + $14,740 = $196,740
  • Sub B adjusted: $190,500
  • Sub C adjusted: $193,000

On the normalized scope, Sub B is lowest at $190,500, and Sub A is now the highest. The $8,500 apparent savings was an unpriced gap worth $14,740. Award Sub A on the cover number and you buy the soffit twice: once as a change order, once with the markup it carries after contract.

Worked example two: an alternate that flips the ranking

A mechanical package has a base scope and Alternate 1, an upgrade to higher-efficiency rooftop units the owner is leaning toward accepting. Two bidders:

  • Sub X base bid: $845,000, Alternate 1 add: $62,000
  • Sub Y base bid: $851,000, Alternate 1 add: $48,000

On base scope, Sub X is lowest by $6,000. But the owner intends to accept Alternate 1, so the comparison that matters is base plus alternate:

  • Sub X total: $845,000 + $62,000 = $907,000
  • Sub Y total: $851,000 + $48,000 = $899,000

With the alternate the owner is actually buying, Sub Y is lowest by $8,000. The base-only ranking pointed the wrong way. This is why alternates get priced separately and added on the same assumption for every bidder: the selected scope, not the base scope, decides the award. Level on what the owner will sign, not on the lowest line you can find.

Where does AI fit in the leveling workflow?

Building a clean tab is mostly reading: drawings, specs, every proposal, and the fine print where exclusions live. This is where Ruh helps. It reads the drawings and specs, runs the takeoff, and prices the scope against your own price book so each bid is checked against a consistent baseline of quantities and rates. It can line up exclusions across bidders and flag the gaps and overlaps for you. The estimator still owns the judgment calls, who carries a disputed scope, how to weigh a qualification, which alternate the owner takes, and the estimator signs off on the number that goes out. AI does the reading and the arithmetic. The human owns the award.

The number on the proposal cover is an opening position, not a price you can compare. Leveling turns three different scopes into one, prices every gap and overlap, weighs the qualifications, and lets you award on the real cost of the work the owner is actually buying. The low cover number and the low real cost are frequently different bidders, as both worked examples show. Build the tab, make the math visible, normalize before you compare, and sign off knowing exactly what you bought and what it will cost when the work is in place.

100%

Try Ruh on a real bid. 100% money-back guarantee if you are not satisfied.*

*Scoped delivery, terms apply. Read the guarantee terms

Start with a walkthrough

Frequently asked questions

What is the difference between bid leveling and bid tabulation?+

They describe the same work. Bid tabulation is building the side-by-side spreadsheet that lays out every bidder's pricing by scope line item. Bid leveling is the adjustment step inside that tab where you normalize each bid to identical scope before you compare totals. In practice estimators use the terms interchangeably, and the tab is the document that holds both the raw and the adjusted numbers.

Why is the low bid often not the lowest real cost?+

Because the low cover number frequently reflects a smaller scope, not a sharper price. A sub can land at the bottom by excluding work the others carry, by quoting base scope while the owner intends to buy an alternate, or by attaching qualifications that raise the real cost. Once you price every gap and overlap onto each bid and weigh the qualifications, the adjusted totals often reorder the bidders. As the first worked example shows, an $8,500 apparent savings can hide a $14,740 unpriced gap.

How do you handle exclusions when leveling sub bids?+

Read every exclusion on every bid, then line them up side by side. An exclusion is the sub telling you they expect another party to carry that work. Decide who actually carries it, then price the excluded scope onto each bid that left it out so all bids cover identical work. An unpriced exclusion is not a savings, it is a deferred change order that arrives later with markup added.

How should alternates be compared across bidders?+

Price the base scope and each alternate separately for every bidder, on identical assumptions, so you can compare base to base and add or deduct the alternate consistently. Then level on the scope the owner will actually sign. If the owner intends to accept an alternate, the meaningful comparison is base plus that alternate, which can flip the ranking. Comparing a base-only bid against an alternate-inclusive bid is the most common leveling error.

Can AI level construction bids on its own?+

AI handles the reading and the arithmetic. It can read drawings and specs, run the takeoff, price scope against your own price book for a consistent baseline, and flag gaps and overlaps across bidders. It does not own the judgment calls: who carries a disputed scope, how to weigh a qualification, or which alternate the owner takes. The estimator makes those decisions and signs off on the number that goes out.

Still pricing in a spreadsheet? Your price book, automated end to end. Your estimator signs off.

See it run

Terms used in this guide

The estimating estimating cheat sheet
Every unit, waste factor, and conversion on one page. Free PDF.

See this workflow run on your own drawings.

Ruh does the takeoff and prices it on your price book. Your estimator signs off.

Figures on this page are illustrative. Construction estimates depend on project-specific conditions, source documents, market pricing, and professional judgment. Ruh's AI assists the estimator and does not replace professional review: your team reviews, validates, and approves every estimate, bid, and pricing decision.

How to Level Construction Bids | Ruh AI