Skip to main content

Original public bid-tab analysis

Subcontractor Bidding Report 2026: Bidder Counts & Win Margins by Trade

Based on 9,801 classified public bid-tab projects from 10 portals across 16 states, this report compares subcontractor trade competition using generated, sample-labeled figures.

Executive summary

Trade-Level Competition, Not a Blended Market Average

Classified project sample

9,801

Sample: 10 portals, 16 states

Overall single-bid share

9.2%

Sample: 9,801 projects with bidder counts

Trades passing win-margin gate

6

Sample: 6 trades pass the median-winning-bid gate

Per-trade findings

Winning Bids, Bidder Counts, and Win Margins by Trade

TradeProjectsMedian winning bidMedian biddersWinner spreadVs. estimate
Electrical322$115,162Sample: 3203Sample: 32218.6%Sample: 264Insufficient dataSample: 3
HVAC and Mechanical255$136,000Sample: 2553Sample: 25517.7%Sample: 207Insufficient dataSample: 0
Plumbing55Insufficient dataSample: 55Insufficient dataSample: 55Insufficient dataSample: 42Insufficient dataSample: 0
Concrete957$800,700Sample: 9574Sample: 9577.9%Sample: 867Insufficient dataSample: 12
Structural Steel54Insufficient dataSample: 54Insufficient dataSample: 54Insufficient dataSample: 41Insufficient dataSample: 2
Sitework and Earthwork7,699$1,185,000Sample: 7,6973Sample: 7,6997.7%Sample: 6,9866.5% below estimateSample: 6,390
Roofing295$198,977Sample: 2954Sample: 29517.7%Sample: 255Insufficient dataSample: 0
Drywall0Insufficient dataSample: 0Insufficient dataSample: 0Insufficient dataSample: 0Insufficient dataSample: 0
Demolition164$177,646Sample: 1645Sample: 16415.7%Sample: 151Insufficient dataSample: 0

Bidder competition

How Many Competitors Appear on Public Bid Tabs

Overall bidder-count distribution

1 bidder9.2%
2 bidders21.1%
3 bidders21.3%
4 bidders17.7%
5+ bidders30.8%

Sample: 9,801 classified projects with bidder counts.

Single-bid share by gated trade

9.2%

Overall sample: 9,801 projects with bidder counts.

Electrical15.5%
HVAC and Mechanical18.8%
Concrete8%
Sitework and Earthwork8.4%
Roofing13.6%
Demolition7.9%

Winner vs. estimate

The Estimate Variance Gate Passes for Sitework and Earthwork

Sitework and Earthwork has enough winning-bid and engineer-estimate pairs to publish this comparison. The generated median result is 6.5% below estimate, and the generated below-estimate share is 64.7% across 6,390 projects.

Methodology

Snapshots, Gates, and DOT Skew

The script reads committed bid-tab snapshots, dedupes projects by source portal and solicitation number, and classifies each project to at most one trade using conservative category and title patterns. The source corpus contains 17,055 projects and 71,701 joined bid rows.

Every metric reports its own sample. Winner spread is limited to complete rosters where joined bid rows match reported bidder count. Estimate variance requires both winning bid and engineer estimate fields.

The committed snapshots include many transportation and DOT-style bid tabs. That gives deeper public works coverage for sitework, roadway, paving, and related scopes than for some vertical-building trades.

For broader project-level context, compare this page with our general transportation bid statistics.

Next steps

Use Award Context With Live Bid Discovery

Citation

How to Cite This Report

ConstructionBids.ai. Subcontractor Bidding Report 2026: Bidder Counts & Win Margins by Trade. Generated from committed public bid-tab snapshots dated through July 2, 2026. https://constructionbids.ai/subcontractor-bidding-report-2026

FAQs

Questions About the Subcontractor Bidding Report

What does this subcontractor bidding report measure?

It measures public bid-tab projects classified by subcontractor trade. The report focuses on bidder counts, winning bids, winner-to-second spreads, and estimate variance where the generated dataset has enough sample depth to publish a figure.

How is this different from general transportation bid statistics?

The transportation statistics page looks at public works competition more broadly. This report narrows the lens to trade-level subcontractor patterns so bidders can compare competition by scope type instead of reading one blended market average.

Why are some trade metrics blank?

Each metric has its own data gate. If the snapshot corpus lacks enough winning bids, bidder counts, engineer estimates, or complete rosters for that metric, the page shows insufficient data instead of publishing a weak number.

Why does winner spread require a complete roster?

Winner spread compares the low bid with the second-lowest bid. A partial roster can distort that gap, so the script only counts projects where joined bid rows match the reported bidder count and enough priced bids are present.

Can this report price a live subcontractor bid?

No. It is historical context from public bid tabs, not a substitute for estimating the drawings, specifications, addenda, wage rules, schedule, site logistics, bond requirements, and risk on a specific opportunity.

Why does the methodology warn about DOT skew?

Several committed snapshots are transportation and DOT-style bid tabs. That gives deeper public works coverage for sitework and road-related scopes than for some vertical-building trades, so the page states that limitation directly.

Where can subcontractors find current bid opportunities?

Use Sub-Hub for live public bid discovery by trade, then verify documents, addenda, and submission rules on the original agency portal before bidding. This report is award context, not the live feed.