What is available
| File | What is in it |
|---|---|
/data/index.json |
All 50 areas with a summary each: hail day counts, biggest stone, date of the most recent event, coordinates. |
/data/metros/{key}.json |
The complete record for one area — every hail day, size, signature count, distance and
probabilities. For example
amarillo-tx.json |
/data/years/{year}.json |
Every event in that year across all areas, sorted by size. 2025 |
/data/zip-index.json |
Three-digit ZIP prefix to metro area mapping. |
Source archive URLs, checksums and coverage. Annual totals count metro-days; overlapping areas may share the same storm.
Example
How many 2 in (5 cm) or larger hail days radar recorded over Oklahoma City:
curl -s https://rooftake.com/data/metros/oklahoma-city-ok.json \
| python3 -c "import sys,json; d=json.load(sys.stdin); \
print(sum(1 for e in d['events'] if e['max_in'] >= 2))"
What the fields mean
| Field | Meaning |
|---|---|
max_in / max_cm | Largest stone the algorithm estimated in the storm cell. An estimate of what was aloft, not a ground measurement. |
signatures | Number of distinct radar cell observations within 25 miles that day. |
prob / sevprob | Probability of hail and of severe hail, in percent, as reported by NEXRAD. |
nearest_mi / farthest_mi | Distance of the closest and furthest signature from the area centroid. |
data_status | LIVE = real NOAA archive data, not a live feed. Read window for coverage.
SEED_SAMPLE = synthetic sample data. Always check this. |
Licence and terms
The source data is US Government public domain (NOAA NCEI, dataset
nx3hail). Our processing and aggregation are free to reuse, commercially included,
on two conditions:
- Link back to the page you took the data from.
- Do not present models as measurements. Cost estimates and the RoofTake Score are our models and are labelled as models. Radar hail size is an estimate, not a measurement.
We are not affiliated with or endorsed by the US Government.
RoofTake Score
The 0–100 score on area pages is our model, not data. The formula and its weights are published on the methodology page, so you can recompute it from the JSON and check our arithmetic. If you use it, say that it is the RoofTake model.
Stability
- The
windowfield gives historical coverage.generatedis the retrieval date; it does not extend the coverage period. - The structure is versioned in the
schemafield. We add fields; we do not rename existing ones. - Cache sensibly — these are static files, not an API, and they honour HTTP headers.
Need it in a different shape?
A different format, different areas, different granularity — email hello@rooftake.com. If it makes sense for other people too, we will publish it.
Common questions
Is it really free?
Yes. The underlying radar data is US Government public domain, and our aggregation is free to reuse with a link back. No key, no registration, no quota we police.
Can I use it commercially?
Yes, commercially too. The only conditions are a link back to the page you took it from, and not presenting our modelled estimates as measurements.
How often does it change?
The archive covers 2016–2025; updates require a validated rebuild. The field structure does not change without notice — we add fields, but we do not rename or remove existing ones.
Why give it away?
Because citations and links are worth more to a site like this than a handful of subscriptions. When somebody needs a hail number and takes ours, they link to us. That is the kind of growth you cannot buy.
I need data for the whole US, not 50 areas.
Then go straight to the source: NOAA SWDI is public and needs no key. Our downloader is in the repository as pipeline/fetch_hail.py and you can point it at any coordinates.