How to Level Subcontractor Bids: Scope Gaps, Exclusions and a Worked Comparison
The lowest subcontractor bid on paper is often the one that left the most out. Leveling puts every bid on the same scope before you compare them: your scope sheet first, then each exclusion and each silence priced with a plug you can trace, bond and tax added where a bid left them out, overlaps with other packages removed, and a ranking that says whether it is final or still waiting on answers. This guide gives the method and a worked comparison of three drywall bids in which the lowest base bid is not the lowest leveled one.
- Published
- Sources checked
- Reading time
- 16 min
- Written by
- Mirage Metrics team
Scope: subcontractor bids for one bid package at a general contractor in the United States or Canada, from bid day to the subcontract scope letter. It covers the method, done by hand, in a spreadsheet or in the free calculator; it does not cover prequalification or the choice of software.
Decision snapshot
- Best suited to
- Chief estimators, preconstruction managers and subcontract buyers at general contractors who receive three or more bids per package and have to carry one number in their own bid, then award.
- Inputs needed
- The package's drawings, specification sections and addenda; your takeoff and estimate; every bid as submitted, with its letter, breakdown, alternates and the addenda it acknowledges; the subcontract's bond, tax and insurance requirements.
- What can be automated
- Reading each bid against the scope sheet, marking exclusions and silence with the page they come from, extending unit prices with your quantities, adding plugs, bond and tax, and re-running the comparison each time an answer comes in.
- What requires human approval
- The scope sheet itself, every plug value and its basis, the package boundaries, the questions on the scope review call, and the award.
- When this approach is insufficient
- When the scope is not defined well enough to write a scope sheet (early design), when bids are for different means and methods that cannot be put on one scope, or when only one bid came in: then you are pricing a scope, not leveling bids.
Build the leveling scope before the bids arrive
Leveling measures every bid against one scope, and that scope has to be yours. Write a scope sheet for each bid package before bids come in, from the package's drawings, its specification sections and every addendum issued, not from the first bid letter that lands. A scope sheet copied from the lowest bidder's letter has, by construction, the same holes as that letter.
| Column | What goes in it | Why |
|---|---|---|
| Scope item | One line per element of the package, written from the drawings, the specification sections and every addendum | The scope is yours; each bid is measured against it, never the other way round |
| Spec section and drawing | The section that specifies the item and the sheet that shows it | What you quote on the scope review call, and what settles a dispute after award |
| Quantity and unit | From your takeoff | Lets you extend a unit price bid and check a lump sum line against what it should cover |
| Package owner | This package, another package (named), or the GC's own work | The line that exposes gaps and overlaps between packages |
| Plug value | What you would carry for the item if a bidder leaves it out | Turns an exclusion into a number |
| Plug basis and source | Own estimate, a bidder's firm add or alternate, another bid, a separate quote, an allowance; and the line or page it came from | A plug nobody can trace is an opinion |
Two habits make the sheet useful on bid day. Put on it the items that sit on a package boundary (firestopping, blocking, hoisting, cleanup), because those are where bids differ. And write the plug values before you open the bids, so the price of an item is not influenced by which bidder left it out. The bid leveling template has these columns, with the plug basis and source next to every value.
The scope sheet is also the bid form you wish you had sent. Issuing it with the invitation to bid, as a list subcontractors confirm line by line, does not remove the need to level, but it turns most of the reading into checking boxes.
Read bids written three different ways
Bids for the same package rarely arrive in the same shape. Before anything can be compared, each one has to be brought to a single number for the scope it actually covers, and the way to get there depends on the format.
| Format | What it looks like | How to read it | Number to start from |
|---|---|---|---|
| Lump sum with an inclusions and exclusions letter | One price, then paragraphs of inclusions, exclusions and qualifications | Read every paragraph against the scope sheet; the price says nothing about what is in it | Base bid as submitted |
| Unit prices | A rate per unit for each line, sometimes extended on the bidder's own quantities | Extend every rate with your quantities, not the bidder's; a line with no rate is silence, not zero | The extension on your quantities |
| Base bid with alternates | A base price, plus adds and deducts for options the bid documents asked for or the bidder volunteered | Take the alternates your scope includes, ignore the ones it does not, keep voluntary alternates out of the comparison | Base bid, with a scope alternate entered as a plug at the bidder's own price |
| Bid with allowances | A fixed sum inside the price for work not yet defined | Make every bid carry the same allowance, or none | Base bid, adjusted so allowances match |
Unit prices: extend them with your quantities
A unit price bid usually comes with the bidder's own extension. Do not use it. Multiply each rate by your takeoff quantity, so every bid is priced on the same quantities, and note the difference: a bidder whose quantities are well below yours has either found something in the drawings or missed something, and both are questions for the call. A line on your scope sheet with no rate on the form is silence, not a zero.
Alternates: only the ones your scope includes
When your scope includes an item that a bid prices as an alternate (the bid's base is level 4 finish, your scope says level 5), the alternate is a gap in the base bid, and the bidder's own alternate price is the plug for it. Alternates your scope does not call for stay out of the comparison, and voluntary alternates (a cheaper product, a different method) are judged on their own, after leveling, because they change the scope rather than price it.
Exclusions, silence and qualifications
Read each bid letter paragraph by paragraph against the scope sheet, and give every line of the sheet a status for every bidder. Most exclusions sit in the last paragraphs, and the most expensive ones are often not exclusions at all but things the bid never mentions.
| What you find | Example | Treatment | What to record |
|---|---|---|---|
| Stated exclusion | "Firestopping by others", "hoisting by GC" | Excluded: add the plug | Where the bid says it: page and clause |
| Silence | The bid neither includes nor excludes an item on your scope sheet | Clarify: carry the plug until the bidder confirms in writing | Ask it on the scope review call |
| Not priced | A unit price form with an empty line, or "TBD" | Excluded, at the plug, until a price comes in | Ask for the price in writing |
| Addendum not acknowledged | The bid lists addenda 1 and 2; there were three | Clarify, carrying the value of what addendum 3 changed for that package | Ask whether the price includes it |
| Extra scope | The bidder priced work another package carries, or that nobody asked for | Deduct it, if the bid lets you value it | Note what it is and where the bid prices it |
| Qualification | Price valid 30 days, work in two mobilizations, escalation clause on studs | No plug; it goes to the award decision | Record it next to the bidder |
The rule that matters most: silence is not inclusion. A bid that does not mention shaft wall has not promised to build it. Carry the plug until the bidder confirms in writing, and keep the item on the open list. Treating silence as included is how a low bid wins the comparison and comes back as a change order.
Exclusion or qualification
An exclusion removes an item from the price, so it gets a plug. A qualification sets a condition on the price (validity, mobilizations, escalation, working hours), so it is recorded and weighed at award, and priced only if the bid prices it.
Overlaps and gaps between packages
A package is one slice of a project, and its edges are where money goes missing or is paid twice. A gap is an item no package carries: every bidder excluded it, so the comparison between them is unaffected, but your own estimate is short by its value. An overlap is an item two packages carry: the bidder who priced it looks expensive, and you would buy it twice.
| Item | Where it may sit | How the gap or overlap appears |
|---|---|---|
| Firestopping at penetrations and head-of-wall joints | Drywall, each MEP trade for its own penetrations, or a firestopping specialist | Two packages price it, or each assumes the other does |
| In-wall blocking for wall-mounted items | Rough carpentry or drywall | Specified in a carpentry section, installed inside drywall partitions |
| Access panels | Supplied by the trade that needs access, installed by drywall | Supply and install split between two packages |
| Acoustical ceilings at corridors | Ceilings package or drywall | A drywall bidder prices them along with the soffits |
| Hoisting, cleanup, layout, temporary protection | Each sub, or the GC's general conditions | Bid instructions silent; every bidder assumes differently |
The scope sheet's package owner column settles each one: every item on a boundary belongs to exactly one package. Then an exclusion of an item your scope gives to this package gets a plug, an item priced here that belongs to another package is deducted from the bid that priced it (when the bid lets you value it), and an item every bidder excluded is a line in your own estimate, not an adjustment between bidders.
Plug pricing: who sets the plug, from what
A plug is the amount the general contractor carries for an item a bid leaves out. It is the GC's number, so the GC sets it: in most estimating departments the estimator who owns the package proposes it and the chief estimator approves it, before award and ideally before the bids are opened. It is an assumption, which is why each one needs a basis and a source someone else can check.
| Basis | When to use it | Strength | Watch out for |
|---|---|---|---|
| A firm add or alternate from the bidder itself | The bid prices the item separately, as an add or an alternate | The best plug for that bidder's own gap: it is a price it will sign | Only for that bidder; it says nothing about the others |
| A separate quote | A specialist quoted the item on its own (firestopping, shaft wall) | A market price for exactly that scope | Check it covers the same scope and conditions |
| Your own estimate | You measured the item and priced it in your estimate | Independent of the bidders, consistent across them | Only as good as the estimate line; note which line |
| Another bidder's price | Another bid prices the item as a separate line | Real, current, same project | Not usable when the item is buried in a lump sum; the lowest such price favors the bid that left it out |
| Allowance | The item cannot be priced yet | Keeps the item visible | A placeholder; carry the same allowance on every bid |
A plug that is too low favors the bid that excluded the item, and a plug that is too high punishes it. Two checks keep plugs honest. First, a plug only matters where bids differ: if every bidder excluded hoisting, the hoisting plug moves none of them against the others. Second, before award, compare the leveled difference between the first two bids with the plugs that only one of them carries: if a plausible error in one of those plugs could close the gap, get a firm price for that item before deciding. The worked example below shows both.
Sales tax, bonds, insurance and conditions
Some differences between bids are not scope but cost carried by one bidder and not by another. Each one is answered for every bid (included or not), and added to the bids that left it out.
| Item | What to establish for each bid | Leveling treatment | Governed by |
|---|---|---|---|
| Sales tax | Whether it is included, and on what: materials only or the whole price | Add tax to the bids that left it out, on the same base the others carry, at the rate your jurisdiction applies to that contract | Per your contract and jurisdiction |
| Performance and payment bonds | Whether the bid includes them, and the bidder's quoted rate if not | Add the bond cost to the bids that left it out | Per your subcontract and bid instructions; federal work below |
| Insurance | Whether the bidder can meet the subcontract's limits and endorsements, or prices on a wrap-up basis | Usually not a dollar adjustment: a bidder that cannot comply is a qualification for the award | Per your subcontract |
| Schedule and conditions | Duration, crew size, start date, number of mobilizations, price validity, escalation clauses | Recorded as qualifications, priced only when the bid prices them | Per your bid documents |
Sales tax
Whether sales tax applies to a subcontract, and whether to the materials or to the whole price, depends on the state or province and on the type of contract. Do not settle it in the leveling sheet: establish it for your project, then ask each bidder whether its price includes tax and on what base, and add the missing amount on that base. In the bid leveling calculator, a taxable amount field takes the materials total of a bidder's breakdown when tax applies to materials only.
Bonds
On federal work, the Miller Act requires the prime contractor to furnish a performance bond and a payment bond before award of a construction contract of more than $100,000 (40 U.S.C. 3131), and the Federal Acquisition Regulation applies the requirement to construction contracts exceeding $150,000 (FAR 28.102-1). Those rules bind the prime contractor. Whether you require bonds from subcontractors, and in what amount, is set by your subcontract and bid instructions, and on state and local public work by the owner's contract and the bonding law that governs it. For leveling, what counts is consistency: if one bid includes its bond and another quotes it as an add, add that bidder's quoted rate, or your surety's, to the second.
Insurance, schedule and conditions
Insurance is rarely a dollar adjustment. Check that every bidder can meet the subcontract's limits and endorsements, and if the project has a wrap-up insurance program, that every bid is priced on the same basis. Duration, crew size, mobilizations, price validity and escalation clauses are recorded next to each bid and weighed at award; they become a number only when the bid prices them.
Worked comparison: three drywall bids
Illustrative example, invented figures: a drywall and framing package on a commercial building
Assumptions, all invented. The package covers gypsum board assemblies and non-structural metal framing. The subcontract requires a performance and payment bond. Sales tax in this invented jurisdiction applies to the materials in a subcontract, at 7 percent; use your own jurisdiction's rule and rate. Section numbers follow MasterFormat numbering, as a project manual would.
1. The scope sheet, written before bid day
| Scope item | Spec section and drawing | Plug $ | Plug basis and source |
|---|---|---|---|
| Partitions, soffits and ceilings per partition types | 09 21 16, 09 22 16; A-401, A-501 | All three bids include it | |
| Firestopping at rated partitions | 07 84 00; A-501 | 18,400 | Own estimate, from the takeoff count |
| Level 5 finish, lobby and corridors | 09 21 16; finish schedule A-601 | 9,600 | Bidder C's Alternate 1, a firm add |
| Shaft wall at two elevator shafts | 09 21 16.23; A-401 | 21,500 | Own estimate: 1,720 SF at 12.50 |
| In-wall wood blocking | 06 10 53, assigned to this package by the scope sheet | 7,200 | Own estimate, from the takeoff |
| Hoisting and material distribution | Bid instructions | 14,000 | Own estimate, general conditions sheet |
| Daily cleanup to GC dumpsters | Bid instructions | 6,500 | Own estimate, general conditions sheet |
Blocking is specified in a carpentry section, but the scope sheet assigns it to this package, and the bid instructions say so. Acoustical ceilings belong to the ceilings package.
2. Bidder B's unit prices, extended with your quantities
| Line on B's unit price form | Your quantity | B's rate $ | Extension $ | B's own quantity |
|---|---|---|---|---|
| Partition type P1 | 38,400 SF | 11.25 | 432,000 | 38,100 SF |
| Rated partition type P3 | 9,800 SF | 16.40 | 160,720 | 9,800 SF |
| Ceilings and soffits | 4,100 SF | 8.70 | 35,670 | 4,100 SF |
| Total | 628,390 | B's own total: 625,015 |
B's own total, 625,015, used 300 SF less of partition type P1 (300 x 11.25 = 3,375). The comparison uses 628,390, and the quantity difference goes on the call list.
3. What each bid says
| Bidder | Structure | Base as submitted $ | What the bid says |
|---|---|---|---|
| A | Lump sum and a two-page letter | 612,000 | Excludes firestopping (p. 2, exclusion 4) and hoisting (exclusion 7). Bond not included: "performance and payment bond available, add 1.1%". Sales tax included. Price valid 30 days. |
| B | Unit prices | 628,390 (extended on your quantities) | Excludes blocking (clarification 3: "by carpentry"). No line for shaft wall: silent. Bond included. Sales tax excluded; its breakdown shows 236,000 of materials. |
| C | Base bid with alternates | 589,000 | Base at level 4 finish; Alternate 1 adds level 5 for 9,600; Alternate 2 deducts 4,200 for level 3 in back-of-house areas, which the scope does not call for. Excludes firestopping, shaft wall and hoisting (exclusions 2, 5, 6). Silent on cleanup. Prices acoustical ceiling tile at corridors, 12,400 (breakdown line 7), which is in the ceilings package. Bond included. Sales tax excluded; 220,000 of materials. |
4. The leveled comparison on bid day
Bond for A is added at its own quoted rate, 1.1 percent of 612,000 = 6,732. Tax is 7 percent of the materials each bid shows: 16,520 for B, 15,400 for C. C's Alternate 1 (level 5) is a plug at C's own price. C's corridor ceilings, 12,400, are deducted because the ceilings package carries them. The two silent items are carried at their plugs.
| Bidder | Base bid | Plugs for exclusions | Carried for open items | Bond added | Tax added | Extra scope deducted | Leveled total | If open items are included | Open clarifications |
|---|---|---|---|---|---|---|---|---|---|
| A | 612,000 | 32,400 | 0 | 6,732 | 0 | 0 | 651,132 | 651,132 | None priced; price valid 30 days |
| B | 628,390 | 7,200 | 21,500 | 0 | 16,520 | 0 | 673,610 | 652,110 | Shaft wall: silent |
| C | 589,000 | 63,500 | 6,500 | 0 | 15,400 | −12,400 | 662,000 | 655,500 | Cleanup: silent |
- A: 612,000 + 18,400 firestopping + 14,000 hoisting + 6,732 bond = 651,132.
- B: 628,390 + 7,200 blocking + 21,500 shaft wall carried + 16,520 tax = 673,610; 652,110 if shaft wall turns out included.
- C: 589,000 + 18,400 + 9,600 + 21,500 + 14,000 (firestopping, level 5, shaft wall, hoisting) + 6,500 cleanup carried + 15,400 tax − 12,400 ceilings = 662,000; 655,500 if cleanup turns out included.
C, the lowest bid as submitted by 23,000, is second once leveled. A is lowest at 651,132, and the ranking is provisional: two items are still open. Yet A stays lowest whatever the answers are, because its total is below the best case of both other bids (652,110 and 655,500). The order of B and C, on the other hand, depends on the answers.
5. Which plugs decide it
Firestopping and hoisting are excluded by both A and C, so their plugs move neither against the other. What separates them is what only one carries: C's shaft wall plug (21,500), its level 5 alternate (9,600, a firm price), C's tax against A's bond, and C's ceiling deduct. After the clarifications below, A leads C by 4,368. If the shaft wall plug were too high by more than that, that is if shaft wall really cost less than 17,132, C would be lowest. Before award, a shaft wall quote you can rely on is worth more than any other check.
To run this example yourself, open the bid leveling calculator and use "Fill in the worked example": it loads these inputs, with the bid references, and gives the same totals, the same provisional status and a CSV of the table and its assumptions.
Clarifications: the scope review call and the written answer
Every open item becomes a question to one bidder, and the answer has to reach the file in writing: an email, a revised bid letter, or signed minutes of the call. A verbal "yes, it is in there" changes nothing in the comparison.
- Walk the scope sheet line by line with each bidder, in the same order for all of them
- Ask about every exclusion, every silent item and every quantity that differs from yours, quoting the page and clause
- Confirm the addenda the price includes, by number and date
- Confirm bond, sales tax and insurance: included or not, and on what base
- Ask for a price on any excluded item you might want the bidder to carry, as a firm add
- Keep every bidder's price confidential: the call is about scope
- Get the answers in writing and attach them to the bid in the file
- Change each item's status from Clarify to Included or Excluded, and re-run the comparison
Provisional and final leveling
On bid day the comparison is provisional, and it should look provisional. Each bid with an open item is really a range: the leveled total with the open items carried at their plugs, and a best case if they all turn out included. Three situations follow.
- The lowest holds whatever the answers are when its total is not above any other bid's best case. You can carry it in your own bid, and say the leveling is provisional.
- The answers can change the lowest when another bid's best case is below it. Do not name a lowest bid yet; settle the open items that decide it first.
- A bid with an unknown amount (an excluded item with no plug, a bond left out with no rate) cannot be ranked at all: ranking it would count the unknown as zero. Its known total is only a floor.
The calculator and the template apply these three rules and say which one the comparison is in. In the example, the written answers come back: B confirms that its unit prices do not include shaft wall, C confirms that cleanup is included, and A extends its price validity to the award date.
| Bidder | Answer in writing | Final leveled total | Rank | Over lowest |
|---|---|---|---|---|
| A | Confirms bid validity extended to award date | 651,132 | 1 | 0 |
| C | Daily cleanup is included | 655,500 | 2 | 4,368 |
| B | Shaft wall is not included | 673,610 | 3 | 22,478 |
B's shaft wall moves from carried to excluded at the same plug, so its total does not change; C loses the 6,500 it was carrying. Nothing is open: the ranking is final, and A leads by 4,368.
Handing the decision to the estimate and the award
The leveled comparison feeds two documents, and each takes something different from it.
The estimate
Your own bid carries the bidder you expect to buy, at its subcontract price, plus every plug for what that bidder does not carry, as separate lines you will buy elsewhere or do yourself. In the example, with A: the subcontract at 612,000 plus its bond at 6,732, and firestopping (18,400) and hoisting (14,000) as their own lines, together the 651,132 of the comparison. Items every bidder excluded are estimate lines too, or they are missing from your price.
The subcontract scope letter
The award turns the comparison into the subcontract's scope. The scope letter, or scope exhibit, lists what was confirmed included, what was accepted as excluded, the alternates taken, the addenda and bid documents the price is based on, and attaches the written clarifications. Every Clarify item has to be settled in it: an open question left out of the scope letter is the first change order of the job.
Keep the comparison itself in the file with its plug sources and bid references. The calculator's CSV export and the template both keep them, so the award can be explained months later by someone who was not in the room.
Where Mirage fits
Mirage deploys AI agents that do the reading part of this method: they read each subcontractor bid in the format it arrives in, map its lines to your scope sheet, mark exclusions and silent items with the page they come from, and prepare the comparison for your estimators, who set the plugs, run the calls and decide. Connections to your estimating or document systems are possible, to be configured and validated on your tools. See AI bid leveling for construction for that workflow; the method on this page works the same by hand.
Questions readers ask
Against your scope sheet, which is built from your estimate. Your estimate supplies the scope and most plug values; the other bids are a check on them. Leveling one bid against another without a scope of your own lets the most complete bid define the scope, and an item none of them priced disappears.
The scope review call is about scope, not price. Ask about exclusions, silence, addenda and assumptions, and keep every bidder's number confidential. Telling one bidder where it stands against another is bid shopping, which damages the trust that gets you complete bids next time.
Use that price as a plug for the bidders that excluded the item only if you would accept it as a firm price from that bidder. Otherwise use your own estimate or a separate quote. A bidder's own add or alternate is the best plug for that bidder's gap, because it is a price it will sign.
Treat it as an open item for that bidder: carry the value of what the addendum changed in that package, ask in writing whether the price includes it, and keep the ranking provisional until the answer is in the file.
When every item marked clarify has a written answer, every exclusion has a plug with a source, bond and tax are answered on every bid, and the comparison has been re-run with the answers. Before that it is provisional, and it should say so.
Sources and scope
Checked on . Scope: subcontractor bid leveling at a general contractor in North America. The method and the worked example are Mirage's own, with invented figures; the only rules cited are the federal bond requirements. Sales tax, state bonding and insurance requirements are left to your contract and jurisdiction.
- 40 U.S. Code § 3131, Bonds of contractors of public buildings or works (Cornell LII): performance and payment bonds required from the contractor before award of a federal construction contract of more than $100,000; the payment bond protects persons supplying labor and material
- FAR 28.102-1, General (performance and payment bonds for construction contracts): the Federal Acquisition Regulation applies the requirement to construction contracts exceeding $150,000
Related on this site
- Bid leveling calculator: the worked example loads in one click; provisional ranking and CSV export
- Bid leveling template (Excel): the scope sheet and comparison as a spreadsheet, with plug sources
- Estimating under pressure: when the bids arrive the night before your own bid is due
- Drawing revision comparison: what an addendum changed, before you price it as an open item
- How to automate construction estimating: where leveling sits among the estimating tasks
- Can AI level subcontractor bids?: what an AI agent does and does not do in this workflow
- AI bid leveling for construction: the workflow Mirage deploys
Send us the bids for one package
Send the bids you received for one package, with the drawings and specification sections that define it. We will return a comparison with every bid mapped to the scope, each exclusion and silent item marked with the page it comes from, and the questions to settle before award, for your estimators to check against their own leveling.
Prefer to talk it through? Book a call