← All Datasets

County Climate-Risk Index

Coming Soon

NOAA Storms + FEMA Flood Claims + USDA Crop Indemnity + CDC Climate Deaths — Joined by County / Year

An analyst studying county climate exposure currently licenses four separate federal datasets, then spends days reconciling FIPS codes, units, and grains. We did it once. This dataset joins NOAA Storm Events, FEMA NFIP claims, USDA RMA crop indemnities, and CDC WONDER mortality into a single table — one row per county per year with summed property, flood, and crop losses, storm and climate-attributable deaths, and a normalised 0–100 climate-loss score. Scores are per-capita, so every county is directly comparable. The only pre-built dataset of its kind.

Sample: CC-BY 4.0Paid: Commercial LicenseCSV + ParquetAnnual Updates2000–20234 Sources Cross-Linked0–100 Risk Score

Why not build this yourself from NOAA + FEMA + USDA + CDC?

Technically possible — here's what it takes:

  • 4 separate federal datasets downloaded and parsed — NOAA Storm Events, FEMA NFIP redacted claims, USDA RMA cause-of-loss, and CDC WONDER mortality each require their own pipeline
  • FIPS reconciliation across 4 schemas — NOAA stores state + county zone codes, FEMA uses 5-digit county codes, USDA uses split state/county codes, CDC uses 5-digit FIPS; we normalise all four to a consistent county key
  • NOAA zone-vs-county handling — ~30–40% of storm events are logged by NWS forecast zone rather than county; we isolate county-coded events so damage isn't mis-attributed
  • Per-capita normalisation — raw dollar losses are wildly skewed by one hurricane and by county size; we rank losses per-capita so a rural county and a metro are comparable
  • Climate-attributable deaths isolated — we extract ICD-10 X30–X39 (heat, cold, storm, flood, forces of nature) from CDC cause-of-death data
  • Parquet output — the raw sources are CSV/fixed-width; columnar Parquet is far faster across the full county-year panel

⏱ Skip 4 dataset pipelines, FIPS reconciliation, zone handling, and per-capita scoring. County risk ready in seconds.

~3,140

US Counties

2000–2023

Years Covered

4

Federal Sources Joined

0–100

Risk Score Range

Use Cases

Catastrophe & Climate Modeling

A ready 0–100 target (climate_loss_index) and two decades of county-level property, flood, crop, and mortality losses — drop straight into a county-level cat model without licensing and reconciling four agencies first.

Property & Flood Underwriting

Score any county's historical climate-loss burden before writing property or flood risk. Per-capita normalisation means a rural county and a major metro are directly comparable, unlike raw dollar totals.

Reinsurance Pricing

Treaty and cat-bond analysts need consistent county exposure histories across perils. This combines storm, flood, and crop losses into one frequency-and-severity panel keyed by FIPS.

Muni-Bond & Real-Estate Screening

Screen issuers, portfolios, or markets for climate-loss concentration by county. Identify jurisdictions with rising per-capita losses or elevated climate-attributable mortality.

ESG & Climate Research

Two decades of standardized, source-cited county climate-loss data with documented provenance — suited to academic research and EU-AI-Act-style auditable analysis pipelines.

Climate Risk ML Features

Use economic loss, event frequency, and climate-attributable death rates as pre-joined, per-capita features for risk scoring, pricing, or vulnerability models. Normalized and ready for feature engineering.

Schema

One pre-joined table delivered as CSV + Parquet. Grain: (county_fips, year).

Table — county_climate_risk

One row per (county, year). ~3,140 counties × ~24 years.

FieldTypeDescription
county_fipsstring5-digit county FIPS code (primary join key)
county_namestringCounty name (from CDC WONDER)
state_namestringState name
yearintCalendar year
populationintCounty population — the per-capita denominator (CDC)
storm_event_countintNOAA county-coded storm events that year
storm_deathsintDirect + indirect storm deaths (NOAA)
storm_injuriesintDirect + indirect storm injuries (NOAA)
storm_property_damage_usdfloatSummed NOAA property damage
storm_crop_damage_usdfloatSummed NOAA crop damage (informational)
top_event_typestringEvent type with the most property damage that year
flood_claim_countintFEMA NFIP paid flood claims
flood_paid_usdfloatTotal NFIP dollars paid
flood_avg_claimfloatMean NFIP payment per claim
crop_indemnity_usdfloatUSDA RMA crop indemnity paid
crop_weather_indemnity_usdfloatIndemnity from weather-coded loss causes
top_cause_of_lossstringDominant USDA crop loss cause (null if none)
all_cause_deathsintTotal deaths (CDC)
climate_attributable_deathsintDeaths from ICD-10 X30–X39 (heat/cold/storm/flood)
total_economic_loss_usdfloatproperty + flood paid + crop indemnity
loss_per_capitafloattotal_economic_loss_usd ÷ population
climate_loss_indexint0–100 risk score (per-capita percentile blend)
risk_tierstringLow / Moderate / Elevated / High / Severe (quintiles)

Quick Start

import pandas as pd

risk = pd.read_parquet("county_climate_risk.parquet")

# Look up a specific county-year
harris_2017 = risk[
    (risk["county_fips"] == "48201") &
    (risk["year"] == 2017)
]
print(harris_2017[[
    "climate_loss_index", "risk_tier", "total_economic_loss_usd",
    "storm_deaths", "flood_paid_usd", "top_event_type"
]])

# Highest-risk county-years overall
print(risk.nlargest(20, "climate_loss_index")[[
    "county_fips", "county_name", "state_name", "year",
    "climate_loss_index", "risk_tier", "total_economic_loss_usd"
]])

# Counties with the worst per-capita losses
print(risk.nlargest(20, "loss_per_capita")[[
    "county_name", "state_name", "year", "loss_per_capita"
]])

# Trend: a county's climate loss over time
fips = "12086"  # Miami-Dade
trend = risk[risk["county_fips"] == fips].sort_values("year")
print(trend[["year", "climate_loss_index", "total_economic_loss_usd",
             "climate_attributable_deaths"]])

# State-level rollup of economic loss
state_loss = (
    risk.groupby("state_name")["total_economic_loss_usd"].sum()
    .sort_values(ascending=False).head(15)
)
print(state_loss)

Pairs Well With

Need crop-by-crop or cause-by-cause detail? Use the raw USDA indemnity dataset for granular agricultural loss analysis beyond the county aggregates in this index.

Need claim-level flood detail, flood zones, or ZIP-level risk scores? The raw FEMA NFIP dataset drills below the county-year aggregates used here.

Pricing

Launching soon. Request access below and we'll notify you the moment it goes live.

Sample

Free

Top 1,000 county-years (CSV) + schema docs — all 23 columns

CC-BY 4.0

Notify Me
Professional

$149

Full dataset — ~3,140 counties × ~24 years, CSV + Parquet, data card

Commercial License

Request Access
Annual

$399/yr

Full dataset + annual refresh when CDC WONDER releases new mortality data

Commercial License

Request Access

Data Provenance

Source datasets: (1) NOAA NCEI Storm Events Database — severe weather events, deaths, and property/crop damage; (2) FEMA NFIP Redacted Claims — flood insurance claim counts and dollars paid; (3) USDA RMA Cause-of-Loss / Indemnity — crop insurance payouts and loss causes; (4) CDC WONDER Compressed Mortality — population and cause-of-death.

Join methodology: Each source is aggregated to (county_fips, year) and outer-joined on that key. NOAA county FIPS is composed fromSTATE_FIPS + CZ_FIPS for county-coded events (zone-coded events are excluded in v1). Missing loss values are treated as zero; population missing leaves the per-capita components blank.

Scoring: climate_loss_index blends three percentile-ranked components — economic loss per-capita (40%), human loss per-capita (35%), and event frequency (25%) — into a 0–100 score, bucketed into quintile risk tiers. Percentile ranking is used because raw dollar losses are extremely right-skewed.

Coverage: ~3,140 US counties. The clean four-way overlap spans approximately 2000–2023. Updated annually following the slowest upstream release (CDC WONDER).

License: All source data is published by the US federal government and is in the public domain. Paid tiers are licensed under the ClarityStorm Commercial Data License covering our cross-source join, FIPS reconciliation, per-capita scoring, and enrichment work.

Want early access, a specific state subset, or custom scoring weights?

Contact Sales