Methodology
Every number, with its work shown.
How we read construction inflation, and what makes our read different from what you have seen before.
The seven principles
1. Final cost beats input. Most construction cost commentary references PPI Inputs, ENR's Building Cost Index, or RSMeans. None of these capture what an owner actually pays. They miss margins. They miss productivity. They miss the difference between mill price and installed cost. We lead with final-cost (selling-price) indices for whole-project escalation. Input indices are reported separately and labeled as such.
2. Margins are the primary driver of inflation movement. Material and labor costs move slowly. Contractor and supplier margins move with activity. When work is plentiful, margins expand. When work is scarce, margins compress. A large share of inflation movement over a cycle comes from margin shifts that input indices never see. We track activity indicators (Architecture Billings Index, Dodge Momentum Index, ABC Construction Backlog, ENR Confidence Index) as margin signals alongside the headline indices.
3. Escalate to the midpoint of construction. Not to project start. Not to completion. To the midpoint, which is roughly 50-60% into schedule duration. Half the project's spending happens before that point. Our escalation calculator enforces this convention.
4. PPI Final Demand is a quarterly series. It is published monthly, but BLS revises it through quarterly contractor surveys that can flip the sign of the previous two months. We read it quarterly and report it that way. If you see a chart of monthly PPI Final Demand values elsewhere, treat those points with skepticism.
5. Annual averages beat Dec-over-Dec. Year-over-year inflation should be annual-average versus annual-average. December-over-December comparisons can mislead by 5 to 10 percentage points in volatile years. We report annual averages as headline.
6. Tariffs cause shadow inflation in PPI. PPI excludes imports by definition. But tariffs cause domestic producers to raise prices on competing domestic products, which is what PPI sees. The 2018 25% steel mill tariff applied to roughly 30% of US steel use but caused average domestic Steel Mill Products PPI to rise 18%. Watching PPI alone understates tariff impact because it misses the imported portion entirely.
7. Stage-of-input dilutes shocks. A 25% tariff on mill steel does not produce a 25% increase in installed cost. Mill steel is roughly 25% of fabricated structural steel installed cost, which is roughly 10% of a typical commercial building cost. The same 25% tariff lands as roughly 0.625% of building cost. We walk this ladder transparently and show the math. Reports that don't are misleading their readers.
How to use this report
This report is for estimators, preconstruction directors, owners, and developers making real cost decisions. Each section identifies its methodology, sources, and limitations. Ranges are reported as ranges, not point estimates. Numbers are sourced inline where possible and on this methodology page where they're not.
If a number in this report would change a bid by more than 1%, verify it against your firm's own historical cost data before relying on it. Our work is rigorous, but no third-party analysis substitutes for your firm's experience.
What we don't do
We don't publish point forecasts. We publish ranges with documented uncertainty.
We don't paywall our primary data. The dashboard and quarterly are free. The methodology is open.
We don't republish ENR, RSMeans, or other copyrighted indices. We reference them and cite their methodologies. We do not reproduce their values.
We don't predict geopolitical events. We model their cost transmission once they're underway.
We don't defer to incumbents. We cite established methodological concepts where we build on them. We compete on rigor and form factor everywhere else.
For deeper historical context on construction inflation methodology, we recommend Ed Zarenski's Construction Analytics blog at edzarenski.com.
How the forecast performs
Every number the calculator produces comes from a model specification that was locked before it was evaluated, then run against history in a rolling-origin backtest: stand at each past month, forecast forward using only data available then, and compare against what happened. Errors are in percentage points of cumulative escalation. Updated with each data refresh; last run 2026-06-11.
| Horizon | MAE | Bias | MAE pre-2020 | MAE 2020+ | vs naive mean | vs persistence | vs AR(1) |
|---|---|---|---|---|---|---|---|
| 6 months | 1.6 | -0.2 | 0.7 | 4.0 | +12% | +3% | +4% |
| 12 months | 3.7 | -0.6 | 1.3 | 9.9 | -11% | +7% | +12% |
| 24 months | 7.5 | -2.3 | 2.2 | 21.2 | -20% | +22% | +33% |
| 36 months | 10.3 | -5.4 | 5.1 | 23.9 | -11% | +30% | +53% |
| Series | Origins | MAE | MAE ex-spike | Error p10 | Error p90 | Held-out coverage |
|---|---|---|---|---|---|---|
| New office construction | 144 | 3.7 | 2.5 | -7.3 | 2.4 | 15% |
| New warehouse construction | 162 | 5.0 | 3.3 | -4.3 | 5.6 | 7% |
| New school construction | 150 | 3.9 | 3.2 | -6.4 | 4.1 | 28% |
| New industrial construction | 132 | 4.8 | 3.4 | -9.7 | 3.0 | 30% |
| Final demand: construction, private | 103 | 5.0 | 3.5 | -11.3 | 6.1 | 12% |
| Final demand: construction, government | 103 | 4.2 | 3.0 | -8.7 | 4.2 | 15% |
What the numbers say, plainly
In the pre-2020 regime the model is genuinely useful: mean error under 1.6 points at horizons up to a year. The 2021-22 inflation spike dominates everything else; no model driven by history alone forecast +20% cumulative escalation, and ours did not either. The blend beats persistence, random walk, and AR(1) at most horizons, but at 12 months and beyond the naive historical mean beats our blend. We publish that rather than hide it: the trailing rate helps at short horizons and hurts at long ones, which is itself useful guidance, and the specification stays locked until a revision is published with its own out-of-sample record.
Honest limitations
The specification was locked before evaluation and has not been tuned on results. Evaluation uses revised data rather than the vintages available in real time, which typically flatters a backtest slightly. Monthly forecast origins overlap, so errors are serially correlated and the effective sample is smaller than the origin counts suggest. The final-cost series only begin in 2004-2009, so the long-run averages are shorter than the 30-year windows the methodology prefers. And the calculator's band is calibrated on a history that includes one regime break; the next one will not look like the last.