On the map: radar-estimated hail around Hamilton County, OH, the county with the most homes under 1″+ hail this day. Dots are storm reports. Zoom out for the rest of the day.
Radar-estimated hail
Storm reports for July 21, 2026
On July 21, 2026, 6 hail, 288 damaging-wind and 45 tornado reports were logged across 21 states.
FreeNo accountNo phone numberWe don’t keep the address
· As you type, the text is sent to Google to suggest addresses.IndependentNot affiliated with NOAA or the National Weather Service. Source: NOAA Storm Prediction Center storm reports; NOAA MRMS radar hail estimates (MESH) via the Iowa Environmental Mesonet; 2020 Census housing units. Data through November 6, 2026. Methodology
← Jul 20, 2026 All 2026 storm days · July 2026 Jul 22, 2026 →
On July 21, 2026, 6 hail, 288 damaging-wind and 45 tornado reports were logged across 21 states. The largest hail reported was 2.25″ (hen egg size) near Doswell, VA. Radar estimated hail of 1 inch or larger over 1,005 square miles containing about 72,000 homes.
Storm day runs 7 a.m. to 7 a.m. Eastern (12:00–12:00 UTC), the convention the Storm Prediction Center uses. Colored areas are NOAA MRMS radar estimates of the largest hail (MESH) over the day, lower 48 states only; radar overestimates and underestimates size, so read it with the ground reports.
Storm reports by state
| State | Hail | Wind | Tornado | Largest hail |
|---|---|---|---|---|
| WV | 0 | 54 | 7 | – |
| KY | 0 | 48 | 9 | – |
| OH | 0 | 41 | 11 | – |
| VA | 3 | 41 | 1 | 2.25″ |
| NY | 0 | 27 | 4 | – |
| PA | 1 | 21 | 5 | 1.50″ |
| NJ | 0 | 6 | 7 | – |
| MD | 0 | 13 | 0 | – |
| IN | 1 | 10 | 0 | 2.00″ |
| TN | 0 | 7 | 0 | – |
| UT | 0 | 5 | 0 | – |
| CO | 1 | 3 | 0 | 1.00″ |
| CT | 0 | 4 | 0 | – |
| MI | 0 | 2 | 0 | – |
| AZ | 0 | 0 | 1 | – |
| WY | 0 | 1 | 0 | – |
| NV | 0 | 1 | 0 | – |
| ID | 0 | 1 | 0 | – |
| GA | 0 | 1 | 0 | – |
| MO | 0 | 1 | 0 | – |
| DE | 0 | 1 | 0 | – |
Cities with the largest radar-estimated hail
| City | Population | Radar max near center |
|---|---|---|
| Loogootee, IN | 2,617 | 2.23″ |
| Brownstown, IN | 3,077 | 1.66″ |
| Cortez, CO | 9,151 | 1.56″ |
| Calvert City, KY | 2,517 | 1.45″ |
| Newtown, OH | 2,687 | 1.37″ |
| Paramus, NJ | 26,786 | 1.35″ |
| New Milford, NJ | 17,229 | 1.35″ |
| River Edge, NJ | 12,235 | 1.35″ |
| Oradell, NJ | 8,344 | 1.35″ |
| Emerson, NJ | 7,413 | 1.35″ |
| Weston, WV | 3,758 | 1.34″ |
| Newark, OH | 51,424 | 1.26″ |
| Fort Thomas, KY | 16,914 | 1.26″ |
| Savannah, TN | 7,565 | 1.26″ |
| Bergenfield, NJ | 28,921 | 1.21″ |
| Dumont, NJ | 18,606 | 1.21″ |
| Haworth, NJ | 3,450 | 1.21″ |
| Mason, OH | 36,046 | 1.18″ |
| Zanesville, OH | 24,916 | 1.18″ |
| Wellington, CO | 12,100 | 1.14″ |
| Chaffee, MO | 3,017 | 1.08″ |
| Maywood, NJ | 10,221 | 1.05″ |
| Springfield, TN | 19,842 | 1.04″ |
| Dayton, KY | 5,854 | 1.04″ |
| Portland, TN | 13,651 | 1.03″ |
Counties by homes inside 1″+ radar-estimated hail
| County | Homes | People | Area | Radar max |
|---|---|---|---|---|
| Hamilton County, OH | 20,474 | 48,746 | 18 mi² | 1.49″ |
| Clermont County, OH | 5,132 | 10,337 | 5 mi² | 1.20″ |
| Franklin County, OH | 4,810 | 9,927 | 2 mi² | 1.10″ |
| Butler County, OH | 4,515 | 11,404 | 10 mi² | 1.80″ |
| Bergen County, NJ | 3,983 | 11,680 | 2 mi² | 1.35″ |
| Licking County, OH | 3,581 | 7,476 | 10 mi² | 1.26″ |
| Warren County, OH | 3,421 | 9,889 | 3 mi² | 1.18″ |
| Prince George's County, MD | 3,081 | 8,014 | 9 mi² | 1.40″ |
| Hardin County, TN | 2,552 | 4,994 | 12 mi² | 1.42″ |
| Lewis County, WV | 2,510 | 5,238 | 85 mi² | 1.72″ |
| Humphreys County, TN | 1,690 | 3,665 | 28 mi² | 1.74″ |
| Ritchie County, WV | 1,604 | 3,393 | 85 mi² | 2.33″ |
| Warren County, KY | 1,315 | 3,246 | 14 mi² | 1.42″ |
| Doddridge County, WV | 1,171 | 3,163 | 114 mi² | 2.51″ |
| Noble County, OH | 1,129 | 4,911 | 31 mi² | 1.56″ |
Homes are 2020 Census housing units and people are 2020 Census residents, counted by block group where its center of population lies under radar-estimated hail of 1 inch or larger.
Hail reports (6)
| Time (UTC) | Size | Location |
|---|---|---|
| 18:55 | 2.25″ | Doswell, VA |
| 18:37 | 2.00″ | 1 mi SW of French Lick, IN |
| 12:52 | 1.50″ | 1 mi SSW of Erie, PA |
| 18:52 | 1.50″ | 4 mi SSE of Golansville, VA |
| 18:30 | 1.00″ | Fort Walker, VA |
| 21:57 | 1.00″ | Dolores, CO |
Damage, injuries and deaths
National Weather Service offices recorded about $10.4 million in property damage and 1 injury from hail, thunderstorm wind and tornadoes across the US on this storm day (368 events in 16 states). Injuries and deaths are those the events caused directly.
| County | Events | Injuries | Deaths | Property damage |
|---|---|---|---|---|
| Grayson County, KY | 1 | 1 | 0 | – |
| Pendleton County, WV | 2 | 0 | 0 | $2.3 million |
| Rockingham County, VA | 6 | 0 | 0 | $2 million |
| Frederick County, VA | 1 | 0 | 0 | $1.5 million |
| Shenandoah County, VA | 2 | 0 | 0 | $1 million |
| Page County, VA | 1 | 0 | 0 | $500,000 |
| Rappahannock County, VA | 1 | 0 | 0 | $500,000 |
| Hampshire County, WV | 1 | 0 | 0 | $500,000 |
| Owen County, KY | 1 | 0 | 0 | $345,000 |
| Pleasants County, WV | 3 | 0 | 0 | $210,000 |
| Washington County, OH | 5 | 0 | 0 | $187,000 |
| Muskingum County, OH | 7 | 0 | 0 | $149,000 |
What the National Weather Service wrote
- Grayson County, KY (near Wax) · Tornado EF2 · 1 injury
“An NWS Storm Survey concluded than a long track, EF-2 tornado first touched down in far eastern Grayson County, right along Nolin River Lake in the Wax, KY area.” - Pendleton County, WV (near Ruddle) · Tornado EF1 · $2 million
“Scattered to numerous large trees uprooted and snapped along the path that started along Kiser Gap Road a half mile north of the intersection with US Route 33. The tornado tracked east-northeast.” - Frederick County, VA (near Mountain Falls) · Tornado EF1 · $1.5 million
“A tornado descended on the 5100 block of Back Creek Road in High View, West Virginia. ||Once the tornado crossed the ridge into Virginia, notable tree damage occurred across the northernmost part of Wilde Acres, VA.” - Rockingham County, VA (near Criders) · Tornado EF1 · $1 million
“A tornado that began in Pendleton County, West Virginia, tracked through an unpopulated, wooded area across the ridge/state line. It reached the 24300 block of Gochenour Lane 3 miles southwest of Criders.” - Rockingham County, VA (near Mechanicsville) · Tornado EF0 · $1 million
“A tornado touched down on a farm in the 19300 block of Mechanicsville Road. Numerous trees on this property had their tops snapped off, with farm equipment (trailers and carts) tossed about. In the woods surrounding the property, a path of trees were snapped and uprooted in a convergent pattern.” - Shenandoah County, VA (near Moores Store) · Tornado EF0 · $1 million
“A tornado that began in Rockingham County, Virginia, continued east and crossed the 800 and 900 blocks of Ridge Road where approximately 50 trees were downed, one on a chicken coop structure.”
Event narratives from NWS Storm Data, shortened. Up to six per day, chosen by deaths, injuries, damage and size.
Source: NOAA National Centers for Environmental Information (NCEI), Storm Events Database, as entered by National Weather Service offices; data through July 31, 2026. Damage is in dollars of the year, not adjusted for inflation.
NWS Tornado Damage Surveys for July 21, 2026
National Weather Service survey teams mapped 36 tornado paths from this storm day (4 EF2, 15 EF1, 17 EF0), 201 miles in all. The map above draws each surveyed path as the NWS mapped it, colored by the EF rating of each stretch, in place of the straight start-to-end line.
| Rating | Peak wind | Path length | Max width | Deaths / injuries | On the ground | Surveyed by |
|---|---|---|---|---|---|---|
| EF2 | 115 mph | 21.2 mi | 500 yd | 0 / 1 | 21:27–22:08 UTC | NWS Louisville |
| EF2 | 120 mph | 13.3 mi | 600 yd | 0 / 0 | 20:14–20:30 UTC | NWS Charleston, WV |
| EF2 | 130 mph | 12.9 mi | 1,000 yd | 0 / 0 | 20:25–20:48 UTC | NWS Charleston, WV |
| EF2 | 115 mph | 2.7 mi | 800 yd | 0 / 0 | 17:36–17:44 UTC | NWS Charleston, WV |
| EF1 | 110 mph | 27.7 mi | 1,320 yd | 0 / 0 | 20:28–20:59 UTC | NWS Charleston, WV |
| EF1 | 110 mph | 27.0 mi | 500 yd | 0 / 1 | 19:12–20:03 UTC | NWS Wilmington, OH |
| EF1 | 100 mph | 12.9 mi | 150 yd | 0 / 0 | 23:20–23:45 UTC | NWS Baltimore/Washington |
| EF1 | 105 mph | 8.7 mi | 450 yd | 0 / 0 | 19:10–19:21 UTC | NWS Pittsburgh |
| EF1 | 90 mph | 6.6 mi | 200 yd | 0 / 0 | 17:40–18:05 UTC | NWS Binghamton |
| EF1 | 90 mph | 4.9 mi | 250 yd | 0 / 0 | 18:50–18:57 UTC | NWS Wilmington, OH |
| EF1 | 90 mph | 4.6 mi | 100 yd | 0 / 0 | 17:45–17:52 UTC | NWS Binghamton |
| EF1 | 110 mph | 3.3 mi | 225 yd | 0 / 0 | 22:20–22:30 UTC | NWS Baltimore/Washington |
| EF1 | 110 mph | 2.7 mi | 150 yd | 0 / 0 | 22:19–22:25 UTC | NWS Louisville |
| EF1 | 90 mph | 1.4 mi | 250 yd | 0 / 0 | 18:00–18:05 UTC | NWS Mount Holly |
| EF1 | 100 mph | 1.2 mi | 220 yd | 0 / 0 | 21:37–21:39 UTC | NWS Louisville |
| EF1 | 95 mph | 0.9 mi | 250 yd | 0 / 0 | 22:55–22:57 UTC | NWS Charleston, WV |
| EF1 | 110 mph | 0.6 mi | 250 yd | 0 / 0 | 18:15–18:17 UTC | NWS Mount Holly |
| EF1 | 95 mph | 0.2 mi | 25 yd | 0 / 0 | 20:03 UTC | NWS Louisville |
| EF1 | 100 mph | 0.2 mi | 70 yd | 0 / 0 | 18:50–18:51 UTC | NWS Mount Holly |
| EF0 | 75 mph | 15.8 mi | 75 yd | 0 / 0 | 18:27–18:47 UTC | NWS Pittsburgh |
| EF0 | 85 mph | 7.7 mi | 100 yd | 0 / 0 | 00:05–00:18 UTC | NWS Baltimore/Washington |
| EF0 | 85 mph | 6.2 mi | 100 yd | 0 / 0 | 22:44–23:00 UTC | NWS Cleveland |
| EF0 | 85 mph | 4.0 mi | 75 yd | 0 / 0 | 22:43–22:53 UTC | NWS Louisville |
| EF0 | 75 mph | 3.4 mi | 75 yd | 0 / 0 | 19:09–19:13 UTC | NWS Wilmington, OH |
| EF0 | 80 mph | 2.3 mi | 100 yd | 0 / 0 | 17:41–17:44 UTC | NWS Binghamton |
| EF0 | 80 mph | 2.3 mi | 75 yd | 0 / 0 | 00:45–00:47 UTC | NWS Baltimore/Washington |
| EF0 | 85 mph | 1.8 mi | 40 yd | 0 / 0 | 20:10–20:17 UTC | NWS New York |
| EF0 | 75 mph | 1.7 mi | 90 yd | 0 / 0 | 19:21–19:24 UTC | NWS Wilmington, OH |
| EF0 | 80 mph | 1.1 mi | 50 yd | 0 / 0 | 22:37–22:38 UTC | NWS Pittsburgh |
| EF0 | 80 mph | 0.5 mi | 200 yd | 0 / 0 | 23:05–23:06 UTC | NWS Pittsburgh |
| EF0 | 70 mph | 0.3 mi | 30 yd | 0 / 0 | 22:15–22:16 UTC | NWS Mount Holly |
| EF0 | 85 mph | 0.3 mi | 110 yd | 0 / 0 | 21:38–21:39 UTC | NWS Charleston, WV |
| EF0 | 75 mph | 0.2 mi | 25 yd | 0 / 0 | 21:25–21:26 UTC | NWS Louisville |
| EF0 | 61 mph | 0.2 mi | 50 yd | 0 / 0 | 23:55–23:56 UTC | NWS Pittsburgh |
| EF0 | 85 mph | 0.2 mi | 30 yd | 0 / 0 | 00:01–00:02 UTC | NWS Pittsburgh |
| EF0 | 80 mph | 0.2 mi | 75 yd | 0 / 0 | 23:04–23:06 UTC | NWS Baltimore/Washington |
Source: NOAA National Weather Service Damage Assessment Toolkit (DAT): the tornado paths and EF-rating zones NWS survey teams mapped after each storm. Survey data are preliminary and can be revised; NOAA's official record is Storm Data (NCEI). Paths are simplified to about 30 m. Times are when the tornado was on the ground, in UTC.
Guides: What radar-estimated hail (MESH) is and isn't · Storm reports: preliminary vs final
Hail check for any US address
Every day since October 2019 that radar estimated hail near the address, free.
Guide: How to check if it hailed at your address · Free hail alerts by email · As you type, the text is sent to Google to suggest addresses.