CostCandor

= published prices × your house

Reference

  • sources
  • corrections
  • the contract every calculator follows

Methodology

This page is the reason the site exists. If a number appears in a CostCandor calculator, this page tells you where it came from, what we assumed, and when it was last checked — for every trade we cover.

The contract every calculator follows

  1. Published formula. The exact arithmetic is printed on the calculator page and restated here. No black boxes.
  2. Sourced inputs. Every data file carries a source and an asOf date, with additional source and asOf fields on individual price tables where we have them. If we can't document an input, we don't ship the tool.
  3. Ranges, not point estimates. Real projects vary by region, access, and condition, so we always publish a low / typical / high band.
  4. Regression tests. Every calculation function has automated tests with hand-computed expected values that run before any deploy. A formula change that shifts results must change the tests, visibly.
  5. Review stamps. Calculators and guides display a "last reviewed" date plus the pricing data's as-of date.

Each calculator reads one dataset file, and each dataset follows the same recipe: dated retail or distributor prices for materials and equipment, 2026 contractor cost guides (HomeGuide, Angi, Homewyse, This Old House) for installed and labor bands, a Bureau of Labor Statistics producer price index (PPI) where one exists for the trade, and the trade's federal wage series as labor context — a sanity floor and a regional-spread reference, not a formula input. To be explicit about the derivation order, because it matters: the dollar bands come from the published cost guides and observed prices; the BLS wage series is printed alongside them so you can judge whether a band is plausible for your market, and billed rates of $45–$200/hr span roughly 1.5x to 6.5x the raw median wage once overhead, insurance, and profit load in. The sections below give the full trail, trade by trade. All current datasets are as of 2026-07.

Roofing

Powers the roof replacement calculator. Three classes of sources, cross-checked against each other:

Source classWhat we take from itCadence
U.S. BLS Occupational Employment and Wage Statistics — occupation 47-2181 Roofers (May 2025 national median $26.65/hr; state medians from the OEWS state file)Labor rates and the state-by-state wage index behind regional spreadAnnual OEWS release
National retail shelf pricing (Home Depot, Lowe's — e.g. GAF Timberline HDZ $42.97/bundle at the Jun 2026 shelf price; $35.97–39.97 in Feb 2026)Material floor prices: shingles, underlayment, flashing, fastenersNo fixed cadence; newest shelf price in the dataset is dated Jun 2026
Published 2026 contractor cost guides (This Old House 2026-06-05, Homewyse May 2026, HomeGuide, Angi)Installed cost per square including labor, and regional spreadSet by each publisher, not by us; each guide cited as dated at left

plan area = footprint expanded by the eave overhang on all four sides (standard 15 in / 1.25 ft; rectangular footprint at a 1.5:1 aspect ratio assumed)

roof area = plan area × pitch factor (1.02 flat · 1.08 low · 1.20 medium · 1.42 steep)

squares = roof area ÷ 100

band cost = squares × 1.10 waste × material $/square(band) + squares × tear-off $/square(band)

The overhang expansion models the roof edge extending past the walls — typically 12–24 in at the eaves — so footprint-only estimates undercount every roof with eaves (about 14% on a 1,500 sq ft footprint at the standard setting; the calculator's None option reproduces a flush-eave roof). The pitch factors are standard geometric slope multipliers used in roofing takeoffs; the 10% waste factor is the industry's conventional allowance for simple-to-moderate roofs. All three are assumptions you can disagree with — which is exactly why they're printed. Shelf prices carried in the dataset are dated Feb–Jun 2026; BLS wage files retrieved 2026-07-05.

Painting

Powers the interior painting and exterior painting calculators. Labor basis for both: BLS OES May 2025 median hourly wage for Painters, Construction and Maintenance — occupation 47-2141, national median $23.75/hr, series OEUN000000000000047214108, pulled via the BLS Public Data API on 2026-07-04.

DatasetInstalled-rate cross-referencesRetail material anchors (retrieved 2026-07-04)
Interior (painting-interior.json)Homewyse May 2026 (walls $1.29–$2.78/sq ft, ceilings $1.37–$2.95/sq ft, trim $1.60–$3.39/lin ft, doors $163–$332); Angi 2026 (walls $2–$6/sq ft, 12x12 room $400–$950); HomeGuide 2026Glidden Essentials ~$20/gal, Behr Premium Plus ~$34/gal, Behr Marquee ~$50–60/gal, SW Duration ~$80/gal (Home Depot listings)
Exterior (painting-exterior.json)Homewyse May 2026 (house exterior $2.20–$4.37/sq ft of wall; stucco $2.45–$4.75; two-story $3.45–$6.33; trim $2.55–$5.21/lin ft; shutters $114–$235); Angi 2026 ($1.50–$4/sq ft overall, by siding type); HomeGuide 2026Behr Ultra Exterior $38–42/gal (Home Depot), Valspar mid-tier $25–35/gal (Lowe's), SW Duration ~$80/gal

interior cost = (wall sq ft × wall rate + ceiling sq ft × ceiling rate + trim ft × trim rate + doors × per-door) × coat factor

exterior cost = footprint × story factor × (siding rate + prep adder) [+ trim & shutters]

One honest caveat, stated in the data files themselves: BLS publishes no PPI series for painting contractors (NAICS 238320 returns no data — verified against the BLS API 2026-07-04), so this vertical is anchored on OES wages plus dated retail paint prices instead of a producer price index.

Plumbing

Powers the water heater, sewer & water line, and whole-house repipe calculators. Labor bands for all three come from HomeGuide and Angi 2026 installed-labor surveys ($45–$200/hr billed). Wage context, printed with every dataset but not fed into any formula: BLS OES May 2025, SOC 47-2152 Plumbers, Pipefitters, and Steamfitters — national median $30.67/hr, series OEUN000000000000047215208, retrieved via the BLS Public Data API 2026-07-04. The gap between the two is real and worth naming: billed rates span roughly 1.5x to 6.5x the raw median wage, so the BLS series works as a floor check and a state-by-state spread reference, never as the source of a dollar band.

DatasetPrice sourcesIndex / volatility tracking
Water heater (water-heater.json)Home Depot listed prices (Rheem Performance-line tanks; Rinnai RX199iN condensing tankless), Ferguson (Navien NPE-240A2), AF Supply (Rheem RTEX electric tankless; Rheem PROPH50 and AO Smith HPTS-50 heat pump units, with US Supply and Consumer Reports cross-listings, retrieved 2026-07-22); code-upgrade and circuit adders from HomeGuide water-heater-installation-cost (2026-01-02); permits: PermitCalculator 2026 survey of 27 US cities (avg $92)BLS PPI Domestic Water Heaters, series WPU106601 = 646.179 (May 2026)
Sewer & water line (sewer-line.json)Per-linear-foot installed bands from HomeGuide and Angi 2026 guides, NuFlow published CIPP lining rates and 2026 trenchless cost guides (which anchor the flat trenchless mobilization band), This Old House 2026 sewer guide (cost data from Angi), Anchor Foundation Repair published under-slab tunneling rates, retrieved 2026-07-04 and re-observed 2026-07-22BLS PPI plastics pipe, series WPU07210603 = 181.528 (May 2026); no active industry PPI exists for NAICS 237110
Repipe (repipe.json)Angi 2026 per-fixture anchor ($650–$1,500, ~$1,200 average), calibrated to installed $/sq ft ranges (PEX-A $3.50–$7.00, copper $8.00–$14.00); retail SKUs observed 2026-07: Mueller Streamline Type L copper, SharkBite/Apollo PEX-ABLS PPI Copper and Copper Alloy Pipe and Tube, series WPU10250239, +22.5% Mar 2025 → Feb 2026 (314.655 → 385.367)

water heater total = unit + labor [+ gas line + venting + electrical + mounting + heat-pump specifics] + code upgrades + permit & disposal

sewer total = length × $/ft band + cast-iron adder + surface restoration + trenchless mobilization + inspection + permit

repipe: fixtures = 5 + 3.5 × baths + 0.5 × (sq ft ÷ 1000); total = fixtures × $/fixture × story factor + drywall + permit

Where a dataset marks values as interpolated (some water-heater unit bands, the sewer depth-flag and mobilization bands, the cast-iron adder), the number is bracketed between observed prices or derived from a documented worked example — flagged in the data file with its derivation, never silently blended. And where no defensible number exists at all — deep-trench per-foot pricing is the standing case — the calculator flags the estimate as out-of-band instead of inventing a multiplier.

HVAC

Powers the HVAC sizing & SEER savings, AC replacement, and full HVAC replacement calculators. Labor basis: BLS OES occupation 49-9021, Heating, Air Conditioning, and Refrigeration Mechanics and Installers — national median $29.33/hr, May 2025 estimates, series OEUN000000000000049902108 — plus HomeGuide/Angi 2026 guides for billed rates ($75–150/hr).

DatasetPrice / input sourcesIndex
AC replacement (ac-replacement.json)HVACDirect.com published condenser list prices (Goodman GLXS/GLXT R-32 series), retrieved 2026-07-04, marked up to installed cost with a documented contractor-markup factorBLS PPI Air-Conditioning & Warm Air Heating Equipment Mfg, series PCU333415333415 = 317.975 (May 2026), +3.2% YoY
Full system (hvac-system.json)HVACDirect.com list prices retrieved 2026-07-04: Goodman GR9S 80% AFUE furnace: published list $1,733 (July-4th promos $1,285–$1,386 observed; two-stage GR9T promos $1,397–1,414), ACiQ 96% AFUE $1,883 list; condenser prices referenced from ac-replacement.json; duct adders from Angi/HomeGuide/This Old House 2026 editionsSame PPI series PCU333415333415
Sizing & SEER (hvac-sizing.json)Sizing bands are a budget-planning interpolation of published rules of thumb framed on ACCA Manual J; full-load cooling hours from the EPA dataset in the ENERGY STAR ASHP savings calculator (parsed 2026-07-04); default electric rate from EIA Electric Power Monthly Table 5.6.A, April 2026 (release 2026-06-25); SEER→SEER2 per the DOE 2023 appliance standard (M1 test procedure)PPI PCU333415333415 as trend context

AC total = (condenser list + matched components) × markup + labor + add-ons

system total = (furnace list + condenser list + coil) × markup + labor + duct adder

BTU/h = sq ft × BTU-per-sq-ft band (climate × insulation) × (1 + 0.5 × (ceiling ft ÷ 8 − 1)); tons = BTU/h ÷ 12,000

annual kWh = tons × 12,000 × full-load hours ÷ (SEER2 × 1,000); old SEER2 ≈ old SEER × 0.95

The sizing tool is a planning screen, not an ACCA Manual J calculation — a real load calculation accounts for windows, orientation, and infiltration, and the page says so. Use it to sanity-check a contractor's proposed tonnage, then ask for the Manual J.

Electrical

Powers the electrical panel upgrade calculator. Labor basis: BLS OEWS May 2025, occupation 47-2111 Electricians — national median $30.38/hr, series OEUN000000000000047211108, retrieved via the BLS Public Data API 2026-07-04. Equipment: Home Depot / Lowe's / Summit.com retail panel and meter-socket listings retrieved 2026-07-04. Cross-checks: 2026 contractor cost guides — This Old House (2026-03-31), HomeAdvisor (2026-06-17), HomeGuide, Angi, Homewyse (May 2026 pricing). Equipment escalation tracked with BLS PPI switchgear & switchboard apparatus, series PCU335313335313, through May 2026.

panel total = job base (or FPE/Zinsco band) + checked service-entrance work + permit

subpanel = base + $/ft × feet beyond 10 + permit

How the tools are kept consistent with each other

Where two calculators price overlapping scope, the datasets carry a written cross-file contract, and the regression tests enforce it. The current one: the AC replacement calculator's 3-ton mid-tier (SEER2 15.2) condenser-plus-coil installed typical — ≈$7,503, out of a full band of ≈$5,784–9,372 — must fall inside the full HVAC replacement calculator's AC-component envelope for the matching 1,700–2,100 sq ft tier ($4,800–8,500). It does as of 2026-07. The check is on the typical value, not on the ends of the band — the band's high end runs past the envelope, and both data files scope the contract to the typical accordingly; the contract is annotated in both data files and re-verified by tests/verify_ac-replacement.mjs and tests/verify_hvac-system.mjs whenever prices are edited. If two of our tools ever disagreed about the same job, that would be a bug — and the tests are built to catch it before you do.

What we deliberately don't do

  • We don't collect your address, email, or phone number to show results, and we never sell leads to contractors.
  • We don't publish a tool whose data pull isn't documented on this page.
  • We don't present a single-number "your cost" figure. Any site that does is guessing with confidence.

Checking the bands against public records

Publishing a formula is one thing; letting an outside number test it is another. The price records section opens one public pricing source at a time — building permits, state reports, public bid tabulations — and asks whether it can check a band at all. These are the rules that section runs on, written down here so they are harder to bend later.

Four verdicts, and no fifth. A record lands on band confirmed, band moved, comparison rejected, or not a band check. When a comparison goes against us the record is published with the band as it stood at the time of the check, and any correction to the underlying data is dated below it as a separate entry. The original figure is never overwritten. A ledger with no corrections in it is evidence of editing, not of accuracy.

The band has to predate the check. Every record prints two dates: when the outside figures were retrieved, and the asOf stamp on the pricing data behind our band. The second is always the earlier of the two, and the commit history for this site shows it was already fixed at that value before the retrieval — the band cannot be quietly fitted to a result after seeing it.

No accuracy score, ever. We will not publish a figure for how often our calculators are right, and you should treat any cost site that does with suspicion. Our published bands run from 1.8× low-to-high on a roof replacement to 3.5× on a sewer line, because that is honestly how much regional labour, access, and site conditions move those jobs. A test of whether real prices fall inside a range that wide is one almost any range would pass; reporting the pass rate would be selling the width of the band as a virtue. It would also sit badly beside the accuracy disclaimer in our terms, in the same voice, on the same site.

What we looked at and did not use. Choosing which records to open is the one part of this that no automated check can police — a source dropped quietly leaves no trace. The best we can do is publish the discards with reasons, which the price records index does. Sources have been set aside for lacking the denominator needed to compare anything, for carrying homeowner addresses we will not republish, and for licence terms that forbid reproducing the tables the numbers live in.

Corrections

Found a stale price or a formula error? Email us via the contact page. Corrections ship with a visible change to the review stamp on the affected page.

Cost math by CostCandor