Listening for events…
FEATURE · METEOROLOGY · APRIL 19, 2026
By TerraPulse Lab  ·  8 min read
TerraPulse Research — Paper #29

Radio Waves Saw These Tornadoes Coming 2 Hours, 45 Minutes Early.

A 10-day study of the WSPR amateur radio network over CONUS during April 2026 found HF signal depression that begins 165 minutes before confirmed tornado touchdowns, scales with band in the order predicted by D-layer ionospheric physics, and survives a forecaster-lag control test.

TerraPulse Data Lab April 9-19, 2026 Sources: WSPR.live, NOAA SPC, NWS
165 min
40m precursor, tornadoes
N = 106
tornado events after gating
27.5M
WSPR spots analyzed
p = 3×10−33
40m tornado amplitude

The Observation

Amateur radio operators running the Weak Signal Propagation Reporter (WSPR) network transmit and receive weak signals continuously across HF bands, recording millions of path-decodes per day. Each spot records the transmitter, the receiver, the frequency, and the signal-to-noise ratio (SNR) of the decoded signal. Together they form a dense, passive, real-time map of ionospheric propagation over North America.

Storm chasers on YouTube have long observed that their cellular and HF radio links start to degrade as a supercell begins to rotate. The hypothesis, never quantitatively tested at scale, is that severe thunderstorms disturb the lower ionosphere (the D-layer, 60 to 90 km altitude) through convective coupling, lightning, or sprites. If that disturbance is detectable in WSPR data, HF radio could serve as a passive, cheap, distributed early-warning signal for severe weather.

What We Did

We pulled 34.5 million WSPR spots from wspr.live for the 10-day window April 9-19, 2026, covering a particularly active stretch of tornado season. After filtering to spots whose great-circle midpoint falls inside CONUS, 27.5 million spots remained. We aggregated them onto a 1° × 15-minute grid, computed per-(cell, hour-of-day) baseline SNR medians, and looked for cells under active severe weather.

Ground truth came from two sources. The SPC storm reports (3,798 reports: 177 tornadoes, 1,876 hail events, 1,745 wind events) are timestamped at the actual severe weather occurrence. The NWS warnings (1,669 tornado and severe thunderstorm warnings) are timestamped at the moment the forecaster issued the warning. The difference between these two timestamps is a built-in forecaster decision lag that we quantify explicitly.

Superposed epoch curves — WSPR SNR residual vs lag from SPC storm onset
Fig. 1. Superposed-epoch mean WSPR SNR residual vs lag from SPC storm report time. Each panel stacks hundreds to thousands of events. Vertical dashed line is t = 0 (storm onset). On 40m (7 MHz), the tornado curve dips below its null p95 threshold at t = −240 min and reaches its minimum at t = −165 min. 20m (14 MHz) shows no significant response, as D-layer absorption physics predicts.

Three Results

1. Storm cells show depressed WSPR SNR. Comparing cells under active severe weather warnings to matched quiet cells, all eight band × storm-type strata clear Bonferroni significance at α = 6.25 × 10−3. The most populated stratum, 40m × severe weather, shows a median SNR depression of 1.27 dB (95% CI −1.42 to −1.11, Nstorm = 1,343, Nquiet = 122,633, Welch p = 2.6 × 10−72). A null-shuffle calibration over 100 trials caps the maximum Cohen's d under the null at 0.415; the observed maximum is 1.36 (5.8× the p95 null). The signal is not a chance artifact.

2. Effect size follows the physics gradient. Lower HF bands, more absorbed by the D-layer, show larger effects; higher bands, D-layer transparent, show smaller or null effects:

Cohen's d effect size by band
Fig. 2. Cohen's d per band × storm-type stratum. 80m (3.5 MHz) shows the strongest effect (|d| 1.05-1.36). 20m (14 MHz) is near-zero. The monotonic decrease with frequency is what D-layer absorption predicts if the mechanism is convective ionospheric disturbance.
Band Frequency |Cohen's d| Interpretation
80m3.5 MHz1.05 – 1.36strongest (most D-layer-sensitive)
40m7 MHz0.51 – 0.92strong
30m10 MHz0.27 – 0.64moderate
20m14 MHz0.19 – 0.31weakest (D-layer transparent)

This ordering is what you would expect if the mechanism is ionospheric absorption driven by convective disturbance. It is not what you would expect if the effect were simply lightning QRN in receiver audio or a geographic confound. The gradient is the single cleanest piece of evidence that the signal is physically real.

3. The depression precedes storms, not warnings. Using SPC storm-report timestamps (no forecaster decision lag), the 40m band shows statistically significant SNR depression that begins at t = −240 min and reaches its minimum at t = −165 min before tornadoes touch down. 30m hail shows a 120-minute precursor, 30m wind 135 min. Only 5 of 12 strata show statistically significant effects against the null, but every single one of those 5 is classified as "precedes." None aligns, none lags.

Forecaster Decision Lag, Quantified

A harder question: is the "165-minute precursor" a real ionospheric signal, or is it the time it takes a forecaster to look at radar and decide to issue a warning? We ran the same analysis twice, once using NWS warning issue times (which include forecaster lag) and once using SPC event timestamps (which do not).

Stratum NWS kmin (min) SPC kmin (min) Real precursor
40m tornado (N = 106)−195−165~165 real, ~30 forecaster
30m hail+90−120flipped sign (120 real)
30m wind+90−135flipped sign (135 real)

When we switch from NWS warning timestamps to SPC event timestamps, three strata that looked like "lags" in the warning-based analysis flip sign entirely. The precursor structure was masked by forecaster decision lag. Removing that lag surfaces the underlying ionospheric signal.

CONUS WSPR spot density + SPC tornado reports, 10-day totals
Fig. 3. Log-scaled WSPR spot density per 1° cell (blue background) with SPC tornado reports as red × markers and the 234 cells that saw any SPC report outlined in yellow. Classic April severe-weather footprint: primary diagonal IA→IL→OH, secondary cluster MO/AR/TN.
Superposed epoch curves with bootstrap 95% CI ribbons
Fig. 4. Same superposed-epoch curves as Fig. 1 with bootstrap 95% CI ribbons and the stratum-specific null p95 band (gray). Where the curve's lower CI drops below the null band is where the signal is statistically detectable. 40m tornado clears the null starting at t = −240 min.

Interactive animation (960 frames, 10-day CONUS loop):

→ Open the WSPR + SPC + NWS animated overlay Also available as MP4 (20 MB).

What We Cannot Claim

A few caveats are load-bearing. First, this is 10 days of data. The tornado-specific precursor rests on N = 106 events after quality gating. A V2 verification run on historical outbreaks (Joplin 2011, April 2011 Super Outbreak, Moore 2013, Rolling Fork 2023) is the natural next step.

Second, we cannot distinguish several plausible mechanisms: D-layer absorption driven by convective overshoot, sprite or elve electrification, sporadic-E patch formation, or systematic QRN-through-event depression on receivers. The physics-consistent band gradient favors a D-layer mechanism, but favoring is not proving.

Third, the grid is 1°; warning polygons are much smaller. There is spatial mismatch. Fourth, the 80m tornado stratum (N = 20) shows the largest effect amplitude but is power-limited for the lag analysis. The tornado-specific precursor claim rests on the 40m band alone. Fifth, we do not claim causation: we claim a statistically significant correlation with a physically consistent mechanism, and we quantify how much of the timing lead is attributable to forecaster decision lag versus the underlying ionospheric signal.

Why Meteorology Should Care

If the 165-minute 40m precursor holds up on a larger sample, the WSPR network is a nearly-free, passive, distributed sensor for a phenomenon that currently requires Doppler radar networks, balloon soundings, and human forecasters. HF propagation over a continental corridor samples an ionospheric region much larger than a single radar beam. It may carry information the radar cannot see, or that the radar sees only after the storm has already matured.

Amateur radio has spent a century passing short text messages. We think it has been, quietly and continuously, also taking the ionosphere's temperature during severe weather. A historical case-study replication on Joplin 2011 and the April 2011 Super Outbreak is queued; if it confirms, the next question is whether WSPR can usefully be integrated into operational nowcasting.

Reproducibility

All data, code, intermediate artifacts, and the full statistical pipeline live in the wspr-tornado-season-conus-2026 workspace. Every number in this article comes from either data/storm_test.json or data/mechanism_lag_spc.json. The underlying scripts reproduce the result end-to-end. GitHub issues #133 through #141 track every step.

Paper #29 accepted 2026-04-19 through Elise (PMA draft), Mike (science editor, R1 addressed, R2 accept), and Dana (copy editor). Data: wspr.live, NOAA SPC, NWS. All times UTC.

Live Feed