Skip to content

Guide · Bid leveling

How to build a bid leveling sheet, with a template

Rows from the spec, a column per sub, a code in every cell and a plug on every hole. Here is the layout, a filled-in example, and how to read it when the bid is due in an hour.

Last reviewed . If your team lays out its leveling sheet a way this guide misses, tell us and we will add it.

The short version

Scope items from the spec down the side, grouped by section. One column per sub, with the quoted price, quote date and addenda at the top. Every cell gets I, X, S or Q, and every X, S and Q gets a plug with its source. Add rows for bonds, insurance and schedule, then total the plugs, the adjusted price and the open items. Read it from the bottom up, and write down why you picked who you picked.

Why you level on scope before price, and the quote wording to watch for: how to catch scope gaps in sub quotes. Keeping the addenda row honest: how to track addenda on bid day.

Building the sheet, row by row

01

Pull the rows from the spec, grouped by section

Open a blank spreadsheet and put the spec section numbers down column A as group headings: 09 22 16 for framing, 09 21 16 for gypsum board, 07 84 00 for firestopping if the trade usually carries it. Under each heading, one row for each thing a sub could leave out. Partition types per the schedule, finish levels by area, accessories, rated assemblies, anything an addendum added.

The test for a row is simple: could one sub include it and another not? If yes, it gets its own row. "Drywall per plans and specs" is not a row, it is the whole trade. "Level 5 finish at lobby walls" is a row.

Put the sheet number or spec paragraph in a narrow column next to each row. When a sub asks what you mean on bid day, you point at A-501 instead of arguing.

02

Give each sub a column, with the quote facts at the top

One column per sub, in the order the quotes arrived. Above the scope rows, three header rows: the base price exactly as quoted, the quote date, and the addenda the quote acknowledges. Copy the price as written, before you touch anything. You want to be able to show later how you got from their number to yours.

The addenda row goes at the top on purpose. If a sub stops short of the latest addendum, you see it before you spend twenty minutes leveling a quote for a different set of documents.

03

Mark every cell with one of four codes

Read each quote against the rows and give every cell a code. Four codes, no more, so the sheet can be scanned from across a desk. Use conditional formatting so each code has its own fill colour: the pattern tells you more than the numbers on a first pass.

No cell stays blank. A blank cell means you have not read that part of the quote yet, which is different from the sub saying nothing about it. Silent is an answer. Blank is unfinished work.

CodeMeansWhen to use it
IIncludedThe quote clearly covers the item as specified
XExcludedThe quote says it is not in the price
SSilentThe quote does not mention it. Treat as out until confirmed in writing
QQualifiedIncluded with a condition: a different product, a limit, an add price, "by others" for part of it
04

Put a plug and its source on every X, S and Q

Every cell that is not a clean I gets a dollar figure next to it: what it will cost you to cover that item if the sub does not. Your own takeoff quantity times a unit price you can defend, another sub’s itemised price for the same line, or the sub’s own add price when they offered one.

Write the source in the cell or in a comment: "1,500 SF x $5.00, own number" or "Sub B’s firestopping line". A plug with no source is a guess, and on bid day nobody can tell which plugs are guesses.

05

Add the rows that are not scope

Below the scope rows, add the terms that can sink a low number. Bonds: does the quote include a payment and performance bond if Division 01 requires one, and if not, what does the sub charge for it? Insurance: will they meet the limits Division 01 sets, and have you seen a certificate? Schedule: how many weeks, and does that fit the project schedule?

Then a notes row at the very bottom of each column. This is where the open question goes, in one line, with the date you asked it. On bid day the notes row is your to-do list.

06

Total it: plugs, adjusted total, open items

Three rows at the bottom. The sum of plugs and adds for each sub. The adjusted total, which is the base price plus those plugs. And a count of open items, every cell that is not I, plus any term that is not settled.

The adjusted total tells you who is cheapest for the same work. The open count tells you how much of that adjusted total is your number rather than the sub’s. You need both. Here is what a finished sheet looks like on a small drywall package.

Example only: an invented drywall package with three invented subs. The prices and unit rates are made up to show the layout, not to price a job.

Scope itemSub ASub BSub C
Quote as received
Base price as quoted$412,000$389,500$401,200
Addenda acknowledged01 to 0301 to 0201 to 03
09 22 16 Non-structural metal framing
Studs per partition schedule, 20 ga min.IIQ: 25 ga EQ. Plug $9,600, own takeoff
09 21 16 Gypsum board assemblies
Partition types 1 to 6, A-501III
Level 5 finish, lobby wallsIS. Plug $7,500 (1,500 SF x $5.00)Q: Level 4 base. Add $6,800, their price
Resilient channel, Level 2 corridors (Add. 03)IS, quote predates 03. Plug $3,990 (420 LF x $9.50)I
07 84 00 Firestopping
Firestopping at rated partitionsX. Plug $14,200, Sub B lineI, itemised at $14,200X. Plug $14,200, Sub B line
Terms
P&P bond per Division 01IncludedExcluded. Add $5,800, their rateIncluded
Insurance per Division 01Meets limitsCertificate not seenMeets limits
Schedule (window is 10 weeks)10 weeks12 weeks10 weeks
Totals
Plugs and adds$14,200$17,290$30,600
Adjusted total$426,200$406,790$431,800
Open items153
NotesAsked Oct 15 to price firestoppingAsked Oct 15 to confirm Add. 03, Level 5, schedule; certificate requestedArchitect answer Q8: 25 ga not accepted. Asked to reprice
07

Read it on bid day from the bottom up

Start with the adjusted totals and find the low one. Then look straight down at its open count and its notes row. A low adjusted total with no open items is a clean low. A low adjusted total built mostly on your plugs is a question: how wrong would your plugs have to be to change the answer?

In the sample, Sub B is low by $19,410 after plugs, but $17,290 of Sub B’s adjusted total is plugs and adds. Your plugs would have to be more than $19,410 short, in total, before Sub A became cheaper. That is a margin you can check in two phone calls. Then read up: the addenda row, the terms rows, and any Q code. A 12-week schedule against a 10-week window is not a price problem, but it can still knock a sub out.

08

Pick, and write down why

Pick the sub you can carry with the fewest unknowns at a price that holds up. Usually that is the lowest adjusted total. Sometimes it is the second lowest with nothing open, when the low number depends on answers that will not come back before the bid is due.

Write the reason in one or two lines at the top of the sheet: who you carried, at what adjusted number, which plugs are in it, and what you still asked for. When the job is awarded and the subcontract gets written, that note is how the project manager knows what was assumed.

  • Rows copied from the first quote

    The rows come from the spec and the drawings. A sheet built from one sub’s line items can only find what that sub thought to list.

  • Blank cells

    Every cell gets a code. A blank looks the same as an included item at a glance, and it is not.

  • Plugs with no source

    Write where every number came from. A plug you cannot explain on bid day is a plug you cannot defend after it.

  • Overwriting the base price

    Keep the quoted number in its own row and add plugs below it. Once the base is edited, nobody can rebuild how you got to the total.

  • Leaving terms off the sheet

    A missing bond or a schedule that does not fit can cost more than any scope line. They belong on the same sheet as the price.

  • Picking without a note

    One or two lines saying who you carried and what you assumed save the project manager a week of guessing after award.

Questions people ask

What is a bid leveling sheet?

A spreadsheet that puts every sub quote for one trade side by side against the same list of scope items, so you can compare them for the same work. Rows are scope items from the spec, columns are subs, each cell says whether that sub included the item, and plugs fill the holes so the totals can be compared fairly.

What should a bid leveling template include?

Header rows for the price as quoted, the quote date and the addenda acknowledged. Scope rows grouped by spec section, each with a sheet or paragraph reference. A code and a plug in every cell. Rows for bonds, insurance and schedule. Then the plugs total, the adjusted total, an open items count and a notes row.

How do I mark an item a sub included with conditions?

Give it its own code, Q for qualified, rather than calling it included. Then price the difference: the sub’s own add price if they gave one, or your plug for bringing their version up to what the spec requires. A qualified item is often the most expensive kind of gap because it looks covered.

Does the lowest adjusted total always get carried?

Not always. Check how much of that total is your plugs, whether the sub is current on addenda, and whether their schedule, bond and insurance fit the job. When the low number rests on answers you will not get before the deadline, a slightly higher number with nothing open can be the safer one to carry.

Can I tell one sub what another sub quoted?

Keep each sub’s price to yourself. Sharing it to drive another sub down is bid shopping, which many subs and many owners treat as a breach of trust, and it costs you quotes on the next job. Ask each sub about scope, using the spec section and the drawing, never about another sub’s number.

Should I reuse the same leveling template on every bid?

Reuse the layout, not the rows. Keep a template per trade with the header rows, codes, terms rows and totals already set up, then rebuild the scope rows from each project’s spec and drawings. Rows carried over from the last job will miss what is different about this one.

Caliente Vision

Caliente Vision fills in the leveling sheet with you

Caliente Vision reads the spec, the addenda and the sub quotes your team already has, lays out the rows by section, and marks each quote included, excluded, silent or qualified with the line it came from beside it. It drafts the questions for the open cells and waits for your approval before anything is sent. The plugs and the pick stay yours. Caliente Vision finds, connects and checks. Estimators decide.