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
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).
- Top-decile wildfire-risk counties (risk_national_rank ≥ 0.9, n=283): 1,184,854 units permitted 2015-2019 → 1,422,699 units permitted 2020-2024 (+20.1%).
- All other counties (n≈2,750): 5,146,161 → 6,402,522 (+24.4%) — slightly faster in raw aggregate, but this pools every county regardless of building volume, including thousands with negligible activity.
- Dose-response by risk quintile (counties with ≥50 units permitted in 2015-2019, so the comparison isn't dominated by near-zero-base noise, n=2,218): mean growth rate rises from +26.5% (lowest-risk quintile) to +30.2%, +31.8%, +53.1%, then eases to +45.7% in the highest-risk quintile. The trend is positive and marginally significant (slope p=0.067) but not strictly monotonic — the very highest-risk quintile grew a bit slower than the fourth quintile, plausibly because California's own most fire-exposed counties (where permitting is constrained by state law, terrain, and now insurance) sit disproportionately in that top bin.
- California specifically: top-decile wildfire-risk CA counties permitted 449,997 units in 2015-2019 and 464,032 in 2020-2024 (+3.1%), far slower than the national high-risk-county figure (+20.1%), consistent with California's broadly constrained housing supply (not a wildfire-specific effect; CA statewide growth is slow across risk levels).
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:
- Non-renewals: California regulators/insurance-industry reporting: insurers non-renewed over 2.8 million homeowners policies statewide between 2020-2025 in fire-prone ZIP codes; in the highest-risk areas specifically, insurer-initiated non-renewals grew nearly 800% (First Street Foundation analysis, 2015-2021 window). The CA Department of Insurance estimates 1.5 million properties are now in "wildfire-distressed" areas, and roughly 1 in 5 homes in the most extreme-risk areas has lost coverage since 2019 (150,000+ uninsured households).
- Major carriers: State Farm, Allstate, Farmers, and USAA all paused new homeowners policies or issued mass non-renewals in California since 2021; Farmers Direct Property and Casualty withdrew from the state entirely; Tokio Marine America and Trans Pacific Insurance filed to exit CA homeowners/umbrella lines in April 2024.
- FAIR Plan (insurer of last resort) growth: exposure grew from $50B (2018) to $458B (2024) to $599B (March 2025) — a 259% jump just since September 2021; policy count rose 276% from 2018-2024 (up 22.6% in 2023 and 45.0% in 2024 alone); premium collected jumped from $87.2M (2018) to $1.4B (2024), more than 15x. FAIR Plan enrollment jumped a further 43% between September 2024 and December 2025 after the $40B Los Angeles-area January 2025 fires (12,000 homes destroyed), which alone cost the FAIR Plan $4B in losses.
- 2026 partial reversal: a March 2026 State Farm settlement combined a 17% emergency rate increase with an extended moratorium on non-renewals; regulatory reforms (including rate-setting changes allowing insurers to price in reinsurance/catastrophe modeling) are cited by Insurance Journal (Sept 2026) as starting to draw some capacity back, though the retreat described above spans 2019-2025 and the return is only just beginning.
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_countyquery — 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
- 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 - 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 - 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) - https://www.moneygeek.com/insurance/homeowners/california-wildfire-fair-plan-insurer-retreat/
- https://www.foxbusiness.com/lifestyle/california-insurance-crisis-here-carriers-have-fled-reduced-coverage-state
- https://www.yahoo.com/news/california-bars-insurers-dropping-fire-182856745.html
- https://www.deepskyclimate.com/blog/insurers-retreat-as-2025-wildfire-risk-reaches-dangerous-levels
- https://uphelp.org/californias-fair-plan-carries-growing-load-as-insurers-retreat-beyond-wildfire-zones/
- https://www.carriermanagement.com/news/2025/02/10/271636.htm
- https://stateline.org/2025/10/24/californias-last-resort-property-insurer-seeks-rate-hike-ringing-national-alarm-bells/
- https://www.insurancejournal.com/news/west/2026/09/10/884417.htm
- https://research.fs.usda.gov/nrs/projects/wuigrowth
- https://research.fs.usda.gov/nrs/articles/where-humans-and-forests-meet-rapidly-growing-wildland-urban-interface