What the data is
- Hail detections and swaths. Radar hail detections for the contiguous United States, each scored by the hail-detection model, and the storm-day hail swaths built from them (
GET /v1/hail/swaths, bulkdetectionsandswathsexports). - Address hail history. Whether radar recorded hail within a radius of an address on each storm day (
GET /v1/hail/history,POST /v1/verify). - Ground hail reports. Public storm reports of hail, de-duplicated across their sources (bulk
reportsexport). - Wind swaths and wind reports. A wind-analysis layer, a thunderstorm-wind layer built from storm reports and radar, and measured and estimated gust reports (
GET /v1/wind/swaths,GET /v1/wind/reports).
A storm day runs from 12:00 UTC to 12:00 UTC the next day and is named for the day it starts, so an evening storm and its overnight tail count as one day. Hail date windows in the API and in exports are windows of storm days.
Coverage
Hail
- Every storm day from 22 July 2022 through two days ago, except the days listed below. The re-audit of 21 October 2026 covered 1,552 storm days to 19 October 2026.
- 99.9% of radar scans that held a hail-capable storm hold hail detections. The other 0.08% are scans in which nothing reached the extraction floor.
- Exception days, partial by a few scans because the national radar mosaic never published them: 2023-02-25, 2023-04-01, 2023-11-09, 2025-06-24. The API never answers "no hail" for these days;
GET /v1/verify/coveragelists them ascoverage_exceptions. - Gap days. 2026-10-07: the scanner heartbeat does not attest the day complete, so it is not counted as covered and an empty answer is never "no hail". The API reports it as an
ingest_gap. - The record begins 21 July 2022; answers count from 22 July 2022, the first full storm day, because the first day cannot be proven complete by a scan before it.
- The newest storm day is searched as soon as it has data, but is reported as covered only once a later scan closes it.
Wind
- The wind-analysis layer and wind reports are continuous from 21 July 2022.
- The thunderstorm-wind layer covers every storm day from 21 July 2022. Where its radar input lacks a full day it answers
insufficient_coveragerather than "no wind"; after the 23 October 2026 rebuild, every day through 19 October 2026 has complete input.
Coverage is the contiguous United States only. Requests that fall wholly in Canada, Mexico, Alaska, Hawaii, the US territories or open water are refused, not answered with "no hail".
No detection is not proof of no hail: radar can miss hail, and hail nobody reported leaves no ground record.
How hail detections are made
- Radar. Every national radar mosaic scan (about every two minutes) is read, including its estimate of the largest hail aloft at each 1 km grid cell.
- Storm cells. The hail field is divided into storm cells and each cell is tracked from scan to scan. Segmentation
seg-1applies to scans before 2026-10-24 01:46 UTC;seg-2, which also splits a cell wherever its echoes are separated by a gap, applies after. - Detection model. A gradient-boosted model, Anvil (current generation
anvil-detect-6), scores each cell for hail from its radar structure, its near-storm environment from a numerical weather model, and its track history. A grid cell becomes a hail detection when its storm cell's probability passes that model generation's detection threshold. The archive also keeps weaker rows (a storm's tail after it drops back under the threshold, and some mountain-terrain radar echoes at any score): 15.1% of stored detections. From data version 2026.10.31 no output serves them: address history (events and daily peaks), swaths, events, current hail, verification at every grain, bulk exports, portfolio impacts and the assistant read only detections at or above the threshold of the model generation that scored them. From data version 2026.10.25, address history, swaths, verification and exports report the current generation's probability on every row, and portfolio impacts do from 2026.10.27. Every response names the generations behind it (ml_provenance). - Size. Swath tiers use the radar hail-size estimate: the day's maximum within 2.5 km of a point, banded at 19, 25, 38, 51, 64 and 76 mm. A separate calibrated size class (
size_category) is given only for detections at or above the detection threshold; which method sets it depends on the storm day (see Which method sets a size class). - Swaths and address answers. A swath is the union of a storm day's detections of at least 19 mm; an address answer is the detections within the radius on each storm day that pass a confidence bar set per model generation.
Detections in one scan are counted once per grid cell even where two overlapping storm cells claim it, and a small number of storm-cell fragments left by an earlier segmentation defect are excluded from every output.
Which method sets a size class
A calibrated size (size_category, ml_predicted_size_mm, and max_size_mm on current hail, batch current hail and portfolio impacts) is the median hail size most likely to be reported on the ground for a cell. It is set by one of two methods, and the response says which in size_method:
model: the trained size model's median.radar_band: empirical size bands fitted from radar estimates against ground reports.
Where the radar size estimate for a cell is under about 40 mm, the bands are always used. At 40 mm and above, the model is used where it produced a size for that cell, and the bands are used everywhere else. The model's size is not stored for most of the archive before July 2026, so a size class in that range was usually set by the bands, and the same class from a later date was set by the model. Archive sizes are not rescored.
Share of cells with a radar estimate of at least 40 mm that carry the model's size, by storm day (cells of about 5 km per storm day, detections at the model's threshold, measured 26 October 2026):
| Storm days | Cells with the model's size |
|---|---|
| 2022-07-21 – 2026-03-31, March to September | 40–65% by month (25% in September 2022) |
| 2022-07-21 – 2026-03-31, October to February | mostly under 25% (few cells) |
| 2026-04-01 – 2026-06-30 | 5.3% in April, 1.8% in May, 0.0% in June |
| From 2026-07-01 | about 99% (98.5–100% by month) |
- Where it is reported:
size_methodis returned on current hail (cells[].hailandsummary.max_size_method), batch current hail (results[].max_size_method), address history events (events[].hail) and portfolio impacts (impacts[].max_size_method). It isnullexactly when the size is. - Bulk exports carry
size_categoryper grid cell withoutsize_method. At that grain the model's size is present on 0–25% of rows of at least 40 mm from July 2022 to June 2026 (about 1% from April to June 2026), on 98–100% in July 2026 and on about 80% from August 2026; the bands set the rest. - Radar sizes do not change.
estimated_size_mmon address history, and the largest size in a verification event, are the radar estimate in every period. - Comparing across periods: compare a size class from before July 2026 with one from after only with
size_methodin hand, or compare radar size estimates instead.
How wind swaths are made
- Analysis layer: the hourly gridded surface wind-gust analysis, banded by the day's maximum gust. It captures broad, non-thunderstorm wind well and thunderstorm gusts poorly (see below).
- Thunderstorm layer (
layer=convective): disks around measured and estimated gust reports and around wind-damage reports, linked along the storm's track, plus cells a radar wind model flags as producing damaging wind. Each band names its basis. - Gust speeds are stated only where a measured or estimated report set the band (
basis: gust_report). Damage-only and radar-indicated areas are labelled as such and carry no speed. layer=allanswers the strongest band from every layer at the point.
Measured hail accuracy
Truth: public NWS storm reports and Local Storm Reports of hail of at least 0.75 in, de-duplicated, in the contiguous US. Scored on every storm day with at least half of its expected radar scans holding rows (1,086 days). "In swath" means inside the swath of at least 0.75 in (19 mm).
The independent numbers are the current-model row. The current model (anvil-detect-6) was trained on reports through May 2026, and it also scored the archive before 27 April 2026. Those rows are in-sample: they show consistency, not independent validation. It also re-scored 27 April – 4 August 2026, and from data version 2026.11.03 that window also holds the detections the current model makes there. The 2026-04-27 to 2026-08-04 row was measured before that release.
| Period and model | Reports | In swath | ≥1 in report in swath | Detection ≤5 mi | ≤15 mi |
|---|---|---|---|---|---|
| Current model, out of sample, 2026-08-05 – 2026-10-19 | 1,434 | 75.0% | 79.2% | 89.5% | 92.7% |
| 2026-04-27 to 2026-08-04, measured before data version 2026.11.03 | 4,357 | 68.7% | 73.2% | 84.6% | 89.2% |
| Current model, in-sample, 2024-06-05 – 2026-04-26 | 16,588 | 69.8% | 75.2% | 92.8% | 95.4% |
| Current model, in-sample, 2022-07-21 – 2024-06-04 | 20,879 | 71.0% | 76.8% | 93.8% | 96.0% |
| Whole record (mostly in-sample) | 43,258 | 70.4% | 75.9% | 92.3% | 95.0% |
Size tiers against reported size
Out of sample (current model, 1,434 reports): the swath tier equals the reported size class at 31.3% of reports and is within one class at 71.9%. Tiers lean high: 40.9% over, 27.7% under, mean difference +6.1 mm. Every swath response carries these figures (size_basis.tier_agreement).
Against raw radar size
Out of sample, 2026-05-01 – 2026-10-19, at the storm-cell level:
| Rule | Flagged cells | Reports caught | Critical success index |
|---|---|---|---|
| Radar size estimate ≥25 mm alone | 56,706 | 0.885 | 0.172 |
| Hail Sentinel swath (model detection and ≥19 mm) | 32,390 | 0.847 | 0.297 |
| Radar size estimate ≥38 mm alone | 15,571 | 0.645 | 0.296 |
Against a raw 1 in radar-size swath, the swath flags 43% fewer cells and catches 3.8 points fewer report locations: far fewer false alarms at nearly the same detection rate. It does not detect more hail.
By region and season
| Region | Out of sample: in swath / ≤5 mi / size diff | In-sample: in swath / ≤5 mi / size diff |
|---|---|---|
| West (west of 104°W) | 63.7% / 84.7% / +8.5 mm (n 190) | 68.1% / 86.8% / +6.3 mm (n 2,999) |
| Plains | 82.7% / 92.9% / +7.0 mm (n 779) | 79.4% / 96.2% / +2.2 mm (n 17,552) |
| East (east of 94°W) | 66.7% / 85.6% / +3.4 mm (n 465) | 61.7% / 91.5% / +0.6 mm (n 16,916) |
Winter is weaker. From November to February 47.3% of reports fall inside the swath and 88.8% have a detection within 5 miles (1,396 reports); from April to August, 72.4% and 92.3% (34,361 reports).
5- and 15-mile address answers
An acceptance test on 22 October 2026 called the production API for 217 fixed address and storm-day cases spanning every year and season of the record (2,387 calls; addresses offset from the report location). Hail truth: a report of hail of at least 1 in inside the radius.
| Radius | Radar detection in radius | outcome: signal | Peak ≥1 in |
|---|---|---|---|
| 5 miles | 69 of 78 (88.5%) | 65 of 78 (83.3%) | 53 of 78 (67.9%) |
| 15 miles | 108 of 118 (91.5%) | 102 of 118 (86.4%) | 95 of 118 (80.5%) |
- On 50 cases with no hail or wind report in the radius, no case returned a hail detection or a thunderstorm-wind band, at 5 or 15 miles.
- Every answer matched what the archive holds: 0 mismatches in 2,384 compared answers, every coverage verdict correct (217 of 217), every call answered, the slowest in 18.7 s.
- Of the 25
no_signalanswers where a report lay in the radius, 15 had no radar detection at all, and 10 had detections the model rated below the confidence bar. Since 23 October 2026 the API answerspossible_signalwhere the model flagged such detections at its detection threshold. From data version 2026.10.25, address history also lists the ground reports in the radius and answersreport_signalwhen a report is there and no radar event is: all 15 report locations with no radar detection now answerreport_signal, and none of the 50 cases without a report does.
Measured wind accuracy
Scored at every measured gust report, as if the address had no report of its own (the report's own disk is left out). Out of sample: storm days 2025-01-01 – 2026-10-19.
| Measured gusts | n | Thunderstorm layer: in ≥58 mph band | Analysis layer only | Outside every band |
|---|---|---|---|---|
| Severe thunderstorm gusts (≥58 mph) | 11,465 | 68.0% | 5.8% | 19.1% |
- Over-call: 41.0% of stations that measured a 40–57 mph thunderstorm gust sit inside a severe band (12,541 gusts). A severe band means "severe wind was reported or radar-indicated within about 10 miles", not "at least 58 mph at this point".
- Non-thunderstorm wind: 54.3% of measured severe synoptic gusts fall in the ≥58 mph band (29,734 gusts).
- At the 22 October acceptance cases, every measured severe thunderstorm gust in the radius had a severe band in the radius (34 of 34 at 5 miles, 70 of 70 at 15 miles).
- Wind reports match their public sources' counts; duplicate copies of a report across sources collapse at 99.6% or better.
How to read an answer
- Read
outcome, not the count.signal: at least one detection passed the confidence bar and size floor.report_signal(address history): no radar event, but a vetted ground report of hail lies in the radius (ground_reports;radar_outcomeis the radar-only answer).possible_signal(address history): the model flagged detections below the confidence bar, worth a look but not a confirmed signal.no_signal: nothing the model calls hail, on a window fully on record.insufficient_coverage: nothing found, but part of the window is not on record; never "no hail". - Coverage verdicts.
temporal_coverage.coveredisfull,partialornonefor the window, anduncovered_rangesnames the missing days and why. - A size tier is radar's estimate aloft within 2.5 km, not a measured stone at the address.
- A wind band is not a measured speed at the address unless its basis is a gust report at that location.
Every field, its unit and what a null means: data dictionary.
Known caveats
- Size runs high. Swath tiers are over the reported class at 40.9% of reports and under at 27.7%, with a mean difference of +6.1 mm, and more in the West (+8.5 mm). The calibrated
size_categoryanswers a different question and usually sits one class from the swath tier. - Size classes are not set the same way across the record. At a radar estimate of 40 mm and above,
size_categorywas set by the bands for much of the archive before July 2026 and by the size model after.size_methodsays which; see Which method sets a size class. - Radar misses some hail. Out of sample, 10.5% of reports have no radar detection within 5 miles, and in winter about half of reports fall outside the swath. In the acceptance test, 15 report locations had no detection in the radius at all: storms far from the nearest radar, storms the model scored weak, and reports filed a few miles or minutes off. Address history now answers those from the reports themselves (
report_signal). - 2026-04-27 to 2026-08-04: confidence recorded at the time. From data version 2026.10.25, address history, swaths, verification and exports report the current model's confidence on these storm days; portfolio impacts keep the confidence recorded at the time. From data version 2026.11.03 the record there also holds the detections the current model makes, and every one of those storm days measures complete at its detection threshold. The accuracy row for this period above was measured before that release.
- Segmentation changed on 2026-10-24. Storm cells, and what is derived from them (cell size, shape, centroid and track), use the original segmentation (
seg-1) for scans before 01:46 UTC that day and the improved cluster-split segmentation (seg-2) from then on; earlier scans were not re-run. Whether hail is detected is rarely affected: in a replay of two active storm windows the same hail reports were detected before and after (435 of 443). Cell size and shape can differ across the change, so do not compare cell-level statistics from before and after it as one population. A full re-segmentation of the archive is planned with the next detection-model generation. - Most of the record is in-sample. Storm days before 2026-04-27 were scored by a model trained on reports through May 2026, so their accuracy is not independent validation.
- Overlapping cells. A grid cell can belong to two storm cells in one scan. Every count counts it once, and a
detectionsexport holds one row per scan and grid cell. - Storm-cell fragments. An earlier segmentation defect stored some cells as small fragments (fixed for new scans on 2026-10-17). Those records are excluded from every output; recovering the missing cells for storm days up to 2026-04-26 is in progress and ships as a new data version.
- Thunderstorm-wind over-call. 41.0% of stations that measured 40–57 mph sit inside a severe band.
Data versions and reproducible extracts
Every API response carries an X-Data-Version header naming the data release it was served under. The current release is 2026.11.03: archive build 2026-11-03, detection model anvil-detect-6, segmentation seg-2. A rewrite of historical data ships as a new release with a changelog entry.
- Every bulk export is stamped with its data version, in the job response and inside the file.
- The file you received does not change. Each finished export states its SHA-256 (
content_sha256); polling the job re-signs that same file untilretained_until, 400 days after it was made. - Exports from a release snapshot regenerate exactly. When a release has a read-only snapshot covering the window, the export is read from it (
snapshoton the job), and requesting the same parameters with thatdata_versionreturns the same rows, byte for byte.
Sources and audits
- Radar: the national multi-radar mosaic published by NOAA (MRMS).
- Ground truth: NWS storm reports and Local Storm Reports (as relayed by the Iowa Environmental Mesonet), and CoCoRaHS hail reports in the
reportsexport. - Audits: the November 2026 data-quality re-audit (sampled 21 October 2026) and the 22 October 2026 production acceptance test are the source of every figure on this page. Both reports are available to licensing customers on request.
Hail Sentinel is not affiliated with or endorsed by NOAA, the National Weather Service or the Iowa Environmental Mesonet.