ConstructionCalc

How we get the numbers

Methodology

This page documents how every cost and volume number on ConstructionCalc is produced — the formulas, the named primary sources with pinned identifiers, and the discipline that keeps the numbers honest.

Principle 1

Compute, never copy

Every cost we display is computed from first principles using public primary data — not copied or paraphrased from a competing aggregator. We do not use, scrape, paraphrase, or synonymize data from RSMeans, Homewyse, HomeGuide, or Angi. Those sources are either licensed and non-redistributable, or themselves derived; resurfacing their numbers under a new label is both a policy violation and an integrity problem.

The advantage of computing rather than copying is that every figure has an auditable path: a named dollar anchor, a named index series, a formula, a month-stamped result. When the math changes, our number changes — and we can show why. When you ask why we believe a figure, we can hand you the receipt.

Principle 2

The cost formula

For tools that report installed cost, every figure is built from the same recipe. Quantity comes from the volume math (below); price comes from a researched dollar anchor escalated by a labor or materials index; labor adds a productivity-adjusted wage; regional and overhead factors round out the build.

installed cost = material_qty × material_unit_price
+ labor (wage × productivity hours)
× regional_factor × (1 + waste%) × (1 + overhead/profit%)

Output is always a range — never a four-decimal "$23.47" precision claim that public data cannot support. Every component of the formula links back to a named source on the tool page and in the source registry below.

Principle 3

PPI as escalator (index, not a price)

A Producer Price Index is an index, not a dollar price. We do not print a PPI index value as a cost. Instead, we use the index's month-over-month change to escalate a real dollar anchor to the current month.

current_price = baseline_dollars × (latest_index ÷ baseline_index)

Worked example. The gravel calculator's wholesale anchor is $18.50 per metric ton — the USGS 2025 actual for crushed stone, f.o.b. plant. The escalator is BLS series WPU1321 (Construction Sand, Gravel, and Crushed Stone PPI, index 1982 = 100), pulled via the FRED API. The December-2025 baseline index value is frozen in the page's data file alongside the dollar anchor.

At render time, the page asks FRED for the latest observation. If the index has moved from 530.831 in December 2025 to, say, 547.795 in February 2026, the displayed wholesale figure is $18.50 × (547.795 ÷ 530.831) = $19.09 per metric ton. The text labels the figure honestly: "current (escalated, as of Feb 2026)." We use the change in the index — never the index value itself — as a price.

Principle 4

Live or frozen — never broken

The escalation step depends on a third-party API. APIs go down, rate-limit, or — in our development environment — sit behind a network boundary. Two principles cover this: we never throw to the page, and we never lie about what data we showed you.

If the FRED observation is reachable, the cost figure is the live escalated value, and the page labels it with the observation month: "as of June 8 2026." If FRED is unreachable for any reason — missing API key, network error, non-2xx status, missing/malformed observation — the page falls back to the frozen baseline (the last verified dollar anchor) and labels the figure accordingly: "frozen — last verified 2025."

Either way the visitor sees a number with an honest provenance. They never see "NaN," "—," or a stale figure presented as fresh.

Principle 5

Real ≠ right — pin every identifier

The hardest sourcing trap is the near-identically-named series. The Ready-Mix Concrete PPI we use is PCU327320327320 (base June 1981 = 100). There is also a real-but-different series PCU3273232732 (base December 2003 = 100). Both publish under the same human-readable label; only one carries the base-period continuity we need.

Sourcing rule: every identifier shown on a page is pinned by code + base year + units + coverage, linked to its source, verified and frozen in the page's data file, and never typed from memory. Showing a wrong-but-real code is worse than showing none.

The pinned-identifier discipline applies to every PPI series, every USGS publication, every ASTM standard, and every manufacturer spec we cite.

Layer A

Volume constants

The "how much" math. Stable engineering values, hardcoded once and attributed to a spec sheet or standard. No API; no licensing; no escalation. These are the entire backend for every volume-only calculator (gravel, drywall, rebar, roofing, etc.).

ConstantValueSource
Cubic feet to cubic yards÷ 27Geometry (3 × 3 × 3 = 27 ft³ per yd³)
Coverage per cubic yard324 ÷ depth(in) ft²Geometry (27 ft³ × 12 in/ft ÷ depth ÷ 1 ft³/ft²)
Gravel density~1.35–1.50 US tons / yd³Aggregate-supplier reference values, per type
Ready-mix concrete density (ACI normal-weight)~150 lb / ft³ACI normal-weight + Cemex (matches concrete & weight calc usage)
Bag-mix concrete cured density~133 lb / ft³Quikrete / Sakrete product spec sheets
Concrete bag yield (80 lb)0.60 ft³Quikrete / Sakrete spec sheets
Rebar weight (#3–#11)0.376 lb/ft → 5.313 lb/ftASTM A615 / A615M (Standard Specification for Deformed and Plain Carbon-Steel Bars)
Drywall sheet4 × 8 = 32 ft²; 4 × 12 = 48 ft²USG manufacturer specs
Roofing square100 ft² = 3 bundlesAsphalt-shingle manufacturer specs

Layer B

Named primary sources (pinned)

The dollar anchors and the escalators. Every cost figure on the site traces to one of these — by code, base period, units, and retrieval date.

SourceTitlePinned ID + baseHow we use it
USGSMineral Commodity Summaries 2026 — Crushed StoneMCS2026 · Annual; $18.50 / metric ton 2025 actual, f.o.b. plantWholesale dollar anchor for crushed-stone tools (gravel, base, paver base).
USGSMineral Commodity Summaries 2026 — Construction Sand & GravelMCS2026 · Annual; ~$14.50 / metric ton 2025 actual, f.o.b. plantWholesale dollar anchor for sand tools.
BLS via FREDPPI — Construction Sand, Gravel, and Crushed StoneWPU1321 · Index 1982 = 100, monthlyEscalator used to keep the USGS crushed-stone anchor current month-by-month.
BLS via FREDPPI — Ready-Mix Concrete ManufacturingPCU327320327320 · Index Jun 1981 = 100, monthlyEscalator for the ready-mix concrete cost cluster (slab, footing, column).

USGS Mineral Commodity Summaries 2026 is the annual report published in February of the following year; we use the 2025 actuals (the latest available) as our dollar anchors. BLS series via FRED give us a monthly index to escalate against.

Principle 6

Ranges, not false precision

Public data supports a range, not a single number to the cent. A cost figure shown as "$6.50–$10.50 per ft² (US average)" is honest about the underlying uncertainty; "$8.27 per ft²" is not. We use ranges on every cost surface — the calculator output, the inline figures in the prose, and the per-type retail tables — and we name what the range represents (typical bulk before delivery, retail delivered, decorative markup, etc.).

Where a single figure does appear — the live wholesale figure on the gravel page, for example — it is the result of a single transparent calculation against a named anchor and a named index, with the "as of" month visible alongside.

Operations

Update cadence

Wholesale figures escalate automatically at render time against the latest PPI observation; there is no manual step to "refresh" them. The dollar anchors themselves (USGS 2025 actuals) are refreshed once a year when the next Mineral Commodity Summaries publish in February. The volume constants in Layer A are stable engineering values and only change if the relevant standard does.

The retail / delivered / bagged price ranges shown on tool pages are researched 2026 planning figures, reviewed alongside any tool-page edit and labelled with the year. They are not live-escalated because retail markup, delivery, and decorative premiums vary regionally in ways the wholesale PPI does not capture.

Editorial corrections and methodology updates are noted by the page's "Last updated" line. The current edition of this methodology page was last updated June 8, 2026.

Use

Estimates only — verify before ordering or building

Every figure on ConstructionCalc is an estimate intended for planning. Material weights vary with moisture, compaction, and supplier. Prices vary with region, quantity, delivery distance, and time of year. Always confirm with a qualified professional and your supplier before ordering, scheduling labor, or building.

Read more in our editorial policy and terms.