Methodology

Published. Versioned. Defensible.

An underwriting reviewer reads this page to decide whether the data is defensible enough to put behind a claim reserve. Every formula is here. Every sample size is here. The version stamp is here. Verisk's Xactimate methodology sits behind NDA. CoreLogic publishes summary papers without sample sizes. HomeQuotr publishes the formulas, the caps, and the version key in plain text below.

HomeQuotr publishes its full pricing methodology. Five point seven million U.S. residential building permits, classified to six trades across 100 metros, aggregated into median and percentile pricing with a 1.8210 IQR confidence interval at N at or above 30. Every aggregate row carries the version key hq_methodology_v1.0_2026 and a permit count quality score from 0 to 100.

Inputs

  • 5,721,805 U.S. residential building permits.
  • 100 U.S. metros: Tier A (17, weekly refresh), Tier B (18, monthly), Tier C (12, monthly), Tier D (53, monthly).
  • Six trades: HVAC, roofing, electrical, plumbing, foundation/structural, solar.
  • Source documents: municipal permit portals, state contractor license registries, SAM.gov, IRS Form 5695 (federal Solar Investment Tax Credit), BLS PublicAPI (CPI-U, PPI commodities, OES per-MSA wage).

Filtering

Residential-only per-metro filter; commercial permits excluded under jurisdiction-specific rules. Per-trade valuation caps protect the median from commercial-misclassified or scope-bundled tail values.

TradeValuation cap
HVAC$30,000
Electrical$25,000
Plumbing$20,000
Roofing$40,000
Foundation/Structural$50,000
Solar$80,000

Permit count quality gates govern publication.

Permit countBehavior
Under 30No city-specific aggregate. State or metro fallback shown with explicit geographic scope label.
30 to 99Published with permit count surfaced inline.
100 and abovePublished with full distribution histogram.

Statistical aggregation

Confidence interval on the median

IQR-based CLT robust standard error. Lower bound clamped to zero. Valid for N at or above 30. Sub-category floor N=15 borderline, flagged in the severity sub-document.

CI = median ± 1.8210 × (p75 − p25) / sqrt(n)

Permit count quality score

Equal-thirds composite of sample size, recency, and source verifiability. Clamped 0 to 100.

score = (100 × LEAST(1, LOG10(n) / 3)
       + 100 × share_within_365d
       + 100 × share_with_source_url) / 3

Severity distribution

20 bins over p5 through p99, returned as [{bucket, min, max, count}] JSONB matching the distribution_buckets field shape so one client parser handles both.

Time-series normalization (Scale+ tier)

BLS CPI-U deflates nominal permit values into the current-quarter dollar. PPI commodities (steel, copper, lumber, asphalt shingles, refrigerant) overlay material-cost shifts. OES per-MSA per-trade wage data overlays labor-cost shifts. The comparable observation for a 2022 Dallas HVAC permit at $7,400 is the deflated value, not the nominal one. The normalization is gated to Scale and above because actuarial filings need indexed series, not nominal series.

Versioning

Every pricing_aggregates row stamps methodology_version = 'hq_methodology_v1.0_2026'. A version bump requires a sub-document committed to this directory, a row added below, and a 30-day reviewer comment window before the new key takes effect. Reviewers can pin a tier contract to a specific version key.

What HomeQuotr does not do

  • No national averages backfilled into city-specific cells.
  • No consumer-submitted prices.
  • No contractor self-reported rates.
  • No third-party cost-guide estimates.
  • No proprietary normalization that cannot be reproduced from the formulas above.

How to challenge a number

Every row exposes n, date range, source URLs, confidence interval, and version. Disagree with a number? Email kevin@homequotr.com with the row, the alternative reference, and the disagreement. Disputes and responses are archived for review on request.

Version stamp

  • Current: hq_methodology_v1.0_2026
  • Effective: 2026-04-25
  • Next review: 2027-Q1 or earliest material change.
Read the severity methodology

The full API response shape lives at /api/docs.