Budget & Price Check · Methodology
How the Price Check is measured
Every source, rule, restatement and definition behind the Price Check, where ESC’s 40 published unit prices are set against 1,953 public bids for the same work. Written for the estimator who wants to check the arithmetic, including what the comparison can’t tell you.
- 40 rates compared
- 1,953 public bids
- 230 lettings
- 10 agencies
- Built Sep 14, 2026
Lettings behind the Price Check, by agency · n = 230
202 of 230 lettings are from New England agencies
- CTDOT102 lettings
- MassDOT57 lettings
- NHDOT23 lettings
- MBTA10 lettings
- RIDOT6 lettings
- MaineDOT2 lettings
- Maine Turnpike1 letting
- VTrans1 letting
- NCDOT24 lettings
- TxDOT4 lettings
National agencies fill in only where New England had fewer than 3 lettings for the work.
01 · What we compare
One published rate against the field of public bids
- The field
- Every public bid on pay items that match the rate, restated to one basis: the middle half of the bids, the median, the spread either side, and the typical low bid.
- ESC’s number
- The price book’s published typical rate plus 10%, because a public pay-line price includes the general contractor’s markup on sub work (section 09).
- The reading
- ESC’s position against the median bid, the share of bids above ESC, and the pay lines where even the lowest bid was above ESC. Across every rate: ESC’s rate, as a general contractor carries it, sits under the median public bid on 33 of 40 published rates (27 of 32 with strong evidence). The median position across all 40 is −22.8%; 7 rates sit over the median.
- Middle half of bids
- Median bid
- Typical low bid
- ESC rate, as a GC carries it (gold rule: our low–high range)
- p10
- $7.82/SF
- p25
- $53.23/SF
- Median bid
- $103/SF
- p75
- $163/SF
- p90
- $259/SF
- Typical low bid
- $24.29/SF
- ESC as carried
- $70.95/SF
- Position
- −31%
02 · Sources
Public agency bid tabulations from 10 agencies
| Agency | Lettings | Bids | ||
|---|---|---|---|---|
| Connecticut Department of TransportationCTDOT · CT · New England | CT | New England | 102 | 728 |
| Massachusetts Department of TransportationMassDOT · MA · New England | MA | New England | 57 | 626 |
| New Hampshire Department of TransportationNHDOT · NH · New England | NH | New England | 23 | 131 |
| Massachusetts Bay Transportation AuthorityMBTA · MA · New England | MA | New England | 10 | 92 |
| Rhode Island Department of TransportationRIDOT · RI · New England | RI | New England | 6 | 36 |
| Maine Department of TransportationMaineDOT · ME · New England | ME | New England | 2 | 14 |
| Maine Turnpike AuthorityMaineTurnpike · ME · New England | ME | New England | 1 | 3 |
| Vermont Agency of TransportationVTrans · VT · New England | VT | New England | 1 | 2 |
| North Carolina Department of TransportationNCDOT · NC · National | NC | National | 24 | 309 |
| Texas Department of TransportationTxDOT · TX · National | TX | National | 4 | 12 |
230 lettings and 1,953 distinct bids in all, bid years 2003–2026. The bid column adds up to 1,989: where one pay item is read by two evidence pools, its bids count in both. Individual tabulations are not linked (section 11).
03 · Matching & exclusions
Like for like, or not at all
- Printed description
- Each published rate is matched to public pay items on the item’s printed description, so it is compared with pay items for the same work.
- One unit
- Prices and quantities are expressed in the book’s unit for each item (SF, CY, LF, EA and LB), so every bid is read per the same measure as the rate.
- Enough lettings
- A rate is compared only when its pay items appear on at least 3 lettings. Rates with less public evidence are left out rather than estimated; 40 rates across 18 book items clear the bar.
- Marine structures
- Pay items on marine structures are excluded from every pool.
- Complete tabulations
- Tabulations that don’t list every bidder’s prices are excluded, so a field is never just the winning bids.
- New England first
- Pools draw on New England agencies. National agencies are added only when New England has fewer than 3 lettings for the work; 3 of 21 pools needed them (section 12).
04 · Windows
2019 onward, when that leaves enough evidence
- Timber lagging, install (and remove where required)2015–2026 · 5 lettings, all years
- Temporary support of excavation, per SF of retained face (DOT basis)2019–2026 · 119 lettings, 2019 onward
- Underpinning, pit-and-pour (hand-dug sequential pits, concrete)2015–2023 · 4 lettings, all years
- Rock anchor, drilled, grouted, threadbar2012–2022 · 11 lettings, all years
- Rock dowel / footing pin, drilled & grouted (untensioned) — Up to 10 ft embedment2012–2023 · 11 lettings, all years
- Rock dowel / footing pin, drilled & grouted (untensioned) — Added embedment over base2012–2023 · 11 lettings, all years
- Anchor performance test2019–2026 · 11 lettings, 2019 onward
- Anchor performance test — Extended creep test2019–2024 · 4 lettings, all years
- Anchor proof test2019–2026 · 11 lettings, 2019 onward
- Soil nail, drilled & grouted2018–2023 · 3 lettings, all years
- Shotcrete facing (temporary), by ESC's shotcrete partner2018–2022 · 3 lettings, all years
- Soil nail verification / proof test — Verification test2019–2026 · 21 lettings, 2019 onward
- Soil nail verification / proof test — Proof test2019–2026 · 22 lettings, 2019 onward
- Soil nail wall, complete, per SF of face (assembly)2019–2026 · 26 lettings, 2019 onward
- Drilled shaft / caisson excavation in soil, by diameter2019–2026 · 17 lettings, 2019 onward
- Rock socket, by diameter2019–2026 · 23 lettings, 2019 onward
- Reinforcing cage, furnish & set (or set only)2013–2024 · 6 lettings, all years
- Crosshole sonic logging (CSL) access tubes2019–2025 · 12 lettings, 2019 onward
- Complete drilled shaft in soil (excavation, cage & concrete), by diameter2003–2026 · 13 lettings, all years
- Pile / anchor load test program2019–2025 · 20 lettings, 2019 onward
- Obstruction drilling, per LF by diameter2019–2026 · 13 lettings, 2019 onward
05 · Restatement
Every bid restated to 2026 dollars and a typical ESC job
- 01 · Dollars
To 2026 dollars
Each bid is moved to 2026 dollars with a construction price index measured from public bid results, so an older bid is read at current prices.
- 02 · Quantity
To a typical ESC job
Unit prices shift with the quantity bid, so each bid moves along a quantity-scale curve from its pay line’s printed quantity to the pool’s reference quantity: a typical ESC job size, listed per pool in section 12. 20 of 21 pools are restated this way; Pile / anchor load test program is compared as bid.
- 03 · Diameter
Along a fitted curve
Items priced by diameter form size families, fitted across 12–54 in.:
price at s = price at d × (s ÷ d)^b. Each bid keeps its printed diameter and is read at a rate’s size.- Drilled shaft / caisson excavation in soil, by diameterb = 0.9018 in. price × 2.14 at 42 in.
- Rock socket, by diameterb = 0.8318 in. price × 2.02 at 42 in.
- Complete drilled shaft in soil (excavation, cage & concrete), by diameterb = 1.1318 in. price × 2.60 at 42 in.
- Obstruction drilling, per LF by diameterb = 0.9818 in. price × 2.30 at 42 in.
06 · Weighting
Recent lettings count more; every letting counts once
- 12026
- 1/22023
- 1/42020
- 1/82017
- 1/162014
- 1/322011
- 1/642008
- 1/1282005
A bid’s weight
0.5 ^ ((2026 − year) ÷ 3) ÷ bids from that letting in the pool
Every quantile, the typical low bid and the share of bids above ESC use these weights, which is why the field leans toward recent pricing without discarding older evidence.
07 · Definitions
Every statistic, precisely
- Letting
- One public contract opening: the bids an agency received for one contract.
- Pay line
- One pay item on one letting, as the agency printed it, with each bidder’s unit price for it.
- Public bid
- One bidder’s unit price on one pay line.
- Evidence pool
- Every public bid on the pay items matched to a published rate or a family of sizes, restated to one basis. A pool can serve several rates: 40 rates read 21 pools.
- Weighted quantiles
- p10, p25, median, p75 and p90. Sort a pool’s bids by price and place each bid at the midpoint of its slice of the total weight; the q-quantile interpolates linearly between the bids either side of q, and never goes below the lowest bid or above the highest.
- Median public bid
- The weighted p50 of the pool.
- Middle half · middle 80%
- p25 to p75 · p10 to p90.
- Typical low bid
- The weighted median, over the pool’s pay lines, of each line’s lowest bid.
- ESC as carried
ESC published typical × 1.1, as a general contractor carries it (section 09).- Position
ESC as carried ÷ median public bid − 1. Negative is under the median.- Share of bids above ESC
- The weighted share of the pool’s bids priced above ESC as carried.
- Lines where even the low bid was above ESC
- The count of pay lines whose lowest bid is above ESC as carried, out of all the pool’s pay lines.
- Rates under the median
- Rates with a position below zero: 33 of 40, and 27 of the 32 with strong evidence. 7 rates sit over the median.
- Median position
- The median, across all 40 rates, of each rate’s position: −22.8%. The median share of bids above ESC, taken the same way, is 61%.
08 · Evidence grades
Strong, moderate, or not published
- 8+ lettings
Strong
32
rates; 27 of them sit under the median bid.
- 3–7 lettings
Moderate
8
rates; 6 of them sit under the median bid. Read these as a direction, not a verdict.
- Under 3 lettings
Not published
—
No comparison is shown. The rate stays in the price book, unbenchmarked.
An item whose rates carry different grades is marked mixed: 1 of 18 items.
09 · The GC basis
Why ESC’s rate is compared at +10%
- ESC published typical
- $64.50/SF
- GC markup (× 1.1)
- +10%
- ESC as carried
- $70.95/SF
- Median public bid
- $103/SF
- Position
- −31%
Left out, the markup would flatter every rate: in this example the position would read −37% instead of −31%.
10% is one flat assumption applied the same way to every rate. Real markups on sub work vary by job and contract, so treat a position within a few percent of zero as at the median.
10 · What it is not
What the Price Check is not
- Not a quote or a guarantee
- ESC’s published rates are budget figures, and this places them in a public field. A firm price comes from your drawings, within 3 business days.
- Not one job’s price
- Public unit prices move with site, access and quantity, and some bidders unbalance line items, loading one pay item and lightening another. A single public price can sit far from the middle of the field, which is why the comparison reads the field.
- Not private work
- The field is public work, priced under agency specifications, prevailing wages, bonds and testing requirements. Private jobs can price differently.
- Not the whole job
- Mobilization, bonds and ground-condition adders are separate items in ESC’s price book and sit outside the per-unit comparison. Public bidders sometimes fold such items into their unit prices, one more reason to read the field rather than a single bid.
- Not a verdict on any firm
- The field is aggregated and anonymous. Nothing here rates, ranks or names another bidder.
- Not exact
- The price index, quantity-scale curve and diameter curves are estimates fitted to public data, and moderate-evidence rates rest on few lettings.
11 · Anonymity
No bidder, project or contract is identified
Each bid in public-bids.csv carries only these fields. Its price is restated (section 05), so it is not the figure printed on any tabulation.
poolitem_idunitprice_2026bid_yearagencyrank_on_linebidders_on_linediameter_inline_quantity
12 · Every pool
The evidence behind each comparison
The table scrolls sideways.
| Evidence pool | Unit | Lettings | Bids | Years · window | Region | Ref. qty | Size exp. b |
|---|---|---|---|---|---|---|---|
| Timber lagging, install (and remove where required)spl-lagging | SF | 5 | 35 | 2015–2026All years | New England | 853 SF | — |
| Temporary support of excavation, per SF of retained face (DOT basis)soe-face-temp | SF | 119 | 716 | 2019–20262019 onward | New England | 546.5 SF | — |
| Underpinning, pit-and-pour (hand-dug sequential pits, concrete)underpin-cy | CY | 4 | 20 | 2015–2023All years | New England | 5.5 CY | — |
| Rock anchor, drilled, grouted, threadbarra-anchor-bar | LF | 11 | 38 | 2012–2022All years | New England | 355 LF | — |
| Rock dowel / footing pin, drilled & grouted (untensioned) — Up to 10 ft embedmentra-dowel-10ft | EA | 11 | 36 | 2012–2023All years | New England | 35 EA | — |
| Rock dowel / footing pin, drilled & grouted (untensioned) — Added embedment over basera-dowel-lf | LF | 11 | 36 | 2012–2023All years | New England | 350 LF | — |
| Anchor performance testanc-test-perf | EA | 11 | 57 | 2019–20262019 onward | New England | 3.5 EA | — |
| Anchor performance test — Extended creep testanc-test-creep | EA | 4 | 16 | 2019–2024All years | New England | 3.5 EA | — |
| Anchor proof testanc-test-proof | EA | 11 | 57 | 2019–20262019 onward | New England | 6 EA | — |
| Soil nail, drilled & groutedsn-nail | LF | 3 | 17 | 2018–2023All years | New England | 1,200 LF | — |
| Shotcrete facing (temporary), by ESC's shotcrete partnersn-facing | SF | 3 | 20 | 2018–2022All years | New England | 2,000 SF | — |
| Soil nail verification / proof test — Verification testsn-test-verif | EA | 21 | 104 | 2019–20262019 onward | New England and national | 2 EA | — |
| Soil nail verification / proof test — Proof testsn-test-proof | EA | 22 | 105 | 2019–20262019 onward | New England and national | 6.5 EA | — |
| Soil nail wall, complete, per SF of face (assembly)sn-wall | SF | 26 | 118 | 2019–20262019 onward | New England and national | 2,000 SF | — |
| Drilled shaft / caisson excavation in soil, by diameterds-shaft-soil-exc | LF | 17 | 101 | 2019–20262019 onward | New England | 140 LF | 0.90 |
| Rock socket, by diameterds-socket-rock-exc | LF | 23 | 139 | 2019–20262019 onward | New England | 15.5 LF | 0.83 |
| Reinforcing cage, furnish & set (or set only)ds-cage | LB | 6 | 26 | 2013–2024All years | New England | 9,438 LB | — |
| Crosshole sonic logging (CSL) access tubesds-csl-tube | LF | 12 | 58 | 2019–20252019 onward | New England | 552.5 LF | — |
| Complete drilled shaft in soil (excavation, cage & concrete), by diameterds-shaft-soil-complete | LF | 13 | 107 | 2003–2026All years | New England | 140 LF | 1.13 |
| Pile / anchor load test programgc-load-test-static-axial | EA | 20 | 105 | 2019–20252019 onward | New England | As bid | — |
| Obstruction drilling, per LF by diameterobs-lf | LF | 13 | 78 | 2019–20262019 onward | New England | 16 LF | 0.98 |
13 · Downloads
Check the arithmetic yourself
bid-benchmarks.csv
40 rows · 25 columns
Every compared rate: ESC’s published low, typical, high and carried rate, the weighted field of public bids, ESC’s position in it and the evidence behind it.
25 columns
- key
- Row key: the price book item ID, then the size or variant after “|”
- item_id
- Price book item ID
- item
- Item name as the price book prints it
- label
- Size or variant; blank for an item’s own row
- unit
- Unit of every price in the row
- esc_low
- ESC’s published low
- esc_typical
- ESC’s published typical
- esc_high
- ESC’s published high
- esc_carried
- ESC’s typical × 1.1, as a general contractor carries it: the rate every comparison uses
- p10
- Weighted 10th-percentile public bid
- p25
- Weighted 25th-percentile public bid
- median
- Weighted median public bid
- p75
- Weighted 75th-percentile public bid
- p90
- Weighted 90th-percentile public bid
- low_bid
- Typical low bid: the weighted median of each pay line’s lowest bid
- vs_median
- esc_carried ÷ median − 1; negative is under the median
- share_above
- Weighted share of public bids above esc_carried, from 0 to 1
- lines_below_low
- Pay lines whose lowest bid is above esc_carried
- lines
- Pay lines in the pool
- bids
- Public bids in the pool
- lettings
- Lettings in the pool
- evidence
- “strong” (8+ lettings) or “moderate” (3–7)
- year_min
- Earliest bid year in the pool
- year_max
- Latest bid year in the pool
- agencies
- Agency code:lettings pairs, most lettings first, separated by semicolons
public-bids.csv
1,989 rows · 10 columns
Every public bid behind the comparison, pool by pool, restated to 2026 dollars at its own printed diameter, with its agency, year and place on its pay line.
10 columns
- pool
- Evidence pool ID, as listed in the pool table
- item_id
- Price book item ID the pool is matched to
- unit
- Unit of the price
- price_2026
- The bid’s unit price in 2026 dollars, restated to the pool’s reference quantity where it has one, at the pay line’s own diameter
- bid_year
- Year of the letting
- agency
- Agency code, as listed in the sources table
- rank_on_line
- 1 is the lowest price on its pay line; ties share the lower rank
- bidders_on_line
- Bidders priced on the pay line
- diameter_in
- Diameter printed on the pay line, in inches; blank when none is printed
- line_quantity
- The pay line’s printed quantity in the book’s unit, before restatement; blank when none
bid-benchmarks.json
JSON · CC BY 4.0
Basis, summary, agencies, items, rates and pool metadata, in the same envelope as the site’s other public JSON. The bids themselves are in the CSV.
14 · Updates
Rebuilt with every price book revision
- Benchmarks built
- September 14, 2026
- Price book
- Rev 1, issued Sep 14, 2026
- Valid through
- December 13, 2026
Found a number that looks wrong? Tell us the rate and what you believe it should be, and we will check it against the data. Report a correction.
From budget to firm number
Send drawings. Get a firm, line-item quote within 3 business days.
Email the plan set, boring logs and your bid date. We return a signed, line-item quote within 3 business days, as a subcontractor to the general contractor.
Or go back to the Budget & Price Check and budget a scope in 30 seconds.
