sachinkg12/us-county-hazard-features
US County Multi-Hazard Features Dataset A curated, ML-ready dataset of 1,014,930 county-month observations spanning 3,222 US counties from 2000 to 2026, integrating 7 federal data sources into 42 engineered features for predicting FEMA disaster declarations 90 days in advance. Dataset Summary Property Value Rows 1,014,930 Columns 50 (42 features + target + metadata) Counties 3,222 (all US counties with available data) Time span 2000-01 to 2026-03… See the full description on the dataset page: https://huggingface.co/datasets/sachinkg12/us-county-hazard-features.
US County Multi-Hazard Features Dataset
A curated, ML-ready dataset of 1,014,930 county-month observations spanning 3,222 US counties from 2000 to 2026, integrating 7 federal data sources into 42 engineered features for predicting FEMA disaster declarations 90 days in advance.
Dataset Summary
Data Sources
This dataset integrates 7 federal data sources — all free, no API keys required:
Features (42 total)
FEMA History (7)
Rolling window declaration counts and recency metrics.
Storm Events (10)
NOAA severe weather aggregations.
Socioeconomic (5)
US Census demographic and economic indicators.
Drought (4)
US Drought Monitor severity metrics.
Wildfire (4)
NIFC wildfire incident metrics.
NFIP Flood Insurance (3)
National Flood Insurance Program claim patterns.
Spatial (2)
Neighborhood and state-level context.
Cascade Interaction Features (7)
Novel contribution: Multiplicative interaction terms capturing multi-hazard co-occurrence.
Target & Metadata
Usage
import pandas as pd
df = pd.read_parquet("us-county-hazard-features.parquet")
# Temporal train/test split (recommended)
train = df[df["year_month"] < "2022-01"]
val = df[(df["year_month"] >= "2022-01") & (df["year_month"] < "2023-01")]
test = df[(df["year_month"] >= "2023-01") & (df["year_month"] <= "2024-12")]
# Note: Exclude months after 2024-12 — FEMA declaration data is incomplete
# Feature columns (42 features, no temporal — see paper for ablation justification)
FEATURE_COLS = [c for c in df.columns if c not in [
"fips", "year_month", "declaration_next_90d", "declaration_type_next_90d",
"month_of_year", "is_hurricane_season", "is_tornado_season", "is_wildfire_season"
]]Benchmark Results
Using XGBoost with temporal split:
95% Bootstrap CI: ROC-AUC [0.890, 0.896]
Key Findings
- FEMA Dominance: Removing FEMA features drops AUC from 0.89 to 0.63 — declaration history is the strongest predictor, suggesting the federal process is path-dependent.
- Cascade Interactions: Multi-hazard cascade features improve compound disaster detection (recall lift +2.9% for cascade events, ROC-AUC 0.907 vs 0.893 overall).
- Declaration Equity: Low-income counties (Q1) show 2.3x higher prediction residuals than wealthy counties (Q4) at the same hazard exposure level (p < 1e-100), suggesting structural inequities in federal disaster declarations.
Citation
@dataset{gupta2026uscountyhazard,
title={US County Multi-Hazard Features for Disaster Declaration Prediction},
author={Gupta, Sachin},
year={2026},
publisher={Hugging Face},
url={https://huggingface.co/datasets/sachinkg12/us-county-hazard-features}
}License
Apache 2.0
Source Code
HazardCast — Full pipeline: data ingestion, feature engineering, model training, and REST API.
