Constructelligence
Guide · preconstruction

Subcontractor bid leveling: find the real low bid

Subcontractor bids are rarely for the same scope. One excludes hoisting, another firestopping, a third quietly assumes someone else pays for permits. Bid leveling puts every bid on the same scope so the comparison is fair — and it regularly shows that the lowest number on the page is not the lowest price.

Updated · 10 minute read

Key takeaways
  • Write the scope checklist before the bids arrive.
  • Price every exclusion with a plug so bids cover the same scope.
  • Level alternates and allowances too.
  • Carry the leveled number, not the base bid, into the budget.

Start from one scope list

Before the bids arrive, write the scope checklist for the trade: the items every bidder must carry, taken from the drawings, specifications and the scope of work. Then read every bid against it — inclusions, exclusions, qualifications and assumptions — and mark each item carried, excluded or unclear. Unclear items get a call before bid day, not an assumption after it.

A faxed electrical subcontractor quote listing its exclusions: temporary power, permits, low-voltage cabling and utility charges
What arrives on bid day: a faxed quote (sample, invented firm). The exclusions list is where leveling starts — each one needs a plug. Open the PDF →

Price the gaps with plug numbers

Where a bidder excludes something the scope requires, add the estimator's value for it — a plug — so their total reflects the full scope. Plugs come from the estimate, from the other bidders' prices for the same item, or from a quick quote.

BidderBase bidExclusions (plugged)Leveled total
A$1,184,000Firestopping $18,500; hoisting $24,000$1,226,500
B$1,212,000Permits $6,500$1,218,500
C$1,203,000Temporary protection $9,000; cleanup $7,500; testing & balancing $14,000$1,233,500

Bidder A was lowest by $28,000 on the page. Leveled, Bidder B is the real low bid by $8,000, and the spread between the three is only $15,000 — a sign the scope is now understood the same way by everyone.

CalculatorLeveled bid
Bidder A$1,226,500lowest on paperBidder B$1,218,500← real low bidBidder C$1,233,500base bidplugs for excluded scope
The worked example: Bidder A is $28,000 low on the page, but once its exclusions are priced, Bidder B is the real low bid. The axis starts at $1.15M.

Alternates, allowances and unit prices

From leveled bid to award

The leveled total is not automatically the award. Weigh it against the bidder's capacity and backlog, safety record (see construction safety metrics), past performance on your jobs and schedule commitment. Then carry the leveled number — not the base bid — into the bid-day total and the job budget, so the cost forecast starts from the price you will actually pay, and buyout savings or losses are measured against the right baseline.

A leveled electrical bid tabulation with plugs for excluded scope and a recommendation
The same package leveled: excluded scope plugged from company history, the addendum gap flagged, and the recommendation written down (sample document). Open the PDF →

Bid day, step by step

  1. Before bids arrive: the scope checklist per trade, with the plug number for each item already estimated.
  2. As each bid lands: read it against the checklist — carried, excluded or unclear — and write the question for every unclear line.
  3. Scope calls: ask each bidder the same questions and get the answers in writing, as a revised bid or a signed clarification.
  4. Level: apply plugs for exclusions, equalise allowances, and level alternates separately.
  5. Carry and document: the leveled number goes into the estimate, and the scope checklist becomes the subcontract's scope exhibit — so what was leveled is what gets bought.

The last step is the one most often skipped. A bid leveled on a checklist and then bought on the bidder's own proposal letter reopens every exclusion the leveling closed. The awarded value becomes committed cost against that scope's budget.

Checklist
Bid leveling sheet in Excel, filled in with example rows — columns: Scope item, Estimator plug, Bidder A, Bidder B, Bidder C, Low bid, Spread %, Low bid vs plug
The bid leveling sheet as it opens in Excel: example rows in italics, calculated columns shaded.
Free template · Bid leveling sheet (Excel & CSV)An Excel workbook with drop-downs, validation and formulas built in — or the same columns as a CSV for Google Sheets and Numbers.
Download Excel (.xlsx)
What this template captures

Each scope item with the estimator's plug and every bidder's number, with the low bid, the spread between bids and the low bid against the plug calculated.

8 columns: 5 you fill in and 3 calculated by formula and filled down 200 rows, so nothing is worked out by hand. In the Excel version, 4 columns reject entries of the wrong type (a date column only takes dates, an amount column only numbers), the header row stays frozen with filters on it, and the workbook opens on an Instructions sheet that lists every column below.

Every column, and how it is captured
ColumnTypeWhat goes in it
Scope itemTextFree text.
Estimator plugAmount ($)Enter the amount in dollars.
Bidder AAmount ($)Enter the amount in dollars. First row: enter it. Every later row is calculated: SUM([Bidder A]:[Bidder A]).
Bidder BAmount ($)Enter the amount in dollars. First row: enter it. Every later row is calculated: SUM([Bidder B]:[Bidder B]).
Bidder CAmount ($)Enter the amount in dollars. First row: enter it. Every later row is calculated: SUM([Bidder C]:[Bidder C]).
Low bidCalculatedCalculated — the lowest of the bidders' numbers (= MIN([Bidder A]:[Bidder C]))
Spread %CalculatedCalculated — gap between the highest and lowest bid as a percent of the lowest — a wide spread usually means a scope gap (= IF(MIN([Bidder A]:[Bidder C])=0, blank, (MAX([Bidder A]:[Bidder C]) − MIN([Bidder A]:[Bidder C])) ÷ MIN([Bidder A]:[Bidder C]) × 100))
Low bid vs plugCalculatedCalculated: [Low bid] − [Estimator plug]

See it on real-looking numbers

Constructelligence is a construction intelligence platform: it reads your ERP, project and field systems read-only and does this arithmetic every week, for every job. The demo runs it on a sample eight-job portfolio.

Try the demoJoin the private beta

Frequently asked questions

What is bid leveling in construction?

Adjusting subcontractor bids so they cover the same scope — adding the value of anything a bidder excluded and normalizing allowances and alternates — so the bids can be compared fairly and the real low bid identified.

What is a plug number?

An estimator's value for a scope item a bidder excluded or did not price, added to that bid during leveling so every bid reflects the full required scope.

Is the lowest bid always the best bid?

No. After leveling, the lowest base bid often is not the lowest price for the full scope, and even the lowest leveled bid should be weighed against capacity, safety record, past performance and schedule.

How many bids should you level for each trade?

Most contractors aim for at least three comparable bids per trade package, so a single outlier price or scope gap is visible against the others.

What is a plug number in bid leveling?

An estimator's own price for a scope item a bidder excluded or left unclear, added to that bid so every bid covers the same scope. Plugs are estimated before bid day so they aren't tuned to favour a bidder.

Should you tell a subcontractor another bidder's price?

No. Sharing one bidder's number to push another down (bid shopping) undermines the process and the trust bidders put in it. Ask every bidder the same scope questions instead, and let revised bids reflect clarified scope.

CI
Written by the Constructelligence teamConstruction finance and software. Worked examples use the sample demo portfolio; formulas are standard practice. Reviewed September 2026.

More in Running the business

Free tools for this topic: Change order pricing calculator · Contractor overhead recovery and break-even calculator · Construction markup vs margin calculator

All running the business resources →