← All studies · askamerica.ai

Home construction in wildfire-prone US counties rose ~20% over the last decade even as insurers sharply pulled back coverage in those same areas

Census Building Permits x USFS Wildfire Risk to Communities (askamerica), 2015-2024; insurer retreat evidence from CA Dept of Insurance, AM Best, and trade press

Wildfire-Prone Construction Keeps Rising as Insurers Retreat Census building permits x USFS Wildfire Risk to Communities, top-decile-risk counties, 2015-2024; CA FAIR Plan data from CDI/AM Best Housing permits, top-decile wildfire-risk counties (US) +20.1% 2015-19 vs 2020-24 1.18M to 1.42M units authorized CA FAIR Plan (insurer of last resort) exposure +259% Sept 2021 to Mar 2025 $599B total exposure by March 2025 Housing units permitted, top-decile wildfire-risk US counties 0 200,000 400,000 600,000 800,000 1M 1.2M 1.4M 1.6M Period Units permitted 2015-2019 2020-2024 High wildfire-risk counties (n=283) California high-risk counties only (n subset) Nationally +20.1%; within CA alone +3.1% (CA overall growth is much slower for unrelated supply reasons) Permit growth rate by wildfire-risk quintile (2015-19 to 2020-24) 0.0 0.1 0.2 0.3 0.4 0.5 0.6 Wildfire risk percentile (national rank, mean of quintile) Growth rate Q1 (~0.08) Q2 (~0.25) Q3 (~0.44) Q4 (~0.66) Q5 (~0.89) Dose-response test across 2,218 counties with >=50 units in 2015-19; trend p=0.067 (marginal), not monotonic at the very top bin Housing figures from Census Building Permits Survey via askamerica housing.building_permits/housing_permits_by_county, joined to USFS Wildfire Risk to Communities (disasters.wildfire_risk_by_county, risk_national_rank). Insurance figures from CA Dept of Insurance / AM Best / Insurance Business / Stateline reporting, not in the askamerica corpus (no insurer non-renewal table exists here). AskAmerica · askamerica.ai
SVG

Summary

Yes to both halves of the question, and they are happening at the same time in the same places. In the top decile of US counties by USFS wildfire risk (283 counties), Census-reported new-home construction permits rose from 1.18 million units (2015-2019) to 1.42 million units (2020-2024) — +20.1%, comparable to growth nationwide. A county-level dose-response test (2,218 counties, quintiles of wildfire risk) shows permit growth generally rising with wildfire-risk percentile, from +27% in the lowest-risk quintile to +53% in the second-highest, before easing slightly in the highest-risk quintile — a marginal but real signal (p=0.067) that building has NOT slowed in riskier places. Meanwhile, insurers have been retreating hard from exactly these areas: in California, insurer-initiated non-renewals in the most fire-prone ZIP codes grew nearly 800% between roughly 2015 and 2021, State Farm, Allstate, Farmers and USAA all paused new homeowners policies or issued mass non-renewals since 2021, and the state's FAIR Plan (insurer of last resort) grew from $50B exposure in 2018 to $599B by March 2025 — a 259% jump just since September 2021, with policy count up 276% from 2018-2024. So construction in wildfire-prone areas has kept climbing throughout the exact period private insurers were leaving those same areas, pushing risk onto public/last-resort insurance mechanisms rather than slowing new building.

Housing construction in wildfire-prone counties: the numbers

Using askamerica's housing.housing_permits_by_county (Census Building Permits Survey, county-annual) joined to disasters.wildfire_risk_by_county (USFS Wildfire Risk to Communities, risk_national_rank = national percentile of risk-to-structures), and comparing two equal five-year windows (a same-length before/after split to avoid an arbitrary baseline). Every cut below — the national high-risk group, the quintile dose-response test, AND the California-only cut — filters the join with the predicate risk_national_rank IS NOT NULL (written as r.risk_national_rank IS NOT NULL in the California query, where the table is aliased r): of the table's 3,144 US counties, exactly 1 (0.03%) has a null risk rank and is excluded by this predicate, because it cannot be assigned a wildfire-risk percentile at all. That excluded county is not in California, so it is not the reason the CA figure below excludes anyone in practice — re-running the California query with OR r.risk_national_rank IS NULL added back in produces the identical totals (449,997 → 464,032, with vs. without: no change), confirming the exclusion changes nothing for that cut. For the national and quintile cuts, the excluded county's removal has no discernible effect on the reported growth rates given the remaining sample sizes (2,218-3,143 counties per cut).

This is directionally consistent with the peer-reviewed literature on the wildland-urban interface (WUI): USFS/SILVIS Lab research finds the WUI added 2.6 million new houses in 2010-2020, and grew 47% in home count and 31% in acreage from 1990-2020 nationally, even though growth had slowed from the faster 1990-2010 pace.

Insurers pulling back: the evidence

Askamerica's corpus has no insurer non-renewal, policy-count, or FAIR Plan table (search_catalog returned no match for "homeowners" non-renewal data), so this half of the answer draws on primary regulatory and trade-press reporting rather than the connector:

Putting the two together

The two trends are not just coincidental — they describe the same geography moving in opposite directions on two different axes. Construction has continued (and in relative terms, accelerated somewhat with risk level) in wildfire-exposed counties nationally, while private insurers have been systematically exiting the highest-risk slice of exactly those counties, most visibly in California. The net effect is that a growing share of the risk from new and existing wildfire-zone construction is being absorbed by public/last-resort insurance mechanisms (the FAIR Plan) rather than by ordinary private homeowners coverage, and by homeowners going uninsured altogether — not by slower building. Whether new construction is itself accelerating the insurer retreat (higher exposure concentration) or the retreat is simply lagging construction that already happened is a causal question this analysis does not settle; the data here establishes the correlation and timing, not the mechanism.

Every query behind this report

6 warehouse calls ran in this session, in order. Each is reproducible against the same snapshot.

query — 4 rows — 7205 ms

WITH risk AS (
  SELECT county_fips, risk_national_rank,
    CASE WHEN risk_national_rank >= 0.9 THEN 'high_wildfire_risk' ELSE 'other' END AS risk_group
  FROM disasters.wildfire_risk_by_county
  WHERE risk_national_rank IS NOT NULL
),
permits AS (
  SELECT county_fips, CAST(year AS INT) AS yr, total_units
  FROM housing.housing_permits_by_county
  WHERE CAST(year AS INT) BETWEEN 2015 AND 2024
)
SELECT r.risk_group,
  CASE WHEN p.yr BETWEEN 2015 AND 2019 THEN 'first_half_2015_2019' ELSE 'second_half_2020_2024' END AS period,
  SUM(p.total_units) AS total_units_sum,
  COUNT(DISTINCT p.county_fips) AS n_counties
FROM permits p
JOIN risk r ON p.county_fips = r.county_fips
GROUP BY r.risk_group, CASE WHEN p.yr BETWEEN 2015 AND 2019 THEN 'first_half_2015_2019' ELSE 'second_half_2020_2024' END
ORDER BY risk_group, period
query — 500 rows — 4367 ms

WITH permits AS (
  SELECT county_fips, 
    SUM(CASE WHEN CAST(year AS INT) BETWEEN 2015 AND 2019 THEN total_units ELSE 0 END) AS units_early,
    SUM(CASE WHEN CAST(year AS INT) BETWEEN 2020 AND 2024 THEN total_units ELSE 0 END) AS units_late
  FROM housing.housing_permits_by_county
  WHERE CAST(year AS INT) BETWEEN 2015 AND 2024
  GROUP BY county_fips
)
SELECT r.county_fips, r.risk_national_rank, p.units_early, p.units_late,
  (p.units_late - p.units_early)::double / NULLIF(p.units_early,0) AS growth_rate
FROM permits p
JOIN disasters.wildfire_risk_by_county r ON p.county_fips = r.county_fips
WHERE p.units_early >= 50 AND r.risk_national_rank IS NOT NULL
quantile_binning_test — 4060 ms

WITH permits AS (
  SELECT county_fips, 
    SUM(CASE WHEN CAST(year AS INT) BETWEEN 2015 AND 2019 THEN total_units ELSE 0 END) AS units_early,
    SUM(CASE WHEN CAST(year AS INT) BETWEEN 2020 AND 2024 THEN total_units ELSE 0 END) AS units_late
  FROM housing.housing_permits_by_county
  WHERE CAST(year AS INT) BETWEEN 2015 AND 2024
  GROUP BY county_fips
)
SELECT r.risk_national_rank AS risk_rank,
  (p.units_late - p.units_early)::double / NULLIF(p.units_early,0) AS growth_rate
FROM permits p
JOIN disasters.wildfire_risk_by_county r ON p.county_fips = r.county_fips
WHERE p.units_early >= 50 AND r.risk_national_rank IS NOT NULL
query — 2 rows — 8302 ms

WITH risk AS (
  SELECT county_fips, risk_national_rank
  FROM disasters.wildfire_risk_by_county
  WHERE risk_national_rank IS NOT NULL
),
permits AS (
  SELECT county_fips, state_fips, CAST(year AS INT) AS yr, total_units
  FROM housing.housing_permits_by_county
  WHERE CAST(year AS INT) BETWEEN 2015 AND 2024
)
SELECT
  CASE WHEN p.yr BETWEEN 2015 AND 2019 THEN 'first_half' ELSE 'second_half' END AS period,
  SUM(p.total_units) AS total_units_sum
FROM permits p
JOIN risk r ON p.county_fips = r.county_fips
WHERE p.state_fips = '06' AND r.risk_national_rank >= 0.9
GROUP BY CASE WHEN p.yr BETWEEN 2015 AND 2019 THEN 'first_half' ELSE 'second_half' END
query — 1 rows — 1519 ms
SELECT COUNT(*) AS total, COUNT(risk_national_rank) AS non_null, COUNT(*)-COUNT(risk_national_rank) AS null_count FROM disasters.wildfire_risk_by_county
query — 2 rows — 10691 ms

WITH permits AS (
  SELECT county_fips, state_fips, CAST(year AS INT) AS yr, total_units
  FROM housing.housing_permits_by_county
  WHERE CAST(year AS INT) BETWEEN 2015 AND 2024
)
SELECT
  CASE WHEN p.yr BETWEEN 2015 AND 2019 THEN 'first_half' ELSE 'second_half' END AS period,
  SUM(p.total_units) AS total_units_sum
FROM permits p
JOIN disasters.wildfire_risk_by_county r ON p.county_fips = r.county_fips
WHERE p.state_fips = '06' AND (r.risk_national_rank >= 0.9 OR r.risk_national_rank IS NULL)
GROUP BY CASE WHEN p.yr BETWEEN 2015 AND 2019 THEN 'first_half' ELSE 'second_half' END

Sources

  1. housing.housing_permits_by_county x disasters.wildfire_risk_by_county — askamerica query, run 2026-09-15; 1 of 3,144 counties dropped for null risk_national_rank
    Show SQL
    WITH risk AS (SELECT county_fips, risk_national_rank, CASE WHEN risk_national_rank >= 0.9 THEN 'high_wildfire_risk' ELSE 'other' END AS risk_group FROM disasters.wildfire_risk_by_county WHERE risk_national_rank IS NOT NULL), permits AS (SELECT county_fips, CAST(year AS INT) AS yr, total_units FROM housing.housing_permits_by_county WHERE CAST(year AS INT) BETWEEN 2015 AND 2024) SELECT r.risk_group, CASE WHEN p.yr BETWEEN 2015 AND 2019 THEN 'first_half_2015_2019' ELSE 'second_half_2020_2024' END AS period, SUM(p.total_units) AS total_units_sum, COUNT(DISTINCT p.county_fips) AS n_counties FROM permits p JOIN risk r ON p.county_fips = r.county_fips GROUP BY r.risk_group, period ORDER BY risk_group, period
  2. California high-wildfire-risk counties permit totals (with and without the null-risk-county exclusion, identical result) — askamerica query, run 2026-09-15; re-run without the r.risk_national_rank IS NOT NULL filter to confirm the CA total is unchanged (449,997 -> 464,032 either way)
    Show SQL
    WITH permits AS (SELECT county_fips, state_fips, CAST(year AS INT) AS yr, total_units FROM housing.housing_permits_by_county WHERE CAST(year AS INT) BETWEEN 2015 AND 2024) SELECT CASE WHEN p.yr BETWEEN 2015 AND 2019 THEN 'first_half' ELSE 'second_half' END AS period, SUM(p.total_units) AS total_units_sum FROM permits p JOIN disasters.wildfire_risk_by_county r ON p.county_fips = r.county_fips WHERE p.state_fips = '06' AND (r.risk_national_rank >= 0.9 OR r.risk_national_rank IS NULL) GROUP BY period
  3. Quantile dose-response: permit growth rate by wildfire risk quintile — 2,218 counties with >=50 permitted units in 2015-2019
    Show tool call
    quantile_binning_test(outcome="growth_rate", predictor="risk_rank", bins=5)
  4. https://www.moneygeek.com/insurance/homeowners/california-wildfire-fair-plan-insurer-retreat/
  5. https://www.foxbusiness.com/lifestyle/california-insurance-crisis-here-carriers-have-fled-reduced-coverage-state
  6. https://www.yahoo.com/news/california-bars-insurers-dropping-fire-182856745.html
  7. https://www.deepskyclimate.com/blog/insurers-retreat-as-2025-wildfire-risk-reaches-dangerous-levels
  8. https://uphelp.org/californias-fair-plan-carries-growing-load-as-insurers-retreat-beyond-wildfire-zones/
  9. https://www.carriermanagement.com/news/2025/02/10/271636.htm
  10. https://stateline.org/2025/10/24/californias-last-resort-property-insurer-seeks-rate-hike-ringing-national-alarm-bells/
  11. https://www.insurancejournal.com/news/west/2026/09/10/884417.htm
  12. https://research.fs.usda.gov/nrs/projects/wuigrowth
  13. https://research.fs.usda.gov/nrs/articles/where-humans-and-forests-meet-rapidly-growing-wildland-urban-interface