All articles
Bid strategy

What is bid leveling in construction?

Bid leveling explained for general contractors: what it is, how to set up a leveling sheet before bid day, the exclusions that most often catch people, and how to choose a number once the totals are adjusted.

Short answerBid leveling is adjusting subcontractor bids so they cover the same scope before you compare them. Exclusions get priced and added back, and the adjusted totals are compared instead of the raw numbers.

Three drywall bids arrive: $412,000, $438,000 and $455,000. Easy, take the first one. Except the first excludes acoustic ceilings, which the third includes. The second includes ceilings but excludes the level 5 finish the spec calls for in the lobby. After adjusting all three for what's in and what's out, the order changes. It usually does.

Bid leveling is the work of making subcontractor bids comparable before you compare them. Here's how to do it without losing bid day to it.

Build the leveling sheet before the numbers arrive

This is the single most useful habit in the whole process. Set up the leveling sheet for each major scope during the bid period, not at 1:15 PM on bid day with the phone ringing.

For each scope you want rows for the items you expect to see included or excluded. For drywall that's steel stud framing, gypsum board, wall insulation, acoustic ceilings, taping and finish level, bulkheads, shaft wall, access panels, fire caulking at their own penetrations, lifts and hoisting, and cleanup. Then a column for each expected bidder, a base bid row, an adjustments section, an adjusted total, and a notes row.

The row list comes from the spec sections for that trade and from the last few times you bid the scope. Every exclusion that has ever surprised you becomes a permanent row. That's how the sheet gets good.

Mark each bid, line by line

For every bid, go down the rows and mark each one. I for included, stated explicitly. X for excluded, stated explicitly. And a question mark for not mentioned at all.

A question mark on a $3,000 item can wait. A question mark on the acoustic ceilings gets a phone call before that number is used for anything.

Plug the gaps

For every X and every unresolved question mark you need a plug: what it costs to get that item from somewhere else. In order of preference, that's another bidder's number for the same item if they broke it out, your own takeoff and unit price, a call to a sub who does only that item, or a historical number from a similar job, adjusted.

Write each plug in the adjustments section with its source next to it. Months from now, when the project team asks why you carried $22,000 for ceilings, you'll want to be able to answer without reconstructing bid day from memory.

The exclusions that bite most often

Drywall: ceilings, insulation, fire caulking, finish level, shaft wall.

Mechanical: controls, balancing, insulation, seismic, commissioning, fire stopping at penetrations, cutting and patching, equipment pads.

Electrical: fire alarm, low voltage and data, fixture supply versus install, temporary power, cutting and patching, seismic.

Concrete: rebar supply versus place, formwork, pumping, winter heat, finishing, curing, anchor bolts, under-slab vapour barrier.

Roofing: sheet metal flashing, insulation, tapered insulation, roof drains, wood blocking, warranty term.

Glazing: sealants, flashing, interior versus exterior only, hardware on aluminum doors, engineering.

Site: rock, dewatering, contaminated material disposal, topsoil import, survey, permits.

And every trade, without exception: hoisting, scaffolding, cleanup, bonding, taxes. Check those five on every single bid, because at least one of them is missing from at least one bid on every job.

Call the bidders

You can't level a bid you don't understand from a two-page proposal. For every major scope, walk the sheet with the bidders you're seriously considering. Ten minutes each. "Just making sure I'm comparing everyone the same way. Are ceilings in your number? What about the lobby finish?" Subs respect this. What they resent is the GC who doesn't ask and then argues scope after award.

Do it before bid day where you can. A sub who sends a preliminary number early is doing you a favour, and the call is how you return it.

Choose, with some judgment

Once the adjusted totals line up, cost isn't the only input, and pretending it is leads to bad awards.

Capacity: is this sub already carrying two of your jobs? Track record: did their last job turn into a change-order festival? How they bid: a clear two-page proposal with explicit inclusions says something about how they'll run the job, and a total plus "per plans" says something too. And the spread: if the adjusted low is 15 percent under the next bid, work out what they missed, then ask them. Carrying a number you believe is wrong is not a win. It's a future claim.

Sometimes you carry the second-low. When you do, write down why.

Keep the sheets

Win or lose, leveling sheets are the best training material an estimating department produces, and most departments throw them away. A new estimator who reads three years of drywall leveling sheets will know more about drywall exclusions than a fair number of drywallers. And every new surprise becomes a new row for next time.

Where leveling happens

In a spreadsheet, or in an estimating tool with a leveling module. It doesn't happen in invitation software and it shouldn't; the job of invitation software is to get you enough good bids to level in the first place. If you regularly find yourself leveling two bids instead of five on the major trades, the problem is upstream: response rate, follow-up, or how many you invited. The fastest fix for that upstream problem is Invite All: one tracked invitation per sub from your own inbox, with a live count of who's bidding per scope, so you walk into bid day with five numbers to level instead of two.

Read next

Sending invitations by hand?

Invite All sends a tracked invitation to every trade on a scope from your own inbox. Four quick taps to see if it fits your team.