Tornadoes · United States · Michigan · 2025
EF0 tornado, Rockford to Moseley, Michigan, March 30, 2025
From Rockford to Moseley, this EF0 tornado ran 2.4 miles across Kent County on March 30, 2025, touching down at 6:00 PM EDT and reaching 300 yards wide. It killed nobody.
The rating scale
Tracks are drawn in the color of the rating. The Enhanced Fujita scale rates the damage rather than measuring the wind: the speeds are what that damage is taken to imply.
EF065 to 85 mphthis tornado
Light damage. Surface peeled off some roofs, gutters and siding damaged, branches broken, shallow-rooted trees pushed over.
EF186 to 110 mph
Moderate damage. Roofs badly stripped, mobile homes overturned or badly damaged, exterior doors lost, windows broken.
EF2111 to 135 mph
Considerable damage. Roofs torn off well-built houses, frame homes shifted on their foundations, mobile homes destroyed, large trees snapped or uprooted, cars lifted off the ground.
EF3136 to 165 mph
Severe damage. Whole stories of well-built houses destroyed, large buildings badly damaged, trains overturned, trees debarked, heavy cars lifted and thrown.
EF4166 to 200 mph
Devastating damage. Well-built houses leveled, structures with weak foundations moved some distance, cars thrown and large missiles generated.
EF5over 200 mph
Incredible damage. Strong frame houses swept off their foundations, car-sized missiles thrown more than 100 meters, steel-reinforced concrete badly damaged, high-rise buildings deformed.
Unrated
The survey recorded a tornado but could not put a number on it, most often because it crossed open country and damaged nothing a rating can be read from.
The record
- Rating
- EF0
- Date
- March 30, 2025
- Touchdown
- 6:00 PM EDT (22:00 UTC)
- Lifted
- 6:03 PM EDT (22:03 UTC)
- On the ground
- 3 minutes
- Path length
- 2.4 miles (3.9 km)
- Path width
- 300 yards (274 m)
- Deaths
- 0
- Injuries
- 0
- County
- Kent County
- Touchdown point
- 43.027, -85.368
- Lift-off point
- 43.059, -85.348
- Record number
- 2503301600-01
The damage survey
19 damage points were recorded along this path by NWS GRR, in the Damage Assessment Toolkit the survey teams carry. The strongest indicator was rated EF0. The highest wind the damage implies is 85 mph.
- Dozens uprooted or snapped
- Mostly shallow uproots and rotten snaps
- Center pivot irrigator tipped
- Dozens of mixed snaps and uproots. Old barns not damaged.
Survey points are preliminary and are the raw material the published rating was built from. Source: NWS Damage Assessment Toolkit.
What the Weather Service recorded
In the mid afternoon to early evening on March 30, severe storms brought destructive winds and produced tornadoes across lower Michigan. There were 9 total tornadoes in the Grand Rapids forecast area, with 14 total in the State of Michigan on March 30.
Multiple trees were uprooted or snapped along this tornado path. Minor damage to a couple of structures.
Damage to trees and roofs along the path. Sheet metal from one roof was carried close to one-half mile. At least one farm outbuilding collapsed.
From NOAA NCEI's Storm Events Database, the narrative the local forecast office wrote for Storm Data.
The warnings
11 minutes of warning. NWS GRR issued a tornado warning for this county at 21:49 UTC, 11 minutes before the tornado touched down, in force until 22:15 UTC.
The county was under a severe thunderstorm watch, issued at 20:20 UTC and running to 23:15 UTC.
| Issued (UTC) | Expired | Product | Office |
|---|---|---|---|
| 20:20 UTC | 23:15 UTC | Severe Thunderstorm Watch | GRR |
| 21:24 UTC | 22:30 UTC | Severe Thunderstorm Warning | GRR |
| 21:49 UTC | 22:15 UTC | Tornado Warning | GRR |
| 21:56 UTC | 22:19 UTC | Tornado Warning | GRR |
| 22:02 UTC | 22:21 UTC | Tornado Warning | GRR |
Every warning and watch covering the touchdown point that day, from the Iowa Environmental Mesonet's archive of National Weather Service products. Lead time is measured from the issue of the warning in force to the touchdown time in the database, both of which were recorded to the minute by different people.
The forecast that day
The Storm Prediction Center had this point in a Enhanced Risk, with a 0.02 chance of a tornado within 25 miles. The outlook in force was issued at 19:39 UTC.
SPC's Day 1 convective outlook as it stood when the tornado began, read at the touchdown point. The same archive is on the radar archive.
The air that afternoon
The radiosonde launches on either side of the tornado, from the nearest station that was launching then, drawn and analyzed the way Storm Lab does: the same diagram, the same parcel and shear definitions SPC's mesoanalysis uses.
Detroit, MI (KDTX), 12:00Z
10.0 hours before the tornado, 161 km from the path. March 30, 2025.
- Mixed-layer CAPE
- 0 J/kg
- Mixed-layer CIN
- -8245 J/kg
- Surface CAPE
- 0 J/kg
- Mixed-layer LCL
- 450 m above ground
- 0-6 km bulk shear
- 37 kt
- 0-1 km bulk shear
- 34 kt
- 0-1 km storm-relative helicity
- 327 m²/s²
- 0-3 km storm-relative helicity
- 304 m²/s²
- Significant tornado parameter
- 0.0
- Supercell composite
- 0.0
- 0-3 km lapse rate
- 3.5 K/km
Detroit, MI (KDTX), 00:00Z
2.0 hours after it, 161 km from the path. March 31, 2025.
- Mixed-layer CAPE
- 615 J/kg
- Mixed-layer CIN
- 0 J/kg
- Surface CAPE
- 695 J/kg
- Mixed-layer LCL
- 565 m above ground
- 0-6 km bulk shear
- 48 kt
- 0-1 km bulk shear
- 45 kt
- 0-1 km storm-relative helicity
- 321 m²/s²
- 0-3 km storm-relative helicity
- 346 m²/s²
- Significant tornado parameter
- 1.1
- Supercell composite
- 4.9
- 0-3 km lapse rate
- 6.5 K/km
The surface observations
Grand Rapids (GRR), 22 km from the path, in the two hours either side.
| Time (UTC) | Temp (°F) | Dew point (°F) | Wind | Gust (kt) | Pressure (mb) | Weather |
|---|---|---|---|---|---|---|
| 20:00 UTC | 180° 7 kt | 1000 | ||||
| 20:05 UTC | 190° 8 kt | 1000 | ||||
| 20:10 UTC | 180° 5 kt | 1000 | ||||
| 20:14 UTC | 68 | 62 | 180° 8 kt | 1000 | ||
| 20:15 UTC | 180° 8 kt | 1000 | ||||
| 20:20 UTC | 170° 7 kt | 999.7 | ||||
| 20:25 UTC | 160° 9 kt | 999.7 | ||||
| 20:30 UTC | 170° 10 kt | 999.7 | ||||
| 20:35 UTC | 170° 9 kt | 999.3 | ||||
| 20:40 UTC | 160° 10 kt | 999.3 | ||||
| 20:45 UTC | 170° 8 kt | 999.3 | ||||
| 20:50 UTC | 160° 8 kt | 999 | ||||
| 20:53 UTC | 69 | 62 | 150° 10 kt | 998.6 | ||
| 20:55 UTC | 150° 9 kt | 998.6 | ||||
| 21:00 UTC | 150° 11 kt | 998.3 | ||||
| 21:05 UTC | 160° 10 kt | 998.3 | ||||
| 21:10 UTC | 160° 9 kt | 998 | ||||
| 21:15 UTC | 150° 8 kt | 997.6 | ||||
| 21:20 UTC | 130° 8 kt | 997.6 | ||||
| 21:25 UTC | 150° 8 kt | 997.6 | ||||
| 21:30 UTC | 150° 9 kt | 14 | 997 | |||
| 21:35 UTC | 140° 11 kt | 997 | ||||
| 21:36 UTC | 69 | 61 | 150° 11 kt | 997 | -TSRA | |
| 21:40 UTC | 997.3 | -RA | ||||
| 21:43 UTC | 68 | 61 | 190° 13 kt | 997.6 | +TSRA | |
| 21:45 UTC | 220° 11 kt | 997.6 | +RA | |||
| 21:50 UTC | 69 | +RA | ||||
| 21:51 UTC | 62.6 | 59 | 260° 48 kt | 70 | 1000 | +TSRA BR SQ |
| 21:53 UTC | 60 | 56 | 250° 42 kt | 70 | 999.7 | +TSRA FG SQ |
| 21:55 UTC | 41 | 999.7 | +RA FG SQ | |||
| 22:00 UTC | 56 | 53 | 230° 24 kt | 63 | 1000.7 | TSRA FG |
| 22:00 UTC | 30 | 1000.7 | RA FG | |||
| 22:05 UTC | 26 | 1000.7 | RA BR | |||
| 22:10 UTC | 1000 | +RA BR | ||||
| 22:12 UTC | 56 | 54 | 230° 19 kt | 29 | 1000 | -TSRA BR |
| 22:15 UTC | 26 | 1000 | -RA BR | |||
| 22:20 UTC | 230° 20 kt | 26 | 1000 | -RA BR | ||
| 22:25 UTC | 21 | 999.7 | -RA BR | |||
| 22:30 UTC | 230° 15 kt | 999.3 | RA BR | |||
| 22:35 UTC | 210° 11 kt | 999.3 | RA BR | |||
| 22:40 UTC | 200° 11 kt | 999.3 | RA BR | |||
| 22:45 UTC | 200° 11 kt | 999.3 | RA BR | |||
| 22:50 UTC | 190° 11 kt | 999 | RA BR | |||
| 22:53 UTC | 56 | 54 | 170° 6 kt | 998.3 | TSRA BR | |
| 22:55 UTC | 160° 4 kt | 998 | RA BR | |||
| 23:00 UTC | 200° 5 kt | 998 | RA BR | |||
| 23:05 UTC | 200° 10 kt | 998.6 | RA | |||
| 23:10 UTC | 210° 10 kt | 998.6 | -RA | |||
| 23:15 UTC | 210° 11 kt | 999 | -RA | |||
| 23:17 UTC | 56 | 54 | 210° 11 kt | 998.6 | +RA BR | |
| 23:20 UTC | 220° 10 kt | 998.6 | +RA BR | |||
| 23:25 UTC | 230° 11 kt | 999 | -RA BR | |||
| 23:30 UTC | 230° 11 kt | 999 | -RA BR | |||
| 23:35 UTC | 230° 11 kt | 999 | ||||
| 23:40 UTC | 230° 11 kt | 999 | ||||
| 23:45 UTC | 220° 10 kt | 999.3 | ||||
| 23:50 UTC | 230° 9 kt | 999.3 | ||||
| 23:53 UTC | 57 | 55 | 230° 9 kt | 999.3 | ||
| 23:55 UTC | 220° 11 kt | 22 | 999.3 |
From the Iowa Environmental Mesonet's archive of airport observations.
The radar
The Grand Rapids radar (KGRR), 22 km away, was scanning. The volume nearest the touchdown began at 22:02 UTC.
Open the radar archive at this moment, over the track
Reflectivity and velocity, decoded from the Level II archive in the browser. Volumes take a few seconds to open the first time.
What was reported nearby
Local storm reports within 60 km of the path, in the three hours either side.
| Time (UTC) | Report | Where | County | Remark |
|---|---|---|---|---|
| 21:30 UTC | TSTM WND GST 72 | 2 Sw Jamestown | Ottawa, MI | Tree branches down, barn is leaning. 72 mph wind gust from public report, time estimated via radar. |
| 21:42 UTC | TORNADO | 4 S Cutlerville | Kent, MI | EF0 with winds up to 80 mph. Tornado path was 4.2 miles and ended at lat/lon 42.814/-85.575. |
| 21:45 UTC | TSTM WND DMG | 3 Ssw Dutton | Kent, MI | Trained spotter reports significant tree damage, a flattened barn, and debris spread. Delayed report. |
| 21:49 UTC | TSTM WND DMG | Middleville | Barry, MI | Delayed report. Time estimated via radar. Several reports of trees and wires down. |
| 21:50 UTC | TSTM WND DMG | Ada | Kent, MI | Delayed report. Time estimated via radar and ASOS observation. Numerous trees downed. |
| 21:50 UTC | TSTM WND DMG | Delton | Barry, MI | Roof blown off a barn. Also a tree on a house. |
| 21:50 UTC | TSTM WND GST 81 | 2 Ssw Cascade | Kent, MI | ASOS station KGRR Gerald R Ford Intl. |
| 21:54 UTC | TSTM WND DMG | 2 W Sparta | Kent, MI | Spots with trees snapped or uprooted within a 1 mile wide and 5 mile long area. Two barns exposed to wind partly to mostly collapsed. One premanufactured home with substantial loss of roof covering which was strewn acros |
| 21:55 UTC | TSTM WND GST 72 | 5 Wsw Nashville | Barry, MI | 72 mph gust reported by trainer spotter. Time estimated via radar. Delayed report. |
| 21:58 UTC | TORNADO | 2 N Kent City | Kent, MI | EF-1. Damage path 1.6 miles and duration 2 minutes. High percentage of hardwood trees in a wooded area uprooted NNW and NE in convergent pattern and several healthy trunks were snapped or stubbed. |
| 22:00 UTC | TSTM WND DMG | 3 S Hastings | Barry, MI | Roof lifted off barn. Roof was overhanging an open-air five-stall vehicle storage area on the south side of the structure. |
| 22:00 UTC | TSTM WND DMG | 4 Sse Grattan | Kent, MI | One barn heavily damaged and four barns with roofs off east of Murray Lake. A couple other spots of trees snapped or uprooted near Lincoln Lake Ave between 4 Mile and 6 Mile Road. |
| 22:00 UTC | TSTM WND DMG | 5 Ssw Croton | Newaygo, MI | Delayed report. Time estimated via radar. One electric transmission tower downed and another bent. Possible tornado. |
| 22:00 UTC | TSTM WND GST 61 | 2 Nw Sparta | Kent, MI | Corrects previous non-tstm wnd gst report from 2 NW Sparta. Mesonet station MISPN 2.0 NW Sparta (MAWN). |
| 22:00 UTC | NON-TSTM WND GST 61 | 2 Nw Sparta | Kent, MI | Mesonet station MISPN 2.0 NW Sparta (MAWN). |
| 22:00 UTC | TORNADO | 3 E Rockford | Kent, MI | EF-0. Multiple trees uprooted and snapped along a 5 mile path. Center pivot irrigation system tipped. |
| 22:00 UTC | TORNADO | 4 S Grattan | Kent, MI | EF-0. 2.4 mile path on the northwest flank of a wind surge. Damage to trees and roofs. Sheet metal carried 0.4 miles. One farm outbuilding collapsed. |
| 22:02 UTC | TSTM WND DMG | 5 Se Saranac | Ionia, MI | Delayed Report. Time estimated via radar. Garage doors blown out at Ionia Co Road Dept. Building. |
| 22:03 UTC | TSTM WND DMG | 2 Nw Cedar Springs | Kent, MI | Trees down in the area and a barn damaged. White Creek Ave. |
| 22:05 UTC | TORNADO | 5 Ssw Croton | Newaygo, MI | Multiple public reports of a tornado on the ground, observed at Oak and 104th. Time 605 PM estimated via radar. |
| 22:07 UTC | TORNADO | 4 Ene Grattan | Ionia, MI | EF-0. 85 mph winds. Several farm or outbuildings sustained damage with a couple of homes seeing siding or roofing damage. A number of trees were also knocked down or has large snapped branches/small trunks along the path |
| 22:10 UTC | TSTM WND DMG | 3 Nw Lake Odessa | Ionia, MI | Three wooden power poles snapped along Bliss Road. |
| 22:10 UTC | TSTM WND GST 61 | 1 W Cedar Springs | Kent, MI | Mesonet station MC151 US-131 Mile Marker 104.7. |
| 22:11 UTC | TSTM WND GST 62 | 1 Ese Irving | Barry, MI | Report of 62 MPH winds via Trained Spotter. Numerous trees down. |
| 22:13 UTC | HAIL 0.75 | Greenville | Montcalm, MI | Report from mPING: Dime (0.75 in.). |
| 22:20 UTC | TSTM WND DMG | 1 Wsw Mulliken | Eaton, MI | Delayed Report. Time estimated via radar. Wire down on Grand Ledge Hwy. |
| 22:21 UTC | TORNADO | 3 Nnw Muir | Ionia, MI | EF-0. 65 mph. Minor property damage and tree damage occurred along this brief tornado path. 0.5 miles in length. |
| 22:22 UTC | TSTM WND DMG | Grand Ledge | Eaton, MI | Delayed Report. Time estimated via radar. Several downed trees and large limbs in Grand Ledge area. |
| 22:24 UTC | TSTM WND DMG | Portland | Ionia, MI | Delayed Report. Time estimated via radar. Several photos of social media on downed trees. |
| 22:28 UTC | TSTM WND DMG | Carson City | Montcalm, MI | Delayed report. Time estimated via radar. Barn with roof partially removed. |
From the Iowa Environmental Mesonet's archive of National Weather Service local storm reports.
This ground now
The live radar over the trackEvery 2025 tornado in MichiganEvery tornado in Michigan since 1950Warnings in force in Michigan nowThe forecast where you are
The other tornadoes of March 30, 2025
42 more were confirmed in the United States that day.
| Date | Time | Rating | Where | Path (mi) | Width (yd) | Deaths | Injuries | Damage |
|---|---|---|---|---|---|---|---|---|
| March 30 | 11:46 AM CDT | EF0 | Jackson, MS | 2.4 | 75 | |||
| March 30 | 1:20 PM CDT | EF1 | Champaign, IL | 12.1 | 300 | |||
| March 30 | 1:37 PM CDT | EF0 | Jackson, MS | 0.9 | 75 | $5,000 | ||
| March 30 | 2:28 PM CDT | EF0 | Newton, IN | 6.1 | 200 | |||
| March 30 | 3:22 PM CDT | EF1 | Starke, IN | 3.2 | 750 | 1 | $110,000 | |
| March 30 | 4:52 PM EDT | EF1 | Cass, MI | 2.6 | 100 | $100,000 | ||
| March 30 | 4:56 PM EDT | EF1 | Cass, MI | 2.0 | 200 | $50,000 | ||
| March 30 | 5:16 PM EDT | EF1 | Noble, IN | 1.4 | 200 | $100,000 | ||
| March 30 | 5:17 PM EDT | EF0 | Saint Joseph, MI | 3.6 | 300 | $60,000 | ||
| March 30 | 5:28 PM EDT | EF1 | Steuben, IN | 5.7 | 100 | $100,000 | ||
| March 30 | 5:42 PM EDT | EF0 | Kent, MI | 4.2 | 150 | |||
| March 30 | 5:58 PM EDT | EF1 | Kent, MI | 1.7 | 250 | |||
| March 30 | 6:00 PM EDT | EF0 | Kent, MI | 5.0 | 150 | |||
| March 30 | 5:02 PM CDT | EF1 | Ripley, MO | 8.6 | 50 | $55,000 | ||
| March 30 | 6:05 PM EDT | EF0 | Newaygo, MI | 2.8 | 50 | |||
| March 30 | 6:07 PM EDT | EF0 | Ionia, MI | 2.2 | 150 | |||
| March 30 | 6:20 PM EDT | EF0 | Ingham, MI | 2.7 | 50 | |||
| March 30 | 6:21 PM EDT | EF0 | Ionia, MI | 0.5 | 25 | |||
| March 30 | 6:40 PM EDT | EF1 | Ingham, MI | 5.3 | 150 | |||
| March 30 | 6:45 PM EDT | EF0 | Monroe, IN | 0.1 | 30 | $15,000 | ||
| March 30 | 6:51 PM EDT | EF0 | Monroe, MI | 0.5 | 100 | |||
| March 30 | 7:00 PM EDT | EF1 | Shiawassee, MI | 0.9 | 100 | |||
| March 30 | 6:05 PM CDT | EF1 | Alexander, IL | 23.9 | 150 | $75,000 | ||
| March 30 | 7:54 PM EDT | EF0 | Ripley, IN | 2.2 | 100 | $150,000 | ||
| March 30 | 8:02 PM EDT | EF1 | Ripley, IN | 4.8 | 200 | $200,000 | ||
| March 30 | 7:39 PM CDT | EF0 | Poinsett, AR | 4.8 | 150 | $3,000 | ||
| March 30 | 8:40 PM EDT | EF0 | Butler, OH | 6.9 | 150 | $250,000 | ||
| March 30 | 8:52 PM EDT | EF0 | Butler, OH | 11.7 | 200 | $265,000 | ||
| March 30 | 9:07 PM EDT | EF0 | Warren, OH | 3.0 | 150 | $100,000 | ||
| March 30 | 8:20 PM CDT | EF1 | Breckinridge, KY | 2.5 | 30 | |||
| March 30 | 9:23 PM EDT | EF1 | Meade, KY | 30.3 | 500 | 1 | ||
| March 30 | 9:35 PM EDT | EF1 | Fayette, OH | 3.9 | 250 | $250,000 | ||
| March 30 | 9:35 PM EDT | EF1 | Meade, KY | 7.2 | 50 | |||
| March 30 | 9:48 PM EDT | EF1 | Jefferson, KY | 5.4 | 30 | 1 | ||
| March 30 | 10:10 PM EDT | EF0 | Franklin, OH | 2.6 | 250 | $85,000 | ||
| March 30 | 10:23 PM EDT | EF1 | Spencer, KY | 2.5 | 80 | |||
| March 30 | 10:07 PM CDT | EF1 | Humphreys, TN | 2.0 | 150 | $100,000 | ||
| March 30 | 10:25 PM CDT | EF0 | Humphreys, TN | 2.5 | 300 | $100,000 | ||
| March 30 | 11:07 PM CDT | EF0 | Hickman, TN | 2.2 | 150 | $50,000 | ||
| March 30 | 11:12 PM CDT | EF0 | Perry, TN | 0.3 | 75 | $50,000 | ||
| March 30 | 12:00 AM CDT | EF2 | Maury, TN | 5.6 | 350 | $500,000 | ||
| March 30 | 12:14 AM CDT | EF1 | Maury, TN | 4.1 | 300 | $50,000 |
What this means
Ratings are the survey's, read off the damage rather than measured; the rating scale is above. Tornado counts rise through the record as reporting improved, so a year in the 1950s is not comparable with one today except for the strongest tornadoes, which were always noticed.
Sources
NOAA Storm Prediction Center tornado database, 1950-2025, the official record kept by NOAA's Storm Prediction Center.