⚠ Work in progress, site evolving rapidly! Check in regularly for updates/fixes.
Severe thunderstorm(+) Climatology and Trends
← extremewx.org ·
Climatology and trend side by side on one shared map. Drag or zoom either map and both
follow, so the two are always showing the same ground. Click a new state to center on it; inside the state you are already on, a click
picks the county (or station) under the cursor for the panels below, and clicking it again lets go. Nothing is
ever hidden, you are just moving around the country.
For individual storms — the SPC derecho archive and the biggest days on record
— see historical events.
See data 2° bins instead ·
Send feedback with bugs or requests.
drag · scroll to zoom · click a state to center, a county to pick it
Trend
Trends are inherently far noisier: focus on coherent spatial patterns, not the value in any single county.
both maps share one view
Methods
Sources. Hail, tornado and thunderstorm wind come from the NOAA/NCEI Storm
Events Database, using county-type records (CZ_TYPE = C). Freezing rain
comes from NOAA/NCEI’s GHCNh (Global Historical Climatology Network-hourly,
the successor to the Integrated Surface Database): the hourly and special reports
(METARs) of airport weather stations across the lower 48. Peak wind comes from the
Integrated Surface Database for Indiana stations. The remark FZRANO (freezing-rain sensor not operational)
is not counted as freezing rain, and a peak-wind group with a three-digit speed
(100 kt or more) is treated as a coding error.
Extreme heat comes from the ECMWF ERA5 reanalysis (hourly, 0.25°,
NCAR’s copy), not from reports. Two hazards: Extreme Heat (temperature)
counts days whose maximum 2 m air temperature reached 90, 95, 100 or 105 °F;
Extreme Heat Index counts days whose maximum heat index reached 90, 100, 105, 110
or 115 °F, with heat index computed every hour from temperature and dewpoint by
the NWS formula (the Rothfusz regression and its humidity adjustments). A day is midnight
to midnight local standard time. Each ERA5 land cell counts its own days, and a
county’s value is the area-weighted mean of the land cells it overlaps (ERA5
land–sea mask ≥ 0.5; sea and lake cells carry marine temperatures and would pull
coastal counties down; the few island counties with no land cell take the nearest one).
State and national panels are the area-weighted mean over counties, i.e. the days a
typical place saw (so values need not be whole numbers). The method reproduces the Indiana
heat-index analysis it grew out of to within 2 point-days in 86,000, and an independent
recomputation from the raw hourly data matched it. Lower 48 only; 1950 onward. The newest
month’s last day lacks a few overnight hours until the following month is out, and
is recomputed then. Before about 1960 the top heat-index thresholds (110 and
115 °F) are unreliable: early ERA5 has occasional one-hour humidity spikes
(an 88 °F dewpoint in Nebraska, say) that the heat index turns into
extreme values, so those early counts run high and trends there are understated.
Contains modified Copernicus Climate Change Service information; ERA5 is produced by
ECMWF.
Heavy rain comes from PRISM daily precipitation (4 km grid, PRISM
Group, Oregon State University), obtained through ACIS, which counts the days on its
server so no daily grids need downloading. A day is the 24 hours ending
12 UTC; totals are taken to the nearest hundredth of an inch, as rain is reported,
and a day counts at 1, 2 or 3 inches. Each PRISM cell counts its own days; a
county’s value is the area-weighted mean of the cells it overlaps, and state and
national panels the area-weighted mean over counties — the days a typical place
saw. 1981 onward (PRISM’s daily record), lower 48 only. Heavy rain opens on 2002 because PRISM itself changes then: from 1 January 2002 its daily precipitation uses weather radar (NWS Stage II/IV, then MRMS from July 2020) to place rain between the gauges across the central and eastern U.S., and PRISM warns that this adds non-climatic variation to trends. Against long-record gauges, heavy-rain days jump at 2002 in every eastern state we checked (≥ 2″ days go from about 0.6 to 0.86 of the gauge count; no jump in the West, where radar is not used), so a trend that spans 2002 is inflated. Earlier years can still be chosen in the year boxes. The last six months are
provisional and are fetched again each month as PRISM revises them. PRISM is built
from the gauges that reported each day, and that network changes over time, so trends
carry some uncertainty from it. The method reproduces the Indiana heavy-rain analysis it
grew out of exactly, cell by cell.
Heavy snow comes from daily snowfall at NOAA Cooperative Observer and
first-order stations (GHCN-Daily, via ACIS) — measured by a person with a
ruler, since no gridded product estimates daily snowfall well enough for trends. A
day counts at 1, 4, 6 or 12 inches of new snow; seasons run July–June,
labeled by their ending year, 1950–51 onward. Quality control follows
Kunkel
et al. (2009), automated: blank snowfall on days that could not have had snow
(no precipitation, or a minimum above 32 °F) is set to zero; days with more
than 60 in, or with snow but exactly no precipitation, are set to missing; a
season counts only if October–May is at least 90% complete and the observer
actually reported snowfall at least once in each of December, January and February (so a
station that had stopped measuring snow gets no invented zero seasons), and is dropped as
estimated when most of its
snowfalls read exactly 10:1 from the gauge (the EPA snowfall indicator’s
screen). A station appears with at least 30 valid seasons. The default QC
stations set further requires at least 60 of 76 seasons, five in each of the first
and last decades, and no break or drift against its neighbours (a Pettitt test and a
trend test on the ratio to a neighbour reference, in place of Kunkel’s panel of
experts). CoCoRaHS is left out: its records mostly start after 2000. The lower panels
average the stations observed in at least 90% of the seasons in the window, as
departures from each station’s own mean (added back to their average), so a station
missing a season does not shift the series.
Locate each report (storm hazards). Storm Events reports are assigned to a county by
STATE_FIPS + CZ_FIPS rather than by county name, which
avoids name collisions and independent cities. Connecticut is drawn with its
eight historical counties, because Storm Events still files reports under them
rather than the planning regions the Census adopted in 2022. Puerto Rico reports
are included from 2009, the first year they carry municipio codes (earlier ones
use forecast zones). Station hazards stay at their station.
Apply the threshold. Each report is scored against the selected size or
intensity cut (for extreme heat, each day’s maximum against the temperature or heat
index cut). Thresholds are cumulative — a 2″ hailstone also counts as a 1″ one.
Collapse to hazard days (storm hazards). Count distinct calendar dates on which a
county — or a station — saw at least one qualifying report. One storm producing
forty reports in a county on one afternoon is one hazard day.
Screen the station records. A station-year below 90% complete is treated as
no observation and dropped, not as zero days. That is the opposite of the
county rule below, and both are right: every county exists every year, a station
does not. For freezing rain, QC stations applies the criterion of
DelPizzo
et al. (2025), who kept only sites with an overnight human observer. Their list
covers the Great Lakes; nationally the page applies the same test from the record
itself: a site qualifies if, before automation (1985, 1987 or 1990), it reported in the
small hours (1–5 am local) on at least 90% of its days. That reproduces their
list — 75 of their 76 U.S. sites pass, and the 76th, Champaign, is kept as theirs
— and gives about 550 of the roughly 950 stations nationally (every federal ASOS,
plus military fields with their own observers). The test describes 1985–90, not
today: many of these sites are now automated too. Freezing rain opens on that subset.
In this record the screen matters less than expected: unscreened stations average about
5% more freezing-rain days than a screened station nearby (median of 165 pairs within
60 km), though more in 2001–05 (11–26%) than since, a sign that automated
freezing-rain reporting changed in the early 2000s. A day is a UTC day (7 pm to
7 pm EST), as in the METAR record. Seven mountain and pass sites where most
“FZRA” hours came with freezing fog or visibility at or below half a mile —
ice from cloud rather than rain (Mount Washington, Sexton Summit, Stampede Pass, Blue
Canyon, Mullan Pass, Guadalupe Mountains, Bryce Canyon) — are left out.
Peak wind is measured differently and is not screened
this way, so it opens on all stations.
Store those counts per county (or station) × year × month × threshold.
Everything below is computed live in the browser from that table.
Climatology map. Mean annual hazard days over the selected period. For
counties a year with no days is a real zero and is counted in the denominator; for
stations, unobserved years are excluded rather than counted as zero.
Trend map. Ordinary least squares on the annual counts, reported per decade.
A county is left gray (a station hollow) unless it clears the same three coverage gates as
the 2° grid page: enough years carrying a day (at least 8, or 30% of the period),
those years spanning at least 70% of the period, and at least 2 of them in each half
— for a station counted over its observed seasons, which must also cover at least
half the period.
The annual and monthly panels apply the same gates. Significance is a two-sided
t test on the slope; stations reaching p < 0.05 are ringed.
Annual and monthly panels. For a selected county, that county alone. For a
state, calendar dates on which anywhere in the state qualified — deliberately
not the sum of county-days, since one storm can cross twenty counties in an
afternoon. For extreme heat, a state (or the country) is instead the area-weighted mean
over its counties: the days a typical place there saw. For stations with none selected, the mean over those observed in every
year of the period, so a station entering or leaving the record cannot masquerade as
a trend.
Smoothing. The two county maps are drawn through a light Gaussian
blur, sigma 2°, on by default and switchable to Raw.
Measured over the real county centroids that means half the weight comes from within
230 km and 90% from within 381 km, with a hard cutoff at 444 km, so a
point smears into a blob roughly 520 km across and a median of 286 counties
contribute to each value. That is a firm blur: it resolves the broad corridors
rather than county-scale structure, and the peak hail value drops from about 15 to
6 days/yr. Switch to Raw to see the underlying county numbers. The
2° grid page uses the same sigma. It is area-weighted — without that, Georgia's 159 small counties
would outvote a single large western one covering the same ground — and
normalized, so only counties that have a value contribute and coastal counties
are not dragged towards zero by the empty space beyond them. The smoothed trend
map is the trend of the smoothed field: every county's own slope is blurred, gated or
not (an ordinary least-squares slope is linear in the data, so this equals the slope of
the smoothed annual series), and the trend gates are then applied to that smoothed
series. A county too sparse for a trend of its own therefore shows its neighbourhood's,
and goes gray only when the whole neighbourhood is too sparse; hover gives the county's
own trend, or says it has none. It never touches the annual or monthly panels.
Because it is a neighborhood average, the drawn value is not the county's own
— hover reports both when they differ. Station hazards and derecho events are
not smoothed: those are points and single storms, not fields. Extreme heat is never
smoothed either: ERA5 is already a continuous gridded field. Heavy rain is smoothed
at 1° rather than 2° by default, switchable to Raw: heavy rain is patchy over
much shorter distances than heat, so single-county trends in particular are noisy, while
PRISM resolves real structure at 4 km that the 2° blur would wash out. For
heavy rain only the trend map is smoothed; its climatology is always drawn raw,
because a long-term mean is not noisy and a blur moved western rain shadows badly
(Grant County, WA: 0.02 → 2.9 days/yr at ≥ 1″).
Color scales. Set nationally (all counties, or every station shown), whatever
part of the map is on screen: robust upper percentiles for climatology (the 98th for the
snowfall and freezing-rain station networks, whose few mountain sites would otherwise
bleach every other dot), symmetric about zero for trend. When values run past the top of the
climatology scale its top label reads ≥; hover a county for its own number.
Derecho is the same county climatology and trend as thunderstorm wind,
but counting only wind reports that belong to a derecho. A county scores a derecho
event when it has a qualifying wind report inside the coherent wind swath of a
definitive derecho in the SPC archive — NEXRAD-confirmed cases only, so the
record begins in 1996. A county the swath crossed without a report is not credited
(about a third of the counties at least half inside the swath polygons), so the map
understates swath coverage, and early swaths whose reports often carry no speed (1996–2002)
lose the most. Derechos here are warm-season storms: all 96 definitive cases fall in
April–August. It is
counted in events per year rather than hazard days, because a derecho is one
coherent storm rather than a category of report. Each event is dated by the swath's
own start (UTC) rather than each report's local date: half these
swaths cross a date boundary, and dating by report counted one storm twice in any
county hit either side of midnight. Two swaths that start on the same date count once
in a county both cross, so nationally the 96 definitive swaths fall on 93 dates.
A report belongs to a swath when it falls inside the archive's UTC window, keeps pace
along the track with the clock, lies no farther from either endpoint than the swath's
length plus 100 km (the paper's three tests), and — our addition —
lies within 300 km of the straight start-to-end track line, which keeps separate
storms far off to the side out of the swath. Values are small by construction — the busiest
counties see about one derecho every two years — so read the map as a corridor map,
not a frequency map, and treat trends over a record this short with the caution the yellow note
above the trend panel describes.
Derecho events — individual swaths, their tracks and reports — are on the
historical events page, with the archive’s confidence tiers.