{
 "dataset": "Des Moines, IA 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-24T09:20:12.401+00:00",
 "window_days": 365,
 "event_count": 130,
 "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": "iem-lsr-2026-08-13-wind-41.84--93.64",
   "lat": 41.84,
   "lon": -93.64,
   "zip": "",
   "city": "2 NW Alleman",
   "date": "2026-08-13",
   "county": "Polk",
   "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": "Measured from personal weather station.",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 61,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-08-13-wind-41.74--93.76",
   "lat": 41.74,
   "lon": -93.76,
   "zip": "",
   "city": "3 SW Polk City",
   "date": "2026-08-13",
   "county": "Polk",
   "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": "Measured from personal weather station.",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 59,
   "evidenceLevel": "observed"
  },
  {
   "id": "spc-2026-08-12-wind-41.84-160",
   "lat": 41.84,
   "lon": -93.64,
   "zip": "",
   "city": "2 NW Alleman",
   "date": "2026-08-12",
   "county": "Polk",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 0.93,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "wind reported near 2 NW Alleman",
   "sourceDetail": "SPC filtered reports — 2026-08-12",
   "windSpeedMph": 61,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202607210033-hail-41.78--93.59",
   "lat": 41.78,
   "lon": -93.59,
   "zip": "",
   "city": "3 SSE Alleman",
   "date": "2026-07-20",
   "county": "Polk",
   "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 SSE Alleman, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202607210207-hail-41.57--93.75",
   "lat": 41.57,
   "lon": -93.75,
   "zip": "",
   "city": "West Des Moines",
   "date": "2026-07-20",
   "county": "Polk",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near West Des Moines, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202607210213-hail-41.59--93.84",
   "lat": 41.59,
   "lon": -93.84,
   "zip": "",
   "city": "2 SE Waukee",
   "date": "2026-07-20",
   "county": "Dallas",
   "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 SE Waukee, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-lsr-2026-07-20-wind-41.74--93.64",
   "lat": 41.74,
   "lon": -93.64,
   "zip": "",
   "city": "2 W Ankeny",
   "date": "2026-07-20",
   "county": "Polk",
   "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": "Measured from personal weather station.",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-07-20-wind-41.69--93.40",
   "lat": 41.69,
   "lon": -93.4,
   "zip": "",
   "city": "3 NW Mitchellville",
   "date": "2026-07-20",
   "county": "Polk",
   "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": "measured from personal weather station.",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "windSpeedMph": 61,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2026-07-20-wind-41.38--93.40",
   "lat": 41.38,
   "lon": -93.4,
   "zip": "",
   "city": "1 NW Sandyville",
   "date": "2026-07-20",
   "county": "Warren",
   "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 NW Sandyville",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "windSpeedMph": 61,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202607210018-wind-41.74--93.64",
   "lat": 41.74,
   "lon": -93.64,
   "zip": "",
   "city": "2 W Ankeny",
   "date": "2026-07-20",
   "county": "Polk",
   "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 W Ankeny, IA. Peak gust: 67 mph.",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 67,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202607210035-wind-41.69--93.40",
   "lat": 41.69,
   "lon": -93.4,
   "zip": "",
   "city": "3 NW Mitchellville",
   "date": "2026-07-20",
   "county": "Polk",
   "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 NW Mitchellville, IA. Peak gust: 70 mph.",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "windSpeedMph": 70,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202607210101-wind-41.38--93.40",
   "lat": 41.38,
   "lon": -93.4,
   "zip": "",
   "city": "1 NW Sandyville",
   "date": "2026-07-20",
   "county": "Warren",
   "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 NW Sandyville, IA. Peak gust: 70 mph.",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "windSpeedMph": 70,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-geo-2026-07-21T01:07:00Z-wind-41.39--93.27",
   "lat": 41.39,
   "lon": -93.27,
   "zip": "",
   "city": "Pleasantville",
   "date": "2026-07-20",
   "county": "Marion",
   "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 DMG reported near Pleasantville, IA. Peak gust: 60 mph. Caller reports multiple trees down with a wind gust of 60 mph.",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet (GeoJSON)",
   "windSpeedMph": 60,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-07-20-54-0018",
   "lat": 41.74,
   "lon": -93.64,
   "zip": "",
   "city": "Ankeny",
   "date": "2026-07-20",
   "county": "Polk",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Measured from personal weather station. (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 58,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-07-20-55-0035",
   "lat": 41.69,
   "lon": -93.4,
   "zip": "",
   "city": "Mitchellville",
   "date": "2026-07-20",
   "county": "Polk",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "measured from personal weather station. (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 61,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-07-20-56-0101",
   "lat": 41.38,
   "lon": -93.4,
   "zip": "",
   "city": "Sandyville",
   "date": "2026-07-20",
   "county": "Warren",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "(DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 61,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-07-20-74-0033",
   "lat": 41.78,
   "lon": -93.59,
   "zip": "",
   "city": "Alleman",
   "date": "2026-07-20",
   "county": "Polk",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "(DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "spc-2026-07-20-76-0213",
   "lat": 41.59,
   "lon": -93.84,
   "zip": "",
   "city": "Waukee",
   "date": "2026-07-20",
   "county": "Dallas",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "(DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-lsr-2026-07-04-wind-41.51--93.51",
   "lat": 41.51,
   "lon": -93.51,
   "zip": "",
   "city": "1 WNW Carlisle",
   "date": "2026-07-04",
   "county": "Warren",
   "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": "PWS gust.",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-07-04-wind-41.54--93.66",
   "lat": 41.54,
   "lon": -93.66,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2026-07-04",
   "county": "Polk",
   "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 Des Moines Int Airport",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-DSM-2026-07-04",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2026-07-04",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 58 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202607040710-wind-41.51--93.51",
   "lat": 41.51,
   "lon": -93.51,
   "zip": "",
   "city": "1 WNW Carlisle",
   "date": "2026-07-04",
   "county": "Warren",
   "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 WNW Carlisle, IA. Peak gust: 67 mph.",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 67,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202607040713-wind-41.54--93.66",
   "lat": 41.54,
   "lon": -93.66,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2026-07-04",
   "county": "Polk",
   "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 Des Moines Int Airport, IA. Peak gust: 67 mph.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 67,
   "evidenceLevel": "observed"
  },
  {
   "id": "spc-2026-07-03-99-0710",
   "lat": 41.51,
   "lon": -93.51,
   "zip": "",
   "city": "Carlisle",
   "date": "2026-07-03",
   "county": "Warren",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "PWS gust. (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 58,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-07-03-100-0713",
   "lat": 41.54,
   "lon": -93.66,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2026-07-03",
   "county": "Polk",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "(DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 58,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202607022126-hail-41.61--93.69",
   "lat": 41.61,
   "lon": -93.69,
   "zip": "",
   "city": "1 NE Windsor Heights",
   "date": "2026-07-02",
   "county": "Polk",
   "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 NE Windsor Heights, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202607022127-hail-41.60--93.70",
   "lat": 41.6,
   "lon": -93.7,
   "zip": "",
   "city": "1 SE Windsor Heights",
   "date": "2026-07-02",
   "county": "Polk",
   "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 Windsor Heights, IA. Hail size: 1.25\".",
   "sourceDetail": "NWS DMX — CO-OP Observer via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.25
  },
  {
   "id": "iem-202607022135-hail-41.63--93.70",
   "lat": 41.63,
   "lon": -93.7,
   "zip": "",
   "city": "2 NNE Windsor Heights",
   "date": "2026-07-02",
   "county": "Polk",
   "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 NNE Windsor Heights, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202607022137-hail-41.64--93.70",
   "lat": 41.64,
   "lon": -93.7,
   "zip": "",
   "city": "2 E Urbandale",
   "date": "2026-07-02",
   "county": "Polk",
   "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 E Urbandale, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202607022140-hail-41.64--93.66",
   "lat": 41.64,
   "lon": -93.66,
   "zip": "",
   "city": "3 NE Windsor Heights",
   "date": "2026-07-02",
   "county": "Polk",
   "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 Windsor Heights, IA. Hail size: 1.5\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.5
  },
  {
   "id": "iem-202607022225-hail-41.82--93.78",
   "lat": 41.82,
   "lon": -93.78,
   "zip": "",
   "city": "4 NW Polk City",
   "date": "2026-07-02",
   "county": "Polk",
   "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 NW Polk City, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "spc-2026-07-02-125-2126",
   "lat": 41.61,
   "lon": -93.69,
   "zip": "",
   "city": "Windsor Heights",
   "date": "2026-07-02",
   "county": "Polk",
   "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.). (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "spc-2026-07-02-126-2127",
   "lat": 41.6,
   "lon": -93.7,
   "zip": "",
   "city": "Windsor Heights",
   "date": "2026-07-02",
   "county": "Polk",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "Delayed report. (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.25
  },
  {
   "id": "spc-2026-07-02-128-2137",
   "lat": 41.64,
   "lon": -93.7,
   "zip": "",
   "city": "Urbandale",
   "date": "2026-07-02",
   "county": "Polk",
   "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.). (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "spc-2026-07-02-129-2140",
   "lat": 41.64,
   "lon": -93.66,
   "zip": "",
   "city": "Windsor Heights",
   "date": "2026-07-02",
   "county": "Polk",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "(DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.5
  },
  {
   "id": "spc-2026-07-02-131-2225",
   "lat": 41.82,
   "lon": -93.78,
   "zip": "",
   "city": "Polk City",
   "date": "2026-07-02",
   "county": "Polk",
   "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.). (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "asos-bf-DSM-2026-06-11",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2026-06-11",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 50 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 50,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202606060302-hail-41.39--93.27",
   "lat": 41.39,
   "lon": -93.27,
   "zip": "",
   "city": "Pleasantville",
   "date": "2026-06-05",
   "county": "Marion",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Pleasantville, IA. Hail size: 1.75\".",
   "sourceDetail": "NWS DMX — Broadcast Media via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.75
  },
  {
   "id": "iem-202606060356-hail-41.39--93.28",
   "lat": 41.39,
   "lon": -93.28,
   "zip": "",
   "city": "1 WSW Pleasantville",
   "date": "2026-06-05",
   "county": "Marion",
   "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 WSW Pleasantville, IA. Hail size: 1.5\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.5
  },
  {
   "id": "iem-lsr-2026-06-05-wind-41.37--93.36",
   "lat": 41.37,
   "lon": -93.36,
   "zip": "",
   "city": "2 E Sandyville",
   "date": "2026-06-05",
   "county": "Warren",
   "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": "Received text message from trained spotter of 63mph gust on PWS.",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "windSpeedMph": 63,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202606060255-hail-41.39--93.27",
   "lat": 41.39,
   "lon": -93.27,
   "zip": "",
   "city": "Pleasantville",
   "date": "2026-06-05",
   "county": "Marion",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Pleasantville, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202606060300-hail-41.39--93.27",
   "lat": 41.39,
   "lon": -93.27,
   "zip": "",
   "city": "Pleasantville",
   "date": "2026-06-05",
   "county": "Marion",
   "source": "IEM Local Storm Reports",
   "severity": "severe",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Pleasantville, IA. Hail size: 2\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 2
  },
  {
   "id": "iem-202606060311-wind-41.37--93.36",
   "lat": 41.37,
   "lon": -93.36,
   "zip": "",
   "city": "2 E Sandyville",
   "date": "2026-06-05",
   "county": "Warren",
   "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 E Sandyville, IA. Peak gust: 72 mph.",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "windSpeedMph": 72,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-06-05-397-0311",
   "lat": 41.37,
   "lon": -93.36,
   "zip": "",
   "city": "Sandyville",
   "date": "2026-06-05",
   "county": "Warren",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "wind",
   "confidence": 90,
   "damageTypes": [
    "Roof shingle lift",
    "Soffit/fascia damage",
    "Tree strike risk",
    "Fence/screen damage"
   ],
   "description": "Received text message from trained spotter of 63mph gust on PWS. (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "windSpeedMph": 63,
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-06-05-424-0356",
   "lat": 41.39,
   "lon": -93.28,
   "zip": "",
   "city": "Pleasantville",
   "date": "2026-06-05",
   "county": "Marion",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "Delayed report - received hail photo from social media. (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.5
  },
  {
   "id": "asos-bf-DSM-2026-05-18",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2026-05-18",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 57 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 57,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-DSM-2026-05-16",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2026-05-16",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 53 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 53,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-DSM-2026-05-15",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2026-05-15",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 52 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202604240108-hail-41.69--93.61",
   "lat": 41.69,
   "lon": -93.61,
   "zip": "",
   "city": "1 NE Saylorville",
   "date": "2026-04-23",
   "county": "Polk",
   "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 NE Saylorville, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-lsr-2026-04-23-wind-41.54--93.66",
   "lat": 41.54,
   "lon": -93.66,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2026-04-23",
   "county": "Polk",
   "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 Des Moines Int Airport",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 59,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-geo-2026-04-24T00:33:00Z-tornado-41.89--93.66",
   "lat": 41.89,
   "lon": -93.66,
   "zip": "",
   "city": "2 ENE Slater",
   "date": "2026-04-23",
   "county": "Story",
   "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 ENE Slater, IA. Several reports from local fire department and spotters of tornado on the ground.",
   "sourceDetail": "NWS DMX — Fire Dept/Rescue via Iowa Mesonet (GeoJSON)",
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-geo-2026-04-24T01:25:00Z-tornado-41.60--93.36",
   "lat": 41.6,
   "lon": -93.36,
   "zip": "",
   "city": "4 S Mitchellville",
   "date": "2026-04-23",
   "county": "Polk",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "tornado",
   "confidence": 92,
   "damageTypes": [
    "Structural roof failure",
    "Debris penetration",
    "Complete shingle removal"
   ],
   "description": "TORNADO reported near 4 S Mitchellville, IA. Trained spotter reports tornado on the ground.",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet (GeoJSON)",
   "evidenceLevel": "reported"
  },
  {
   "id": "asos-bf-DSM-2026-04-23",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2026-04-23",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 59 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 59,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202604240100-wind-41.54--93.66",
   "lat": 41.54,
   "lon": -93.66,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2026-04-23",
   "county": "Polk",
   "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 Des Moines Int Airport, IA. Peak gust: 68 mph.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 68,
   "evidenceLevel": "observed"
  },
  {
   "id": "spc-2026-04-23-659-0108",
   "lat": 41.69,
   "lon": -93.61,
   "zip": "",
   "city": "Saylorville",
   "date": "2026-04-23",
   "county": "Polk",
   "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.). (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "spc-2026-04-23-667-0033",
   "lat": 41.89,
   "lon": -93.66,
   "zip": "",
   "city": "Slater",
   "date": "2026-04-23",
   "county": "Story",
   "source": "SPC Storm Reports",
   "severity": "moderate",
   "eventType": "tornado",
   "confidence": 90,
   "damageTypes": [
    "Structural roof failure",
    "Debris penetration",
    "Complete shingle removal"
   ],
   "description": "Several reports from local fire department and spotters of tornado on the ground. (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported"
  },
  {
   "id": "spc-2026-04-23-668-0125",
   "lat": 41.6,
   "lon": -93.36,
   "zip": "",
   "city": "Mitchellville",
   "date": "2026-04-23",
   "county": "Polk",
   "source": "SPC Storm Reports",
   "severity": "moderate",
   "eventType": "tornado",
   "confidence": 90,
   "damageTypes": [
    "Structural roof failure",
    "Debris penetration",
    "Complete shingle removal"
   ],
   "description": "Trained spotter reports tornado on the ground. (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202604171858-hail-41.73--93.60",
   "lat": 41.73,
   "lon": -93.6,
   "zip": "",
   "city": "Ankeny",
   "date": "2026-04-17",
   "county": "Polk",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Ankeny, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202604171901-hail-41.48--93.76",
   "lat": 41.48,
   "lon": -93.76,
   "zip": "",
   "city": "Cumming",
   "date": "2026-04-17",
   "county": "Warren",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Cumming, IA. Hail size: 1.25\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.25
  },
  {
   "id": "iem-202604171904-hail-41.65--93.60",
   "lat": 41.65,
   "lon": -93.6,
   "zip": "",
   "city": "3 SE Saylorville",
   "date": "2026-04-17",
   "county": "Polk",
   "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 SE Saylorville, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202604171905-hail-41.68--93.57",
   "lat": 41.68,
   "lon": -93.57,
   "zip": "",
   "city": "3 E Saylorville",
   "date": "2026-04-17",
   "county": "Polk",
   "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 E Saylorville, IA. Hail size: 1.25\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.25
  },
  {
   "id": "iem-202604171911-hail-41.58--93.62",
   "lat": 41.58,
   "lon": -93.62,
   "zip": "",
   "city": "Des Moines",
   "date": "2026-04-17",
   "county": "Polk",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Des Moines, IA. Hail size: 1.5\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.5
  },
  {
   "id": "iem-202604171926-hail-41.62--93.39",
   "lat": 41.62,
   "lon": -93.39,
   "zip": "",
   "city": "3 SSW Mitchellville",
   "date": "2026-04-17",
   "county": "Polk",
   "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 SSW Mitchellville, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202604171940-hail-41.71--93.24",
   "lat": 41.71,
   "lon": -93.24,
   "zip": "",
   "city": "2 N Colfax",
   "date": "2026-04-17",
   "county": "Jasper",
   "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 N Colfax, IA. Hail size: 1.5\".",
   "sourceDetail": "NWS DMX — Emergency Mngr via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.5
  },
  {
   "id": "iem-202604171940-hail-41.68--93.24",
   "lat": 41.68,
   "lon": -93.24,
   "zip": "",
   "city": "Colfax",
   "date": "2026-04-17",
   "county": "Jasper",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Colfax, IA. Hail size: 1.5\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.5
  },
  {
   "id": "iem-202604171941-hail-41.72--93.25",
   "lat": 41.72,
   "lon": -93.25,
   "zip": "",
   "city": "3 N Colfax",
   "date": "2026-04-17",
   "county": "Jasper",
   "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 N Colfax, IA. Hail size: 1.25\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.25
  },
  {
   "id": "iem-202604172325-hail-41.63--93.89",
   "lat": 41.63,
   "lon": -93.89,
   "zip": "",
   "city": "2 NW Waukee",
   "date": "2026-04-17",
   "county": "Dallas",
   "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 Waukee, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202604172326-hail-41.61--93.88",
   "lat": 41.61,
   "lon": -93.88,
   "zip": "",
   "city": "1 W Waukee",
   "date": "2026-04-17",
   "county": "Dallas",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 1 W Waukee, IA. Hail size: 0.88\".",
   "sourceDetail": "NWS DMX — Emergency Mngr via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 0.88
  },
  {
   "id": "iem-202604172326-hail-41.62--93.85",
   "lat": 41.62,
   "lon": -93.85,
   "zip": "",
   "city": "1 NE Waukee",
   "date": "2026-04-17",
   "county": "Dallas",
   "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 NE Waukee, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "spc-2026-04-17-705-1904",
   "lat": 41.65,
   "lon": -93.6,
   "zip": "",
   "city": "Saylorville",
   "date": "2026-04-17",
   "county": "Polk",
   "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.). (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "spc-2026-04-17-706-1905",
   "lat": 41.68,
   "lon": -93.57,
   "zip": "",
   "city": "Saylorville",
   "date": "2026-04-17",
   "county": "Polk",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "Reported by Trained Spotter. (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.25
  },
  {
   "id": "spc-2026-04-17-710-1926",
   "lat": 41.62,
   "lon": -93.39,
   "zip": "",
   "city": "Mitchellville",
   "date": "2026-04-17",
   "county": "Polk",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "(DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "spc-2026-04-17-714-1941",
   "lat": 41.72,
   "lon": -93.25,
   "zip": "",
   "city": "Colfax",
   "date": "2026-04-17",
   "county": "Jasper",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "Report from mPING: Half Dollar (1.25 in.). (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.25
  },
  {
   "id": "spc-2026-04-17-751-2325",
   "lat": 41.63,
   "lon": -93.89,
   "zip": "",
   "city": "Waukee",
   "date": "2026-04-17",
   "county": "Dallas",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "Delayed report. (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202604152115-hail-41.66--93.76",
   "lat": 41.66,
   "lon": -93.76,
   "zip": "",
   "city": "2 WSW Johnston",
   "date": "2026-04-15",
   "county": "Polk",
   "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 WSW Johnston, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202604152139-hail-41.40--94.02",
   "lat": 41.4,
   "lon": -94.02,
   "zip": "",
   "city": "4 N Winterset",
   "date": "2026-04-15",
   "county": "Madison",
   "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 N Winterset, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202604152205-hail-41.53--93.60",
   "lat": 41.53,
   "lon": -93.6,
   "zip": "",
   "city": "3 E Des Moines Int Airp",
   "date": "2026-04-15",
   "county": "Polk",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 3 E Des Moines Int Airp, IA. Hail size: 0.88\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 0.88
  },
  {
   "id": "iem-202604160129-hail-41.88--93.82",
   "lat": 41.88,
   "lon": -93.82,
   "zip": "",
   "city": "Madrid",
   "date": "2026-04-15",
   "county": "Boone",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Madrid, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Emergency Mngr via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202604160152-hail-41.52--94.07",
   "lat": 41.52,
   "lon": -94.07,
   "zip": "",
   "city": "3 NE Earlham",
   "date": "2026-04-15",
   "county": "Dallas",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 3 NE Earlham, IA. Hail size: 0.75\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 0.75
  },
  {
   "id": "spc-2026-04-15-782-2115",
   "lat": 41.66,
   "lon": -93.76,
   "zip": "",
   "city": "Johnston",
   "date": "2026-04-15",
   "county": "Polk",
   "source": "SPC Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 90,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "Trained spotter sent a picture of a hail stone 1 inch in diameter. (DMX)",
   "sourceDetail": "Storm Prediction Center verified report",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "asos-bf-DSM-2026-04-08",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2026-04-08",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 52 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202603310249-hail-41.73--94.03",
   "lat": 41.73,
   "lon": -94.03,
   "zip": "",
   "city": "2 S Minburn",
   "date": "2026-03-30",
   "county": "Dallas",
   "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 S Minburn, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Emergency Mngr via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202603310312-hail-41.68--93.75",
   "lat": 41.68,
   "lon": -93.75,
   "zip": "",
   "city": "1 WNW Johnston",
   "date": "2026-03-30",
   "county": "Polk",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 1 WNW Johnston, IA. Hail size: 0.75\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 0.75
  },
  {
   "id": "iem-202603310316-hail-41.74--93.64",
   "lat": 41.74,
   "lon": -93.64,
   "zip": "",
   "city": "2 W Ankeny",
   "date": "2026-03-30",
   "county": "Polk",
   "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 W Ankeny, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202603310317-hail-41.73--93.60",
   "lat": 41.73,
   "lon": -93.6,
   "zip": "",
   "city": "Ankeny",
   "date": "2026-03-30",
   "county": "Polk",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Ankeny, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Amateur Radio via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202603310320-hail-41.77--93.58",
   "lat": 41.77,
   "lon": -93.58,
   "zip": "",
   "city": "3 NNE Ankeny",
   "date": "2026-03-30",
   "county": "Polk",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 3 NNE Ankeny, IA. Hail size: 0.75\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 0.75
  },
  {
   "id": "iem-202603310334-hail-41.61--93.86",
   "lat": 41.61,
   "lon": -93.86,
   "zip": "",
   "city": "Waukee",
   "date": "2026-03-30",
   "county": "Dallas",
   "source": "IEM Local Storm Reports",
   "severity": "high",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near Waukee, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202603310334-hail-41.61--93.88",
   "lat": 41.61,
   "lon": -93.88,
   "zip": "",
   "city": "1 W Waukee",
   "date": "2026-03-30",
   "county": "Dallas",
   "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 Waukee, IA. Hail size: 1.25\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1.25
  },
  {
   "id": "iem-202603310335-hail-41.59--93.85",
   "lat": 41.59,
   "lon": -93.85,
   "zip": "",
   "city": "1 SSE Waukee",
   "date": "2026-03-30",
   "county": "Dallas",
   "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 SSE Waukee, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202603310345-hail-41.63--93.70",
   "lat": 41.63,
   "lon": -93.7,
   "zip": "",
   "city": "2 NNE Windsor Heights",
   "date": "2026-03-30",
   "county": "Polk",
   "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 NNE Windsor Heights, IA. Hail size: 1\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 1
  },
  {
   "id": "iem-202603310315-hail-41.74--93.64",
   "lat": 41.74,
   "lon": -93.64,
   "zip": "",
   "city": "2 WNW Ankeny",
   "date": "2026-03-30",
   "county": "Polk",
   "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 WNW Ankeny, IA. Hail size: 0.88\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 0.88
  },
  {
   "id": "asos-bf-DSM-2026-03-16",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2026-03-16",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 56 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 56,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-03-15-wind-41.68--93.57",
   "lat": 41.68,
   "lon": -93.57,
   "zip": "",
   "city": "3 E Saylorville",
   "date": "2026-03-15",
   "county": "Polk",
   "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": "Peak wind at AWOS station KIKV Ankeny Airport.",
   "sourceDetail": "NWS DMX — AWOS via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-03-15-wind-41.53--93.67",
   "lat": 41.53,
   "lon": -93.67,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2026-03-15",
   "county": "Polk",
   "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": "Peak wind gust at ASOS station KDSM Des Moines International Airport.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 60,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-IKV-2026-03-15",
   "lat": 41.6878,
   "lon": -93.5695,
   "zip": "",
   "city": "ANKENY",
   "date": "2026-03-15",
   "county": "Polk",
   "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": "ANKENY (IKV) recorded a 58 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — ANKENY (IKV) [365d backfill 2026-08]",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202603160235-wind-41.68--93.57",
   "lat": 41.68,
   "lon": -93.57,
   "zip": "",
   "city": "3 E Saylorville",
   "date": "2026-03-15",
   "county": "Polk",
   "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 E Saylorville, IA. Peak gust: 67 mph.",
   "sourceDetail": "NWS DMX — AWOS via Iowa Mesonet",
   "windSpeedMph": 67,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202603160456-wind-41.53--93.67",
   "lat": 41.53,
   "lon": -93.67,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2026-03-15",
   "county": "Polk",
   "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 Des Moines Int Airport, IA. Peak gust: 69 mph.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 69,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-DSM-2026-03-13",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2026-03-13",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 58 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-IKV-2026-03-13",
   "lat": 41.6878,
   "lon": -93.5695,
   "zip": "",
   "city": "ANKENY",
   "date": "2026-03-13",
   "county": "Polk",
   "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": "ANKENY (IKV) recorded a 52 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — ANKENY (IKV) [365d backfill 2026-08]",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202603070136-hail-41.69--93.99",
   "lat": 41.69,
   "lon": -93.99,
   "zip": "",
   "city": "2 W Dallas Center",
   "date": "2026-03-06",
   "county": "Dallas",
   "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 W Dallas Center, IA. Hail size: 0.75\".",
   "sourceDetail": "NWS DMX — Trained Spotter via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 0.75
  },
  {
   "id": "iem-lsr-2026-01-21-wind-41.86--93.90",
   "lat": 41.86,
   "lon": -93.9,
   "zip": "",
   "city": "1 ENE Woodward",
   "date": "2026-01-21",
   "county": "Dallas",
   "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": "Measured from personal weather station.",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 64,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-01-21-wind-41.79--93.53",
   "lat": 41.79,
   "lon": -93.53,
   "zip": "",
   "city": "1 W Elkhart",
   "date": "2026-01-21",
   "county": "Polk",
   "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": "Mesonet station UP752 0.6 W Elkhart (UPR).",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-01-21-wind-41.53--93.67",
   "lat": 41.53,
   "lon": -93.67,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2026-01-21",
   "county": "Polk",
   "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 KDSM Des Moines International Airport.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 64,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-01-21-wind-41.82--93.80",
   "lat": 41.82,
   "lon": -93.8,
   "zip": "",
   "city": "4 SSE Madrid",
   "date": "2026-01-21",
   "county": "Polk",
   "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": "Measured from personal weather station.",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 65,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-DSM-2026-01-21",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2026-01-21",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 65 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 65,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202601212107-wind-41.86--93.90",
   "lat": 41.86,
   "lon": -93.9,
   "zip": "",
   "city": "1 ENE Woodward",
   "date": "2026-01-21",
   "county": "Dallas",
   "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 ENE Woodward, IA. Peak gust: 74 mph.",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 74,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202601212121-wind-41.79--93.53",
   "lat": 41.79,
   "lon": -93.53,
   "zip": "",
   "city": "1 W Elkhart",
   "date": "2026-01-21",
   "county": "Polk",
   "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 W Elkhart, IA. Peak gust: 67 mph.",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 67,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202601212128-wind-41.53--93.67",
   "lat": 41.53,
   "lon": -93.67,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2026-01-21",
   "county": "Polk",
   "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 Des Moines Int Airport, IA. Peak gust: 67 mph.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 67,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202601212128-wind-41.82--93.80",
   "lat": 41.82,
   "lon": -93.8,
   "zip": "",
   "city": "4 SSE Madrid",
   "date": "2026-01-21",
   "county": "Polk",
   "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": "NON-TSTM WND GST reported near 4 SSE Madrid, IA. Peak gust: 75 mph.",
   "sourceDetail": "NWS DMX — Mesonet via Iowa Mesonet",
   "windSpeedMph": 75,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202601212159-wind-41.53--93.67",
   "lat": 41.53,
   "lon": -93.67,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2026-01-21",
   "county": "Polk",
   "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 Des Moines Int Airport, IA. Peak gust: 74 mph.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 74,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2026-01-21-wind-41.53--93.67",
   "lat": 41.53,
   "lon": -93.67,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2026-01-21",
   "county": "Polk",
   "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 KDSM Des Moines International Airport.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-IKV-2025-12-28",
   "lat": 41.6878,
   "lon": -93.5695,
   "zip": "",
   "city": "ANKENY",
   "date": "2025-12-28",
   "county": "Polk",
   "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": "ANKENY (IKV) recorded a 56 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — ANKENY (IKV) [365d backfill 2026-08]",
   "windSpeedMph": 56,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-DSM-2025-12-18",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2025-12-18",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 54 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 54,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2025-12-10-wind-41.53--93.66",
   "lat": 41.53,
   "lon": -93.66,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2025-12-10",
   "county": "Polk",
   "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": "KDSM 45 gust 66 mph.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 66,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2025-12-10-wind-41.38--93.40",
   "lat": 41.38,
   "lon": -93.4,
   "zip": "",
   "city": "1 NW Sandyville",
   "date": "2025-12-10",
   "county": "Warren",
   "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": "measured on home weather station.",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "windSpeedMph": 66,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-lsr-2025-12-10-wind-41.57--93.26",
   "lat": 41.57,
   "lon": -93.26,
   "zip": "",
   "city": "3 SSW Prairie City",
   "date": "2025-12-10",
   "county": "Jasper",
   "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": "Neal Smith RAWS.",
   "sourceDetail": "NWS DMX — Park/Forest Srvc via Iowa Mesonet",
   "windSpeedMph": 60,
   "evidenceLevel": "reported"
  },
  {
   "id": "asos-bf-DSM-2025-12-10",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2025-12-10",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 65 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 65,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-IKV-2025-12-10",
   "lat": 41.6878,
   "lon": -93.5695,
   "zip": "",
   "city": "ANKENY",
   "date": "2025-12-10",
   "county": "Polk",
   "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": "ANKENY (IKV) recorded a 51 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — ANKENY (IKV) [365d backfill 2026-08]",
   "windSpeedMph": 51,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202512101011-wind-41.53--93.66",
   "lat": 41.53,
   "lon": -93.66,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2025-12-10",
   "county": "Polk",
   "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": "NON-TSTM WND GST reported near Des Moines Int Airport, IA. Peak gust: 76 mph.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 76,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202512101030-wind-41.38--93.40",
   "lat": 41.38,
   "lon": -93.4,
   "zip": "",
   "city": "1 NW Sandyville",
   "date": "2025-12-10",
   "county": "Warren",
   "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": "NON-TSTM WND GST reported near 1 NW Sandyville, IA. Peak gust: 76 mph.",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "windSpeedMph": 76,
   "evidenceLevel": "reported"
  },
  {
   "id": "iem-202512101031-wind-41.57--93.26",
   "lat": 41.57,
   "lon": -93.26,
   "zip": "",
   "city": "3 SSW Prairie City",
   "date": "2025-12-10",
   "county": "Jasper",
   "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 SSW Prairie City, IA. Peak gust: 69 mph.",
   "sourceDetail": "NWS DMX — Park/Forest Srvc via Iowa Mesonet",
   "windSpeedMph": 69,
   "evidenceLevel": "reported"
  },
  {
   "id": "asos-bf-DSM-2025-12-09",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2025-12-09",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 57 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 57,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-DSM-2025-11-26",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2025-11-26",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 57 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 57,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2025-11-25-wind-41.53--93.67",
   "lat": 41.53,
   "lon": -93.67,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2025-11-25",
   "county": "Polk",
   "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 KDSM Des Moines International Airport.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 61,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-IKV-2025-11-25",
   "lat": 41.6878,
   "lon": -93.5695,
   "zip": "",
   "city": "ANKENY",
   "date": "2025-11-25",
   "county": "Polk",
   "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": "ANKENY (IKV) recorded a 52 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — ANKENY (IKV) [365d backfill 2026-08]",
   "windSpeedMph": 52,
   "evidenceLevel": "observed"
  },
  {
   "id": "asos-bf-DSM-2025-11-25",
   "lat": 41.534,
   "lon": -93.6531,
   "zip": "",
   "city": "Des Moines",
   "date": "2025-11-25",
   "county": "Polk",
   "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": "Des Moines (DSM) recorded a 60 mph gust.",
   "sourceDetail": "IA_ASOS automated observation — Des Moines (DSM) [365d backfill 2026-08]",
   "windSpeedMph": 60,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202511260231-wind-41.53--93.67",
   "lat": 41.53,
   "lon": -93.67,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2025-11-25",
   "county": "Polk",
   "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 Des Moines Int Airport, IA. Peak gust: 67 mph.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 67,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202511260448-wind-41.53--93.67",
   "lat": 41.53,
   "lon": -93.67,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2025-11-25",
   "county": "Polk",
   "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 Des Moines Int Airport, IA. Peak gust: 70 mph.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 70,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-lsr-2025-11-25-wind-41.53--93.67",
   "lat": 41.53,
   "lon": -93.67,
   "zip": "",
   "city": "Des Moines Int Airport",
   "date": "2025-11-25",
   "county": "Polk",
   "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 KDSM Des Moines International Airport.",
   "sourceDetail": "NWS DMX — ASOS via Iowa Mesonet",
   "windSpeedMph": 58,
   "evidenceLevel": "observed"
  },
  {
   "id": "iem-202509162038-hail-41.26--93.72",
   "lat": 41.26,
   "lon": -93.72,
   "zip": "",
   "city": "3 S Saint Marys",
   "date": "2025-09-16",
   "county": "Warren",
   "source": "IEM Local Storm Reports",
   "severity": "moderate",
   "eventType": "hail",
   "confidence": 92,
   "damageTypes": [
    "Shingle bruising",
    "Granule displacement",
    "Metal denting",
    "Vehicle damage"
   ],
   "description": "HAIL reported near 3 S Saint Marys, IA. Hail size: 0.75\".",
   "sourceDetail": "NWS DMX — Public via Iowa Mesonet",
   "evidenceLevel": "reported",
   "hailSizeInches": 0.75
  }
 ]
}