{
 "dataset": "Grand Rapids, MI storm events — 12-month window, 25-mile radius (floods and special weather statements excluded, matching the city page)",
 "license": "https://www.stormauditor.com/data-license",
 "provenance": "Deduplicated by StormAuditor from public NOAA/NWS records (warnings, Local Storm Reports, NCEI Storm Events) under the published methodology at https://www.stormauditor.com/methodology",
 "refreshed_at": "2026-08-24T11:00:16.933+00:00",
 "window_days": 365,
 "event_count": 182,
 "fields": {
  "date": "Event date (YYYY-MM-DD, local storm day)",
  "county": "County or county-equivalent",
  "city": "Nearest city/place named in the source record",
  "event_type": "hazard tag: wind | hail | tornado | flood | lightning",
  "severity": "StormAuditor severity bucket (low|moderate|high|severe)",
  "evidence": "evidence level of the source record",
  "wind_mph": "reported/estimated wind gust, mph (blank if n/a)",
  "hail_in": "reported/estimated hail size, inches (blank if n/a)",
  "source": "originating public record (NWS warning, LSR, NCEI, ...)",
  "lat": "event latitude (WGS84, may be blank)",
  "lon": "event longitude (WGS84, may be blank)"
 },
 "events": [
  {
   "id": "nws-alert-a5cc70763b7ceb90.001-Allegan-wind-2026-08-10",
   "lat": 42.63,
   "lon": -85.766,
   "zip": "",
   "city": "",
   "date": "2026-08-10",
   "county": "Allegan",
   "source": "NWS Weather Alert",
   "severity": "high",
   "eventType": "wind",
   "confidence": 88,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Severe Thunderstorm Warning for Allegan. Severe Thunderstorm Warning issued August 10 at 3:39AM EDT until August 10 at 3:45AM EDT by NWS Grand Rapids MI",
   "sourceDetail": "NWS Grand Rapids MI — Severe Thunderstorm Warning",
   "windSpeedMph": 60,
   "evidenceLevel": "warning",
   "warningProductKey": "GRR-SV-W-119"
  },
  {
   "id": "nws-alert-b266cfb8ba300daa.001-Allegan-hail-2026-08-10",
   "lat": 42.63,
   "lon": -85.766,
   "zip": "",
   "city": "",
   "date": "2026-08-10",
   "county": "Allegan",
   "source": "NWS Weather Alert",
   "severity": "moderate",
   "eventType": "hail",
   "confidence": 88,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "Severe Thunderstorm Warning for Allegan. Max hail: 0.75\". Severe Thunderstorm Warning issued August 10 at 3:15AM EDT until August 10 at 3:45AM EDT by NWS Grand Rapids MI",
   "sourceDetail": "NWS Grand Rapids MI — Severe Thunderstorm Warning Max hail: 0.75\".",
   "evidenceLevel": "warning",
   "hailSizeInches": 0.75,
   "warningProductKey": "GRR-SV-W-119"
  },
  {
   "id": "nws-alert-a5bad776ef97e27b.001-Barry-wind-2026-08-09",
   "lat": 42.76285714285715,
   "lon": -85.32142857142857,
   "zip": "",
   "city": "",
   "date": "2026-08-09",
   "county": "Barry",
   "source": "NWS Weather Alert",
   "severity": "high",
   "eventType": "wind",
   "confidence": 88,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Severe Thunderstorm Warning for Barry. Max wind: 60 mph. Severe Thunderstorm Warning issued August 9 at 4:36PM EDT until August 9 at 5:00PM EDT by NWS Grand Rapids MI",
   "sourceDetail": "NWS Grand Rapids MI — Severe Thunderstorm Warning Max wind: 60 mph.",
   "windSpeedMph": 60,
   "evidenceLevel": "warning",
   "warningProductKey": "GRR-SV-W-115"
  },
  {
   "id": "nws-alert-a5bad776ef97e27b.001-Kent-wind-2026-08-09",
   "lat": 42.76285714285715,
   "lon": -85.32142857142857,
   "zip": "",
   "city": "",
   "date": "2026-08-09",
   "county": "Kent",
   "source": "NWS Weather Alert",
   "severity": "high",
   "eventType": "wind",
   "confidence": 88,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Severe Thunderstorm Warning for Kent. Max wind: 60 mph. Severe Thunderstorm Warning issued August 9 at 4:36PM EDT until August 9 at 5:00PM EDT by NWS Grand Rapids MI",
   "sourceDetail": "NWS Grand Rapids MI — Severe Thunderstorm Warning Max wind: 60 mph.",
   "windSpeedMph": 60,
   "evidenceLevel": "warning",
   "warningProductKey": "GRR-SV-W-115"
  },
  {
   "id": "nws-alert-03b1bc9b01c74a00.001-Ottawa-wind-2026-08-09",
   "lat": 42.76111111111111,
   "lon": -85.97777777777777,
   "zip": "",
   "city": "",
   "date": "2026-08-09",
   "county": "Ottawa",
   "source": "NWS Weather Alert",
   "severity": "high",
   "eventType": "wind",
   "confidence": 88,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Severe Thunderstorm Warning for Ottawa. Max wind: 60 mph. Severe Thunderstorm Warning issued August 9 at 3:29PM EDT until August 9 at 4:00PM EDT by NWS Grand Rapids MI",
   "sourceDetail": "NWS Grand Rapids MI — Severe Thunderstorm Warning Max wind: 60 mph.",
   "windSpeedMph": 60,
   "evidenceLevel": "warning",
   "warningProductKey": "GRR-SV-W-112"
  },
  {
   "id": "nws-alert-03b1bc9b01c74a00.001-Ottawa-hail-2026-08-09",
   "lat": 42.76111111111111,
   "lon": -85.97777777777777,
   "zip": "",
   "city": "",
   "date": "2026-08-09",
   "county": "Ottawa",
   "source": "NWS Weather Alert",
   "severity": "moderate",
   "eventType": "hail",
   "confidence": 88,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "Severe Thunderstorm Warning for Ottawa. Max hail: 0.75\". Severe Thunderstorm Warning issued August 9 at 3:29PM EDT until August 9 at 4:00PM EDT by NWS Grand Rapids MI",
   "sourceDetail": "NWS Grand Rapids MI — Severe Thunderstorm Warning Max hail: 0.75\".",
   "evidenceLevel": "warning",
   "hailSizeInches": 0.75,
   "warningProductKey": "GRR-SV-W-112"
  },
  {
   "id": "nws-alert-a5bad776ef97e27b.001-Barry-hail-2026-08-09",
   "lat": 42.76285714285715,
   "lon": -85.32142857142857,
   "zip": "",
   "city": "",
   "date": "2026-08-09",
   "county": "Barry",
   "source": "NWS Weather Alert",
   "severity": "moderate",
   "eventType": "hail",
   "confidence": 88,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "Severe Thunderstorm Warning for Barry. Max hail: 0.75\". Severe Thunderstorm Warning issued August 9 at 4:36PM EDT until August 9 at 5:00PM EDT by NWS Grand Rapids MI",
   "sourceDetail": "NWS Grand Rapids MI — Severe Thunderstorm Warning Max hail: 0.75\".",
   "evidenceLevel": "warning",
   "hailSizeInches": 0.75,
   "warningProductKey": "GRR-SV-W-115"
  },
  {
   "id": "nws-alert-a5bad776ef97e27b.001-Kent-hail-2026-08-09",
   "lat": 42.76285714285715,
   "lon": -85.32142857142857,
   "zip": "",
   "city": "",
   "date": "2026-08-09",
   "county": "Kent",
   "source": "NWS Weather Alert",
   "severity": "moderate",
   "eventType": "hail",
   "confidence": 88,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "Severe Thunderstorm Warning for Kent. Max hail: 0.75\". Severe Thunderstorm Warning issued August 9 at 4:36PM EDT until August 9 at 5:00PM EDT by NWS Grand Rapids MI",
   "sourceDetail": "NWS Grand Rapids MI — Severe Thunderstorm Warning Max hail: 0.75\".",
   "evidenceLevel": "warning",
   "hailSizeInches": 0.75,
   "warningProductKey": "GRR-SV-W-115"
  },
  {
   "id": "iem-lsr-2026-07-03-wind-42.73--85.65",
   "lat": 42.73,
   "lon": -85.65,
   "zip": "",
   "city": "4 E Dorr",
   "date": "2026-07-03",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet station AX192 WAYLAND.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 50,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-07-03-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-07-03",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202607032030-wind-42.73--85.65",
   "lat": 42.73,
   "lon": -85.65,
   "zip": "",
   "city": "4 E Dorr",
   "date": "2026-07-03",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 4 E Dorr, MI. Peak gust: 58 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202607032036-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-07-03",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 62 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 62,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-GRR-2026-07-03",
   "lat": 42.8821,
   "lon": -85.523,
   "zip": "",
   "city": "Grand Rapids",
   "date": "2026-07-03",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Grand Rapids (GRR) recorded a 53 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Grand Rapids (GRR) [365d backfill 2026-08]",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-07-02-wind-42.66--85.65",
   "lat": 42.66,
   "lon": -85.65,
   "zip": "",
   "city": "1 SSW Wayland",
   "date": "2026-07-02",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Time estimated by radar. Mesonet station BDLM4 Bradley.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202607030354-wind-42.66--85.65",
   "lat": 42.66,
   "lon": -85.65,
   "zip": "",
   "city": "1 SSW Wayland",
   "date": "2026-07-02",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 SSW Wayland, MI. Peak gust: 61 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 61,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202606162008-hail-43.15--85.51",
   "lat": 43.15,
   "lon": -85.51,
   "zip": "",
   "city": "3 NE Rockford",
   "date": "2026-06-16",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 3 NE Rockford, MI. Hail size: 1\".",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202606162014-hail-43.17--85.51",
   "lat": 43.17,
   "lon": -85.51,
   "zip": "",
   "city": "4 SSE Cedar Springs",
   "date": "2026-06-16",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 4 SSE Cedar Springs, MI. Hail size: 1\".",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202606162019-hail-43.17--85.35",
   "lat": 43.17,
   "lon": -85.35,
   "zip": "",
   "city": "5 W Greenville",
   "date": "2026-06-16",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 5 W Greenville, MI. Hail size: 1\".",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "spc-2026-06-16-247-2008",
   "lat": 43.15,
   "lon": -85.51,
   "zip": "",
   "city": "Rockford",
   "date": "2026-06-16",
   "county": "Kent",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "Report from mPING: Quarter (1.00 in.). (GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "spc-2026-06-16-248-2014",
   "lat": 43.17,
   "lon": -85.51,
   "zip": "",
   "city": "Cedar Springs",
   "date": "2026-06-16",
   "county": "Kent",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "(GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "spc-2026-06-16-249-2019",
   "lat": 43.17,
   "lon": -85.35,
   "zip": "",
   "city": "Greenville",
   "date": "2026-06-16",
   "county": "Kent",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "(GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-geo-2026-06-12T01:31:00Z-tornado-42.78--85.47",
   "lat": 42.78,
   "lon": -85.47,
   "zip": "",
   "city": "2 ESE Caledonia",
   "date": "2026-06-11",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "tornado",
   "confidence": 92,
   "damageTypes": [
    "Structural roof failure",
    "Debris penetration",
    "Complete shingle removal"
   ],
   "description": "TORNADO reported near 2 ESE Caledonia, MI. This EF-0 tornado had maximum estimated winds of 85 mph and a path of around 4.25 miles. Extensive tree damage occurred along this path with the Saskatoon Golf Club seeing the most significant tree damage.",
   "sourceDetail": "NWS GRR — NWS Storm Survey via Iowa Mesonet (GeoJSON)",
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-geo-2026-06-12T01:31:00Z-tornado-42.66--85.44",
   "lat": 42.66,
   "lon": -85.44,
   "zip": "",
   "city": "2 SSW Irving",
   "date": "2026-06-11",
   "county": "Barry",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "tornado",
   "confidence": 92,
   "damageTypes": [
    "Structural roof failure",
    "Debris penetration",
    "Complete shingle removal"
   ],
   "description": "TORNADO reported near 2 SSW Irving, MI. This EF-0 tornado had maximum estimated winds of 75 mph and a path of around 2.9 miles. Extensive tree damage occurred along this tornado path in Barry County.",
   "sourceDetail": "NWS GRR — NWS Storm Survey via Iowa Mesonet (GeoJSON)",
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-06-11-302-0131",
   "lat": 42.66,
   "lon": -85.44,
   "zip": "",
   "city": "Irving",
   "date": "2026-06-11",
   "county": "Barry",
   "source": "SPC Storm Reports",
   "severity": "moderate",
   "eventType": "tornado",
   "confidence": 90,
   "damageTypes": [
    "Structural roof failure",
    "Debris penetration",
    "Complete shingle removal"
   ],
   "description": "This EF-0 tornado had maximum estimated winds of 75 mph and a path of around 2.9 miles. Extensive tree damage occurred along this tornado path in Barry County. (GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-06-11-304-0131",
   "lat": 42.78,
   "lon": -85.47,
   "zip": "",
   "city": "Caledonia",
   "date": "2026-06-11",
   "county": "Kent",
   "source": "SPC Storm Reports",
   "severity": "moderate",
   "eventType": "tornado",
   "confidence": 90,
   "damageTypes": [
    "Structural roof failure",
    "Debris penetration",
    "Complete shingle removal"
   ],
   "description": "This EF-0 tornado had maximum estimated winds of 85 mph and a path of around 4.25 miles. Extensive tree damage occurred along this path with the Saskatoon Golf Club see (GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2026-06-10-wind-42.66--85.65",
   "lat": 42.66,
   "lon": -85.65,
   "zip": "",
   "city": "1 SSW Wayland",
   "date": "2026-06-10",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet station BDLM4 Plainwell. Time estimated based on radar.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 57,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-06-10-wind-42.95--85.61",
   "lat": 42.95,
   "lon": -85.61,
   "zip": "",
   "city": "East Grand Rapids",
   "date": "2026-06-10",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Time estimated.",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 55,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2026-06-10-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-06-10",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202606102256-wind-42.66--85.65",
   "lat": 42.66,
   "lon": -85.65,
   "zip": "",
   "city": "1 SSW Wayland",
   "date": "2026-06-10",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 SSW Wayland, MI. Peak gust: 66 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 66,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202606102258-wind-42.95--85.61",
   "lat": 42.95,
   "lon": -85.61,
   "zip": "",
   "city": "East Grand Rapids",
   "date": "2026-06-10",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near East Grand Rapids, MI. Peak gust: 63 mph.",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 63,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202606102304-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-06-10",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 59 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 59,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-GRR-2026-06-10",
   "lat": 42.8821,
   "lon": -85.523,
   "zip": "",
   "city": "Grand Rapids",
   "date": "2026-06-10",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Grand Rapids (GRR) recorded a 50 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Grand Rapids (GRR) [365d backfill 2026-08]",
   "windSpeedMph": 50,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-05-18-wind-42.73--85.72",
   "lat": 42.73,
   "lon": -85.72,
   "zip": "",
   "city": "1 N Dorr",
   "date": "2026-05-18",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Reporter also notes numerous downed tree limbs. Time estimated via radar.",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 64,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2026-05-18-wind-42.97--85.89",
   "lat": 42.97,
   "lon": -85.89,
   "zip": "",
   "city": "1 WSW Grand Valley",
   "date": "2026-05-18",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet station GW5392 ALLENDALE.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 55,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-05-18-wind-42.73--85.65",
   "lat": 42.73,
   "lon": -85.65,
   "zip": "",
   "city": "4 E Dorr",
   "date": "2026-05-18",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet station AX192 WAYLAND.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 57,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-05-18-wind-42.83--85.47",
   "lat": 42.83,
   "lon": -85.47,
   "zip": "",
   "city": "Alaska",
   "date": "2026-05-18",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet station AV527 Caledonia.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-05-18-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-05-18",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Gerald R Ford International Airport ASOS.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 75,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-05-18-wind-42.88--85.61",
   "lat": 42.88,
   "lon": -85.61,
   "zip": "",
   "city": "1 W Kentwood",
   "date": "2026-05-18",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet recorded gust.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 81,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202605181820-wind-42.73--85.72",
   "lat": 42.73,
   "lon": -85.72,
   "zip": "",
   "city": "1 N Dorr",
   "date": "2026-05-18",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 N Dorr, MI. Peak gust: 74 mph.",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 74,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202605181830-wind-42.97--85.89",
   "lat": 42.97,
   "lon": -85.89,
   "zip": "",
   "city": "1 WSW Grand Valley",
   "date": "2026-05-18",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 WSW Grand Valley, MI. Peak gust: 63 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 63,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202605181830-wind-42.73--85.65",
   "lat": 42.73,
   "lon": -85.65,
   "zip": "",
   "city": "4 E Dorr",
   "date": "2026-05-18",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 4 E Dorr, MI. Peak gust: 66 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 66,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202605181840-wind-42.83--85.47",
   "lat": 42.83,
   "lon": -85.47,
   "zip": "",
   "city": "Alaska",
   "date": "2026-05-18",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near Alaska, MI. Peak gust: 60 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 60,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202605181842-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-05-18",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 86 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 86,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202605181845-wind-42.88--85.61",
   "lat": 42.88,
   "lon": -85.61,
   "zip": "",
   "city": "1 W Kentwood",
   "date": "2026-05-18",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 W Kentwood, MI. Peak gust: 93 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 93,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-05-18T18:56:00Z-wind-43.20--85.59",
   "lat": 43.2,
   "lon": -85.59,
   "zip": "",
   "city": "3 SW Cedar Springs",
   "date": "2026-05-18",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 3 SW Cedar Springs, MI. Peak gust: 53 mph. Mesonet station AV534 Cedar Springs.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-05-18T18:20:00Z-wind-42.65--85.76",
   "lat": 42.65,
   "lon": -85.76,
   "zip": "",
   "city": "2 N Hopkins",
   "date": "2026-05-18",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 N Hopkins, MI. Peak gust: 54 mph. Mesonet station AX249 HOPKINS.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-05-18T18:20:00Z-wind-42.64--85.68",
   "lat": 42.64,
   "lon": -85.68,
   "zip": "",
   "city": "2 WNW Bradley",
   "date": "2026-05-18",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 WNW Bradley, MI. Peak gust: 55 mph. Mesonet station CW5467 Hopkins.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 55,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-GRR-2026-05-18",
   "lat": 42.8821,
   "lon": -85.523,
   "zip": "",
   "city": "Grand Rapids",
   "date": "2026-05-18",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Grand Rapids (GRR) recorded a 75 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Grand Rapids (GRR) [365d backfill 2026-08]",
   "windSpeedMph": 75,
   "evidenceLevel": "observed"
  },
  {
   "id": "spc-2026-05-18-421-1842",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "Cascade",
   "date": "2026-05-18",
   "county": "Kent",
   "source": "SPC Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Gerald R Ford International Airport ASOS. (GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 75,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-05-18-423-1845",
   "lat": 42.88,
   "lon": -85.61,
   "zip": "",
   "city": "Kentwood",
   "date": "2026-05-18",
   "county": "Kent",
   "source": "SPC Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet recorded gust. (GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 81,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-05-18-413-1820",
   "lat": 42.73,
   "lon": -85.72,
   "zip": "",
   "city": "Dorr",
   "date": "2026-05-18",
   "county": "Allegan",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Reporter also notes numerous downed tree limbs. Time estimated via radar. (GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 64,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2026-05-12-wind-43.03--85.69",
   "lat": 43.03,
   "lon": -85.69,
   "zip": "",
   "city": "1 SW Comstock Park",
   "date": "2026-05-12",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SW Comstock Park",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 50,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202605130322-wind-43.03--85.69",
   "lat": 43.03,
   "lon": -85.69,
   "zip": "",
   "city": "1 SW Comstock Park",
   "date": "2026-05-12",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SW Comstock Park, MI. Peak gust: 58 mph.",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2026-05-03-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-05-03",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 50,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202605031901-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-05-03",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 58 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-GRR-2026-05-03",
   "lat": 42.8821,
   "lon": -85.523,
   "zip": "",
   "city": "Grand Rapids",
   "date": "2026-05-03",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Grand Rapids (GRR) recorded a 50 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Grand Rapids (GRR) [365d backfill 2026-08]",
   "windSpeedMph": 50,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-04-27-wind-43.19--85.77",
   "lat": 43.19,
   "lon": -85.77,
   "zip": "",
   "city": "2 SSW Kent City",
   "date": "2026-04-27",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Kent City",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "windSpeedMph": 61,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2026-04-27-wind-43.03--85.69",
   "lat": 43.03,
   "lon": -85.69,
   "zip": "",
   "city": "1 SW Comstock Park",
   "date": "2026-04-27",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SW Comstock Park",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 57,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2026-04-27-wind-43.18--85.74",
   "lat": 43.18,
   "lon": -85.74,
   "zip": "",
   "city": "2 NW Sparta",
   "date": "2026-04-27",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet station MISPN 2.0 NW Sparta (MAWN).",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 50,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-04-27-wind-43.12--85.83",
   "lat": 43.12,
   "lon": -85.83,
   "zip": "",
   "city": "1 WNW Wright",
   "date": "2026-04-27",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet station MICNK 1.1 W Wright (MAWN).",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202604272044-wind-43.19--85.77",
   "lat": 43.19,
   "lon": -85.77,
   "zip": "",
   "city": "2 SSW Kent City",
   "date": "2026-04-27",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Kent City, MI. Peak gust: 70 mph.",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "windSpeedMph": 70,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202604272055-wind-43.03--85.69",
   "lat": 43.03,
   "lon": -85.69,
   "zip": "",
   "city": "1 SW Comstock Park",
   "date": "2026-04-27",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SW Comstock Park, MI. Peak gust: 66 mph.",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 66,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202604272100-wind-43.18--85.74",
   "lat": 43.18,
   "lon": -85.74,
   "zip": "",
   "city": "2 NW Sparta",
   "date": "2026-04-27",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 NW Sparta, MI. Peak gust: 58 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202604272100-wind-43.12--85.83",
   "lat": 43.12,
   "lon": -85.83,
   "zip": "",
   "city": "1 WNW Wright",
   "date": "2026-04-27",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 WNW Wright, MI. Peak gust: 62 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 62,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-04-27T20:52:00Z-wind-43.13--85.68",
   "lat": 43.13,
   "lon": -85.68,
   "zip": "",
   "city": "3 SE Sparta",
   "date": "2026-04-27",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 3 SE Sparta, MI. Peak gust: 52 mph. AWOS station K8D4 Miller-Sparta Airport.",
   "sourceDetail": "NWS GRR — AWOS via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-04-18T05:22:00Z-wind-42.75--85.63",
   "lat": 42.75,
   "lon": -85.63,
   "zip": "",
   "city": "2 ENE Moline",
   "date": "2026-04-18",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND DMG reported near 2 ENE Moline, MI. Peak gust: 80 mph. 3 mile path of scattered damage. Roof and tree damage consistent with estimated peak winds around 80 mph. Most concentrated damage near 146th Ave and 9th St. No conclusive evidence of lofted debris.",
   "sourceDetail": "NWS GRR — NWS Employee via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 80,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-geo-2026-04-16T04:48:00Z-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-04-16",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 53 mph. ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-04-15T04:10:00Z-wind-42.66--85.65",
   "lat": 42.66,
   "lon": -85.65,
   "zip": "",
   "city": "1 SSW Wayland",
   "date": "2026-04-15",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 SSW Wayland, MI. Peak gust: 54 mph. Mesonet station BDLM4 Plainwell.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-04-14-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 81,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-04-14-wind-43.03--85.69",
   "lat": 43.03,
   "lon": -85.69,
   "zip": "",
   "city": "1 SW Comstock Park",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 SW Comstock Park",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 61,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2026-04-14-wind-43.20--85.59",
   "lat": 43.2,
   "lon": -85.59,
   "zip": "",
   "city": "3 SW Cedar Springs",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet station AV534 Cedar Springs.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 50,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-04-14-wind-42.95--85.63",
   "lat": 42.95,
   "lon": -85.63,
   "zip": "",
   "city": "1 W East Grand Rapids",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 W East Grand Rapids",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 60,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202604140906-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 60 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 60,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202604150231-wind-43.03--85.69",
   "lat": 43.03,
   "lon": -85.69,
   "zip": "",
   "city": "1 SW Comstock Park",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 SW Comstock Park, MI. Peak gust: 70 mph.",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 70,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202604150232-wind-43.20--85.59",
   "lat": 43.2,
   "lon": -85.59,
   "zip": "",
   "city": "3 SW Cedar Springs",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 3 SW Cedar Springs, MI. Peak gust: 58 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202604150250-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 92 mph.",
   "sourceDetail": "NWS GRR — Official NWS Obs via Iowa Mesonet",
   "windSpeedMph": 92,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202604150257-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 93 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 93,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202604150311-wind-42.95--85.63",
   "lat": 42.95,
   "lon": -85.63,
   "zip": "",
   "city": "1 W East Grand Rapids",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 W East Grand Rapids, MI. Peak gust: 69 mph.",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "windSpeedMph": 69,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-geo-2026-04-15T02:58:00Z-wind-42.87--85.46",
   "lat": 42.87,
   "lon": -85.46,
   "zip": "",
   "city": "2 NNE Alaska",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND DMG reported near 2 NNE Alaska, MI. Peak gust: 81 mph. A surge of thunderstorm winds occurred from the Grand Rapids airport southeast through the Whitneyville area, where a large tree fell on a house, doing extensive damage. Time estimated from radar and the Grand Rapids ASOS, where a peak wind gust of 81 mph was measured. Tree damage in the Whitneyville area indicated winds between 70 and 80 mph.",
   "sourceDetail": "NWS GRR — NWS Storm Survey via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 81,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-geo-2026-04-14T08:56:00Z-wind-42.94--85.61",
   "lat": 42.94,
   "lon": -85.61,
   "zip": "",
   "city": "1 SSW East Grand Rapids",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 SSW East Grand Rapids, MI. Peak gust: 53 mph.",
   "sourceDetail": "NWS GRR — CO-OP Observer via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "reported"
  },
  {
   "id": "asos-bf-GRR-2026-04-14",
   "lat": 42.8821,
   "lon": -85.523,
   "zip": "",
   "city": "Grand Rapids",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Grand Rapids (GRR) recorded a 81 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Grand Rapids (GRR) [365d backfill 2026-08]",
   "windSpeedMph": 81,
   "evidenceLevel": "observed"
  },
  {
   "id": "spc-2026-04-14-517-0231",
   "lat": 43.03,
   "lon": -85.69,
   "zip": "",
   "city": "Comstock Park",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "(GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 61,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-04-14-518-0250",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "Cascade",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "SPC Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Gust at the Gerald R Ford International Airport. (GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 80,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-04-14-520-0257",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "Cascade",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "SPC Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "ASOS station KGRR Gerald R Ford Intl. (GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 81,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-04-14-524-0311",
   "lat": 42.95,
   "lon": -85.63,
   "zip": "",
   "city": "East Grand Rapids",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "(GRR)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 60,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2026-04-14-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-04-14-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-04-14",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Gust at the Gerald R Ford International Airport.",
   "sourceDetail": "NWS GRR — Official NWS Obs via Iowa Mesonet",
   "windSpeedMph": 80,
   "evidenceLevel": "reported"
  },
  {
   "id": "asos-bf-GRR-2026-04-12",
   "lat": 42.8821,
   "lon": -85.523,
   "zip": "",
   "city": "Grand Rapids",
   "date": "2026-04-12",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Grand Rapids (GRR) recorded a 51 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Grand Rapids (GRR) [365d backfill 2026-08]",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-03-31-wind-42.88--85.51",
   "lat": 42.88,
   "lon": -85.51,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-03-31",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 59,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202603310550-wind-42.88--85.51",
   "lat": 42.88,
   "lon": -85.51,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-03-31",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 68 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 68,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-03-31T09:38:00Z-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-03-31",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 53 mph. ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-GRR-2026-03-31",
   "lat": 42.8821,
   "lon": -85.523,
   "zip": "",
   "city": "Grand Rapids",
   "date": "2026-03-31",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "high",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Grand Rapids (GRR) recorded a 58 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Grand Rapids (GRR) [365d backfill 2026-08]",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-03-13-wind-42.65--85.76",
   "lat": 42.65,
   "lon": -85.76,
   "zip": "",
   "city": "2 N Hopkins",
   "date": "2026-03-13",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet station AX249 HOPKINS.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-03-13-wind-42.95--85.61",
   "lat": 42.95,
   "lon": -85.61,
   "zip": "",
   "city": "East Grand Rapids",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near East Grand Rapids",
   "sourceDetail": "NWS GRR — CO-OP Observer via Iowa Mesonet",
   "windSpeedMph": 50,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2026-03-13-wind-42.64--85.68",
   "lat": 42.64,
   "lon": -85.68,
   "zip": "",
   "city": "2 WNW Bradley",
   "date": "2026-03-13",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet station CW5467 Hopkins.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 50,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-03-13-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 60,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-03-13-wind-42.94--85.61",
   "lat": 42.94,
   "lon": -85.61,
   "zip": "",
   "city": "1 SSW East Grand Rapids",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SSW East Grand Rapids",
   "sourceDetail": "NWS GRR — CO-OP Observer via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202603131340-wind-42.65--85.76",
   "lat": 42.65,
   "lon": -85.76,
   "zip": "",
   "city": "2 N Hopkins",
   "date": "2026-03-13",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 N Hopkins, MI. Peak gust: 59 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 59,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202603131357-wind-42.95--85.61",
   "lat": 42.95,
   "lon": -85.61,
   "zip": "",
   "city": "East Grand Rapids",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near East Grand Rapids, MI. Peak gust: 58 mph.",
   "sourceDetail": "NWS GRR — CO-OP Observer via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202603131400-wind-42.64--85.68",
   "lat": 42.64,
   "lon": -85.68,
   "zip": "",
   "city": "2 WNW Bradley",
   "date": "2026-03-13",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 WNW Bradley, MI. Peak gust: 58 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202603131400-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 67 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 67,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202603132013-wind-42.94--85.61",
   "lat": 42.94,
   "lon": -85.61,
   "zip": "",
   "city": "1 SSW East Grand Rapids",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SSW East Grand Rapids, MI. Peak gust: 61 mph.",
   "sourceDetail": "NWS GRR — CO-OP Observer via Iowa Mesonet",
   "windSpeedMph": 61,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202603132023-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 69 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 69,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202603132237-wind-42.94--85.61",
   "lat": 42.94,
   "lon": -85.61,
   "zip": "",
   "city": "1 SSW East Grand Rapids",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SSW East Grand Rapids, MI. Peak gust: 67 mph.",
   "sourceDetail": "NWS GRR — CO-OP Observer via Iowa Mesonet",
   "windSpeedMph": 67,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-geo-2026-03-13T14:00:00Z-wind-43.18--85.74",
   "lat": 43.18,
   "lon": -85.74,
   "zip": "",
   "city": "2 NW Sparta",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 NW Sparta, MI. Peak gust: 51 mph. Mesonet station MISPN 2.0 NW Sparta (MAWN).",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-03-13T14:10:00Z-wind-42.66--85.65",
   "lat": 42.66,
   "lon": -85.65,
   "zip": "",
   "city": "1 SSW Wayland",
   "date": "2026-03-13",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SSW Wayland, MI. Peak gust: 51 mph. Mesonet station BDLM4 Plainwell.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-03-13T13:25:00Z-wind-43.00--86.10",
   "lat": 43,
   "lon": -86.1,
   "zip": "",
   "city": "6 SSW Nunica",
   "date": "2026-03-13",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 6 SSW Nunica, MI. Peak gust: 52 mph. Mesonet station DVI10249 Grand Haven.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-03-13T13:55:00Z-wind-42.90--85.74",
   "lat": 42.9,
   "lon": -85.74,
   "zip": "",
   "city": "1 SE Grandville",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SE Grandville, MI. Peak gust: 52 mph. Mesonet station DW6683 Grandville.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-03-13T21:18:00Z-wind-43.20--85.59",
   "lat": 43.2,
   "lon": -85.59,
   "zip": "",
   "city": "3 SW Cedar Springs",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 3 SW Cedar Springs, MI. Peak gust: 52 mph. Mesonet station AV534 Cedar Springs.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-03-13T14:00:00Z-wind-43.12--85.76",
   "lat": 43.12,
   "lon": -85.76,
   "zip": "",
   "city": "3 E Wright",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 3 E Wright, MI. Peak gust: 53 mph. Mesonet station MISPT 2.7 E Wright (MAWN).",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-03-13T15:10:00Z-wind-42.66--85.65",
   "lat": 42.66,
   "lon": -85.65,
   "zip": "",
   "city": "1 SSW Wayland",
   "date": "2026-03-13",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SSW Wayland, MI. Peak gust: 53 mph. Mesonet station BDLM4 Plainwell.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-03-13T16:35:00Z-wind-43.00--86.10",
   "lat": 43,
   "lon": -86.1,
   "zip": "",
   "city": "6 SSW Nunica",
   "date": "2026-03-13",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 6 SSW Nunica, MI. Peak gust: 53 mph. Mesonet station DVI10249 Grand Haven.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-03-13T13:45:00Z-wind-42.97--85.89",
   "lat": 42.97,
   "lon": -85.89,
   "zip": "",
   "city": "1 WSW Grand Valley",
   "date": "2026-03-13",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 WSW Grand Valley, MI. Peak gust: 54 mph. Mesonet station GW5392 ALLENDALE.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-03-13T08:57:00Z-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 55 mph. ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 55,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-03-13T13:45:00Z-wind-42.73--85.65",
   "lat": 42.73,
   "lon": -85.65,
   "zip": "",
   "city": "4 E Dorr",
   "date": "2026-03-13",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 4 E Dorr, MI. Peak gust: 56 mph. Mesonet station AX192 WAYLAND.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 56,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-GRR-2026-03-13",
   "lat": 42.8821,
   "lon": -85.523,
   "zip": "",
   "city": "Grand Rapids",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "high",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Grand Rapids (GRR) recorded a 60 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Grand Rapids (GRR) [365d backfill 2026-08]",
   "windSpeedMph": 60,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-03-13-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-03-13-wind-42.94--85.61",
   "lat": 42.94,
   "lon": -85.61,
   "zip": "",
   "city": "1 SSW East Grand Rapids",
   "date": "2026-03-13",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SSW East Grand Rapids",
   "sourceDetail": "NWS GRR — CO-OP Observer via Iowa Mesonet",
   "windSpeedMph": 53,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202603110144-hail-42.94--85.62",
   "lat": 42.94,
   "lon": -85.62,
   "zip": "",
   "city": "East Grand Rapids",
   "date": "2026-03-10",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near East Grand Rapids, MI. Hail size: 1\".",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202603110023-hail-42.98--85.66",
   "lat": 42.98,
   "lon": -85.66,
   "zip": "",
   "city": "2 N Grand Rapids",
   "date": "2026-03-10",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 2 N Grand Rapids, MI. Hail size: 0.75\".",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 0.75
  },
  {
   "id": "iem-202603110059-hail-42.89--86.02",
   "lat": 42.89,
   "lon": -86.02,
   "zip": "",
   "city": "4 ESE Olive Center",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 4 ESE Olive Center, MI. Hail size: 1\".",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202603110117-hail-42.91--85.88",
   "lat": 42.91,
   "lon": -85.88,
   "zip": "",
   "city": "1 SE Bauer",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 1 SE Bauer, MI. Hail size: 1\".",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202603110119-hail-42.88--85.89",
   "lat": 42.88,
   "lon": -85.89,
   "zip": "",
   "city": "2 NW Hudsonville",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 2 NW Hudsonville, MI. Hail size: 1.75\".",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.75
  },
  {
   "id": "iem-202603110128-hail-42.90--85.84",
   "lat": 42.9,
   "lon": -85.84,
   "zip": "",
   "city": "1 SSW Jenison",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 1 SSW Jenison, MI. Hail size: 2\".",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 2
  },
  {
   "id": "iem-202603110126-hail-42.89--85.87",
   "lat": 42.89,
   "lon": -85.87,
   "zip": "",
   "city": "2 NNW Hudsonville",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 2 NNW Hudsonville, MI. Hail size: 1.75\".",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.75
  },
  {
   "id": "iem-202603110125-hail-42.91--85.83",
   "lat": 42.91,
   "lon": -85.83,
   "zip": "",
   "city": "Jenison",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Jenison, MI. Hail size: 1.25\".",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.25
  },
  {
   "id": "iem-202603110125-hail-42.91--85.85",
   "lat": 42.91,
   "lon": -85.85,
   "zip": "",
   "city": "1 W Jenison",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 1 W Jenison, MI. Hail size: 2\".",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 2
  },
  {
   "id": "iem-202603110131-hail-42.92--85.81",
   "lat": 42.92,
   "lon": -85.81,
   "zip": "",
   "city": "1 E Jenison",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 1 E Jenison, MI. Hail size: 1\".",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202603110131-hail-42.91--85.82",
   "lat": 42.91,
   "lon": -85.82,
   "zip": "",
   "city": "Jenison",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Jenison, MI. Hail size: 2\".",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 2
  },
  {
   "id": "iem-202603110137-hail-42.93--85.82",
   "lat": 42.93,
   "lon": -85.82,
   "zip": "",
   "city": "1 N Jenison",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 1 N Jenison, MI. Hail size: 1.5\".",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.5
  },
  {
   "id": "iem-202603110136-hail-42.94--85.62",
   "lat": 42.94,
   "lon": -85.62,
   "zip": "",
   "city": "1 SW East Grand Rapids",
   "date": "2026-03-10",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 1 SW East Grand Rapids, MI. Hail size: 1\".",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202603110139-hail-42.92--85.86",
   "lat": 42.92,
   "lon": -85.86,
   "zip": "",
   "city": "1 W Jenison",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 1 W Jenison, MI. Hail size: 1.75\".",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.75
  },
  {
   "id": "iem-202603110120-hail-42.90--85.84",
   "lat": 42.9,
   "lon": -85.84,
   "zip": "",
   "city": "1 SSW Jenison",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 1 SSW Jenison, MI. Hail size: 2.5\".",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 2.5
  },
  {
   "id": "iem-202603110120-hail-42.89--85.87",
   "lat": 42.89,
   "lon": -85.87,
   "zip": "",
   "city": "2 NNW Hudsonville",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 2 NNW Hudsonville, MI. Hail size: 2.75\".",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 2.75
  },
  {
   "id": "iem-202603110136-hail-42.93--85.82",
   "lat": 42.93,
   "lon": -85.82,
   "zip": "",
   "city": "1 N Jenison",
   "date": "2026-03-10",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 1 N Jenison, MI. Hail size: 1\".",
   "sourceDetail": "NWS GRR — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-geo-2026-03-08T17:53:00Z-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-03-08",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 54 mph. ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-01-09-wind-43.09--85.56",
   "lat": 43.09,
   "lon": -85.56,
   "zip": "",
   "city": "3 ENE Belmont",
   "date": "2026-01-09",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Mesonet station GW6887 ROCKFORD.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-01-09-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-01-09",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-01-09-wind-43.13--85.68",
   "lat": 43.13,
   "lon": -85.68,
   "zip": "",
   "city": "3 SE Sparta",
   "date": "2026-01-09",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "AWOS station K8D4 Miller-Sparta Airport.",
   "sourceDetail": "NWS GRR — AWOS via Iowa Mesonet",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202601090557-wind-43.09--85.56",
   "lat": 43.09,
   "lon": -85.56,
   "zip": "",
   "city": "3 ENE Belmont",
   "date": "2026-01-09",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 3 ENE Belmont, MI. Peak gust: 59 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 59,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202601091155-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2026-01-09",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 60 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 60,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202601091258-wind-43.13--85.68",
   "lat": 43.13,
   "lon": -85.68,
   "zip": "",
   "city": "3 SE Sparta",
   "date": "2026-01-09",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 3 SE Sparta, MI. Peak gust: 60 mph.",
   "sourceDetail": "NWS GRR — AWOS via Iowa Mesonet",
   "windSpeedMph": 60,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-01-09T13:10:00Z-wind-42.66--85.65",
   "lat": 42.66,
   "lon": -85.65,
   "zip": "",
   "city": "1 SSW Wayland",
   "date": "2026-01-09",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SSW Wayland, MI. Peak gust: 51 mph. Mesonet station BDLM4 Plainwell.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-01-09T11:45:00Z-wind-42.93--85.65",
   "lat": 42.93,
   "lon": -85.65,
   "zip": "",
   "city": "2 S Grand Rapids",
   "date": "2026-01-09",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 S Grand Rapids, MI. Peak gust: 52 mph. Mesonet station EW7706 Grand Rapids.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-01-09T11:45:00Z-wind-42.83--85.83",
   "lat": 42.83,
   "lon": -85.83,
   "zip": "",
   "city": "Jamestown",
   "date": "2026-01-09",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near Jamestown, MI. Peak gust: 52 mph. Mesonet station CW9987 Jamestown.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-01-09T11:55:00Z-wind-42.97--85.89",
   "lat": 42.97,
   "lon": -85.89,
   "zip": "",
   "city": "1 WSW Grand Valley",
   "date": "2026-01-09",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 WSW Grand Valley, MI. Peak gust: 53 mph. Mesonet station GW5392 ALLENDALE.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-01-09T12:00:00Z-wind-42.73--85.65",
   "lat": 42.73,
   "lon": -85.65,
   "zip": "",
   "city": "4 E Dorr",
   "date": "2026-01-09",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 4 E Dorr, MI. Peak gust: 53 mph. Mesonet station AX192 WAYLAND.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-01-09T11:01:00Z-wind-42.98--86.10",
   "lat": 42.98,
   "lon": -86.1,
   "zip": "",
   "city": "5 NNW Olive Center",
   "date": "2026-01-09",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 5 NNW Olive Center, MI. Peak gust: 54 mph. Mesonet station GW3616 Grand Haven.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-01-09T12:10:00Z-wind-42.65--85.76",
   "lat": 42.65,
   "lon": -85.76,
   "zip": "",
   "city": "2 N Hopkins",
   "date": "2026-01-09",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 N Hopkins, MI. Peak gust: 54 mph. Mesonet station AX249 HOPKINS.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-01-09T12:20:00Z-wind-42.64--85.68",
   "lat": 42.64,
   "lon": -85.68,
   "zip": "",
   "city": "2 WNW Bradley",
   "date": "2026-01-09",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 WNW Bradley, MI. Peak gust: 54 mph. Mesonet station CW5467 Hopkins.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-01-09T12:05:00Z-wind-42.95--85.61",
   "lat": 42.95,
   "lon": -85.61,
   "zip": "",
   "city": "East Grand Rapids",
   "date": "2026-01-09",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near East Grand Rapids, MI. Peak gust: 56 mph.",
   "sourceDetail": "NWS GRR — CO-OP Observer via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 56,
   "evidenceLevel": "reported"
  },
  {
   "id": "asos-bf-GRR-2026-01-09",
   "lat": 42.8821,
   "lon": -85.523,
   "zip": "",
   "city": "Grand Rapids",
   "date": "2026-01-09",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Grand Rapids (GRR) recorded a 52 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Grand Rapids (GRR) [365d backfill 2026-08]",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-8D4-2026-01-09",
   "lat": 43.1274,
   "lon": -85.6791,
   "zip": "",
   "city": "Sparta",
   "date": "2026-01-09",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Sparta (8D4) recorded a 52 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Sparta (8D4) [365d backfill 2026-08]",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2025-12-29-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2025-12-29",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202512290704-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2025-12-29",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 61 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 61,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-12-29T07:34:00Z-wind-42.98--86.10",
   "lat": 42.98,
   "lon": -86.1,
   "zip": "",
   "city": "5 NNW Olive Center",
   "date": "2025-12-29",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 5 NNW Olive Center, MI. Peak gust: 51 mph. Mesonet station GW3616 Grand Haven.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-12-29T07:15:00Z-wind-42.73--85.65",
   "lat": 42.73,
   "lon": -85.65,
   "zip": "",
   "city": "4 E Dorr",
   "date": "2025-12-29",
   "county": "Allegan",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 4 E Dorr, MI. Peak gust: 52 mph. Mesonet station AX192 WAYLAND.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-12-29T07:19:00Z-wind-43.05--85.91",
   "lat": 43.05,
   "lon": -85.91,
   "zip": "",
   "city": "2 ESE Coopersville",
   "date": "2025-12-29",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 ESE Coopersville, MI. Peak gust: 52 mph. Mesonet station MC109 Mi-03 Coopersville.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-12-29T08:45:00Z-wind-43.00--86.10",
   "lat": 43,
   "lon": -86.1,
   "zip": "",
   "city": "6 SSW Nunica",
   "date": "2025-12-29",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 6 SSW Nunica, MI. Peak gust: 53 mph. Mesonet station DVI10249 Grand Haven.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-12-29T07:29:00Z-wind-42.85--85.58",
   "lat": 42.85,
   "lon": -85.58,
   "zip": "",
   "city": "1 N Dutton",
   "date": "2025-12-29",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 N Dutton, MI. Peak gust: 54 mph. Mesonet station MC154 M-6 Mile Marker 12.7.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-12-29T15:15:00Z-wind-42.97--85.89",
   "lat": 42.97,
   "lon": -85.89,
   "zip": "",
   "city": "1 WSW Grand Valley",
   "date": "2025-12-29",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 WSW Grand Valley, MI. Peak gust: 54 mph. Mesonet station GW5392 ALLENDALE.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-12-29T08:45:00Z-wind-42.81--85.98",
   "lat": 42.81,
   "lon": -85.98,
   "zip": "",
   "city": "2 E Zeeland",
   "date": "2025-12-29",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 E Zeeland, MI. Peak gust: 55 mph. Mesonet station MC155 I-196 Mile Marker 55.5.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 55,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-12-29T08:15:00Z-wind-43.22--85.57",
   "lat": 43.22,
   "lon": -85.57,
   "zip": "",
   "city": "1 W Cedar Springs",
   "date": "2025-12-29",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 W Cedar Springs, MI. Peak gust: 56 mph. Mesonet station MC151 US-131 Mile Marker 104.7.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 56,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-GRR-2025-12-29",
   "lat": 42.8821,
   "lon": -85.523,
   "zip": "",
   "city": "Grand Rapids",
   "date": "2025-12-29",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Grand Rapids (GRR) recorded a 53 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Grand Rapids (GRR) [365d backfill 2026-08]",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-12-21T02:00:00Z-wind-42.94--85.61",
   "lat": 42.94,
   "lon": -85.61,
   "zip": "",
   "city": "1 SSW East Grand Rapids",
   "date": "2025-12-20",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 SSW East Grand Rapids, MI. Peak gust: 52 mph.",
   "sourceDetail": "NWS GRR — CO-OP Observer via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 52,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-geo-2025-12-21T01:55:00Z-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2025-12-20",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 55 mph. ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 55,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-12-19T07:17:00Z-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2025-12-19",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 53 mph. ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-11-26T15:34:00Z-wind-42.81--85.98",
   "lat": 42.81,
   "lon": -85.98,
   "zip": "",
   "city": "2 E Zeeland",
   "date": "2025-11-26",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 E Zeeland, MI. Peak gust: 51 mph. Mesonet station MC155 I-196 Mile Marker 55.5.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-11-26T09:47:00Z-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2025-11-26",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 52 mph. ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-11-26T22:31:00Z-wind-42.95--85.61",
   "lat": 42.95,
   "lon": -85.61,
   "zip": "",
   "city": "East Grand Rapids",
   "date": "2025-11-26",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near East Grand Rapids, MI. Peak gust: 53 mph.",
   "sourceDetail": "NWS GRR — CO-OP Observer via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 53,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-geo-2025-11-26T22:31:00Z-wind-42.85--85.86",
   "lat": 42.85,
   "lon": -85.86,
   "zip": "",
   "city": "1 S Hudsonville",
   "date": "2025-11-26",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 1 S Hudsonville, MI. Peak gust: 54 mph. Mesonet station MC156 I-196 Mile Marker 62.3.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-11-26T14:35:00Z-wind-43.00--86.10",
   "lat": 43,
   "lon": -86.1,
   "zip": "",
   "city": "6 SSW Nunica",
   "date": "2025-11-26",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "NON-TSTM WND GST reported near 6 SSW Nunica, MI. Peak gust: 56 mph. Mesonet station DVI10249 Grand Haven.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 56,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2025-10-21-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2025-10-21",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "ASOS station KGRR Gerald R Ford Intl.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202510212000-wind-42.88--85.52",
   "lat": 42.88,
   "lon": -85.52,
   "zip": "",
   "city": "2 SSW Cascade",
   "date": "2025-10-21",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 SSW Cascade, MI. Peak gust: 59 mph.",
   "sourceDetail": "NWS GRR — ASOS via Iowa Mesonet",
   "windSpeedMph": 59,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-GRR-2025-10-21",
   "lat": 42.8821,
   "lon": -85.523,
   "zip": "",
   "city": "Grand Rapids",
   "date": "2025-10-21",
   "county": "Kent",
   "source": "IEM ASOS Station",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.95,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Grand Rapids (GRR) recorded a 51 mph gust.",
   "sourceDetail": "MI_ASOS automated observation — Grand Rapids (GRR) [365d backfill 2026-08]",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2025-09-20-wind-42.81--86.02",
   "lat": 42.81,
   "lon": -86.02,
   "zip": "",
   "city": "1 SW Zeeland",
   "date": "2025-09-20",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 SW Zeeland",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "windSpeedMph": 57,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2025-09-20-wind-43.05--85.91",
   "lat": 43.05,
   "lon": -85.91,
   "zip": "",
   "city": "2 ESE Coopersville",
   "date": "2025-09-20",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Corrects previous non-tstm wnd gst report from 2 ESE Coopersville. Mesonet station MC109 Mi-03 Coopersville.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2025-09-20-wind-42.97--85.89",
   "lat": 42.97,
   "lon": -85.89,
   "zip": "",
   "city": "1 WSW Grand Valley",
   "date": "2025-09-20",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 0.92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Corrects previous non-tstm wnd gst report from 1 WSW Grand Valley. Mesonet station GW5392 ALLENDALE.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 50,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202509210015-wind-42.81--86.02",
   "lat": 42.81,
   "lon": -86.02,
   "zip": "",
   "city": "1 SW Zeeland",
   "date": "2025-09-20",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 SW Zeeland, MI. Peak gust: 66 mph.",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet",
   "windSpeedMph": 66,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202509210034-wind-43.05--85.91",
   "lat": 43.05,
   "lon": -85.91,
   "zip": "",
   "city": "2 ESE Coopersville",
   "date": "2025-09-20",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 ESE Coopersville, MI. Peak gust: 59 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 59,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202509210035-wind-42.97--85.89",
   "lat": 42.97,
   "lon": -85.89,
   "zip": "",
   "city": "1 WSW Grand Valley",
   "date": "2025-09-20",
   "county": "Ottawa",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 1 WSW Grand Valley, MI. Peak gust: 58 mph.",
   "sourceDetail": "NWS GRR — Mesonet via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2025-09-21T00:52:00Z-wind-43.19--85.73",
   "lat": 43.19,
   "lon": -85.73,
   "zip": "",
   "city": "2 SSE Kent City",
   "date": "2025-09-20",
   "county": "Kent",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "wind",
   "confidence": 92,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "TSTM WND GST reported near 2 SSE Kent City, MI. Peak gust: 56 mph. 1/4 inch diameter hail also reported with the storms.",
   "sourceDetail": "NWS GRR — Trained Spotter via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 56,
   "evidenceLevel": "reported"
  }
 ]
}