Storm reports for March 31, 2026
NOAA recorded 76 hail reports, 129 wind reports and 4 tornado reports in 12 states on March 31, 2026.
- in 12 states
- 209
- Storm reports
- Wayland, Henry County, IA
- 1.75 in
- Largest hail
- 2 WSW Cleveland, LEZ146 County, OH
- 75 mph
- Highest gust
- 4
- Tornado reports
Hail, inches
- 0.75
- 1
- 1.5
- 2
- 2.5
- 3+
Dots: reports. Shading: radar estimate.
- Wind report
- Estimated gusts, 50 to 90 mph
- Tornado and its path
- Surveyed tornado path
Hail, inches
- 0.75
- 1
- 1.5
- 2
- 2.5
- 3+
Dots: reports. Shading: radar estimate.
- Wind report
- Estimated gusts, 50 to 90 mph
- Tornado and its path
- Surveyed tornado path
Source: NOAA/NWS Storm Prediction Center, preliminary storm reports. NOAA revises recent reports for several weeks. Report day: 12:00 UTC on March 31, 2026 to 12:00 UTC the next day. Times are Central.
Select a dot or a path for the report. NWS survey teams walked the shaded paths after the storm; each is drawn at the widest width they found, so it can look wider than the damage at any one spot. Gust lines are estimates: the highest gust of the day in NOAA's hourly 2.5 km wind analysis (URMA), which fills in between weather stations. They aren't measurements at any building.
Reports by hour
Hail76, most at 9 AM
Wind129, most at 6 PM
Tornado4, most at 2 PM
Every report
Source: NOAA/NWS Storm Prediction Center.
| Time | Rating | Where | Path |
|---|---|---|---|
| 2:43 PM | Not rated | 4 SW Lime Lake-Machias, Cattaraugus County, NY | Not surveyed |
| 4:49 PM | Not rated | 3 SE Chesterland, Geauga County, OH | Not surveyed |
| 6:09 PM | Not rated | 2 SE Hicksville, Defiance County, OH | Not surveyed |
| 8:56 PM | Not rated | 3 WSW Apple Creek, Wayne County, OH | Not surveyed |
| Time | Size | Where |
|---|---|---|
| 7:15 AM | 1.0 in | Wayland, Henry County, IA |
| 7:16 AM | 1.0 in | Wayland, Henry County, IA |
| 7:18 AM | 1.75 in | Wayland, Henry County, IA |
| 7:30 AM | 1.0 in | 3 E Rozetta, Henderson County, IL |
| 7:40 AM | 1.25 in | Oquawka, Henderson County, IL |
| 8:14 AM | 1.75 in | Letts, Louisa County, IA |
| 8:29 AM | 1.0 in | 1 NNW Sandwich, De Kalb County, IL |
| 8:43 AM | 1.0 in | Princeton, Green Lake County, WI |
| 9:12 AM | 1.0 in | 3 WNW Washington, Tazewell County, IL |
| 9:17 AM | 1.5 in | 4 WNW Washington, Tazewell County, IL |
| 9:18 AM | 1.0 in | 2 SE Shorewood, Will County, IL |
| 9:21 AM | 1.75 in | Rockdale, Will County, IL |
Show all 76 hail reportsShow fewer
| Time | Size | Where |
|---|---|---|
| 9:21 AM | 1.0 in | 2 E Shorewood, Will County, IL |
| 9:24 AM | 1.0 in | Preston Heights, Will County, IL |
| 9:27 AM | 1.75 in | 1 NW Easton, Mason County, IL |
| 9:27 AM | 1.75 in | 2 SSE Ingalls Park, Will County, IL |
| 9:28 AM | 1.0 in | 1 S Ingalls Park, Will County, IL |
| 9:29 AM | 1.75 in | 3 N Washington, Washington County, IA |
| 9:29 AM | 1.25 in | 3 SSE Ingalls Park, Will County, IL |
| 9:33 AM | 1.25 in | 3 ENE Washington, Tazewell County, IL |
| 9:34 AM | 1.5 in | 1 S Preston Heights, Will County, IL |
| 9:34 AM | 1.75 in | New Lenox, Will County, IL |
| 9:35 AM | 1.0 in | 1 S New Lenox, Will County, IL |
| 9:37 AM | 1.0 in | 1 SE New Lenox, Will County, IL |
| 9:40 AM | 1.0 in | 1 N Eureka, Woodford County, IL |
| 9:44 AM | 1.25 in | Eureka, Woodford County, IL |
| 10:16 AM | 1.5 in | Polo, Ogle County, IL |
| 10:23 AM | 1.5 in | Columbus City, Louisa County, IA |
| 10:27 AM | 1.0 in | 4 NNW Sheboygan, Sheboygan County, WI |
| 10:31 AM | 1.0 in | Mount Morris, Ogle County, IL |
| 10:39 AM | 1.0 in | 1 SW Sand Springs, Louisa County, IA |
| 10:42 AM | 1.25 in | 1 S Howards Grove, Sheboygan County, WI |
| 2:09 PM | 1.25 in | Perrysburg, Cattaraugus County, NY |
| 2:14 PM | 1.0 in | 2 SE Sunny Hill, Henry County, IL |
| 2:17 PM | 1.5 in | Gowanda, Erie County, NY |
| 2:17 PM | 1.5 in | Collins, Erie County, NY |
| 2:34 PM | 1.0 in | 4 SSW Springville, Cattaraugus County, NY |
| 2:40 PM | 1.0 in | 2 WSW West Valley, Cattaraugus County, NY |
| 3:26 PM | 1.0 in | 2 NNW Avoca, Steuben County, NY |
| 3:28 PM | 1.0 in | Prattsburg, Steuben County, NY |
| 3:45 PM | 1.0 in | Canisteo, Steuben County, NY |
| 3:45 PM | 1.0 in | 1 NW Canisteo, Steuben County, NY |
| 3:50 PM | 1.0 in | Wayne, Schuyler County, NY |
| 4:50 PM | 1.0 in | Claypool, Kosciusko County, IN |
| 4:56 PM | 1.0 in | Samnorwood, Collingsworth County, TX |
| 5:17 PM | 1.0 in | Burket, Kosciusko County, IN |
| 5:18 PM | 1.0 in | Mentone, Kosciusko County, IN |
| 5:20 PM | 1.0 in | Claypool, Kosciusko County, IN |
| 5:21 PM | 1.0 in | 1 ESE Palestine, Kosciusko County, IN |
| 5:24 PM | 1.0 in | 3 SW Winona Lake, Kosciusko County, IN |
| 5:24 PM | 1.25 in | 3 WSW Winona Lake, Kosciusko County, IN |
| 5:25 PM | 1.0 in | Claypool, Kosciusko County, IN |
| 5:26 PM | 1.0 in | 2 S Claypool, Kosciusko County, IN |
| 5:36 PM | 1.75 in | Greene, Chenango County, NY |
| 5:50 PM | 1.0 in | 4 SW Wallen, Allen County, IN |
| 5:58 PM | 1.0 in | 9 N Dodson, Collingsworth County, TX |
| 5:58 PM | 1.0 in | 2 NNE Chenango Bridge, Broome County, NY |
| 5:59 PM | 1.0 in | 4 SW Wallen, Allen County, IN |
| 6:00 PM | 1.0 in | 2 NNW Chenango Bridge, Broome County, NY |
| 6:00 PM | 1.0 in | Chenango Forks, Broome County, NY |
| 6:01 PM | 1.25 in | Afton, Chenango County, NY |
| 6:04 PM | 1.5 in | Bainbridge, Chenango County, NY |
| 6:06 PM | 1.0 in | 7 NW Childress, Childress County, TX |
| 6:22 PM | 1.0 in | 5 N Childress, Childress County, TX |
| 6:30 PM | 1.75 in | Walton, Delaware County, NY |
| 6:38 PM | 1.0 in | 1 WNW Childress, Childress County, TX |
| 6:46 PM | 1.75 in | 5 SW Childress, Childress County, TX |
| 7:34 PM | 1.0 in | 1 SE Brunswick, Medina County, OH |
| 7:34 PM | 1.0 in | Brunswick, Medina County, OH |
| 7:35 PM | 1.5 in | 4 NE Paducah, Cottle County, TX |
| 7:43 PM | 1.25 in | 1 NE Paducah, Cottle County, TX |
| 8:55 PM | 1.75 in | 3 SW Grow, King County, TX |
| 9:55 PM | 1.25 in | 4 NE Fredonia, Wilson County, KS |
| 10:32 PM | 1.0 in | Odessa, Lafayette County, MO |
| 10:34 PM | 1.0 in | 5 N Le Roy, Coffey County, KS |
| 11:16 PM | 1.0 in | Erie, Neosho County, KS |
| Time | Gust | Where |
|---|---|---|
| 2:14 PM | Not measured | Gowanda, Cattaraugus County, NY |
| 2:38 PM | Not measured | 4 SW Waterville, Lucas County, OH |
| 2:39 PM | Not measured | 3 SE Perrysburg, Wood County, OH |
| 2:40 PM | Not measured | 2 WSW West Valley, Cattaraugus County, NY |
| 2:47 PM | 59 mph | 1 NE Bowling Green, Wood County, OH |
| 3:04 PM | 66 mph | 1 E Clay Center, Ottawa County, OH |
| 3:17 PM | Not measured | 2 ESE Ballville, Sandusky County, OH |
| 3:33 PM | 59 mph | 3 N Sandusky, LEZ144 County, OH |
| 3:47 PM | Not measured | 3 SSW Attica, Seneca County, OH |
| 3:53 PM | Not measured | 5 S Berlin Heights, Huron County, OH |
| 4:04 PM | Not measured | Amherst, Lorain County, OH |
| 4:04 PM | Not measured | 1 NNE Amherst, Lorain County, OH |
Show all 129 wind reportsShow fewer
| Time | Gust | Where |
|---|---|---|
| 4:09 PM | 64 mph | 3 E South Amherst, Lorain County, OH |
| 4:14 PM | 74 mph | North Ridgeville, Lorain County, OH |
| 4:18 PM | Not measured | 1 NE Westlake, Cuyahoga County, OH |
| 4:24 PM | 71 mph | 2 NW Brook Park, Cuyahoga County, OH |
| 4:26 PM | Not measured | 2 E Brooklyn, Cuyahoga County, OH |
| 4:28 PM | Not measured | 1 E Brooklyn, Cuyahoga County, OH |
| 4:29 PM | 75 mph | 2 WSW Cleveland, LEZ146 County, OH |
| 4:30 PM | Not measured | 2 ENE Brooklyn, Cuyahoga County, OH |
| 4:31 PM | Not measured | Cleveland, Cuyahoga County, OH |
| 4:32 PM | 71 mph | 1 NNE Cleveland, Cuyahoga County, OH |
| 4:36 PM | 59 mph | 2 WSW Bratenahl, LEZ146 County, OH |
| 4:40 PM | Not measured | 1 SE Mayfield, Cuyahoga County, OH |
| 4:42 PM | 61 mph | 1 NNW Fairport Harbor, Lake County, OH |
| 4:44 PM | Not measured | 2 SW Kirtland, Lake County, OH |
| 4:45 PM | 61 mph | 1 NNE Highland Heights, Cuyahoga County, OH |
| 4:50 PM | Not measured | Bainbridge, Geauga County, OH |
| 4:51 PM | Not measured | Culver, Marshall County, IN |
| 4:52 PM | Not measured | Mentor, Lake County, OH |
| 4:55 PM | 65 mph | 2 SW Aquilla, Geauga County, OH |
| 5:03 PM | 58 mph | 1 S Tippecanoe, Marshall County, IN |
| 5:05 PM | Not measured | 1 N Talma, Fulton County, IN |
| 5:10 PM | Not measured | Mentone, Kosciusko County, IN |
| 5:18 PM | Not measured | Mentone, Kosciusko County, IN |
| 5:18 PM | Not measured | Mentone, Kosciusko County, IN |
| 5:18 PM | 63 mph | 5 NE Jefferson, Ashtabula County, OH |
| 5:19 PM | 69 mph | 4 NNE Conneaut, LEZ149 County, OH |
| 5:20 PM | Not measured | Beaver Dam Lake, Kosciusko County, IN |
| 5:20 PM | Not measured | 1 WSW Beaver Dam Lake, Kosciusko County, IN |
| 5:20 PM | Not measured | 1 E Beaver Dam, Kosciusko County, IN |
| 5:24 PM | Not measured | 1 NNW Akron, Fulton County, IN |
| 5:26 PM | Not measured | 2 ENE Beaver Dam Lake, Kosciusko County, IN |
| 5:26 PM | Not measured | Mentone, Kosciusko County, IN |
| 5:28 PM | Not measured | 3 SSE Beaver Dam Lake, Kosciusko County, IN |
| 5:30 PM | Not measured | 3 NNW North Manchester, Wabash County, IN |
| 5:31 PM | Not measured | North Manchester, Wabash County, IN |
| 5:32 PM | Not measured | Lake City, Erie County, PA |
| 5:35 PM | Not measured | Cranesville, Erie County, PA |
| 5:45 PM | Not measured | 2 ESE Glen Aubrey, Broome County, NY |
| 5:46 PM | Not measured | 6 WSW Craig Beach, Portage County, OH |
| 5:46 PM | Not measured | 2 E Erie, Erie County, PA |
| 5:53 PM | 60 mph | 3 SW Wallen, Allen County, IN |
| 5:55 PM | 61 mph | 4 NE Fort Wayne, Allen County, IN |
| 5:55 PM | Not measured | Waterford, Erie County, PA |
| 5:57 PM | Not measured | 3 NNW Mercer, Mercer County, PA |
| 6:03 PM | Not measured | 2 SSW Hicksville, Defiance County, OH |
| 6:10 PM | 63 mph | 3 SE Hicksville, Defiance County, OH |
| 6:10 PM | Not measured | Hicksville, Defiance County, OH |
| 6:10 PM | Not measured | 3 SSW Fredonia, Chautauqua County, NY |
| 6:12 PM | Not measured | 3 WSW Mark Center, Defiance County, OH |
| 6:20 PM | Not measured | 2 WSW Sherwood, Defiance County, OH |
| 6:22 PM | Not measured | 1 WSW Sherwood, Defiance County, OH |
| 6:22 PM | Not measured | Sherwood, Defiance County, OH |
| 6:23 PM | Not measured | 2 SSW Independence, Defiance County, OH |
| 6:24 PM | Not measured | 1 NNW Akron, Fulton County, IN |
| 6:24 PM | Not measured | 1 N Sherwood, Defiance County, OH |
| 6:25 PM | Not measured | 4 WNW Arthur, Defiance County, OH |
| 6:25 PM | 61 mph | 2 SW Fredonia, Chautauqua County, NY |
| 6:26 PM | Not measured | Scott, Van Wert County, OH |
| 6:26 PM | Not measured | Scott, Paulding County, OH |
| 6:26 PM | Not measured | 5 NNW Rouseville, Venango County, PA |
| 6:27 PM | Not measured | Defiance, Defiance County, OH |
| 6:28 PM | Not measured | Independence, Defiance County, OH |
| 6:28 PM | Not measured | 2 W Pleasantville, Venango County, PA |
| 6:30 PM | Not measured | 3 NNW North Manchester, Wabash County, IN |
| 6:30 PM | 66 mph | 3 ENE Dunkirk, Chautauqua County, NY |
| 6:31 PM | Not measured | North Manchester, Wabash County, IN |
| 6:34 PM | Not measured | 1 W Tidioute, Warren County, PA |
| 6:35 PM | Not measured | Deposit, Delaware County, NY |
| 6:38 PM | Not measured | 1 WNW Holgate, Henry County, OH |
| 6:45 PM | Not measured | 1 NE New Castle Northwe, Lawrence County, PA |
| 6:50 PM | Not measured | Rimer, Putnam County, OH |
| 6:53 PM | Not measured | 2 ESE Water Valley, Yalobusha County, MS |
| 6:54 PM | Not measured | Hoytville, Wood County, OH |
| 6:54 PM | Not measured | Orchard Park, Erie County, NY |
| 6:55 PM | 62 mph | 1 SW Litchfield, Montgomery County, IL |
| 6:55 PM | Not measured | 3 SSE Clarendon, Warren County, PA |
| 6:56 PM | Not measured | 1 SSE Clarendon, Warren County, PA |
| 7:00 PM | Not measured | Elida, Allen County, OH |
| 7:02 PM | Not measured | 3 NNE Coxsackie, Columbia County, NY |
| 7:06 PM | Not measured | 3 NNE Lewis Run, McKean County, PA |
| 7:12 PM | Not measured | Downsville, Delaware County, NY |
| 7:24 PM | Not measured | 3 W Smethport, McKean County, PA |
| 7:25 PM | Not measured | 4 WNW Lenox, Berkshire County, MA |
| 7:26 PM | Not measured | Mentone, Kosciusko County, IN |
| 7:28 PM | Not measured | 7 NW Phoenicia, Ulster County, NY |
| 7:37 PM | Not measured | Sharon, Mercer County, PA |
| 7:37 PM | Not measured | 4 NW New Lebanon, Mercer County, PA |
| 7:40 PM | Not measured | 2 SE Fredonia, Mercer County, PA |
| 7:42 PM | Not measured | 4 NW Utica, Mercer County, PA |
| 7:49 PM | Not measured | 2 NNE Chatfield, Crawford County, OH |
| 7:50 PM | Not measured | 3 WNW Buckland, Franklin County, MA |
| 7:53 PM | Not measured | 2 ESE Bucyrus, Crawford County, OH |
| 7:58 PM | Not measured | 3 ESE Coxsackie, Columbia County, NY |
| 8:00 PM | Not measured | 1 ENE Niles, Trumbull County, OH |
| 8:00 PM | Not measured | 2 SSE Buckland, Franklin County, MA |
| 8:04 PM | Not measured | 3 NW Slippery Rock, Mercer County, PA |
| 8:10 PM | 68 mph | 2 SSE Hackberry, Cottle County, TX |
| 8:10 PM | Not measured | 2 SSE Buckland, Franklin County, MA |
| 8:15 PM | Not measured | 2 S Eau Claire, Butler County, PA |
| 8:20 PM | Not measured | 4 E Mansfield, Richland County, OH |
| 8:25 PM | Not measured | Lucas, Richland County, OH |
| 8:26 PM | Not measured | Bellville, Richland County, OH |
| 8:45 PM | Not measured | Big Prairie, Holmes County, OH |
| 8:52 PM | Not measured | Lenox, Berkshire County, MA |
| 8:56 PM | Not measured | 3 WSW Apple Creek, Wayne County, OH |
| 9:21 PM | Not measured | 1 SSW Hyde, Clearfield County, PA |
| 9:24 PM | 59 mph | 2 WNW Guthrie, King County, TX |
| 10:12 PM | Not measured | 5 W Bruin, Butler County, PA |
| 10:34 PM | 58 mph | 8 SE Guthrie, King County, TX |
| 10:39 PM | 58 mph | 3 WSW Carnot-Moon, Allegheny County, PA |
| 10:45 PM | 60 mph | Chanute, Neosho County, KS |
| 10:50 PM | 58 mph | 1 SE Robinson Township, Allegheny County, PA |
| 11:04 PM | Not measured | 1 W White Oak, Allegheny County, PA |
| 11:05 PM | Not measured | 1 NNW West Mifflin, Allegheny County, PA |
| 11:09 PM | Not measured | 2 SW Irwin, Westmoreland County, PA |
| 11:10 PM | Not measured | 2 SW Irwin, Westmoreland County, PA |
| 6:33 AM | Not measured | 1 N Versailles, Allegheny County, PA |
By state
| State | Reports | Hail | Wind | Tornado |
|---|---|---|---|---|
| Ohio | 62 | 2 | 57 | 3 |
| Indiana | 32 | 11 | 21 | 0 |
| New York | 30 | 17 | 12 | 1 |
| Pennsylvania | 28 | 0 | 28 | 0 |
| Illinois | 24 | 23 | 1 | 0 |
| Texas | 12 | 9 | 3 | 0 |
| Iowa | 7 | 7 | 0 | 0 |
| Massachusetts | 5 | 0 | 5 | 0 |
| Kansas | 4 | 3 | 1 | 0 |
| Wisconsin | 3 | 3 | 0 | 0 |
| Missouri | 1 | 1 | 0 | 0 |
| Mississippi | 1 | 0 | 1 | 0 |
Cities with reports nearby
Reports within 15 miles of the center of each city we track.
| City | Largest hail | Highest gust | Tornado reports |
|---|---|---|---|
| Peoria, IL | 1.5 in | None | 0 |
| Binghamton, NY | 1.0 in | None | 0 |
| Fort Wayne, IN | 1.0 in | 61 mph | 0 |
| Buffalo, NY | None | None | 0 |
| Cleveland, OH | None | 75 mph | 0 |
| Erie, PA | None | None | 0 |
| Pittsburgh, PA | None | 58 mph | 0 |
| Toledo, OH | None | 66 mph | 0 |
| Youngstown, OH | None | None | 0 |
Reports are what observers recorded near a location, not a complete record of every storm. They don’t describe conditions at any building.