REPRODUCIBLE METHOD
How this ledger is built
County-coded detail records in NOAA's Storm Events Database for complete calendar years 2016–2025, grouped without reclassifying event types, and enriched with 2024 ACS population only where county codes match.
1. Official input
We use the public NODD Parquet partitions linked by NOAA's current bulk-data page. The selected table is the Storm Events details table—not fatalities or locations—and the selected rows have CZ_TYPE = C, NOAA's county/parish coding.
2. Publication thresholds
Every observed county/area receives a parent ledger. A dedicated county-event page requires at least five reports across the ten-year window. A state-event page requires 20. Thresholds prevent thin near-duplicate pages while leaving raw local totals visible.
3. Population context
Reports per 100,000 residents use the 2024 ACS five-year B01003 population estimate. A rate is suppressed if the NOAA county code cannot be matched. This is a descriptive denominator—not an estimate of individual risk.
4. Impact fields
Direct and indirect injury fields are summed, as are direct and indirect fatality fields. NOAA damage strings are converted from H/K/M/B suffixes into nominal dollars. Blank fields become zero for aggregation. The estimates are not audited, inflation-adjusted, or a complete accounting of loss.
5. Counting limits
A database row is not necessarily a whole storm. An episode can contain many event rows, a multi-county system can generate records in several areas, and tornado paths may be segmented at county lines. Changes in observation, entry rules, and reporting can change counts.
6. Update policy
This edition freezes ten complete years so annual comparisons use equal calendar coverage. Future editions should replace—not append partial current-year data—and rerun every aggregate and page-level validation.