Open data
Download the hail aggregate
The derived county summary behind this site, as plain JSON. Public domain source, free to reuse.
Three files are published. They are the exact inputs this site renders from.
| File | Contents | Size |
|---|---|---|
| /data/index.json | State summaries, thresholds, source metadata and build date | ~15 KB |
| /data/counties.json | Every county: FIPS, name, state, reports, largest stone, severe counts, last report | ~340 KB |
| /data/state-<slug>.json | One file per state with per-county yearly history and the largest individual reports | 4 to 120 KB each |
Field definitions
f- Five-digit county FIPS code: two-digit state plus three-digit county.
events- Number of reported hail events in the county, 2016-2025.
max- Largest reported stone, in hundredths of an inch. Divide by 100 for inches. Integer storage avoids floating-point drift.
large- Reports at or above 2.00 in: the approximate onset of shingle and vehicle damage.
significant- Reports at or above 4.00 in: softballs and larger.
first/last- Earliest and most recent report dates in the window, as ISO
YYYY-MM-DD. years- Per-year object:
eis the event count,maxthe largest stone that year in hundredths of an inch. reports- The largest individual stones in the county, newest first.
dis the date,pthe reporting location, andsthe stone size in inches. Note the unit change: only this field is in inches, because it holds whole reported sizes rather than a computed maximum.
Licence and attribution
The underlying NOAA Storm Events Database is a US Government work and is in the public domain. This derived aggregate is published under the same terms: use it for anything, including commercially, with no permission needed. A link back is appreciated but not required.
If you cite it, cite the source rather than this site: NOAA National Centers for Environmental Information, Storm Events Database, retrieved 2026-09-17.
Rebuilding it
The pipeline is one script. It downloads the yearly files, aggregates them, validates the result (report counts, size distribution, and a cross-check that per-county totals match the state totals) and writes these files. Re-running it against newer NOAA files is how the data here is refreshed.
node tools/fetch-stormevents.mjs --from=2016 --to=2025