The Storm Ledger: 71 years of Cook County hail, and the permits it left behind.
Storm chasing is a race you enter after the sirens. Storm history is a ledger you can read before anyone else shows up. This brief puts NOAA's 71-year Cook County hail record next to 102,453 county roof permits and asks one question: where did the storms create replacement demand that nobody ever came back for?
01 · Recurrence
Hail here isn't an event. It's a schedule.
NOAA's severe-weather archive carries 653 hail reports inside Cook County across the 71 years from 1955 through July 2026. The more useful number is the streak: the record shows hail of one inch or larger somewhere in Cook County in every single year since 1991 — 36 consecutive years.
Read the decade bars as a record of what was reported, not as a climate trend. Report counts climb steeply after 1999 because there are more spotters, more people and more phones — and what gets logged has shifted toward the larger sizes: sub-inch hail is 51.2% of Cook's 2000s reports but only 1.6% of its 2020s reports. The recurrence is the signal here. The slope is mostly the observers.
If a township tells you it "doesn't really get hail," the federal record disagrees 36 years running. Nobody in Cook County is planning around a rare event. They're planning around a recurring one, which means the interesting question is never whether a storm came — it's whether anyone answered it.
02 · Size classes
Two in three Cook hail reports are in the roof-relevant class.
Of the county's 653 reports, 444 (68.0%) logged hail of one inch or larger — the size class exterior trades treat as roof-relevant. 97 reached 1.75 inches or more, and 24 reached two inches or more. The largest hail in the Cook County record is 2.75 inches.
This is a size distribution, not a condition assessment. A report says what a trained observer measured on the ground at one point, on one date. It says nothing about any particular roof, and this brief never uses it that way.
The one-inch line is where a hail history stops being weather trivia and starts being a replacement-cycle input. Two thirds of Cook's record clears it, which is why the county's permit file has the shape it does — and why the townships below matter more than the storms do.
03 · The 2026 season
Cook County's entire 2026 hail season is one day.
In the federal record, Cook County has exactly 19 hail reports in 2026, and all 19 fall on July 27. Every one of them measured one inch or larger, topping out at 1.75 inches. Widen the frame to Cook and the bordering collar area and that single day carries 51 reports, up to 3.00 inches; statewide, July 27 produced 63 Illinois reports.
Put that against 71 years of county history: only three days on record produced more Cook County hail reports than July 27, 2026 did. One day, near the top of the ledger, in a season that had otherwise been silent.
A one-day season concentrates everything. There is no spreading a year's worth of replacement demand across a year's worth of storms — the county's whole 2026 hail record landed inside a single afternoon, and the permit response to it hasn't been filed yet. What the sections below show is what that response has looked like the last six times.
| Date | Reports | Max size |
|---|---|---|
| 2023-04-04 | 27 | 1.75" |
| 2003-08-01 | 23 | 1.75" |
| 2010-04-05 | 21 | 2.75" |
| 2026-07-27 | 19 | 1.75" |
| 2006-10-02 | 19 | 1.50" |
| 2024-05-07 | 18 | 2.00" |
July 27, 2026 rows come from NOAA's preliminary daily storm reports and are subject to revision; the finalized archive currently runs through 2025.
04 · Storm to permit
Eight of the ten biggest permit waves sit on a hail footprint.
Take each township's single largest roof-permit year and rank them. For eight of the top ten, the county's permit file and NOAA's hail record line up: a one-inch-or-larger report lands inside that township in the wave year or the year before it. Four of the cleanest are on the right.
Two do not line up, and they belong in the same table as the eight. Rich township's 2021 wave (1,564 permits) and Thornton's 2020 wave (1,235) have no in-township hail report in either the wave year or the year prior. Permit waves have more than one cause — reassessment cycles, insurance-carrier behavior, a single large subdivision aging out together. Hail explains most of the big ones here. It does not explain all of them, and a model that claimed otherwise would be selling you something.
A permit wave is demand that already proved it converts. When a wave sits on a storm footprint you know what created it, roughly when, and — from the permit file — exactly which homes answered. The homes inside that footprint that never pulled a permit are the same vintage, on the same clock, with the same weather behind them.
| Township | Wave | Permits | Hail ≥1" | Max |
|---|---|---|---|---|
| Bremen | 2024 | 2,162 | 5 (same yr) | 2.00" |
| Hanover | 2023 | 2,147 | 4 (same yr) | 1.75" |
| Palos | 2024 | 1,832 | 4 (same yr) | 1.50" |
| Orland | 2025 | 1,825 | 5 (prior yr) | 1.75" |
| Rich | 2021 | 1,564 | none | — |
| Thornton | 2020 | 1,235 | none | — |
05 · The absorption gap
Four townships got the storms and never got the wave.
This is the number the ledger exists to produce. Across 2020–2025 the county filed 102,453 township roof permits — 92.7 per 1,000 homes. Some townships ran far above that and spiked hard. Four ran above the county rate, carry a real hail history, and show a permit series that is essentially flat: no wave, ever.
The test, plainly stated: a township qualifies if its 2020–2025 permits per 1,000 homes are at or above the county rate (so the absence of a wave is not just an absence of records), it has ten or more one-inch-plus hail reports on the NOAA record, and its biggest single year never exceeded 1.6× its own median — well short of the 2.5× bar the X-Ray model uses to call a wave. Wheeling, Maine, Lemont and Lyons clear all three. Between them: 111,635 homes and 73 one-inch-plus hail reports, with no permit wave on file.
Every competitor in this county is driving toward the last hail alert. These four townships are the opposite trade: decades of storms, permit-record proof that the homeowners do pull permits, and no season where the work actually got absorbed. That is demand that was created and never collected, and it does not expire on a 30-day storm window.
| Township | Homes | Hail ≥1" | Permits/1k | Peak ÷ median |
|---|---|---|---|---|
| Wheeling | 36,833 | 25 | 121.9 | 1.26× |
| Maine | 36,392 | 21 | 108.2 | 1.59× |
| Lemont | 8,105 | 15 | 222.5 | 1.18× |
| Lyons | 30,305 | 12 | 173.4 | 1.23× |
For contrast, the county's clearest absorbers over the same window: Evanston 4.55×, Orland 3.88×, Thornton 3.78×, Schaumburg 3.55×.
06 · How long a wave lasts
The window stays open longer than the storm-chasers stay.
Take the county's five largest township permit waves that have a full following year on file. In every one of them the season after the peak still ran between 39.9% and 68.6% of the wave year — a mean of 54.1%. Two years out, the ones with a second full year on file were still filing at 22–53% of peak.
Worth township is the long version: 3,115 permits in its 2019 wave, then 2,138, then 1,642, then 878. Four seasons of elevated replacement work off one cohort. The crews who arrived the week of the storm were gone before the second-biggest year even started.
This is the whole argument for working history instead of headlines. Roughly half of a wave's volume files after the year everyone shows up for, against a fraction of the competition. You do not need to win the week of the storm. You need to still be there in month fourteen, and to know which blocks haven't pulled a permit yet.
Wave years: Worth 3,115 · Hanover 2,147 · Palos 1,832 · Bremen 2,162 · Evanston 1,895. County-wide permit coverage is complete from 2020; Worth's 2019 series is read within Worth only, never across townships.
Territory Intelligence · by email
Get the next brief when it publishes.
County briefs, township reads, and storm-window notes for exterior contractors. Aggregate market data only. No spam, no shared lists.
Subscribed. The next brief will land in your inbox.
Method & sources
Hail. NOAA Storm Prediction Center severe-weather reports for Illinois, refreshed August 4, 2026. The local archive holds 12,000 Illinois reports; the most recent report date in it is 2026-07-27. Records from 1955–2025 come from NOAA's finalized annual archive; 2026 rows come from NOAA's preliminary daily storm reports and are subject to revision. A report is counted as Cook County when NOAA's own county attribution says so. These are spotter and public reports at a point and date, not radar swaths, and coordinates may be rounded.
Permits. Cook County township roof-permit records, 102,453 permits across 2020–2025. County-wide coverage is complete from 2020 onward, so every cross-township comparison in this brief is drawn from the 2020–2025 window; earlier years are read only within a single township's own series and are labeled where used. 2026 permits are excluded throughout — the year is in progress and permit records lag.
Joining the two. Hail reports are placed in a township by a 0.01-degree grid built from the assessor's parcel geography: each cell is assigned to the township that owns the most parcels in it, and each report takes its cell's township. 652 of 653 Cook reports placed. Housing counts come from the Cook County Assessor's file on 1,104,856 residential parcels with a township on record.
Everything on this page is aggregate, at township level or coarser. No individual home is identified, no address appears, and nothing here is a claim about the condition of any specific property. Hail is used as history and context; permits are public record. The same layers, scored neighborhood by neighborhood, are what a Territory X-Ray runs on to give you property context for planning a smarter campaign.
Brief No. 01 read the county's housing stock, roof mix and flood exposure from the same records — it reported 586 Cook hail reports through the 2023 archive, which the refreshed archive now carries to 653 through July 2026. Read Brief No. 01 →
The county ledger says four townships never got their wave. Yours has an answer too.
The Territory X-Ray runs these same layers on the towns you actually work: which blocks sit inside a past storm footprint, which already replaced, and which never did — with the first campaign worth your money.
Request a Territory X-Ray