The severe wind outbreak of July 28, 2025
244 wind reportsMinnesota, Iowa, South Dakota and 13 more states
244 damaging wind reports across 16 states between 1:05 AM and 12:49 AM the next day CDT, 58 of them 65 knots (75 mph) or stronger; the strongest measured gust was 99 mph in Sioux County, IA. 52 hail reports and 10 tornadoes the same day.
Watch the day unfoldSevere wind day · July 28, 2025
How the day unfolded
Every damaging wind report of the day at its logged time, with the day's hail reports and tornadoes, and the counties they reached.
The day in numbers
- Wind reports
- 244
- on Monday, July 28, 2025
- 75 mph or more
- 58
- 20 of 86 mph (75 knots) or more
- Strongest measured gust
- 99 mph
- 86 knots, Sioux County, IA
- Measured
- 89
- reports with an instrument reading; the rest are estimates from damage
- Killed by wind
- 0
- 0 injured
- Counties reporting
- 108
- in 16 states
Hour by hour
Damaging wind reports in each hour, Central Daylight Time.
The strongest winds
The 100 strongest reports with a speed. Measured gusts come from an instrument; estimated speeds are judged from damage.
| 9:01 PM | Lincoln County SD | 115 mph | Estimated |
| 7:10 PM | Gibson County IN | 105 mph | Estimated |
| 9:36 PM | Sioux County IA | 99 mph | Measured |
| 9:04 PM | Lincoln County SD | 96 mph | Estimated |
| 9:14 PM | Sioux County IA | 96 mph | Estimated |
| 9:26 PM | Sioux County IA | 96 mph | Estimated |
| 9:36 PM | Sioux County IA | 92 mph | Measured |
| 10:35 PM | Clay County IA | 92 mph | Measured |
| 8:53 PM | Turner County SD | 90 mph | Estimated |
| 8:58 PM | Lincoln County SD | 90 mph | Estimated |
| 8:59 PM | Lincoln County SD | 90 mph | Estimated |
| 9:00 PM | Lincoln County SD | 90 mph | Estimated |
| 9:01 PM | Lincoln County SD | 90 mph | Estimated |
| 9:02 PM | Lincoln County SD | 90 mph | Estimated |
| 9:13 PM | Lincoln County SD | 90 mph | Estimated |
| 9:40 PM | Sioux County IA | 90 mph | Estimated |
| 9:41 PM | Sioux County IA | 90 mph | Estimated |
| 9:50 PM | O'Brien County IA | 90 mph | Estimated |
| 10:08 PM | O'Brien County IA | 90 mph | Estimated |
| 8:33 PM | Turner County SD | 87 mph | Measured |
| 8:46 PM | Turner County SD | 85 mph | Measured |
| 6:39 PM | Pike County IN | 85 mph | Estimated |
| 7:10 PM | Gibson County IN | 85 mph | Estimated |
| 8:05 PM | Daviess County KY | 85 mph | Estimated |
| 8:59 PM | Lincoln County SD | 85 mph | Estimated |
| 9:02 PM | Lincoln County SD | 85 mph | Estimated |
| 9:06 PM | Lincoln County SD | 85 mph | Estimated |
| 9:08 PM | Lincoln County SD | 85 mph | Estimated |
| 9:10 PM | Sioux County IA | 85 mph | Estimated |
| 9:25 PM | Sioux County IA | 85 mph | Estimated |
| 9:27 PM | Lyon County IA | 85 mph | Estimated |
| 9:34 PM | Sioux County IA | 85 mph | Estimated |
| 9:41 PM | Lyon County IA | 85 mph | Estimated |
| 10:05 PM | O'Brien County IA | 85 mph | Estimated |
| 10:25 PM | Clay County IA | 85 mph | Estimated |
| 7:35 AM | Billings County ND | 81 mph | Estimated |
| 8:53 PM | Union County SD | 81 mph | Estimated |
| 8:55 PM | Muhlenberg County KY | 81 mph | Estimated |
| 9:02 PM | Union County SD | 81 mph | Estimated |
| 9:07 PM | Lincoln County SD | 81 mph | Estimated |
| 9:22 PM | Sioux County IA | 81 mph | Estimated |
| 9:25 PM | Lyon County IA | 81 mph | Estimated |
| 9:32 PM | Sioux County IA | 81 mph | Estimated |
| 9:50 PM | Osceola County IA | 81 mph | Estimated |
| 10:00 PM | Cherokee County IA | 81 mph | Estimated |
| 10:02 PM | Cherokee County IA | 81 mph | Estimated |
| 11:19 PM | Kossuth County IA | 81 mph | Estimated |
| 9:52 PM | Lyon County IA | 79 mph | Measured |
| 6:44 PM | Roberts County SD | 77 mph | Measured |
| 8:55 PM | Clay County SD | 77 mph | Measured |
| 8:08 AM | Dunn County ND | 76 mph | Measured |
| 11:20 PM | Olmsted County MN | 76 mph | Measured |
| 7:35 AM | Billings County ND | 75 mph | Measured |
| 8:54 PM | Union County SD | 75 mph | Measured |
| 8:49 PM | Minnehaha County SD | 75 mph | Estimated |
| 9:09 PM | Lincoln County SD | 75 mph | Estimated |
| 9:32 PM | Lyon County IA | 75 mph | Estimated |
| 11:29 PM | Kossuth County IA | 75 mph | Estimated |
| 11:05 PM | Dodge County MN | 74 mph | Measured |
| 7:17 PM | Charles Mix County SD | 72 mph | Measured |
| 7:59 PM | Bon Homme County SD | 72 mph | Measured |
| 9:31 PM | Lyon County IA | 72 mph | Measured |
| 11:14 PM | Palo Alto County IA | 72 mph | Measured |
| 11:35 PM | Buffalo County WI | 72 mph | Measured |
| 10:11 PM | Le Sueur County MN | 72 mph | Estimated |
| 9:49 PM | St. Croix County WI | 71 mph | Estimated |
| 2:30 AM | Woodbury County IA | 70 mph | Measured |
| 9:30 PM | Rosebud County MT | 70 mph | Measured |
| 10:36 PM | Steele County MN | 70 mph | Measured |
| 1:05 AM | Dickinson County IA | 70 mph | Estimated |
| 8:30 AM | Stark County ND | 70 mph | Estimated |
| 6:45 PM | Roberts County SD | 70 mph | Estimated |
| 12:05 AM | Cerro Gordo County IA | 70 mph | Estimated |
| 9:06 PM | Wright County MN | 69 mph | Estimated |
| 9:06 PM | Wright County MN | 69 mph | Estimated |
| 9:06 PM | Sherburne County MN | 69 mph | Estimated |
| 9:16 PM | McLeod County MN | 69 mph | Estimated |
| 9:18 PM | Wright County MN | 69 mph | Estimated |
| 9:18 PM | Sibley County MN | 69 mph | Estimated |
| 9:27 PM | Sibley County MN | 69 mph | Estimated |
| 10:11 PM | Le Sueur County MN | 69 mph | Estimated |
| 11:10 PM | Dodge County MN | 69 mph | Estimated |
| 11:12 PM | Olmsted County MN | 69 mph | Estimated |
| 11:35 PM | Fillmore County MN | 69 mph | Estimated |
| 11:45 PM | Fillmore County MN | 69 mph | Estimated |
| 11:45 PM | Buffalo County WI | 69 mph | Estimated |
| 12:03 AM | Houston County MN | 69 mph | Estimated |
| 6:39 PM | Roberts County SD | 68 mph | Measured |
| 8:56 PM | Lincoln County SD | 68 mph | Measured |
| 9:09 PM | Lincoln County SD | 68 mph | Measured |
| 11:00 PM | Wabasha County MN | 68 mph | Measured |
| 9:19 PM | Union County SD | 67 mph | Measured |
| 9:48 PM | St. Croix County WI | 67 mph | Estimated |
| 6:30 PM | Bay County MI | 66 mph | Measured |
| 8:36 PM | Turner County SD | 66 mph | Measured |
| 8:59 PM | Minnehaha County SD | 66 mph | Measured |
| 11:00 PM | Yellowstone County MT | 66 mph | Measured |
| 11:16 PM | Buffalo County WI | 66 mph | Measured |
| 12:25 AM | La Crosse County WI | 66 mph | Measured |
| 1:43 AM | Ida County IA | 64 mph | Measured |
By state
| Minnesota | 65 | 76 mph |
| Iowa | 59 | 99 mph |
| South Dakota | 43 | 87 mph |
| Wisconsin | 29 | 72 mph |
| North Dakota | 12 | 76 mph |
| Montana | 8 | 70 mph |
| Indiana | 6 | — |
| Ohio | 6 | — |
| Kentucky | 5 | — |
| Michigan | 3 | 66 mph |
| Nebraska | 2 | 62 mph |
| North Carolina | 2 | — |
| Illinois | 1 | — |
| New Mexico | 1 | — |
| Nevada | 1 | 60 mph |
| Tennessee | 1 | — |
Counties with the most wind reports
- Lincoln CountySD · 16 reports
- Sioux CountyIA · 13 reports
- Scott CountyMN · 9 reports
- Lyon CountyIA · 6 reports
- St. Croix CountyWI · 6 reports
- Olmsted CountyMN · 5 reports
- Union CountySD · 5 reports
- Stark CountyND · 5 reports
- Minnehaha CountySD · 4 reports
- Le Sueur CountyMN · 4 reports
Hail and tornadoes that day
52 hail reports, 6 of 2 inches or more; 10 tornadoes.
| 5:40 PM | Faulk County SD | 3.50 |
| 5:45 PM | Faulk County SD | 2.75 |
| 6:00 PM | Spink County SD | 2.75 |
| 6:25 PM | Fergus County MT | 2.50 |
| 6:26 PM | Keya Paha County NE | 2.50 |
| 10:35 PM | Carbon County MT | 2.00 |
| 4:21 PM | Todd County SD | 1.75 |
| 5:26 PM | Marshall County SD | 1.75 |
| 6:03 PM | Spink County SD | 1.75 |
| 6:06 PM | Marshall County SD | 1.75 |
| 6:09 PM | Spink County SD | 1.75 |
| 6:15 PM | Gregory County SD | 1.75 |
| 6:50 PM | Lyman County SD | 1.75 |
| 7:17 PM | Musselshell County MT | 1.75 |
| 10:30 PM | Yellowstone County MT | 1.75 |
| 5:06 PM | Hyde County SD | 1.50 |
| 5:15 PM | Todd County SD | 1.50 |
| 5:39 PM | Edmunds County SD | 1.50 |
| 8:17 PM | Yellowstone County MT | 1.50 |
| 10:01 PM | Yellowstone County MT | 1.50 |
| 10:30 PM | Yellowstone County MT | 1.50 |
| 10:30 PM | Yellowstone County MT | 1.50 |
| 4:11 PM | Broadwater County MT | 1.25 |
| 4:19 PM | Todd County SD | 1.25 |
| 4:40 PM | Hughes County SD | 1.25 |
| 5:10 PM | Sargent County ND | 1.25 |
| 7:22 PM | Musselshell County MT | 1.25 |
| 10:32 PM | Rice County MN | 1.25 |
| 9:00 AM | Custer County MT | 1.00 |
| 3:36 PM | Jefferson County MT | 1.00 |
| 4:15 PM | Tripp County SD | 1.00 |
| 5:12 PM | Edmunds County SD | 1.00 |
| 5:15 PM | Sargent County ND | 1.00 |
| 5:20 PM | Cascade County MT | 1.00 |
| 5:33 PM | Grant County NE | 1.00 |
| 5:35 PM | Marshall County SD | 1.00 |
| 5:35 PM | Tripp County SD | 1.00 |
| 5:57 PM | Faulk County SD | 1.00 |
| 6:05 PM | Day County SD | 1.00 |
| 6:07 PM | Roberts County SD | 1.00 |
| 6:16 PM | Keya Paha County NE | 1.00 |
| 6:19 PM | Spink County SD | 1.00 |
| 6:52 PM | Boyd County NE | 1.00 |
| 7:06 PM | Boyd County NE | 1.00 |
| 7:16 PM | Musselshell County MT | 1.00 |
| 7:24 PM | Holt County NE | 1.00 |
| 7:55 PM | Boyd County NE | 1.00 |
| 8:23 PM | Knox County NE | 1.00 |
| 10:10 PM | Yellowstone County MT | 1.00 |
| 5:43 PM | Roberts County SD | 0.88 |
- EF1 tornado4:28 PM CDT
- EF0 tornado5:04 PM CDT
- EF2 tornado5:38 PM CDT
- EF0 tornado5:52 PM CDT
- EF0 tornado7:00 PM CDT
- EF0 tornado8:59 PM CDT
- EF1 tornado9:29 PM CDT
- EFU tornado9:34 PM CDT
- EFU tornado11:50 PM CDT
- EF0 tornado12:10 AM CDT
2025 · On this date in other years · The biggest severe wind days
- A report is a single damage or measurement report to the National Weather Service. Several reports can describe one gust front, so reports are not storms.
- Reporting has grown with population, spotter networks and the internet, so counts from different decades are not directly comparable.
- Thunderstorm wind reports start at 50 knots (58 mph). SPC began flagging measured against estimated speeds in 2006; earlier reports are shown as estimated.
Storm Prediction Center severe weather database, 1955 to 2025. A day is SPC’s calendar date in Central Standard Time; a severe wind day here has 300 or more damaging wind reports, or 15 or more of 75 knots (86 mph) or more.