The Precursor Is Real.
It Just Doesn't Know Outbreak Severity.
We ran a third pass on the WSPR 40m tornado precursor with proper controls. Twelve density-adequate outbreaks from 2021-2024, twenty-four SPC-screened controls, zero contamination (V2's 71% contamination eliminated). The pooled outbreak signal replicates at kmin = −270 min, Cohen's d = −0.525, exceeds the shuffle null by 5.8×. But the outbreak-vs-dose-control Δd is not Bonferroni-significant. The precursor is general to tornadic convection, not a marker of outbreak severity.
Where We Were After V2
Paper #29 found a 40m WSPR SNR depression that begins 165 minutes before confirmed tornadoes during April 2026. Paper #30 (V2) replicated on Mayfield 2021, showed a partial signal on Rolling Fork 2023, and discovered a methodological flaw: the day-of-year control-matching window routinely landed on real severe weather days. Fifteen of twenty-one V2 controls had tornadoes of their own. The direct outbreak-vs-control Welch test on 40m tornado was structurally undefined.
V3 is the fix. Every control day was pre-screened against the SPC archive before WSPR data was pulled. Rejected candidates were replaced with calm-season alternatives. We ended with zero controls containing tornado reports on their nominal calendar date — though a 72-hour analysis window overlaps multiple SPC convective days, so nine controls ended up with 2-8 tornado reports anyway. This turned out to be useful: it created a ten-to-one dose gradient between outbreaks (35-176 tornadoes each) and dose-controls (2-8), which is a sharper statistical contrast than a clean binary would have been.
Two New Replications (Well, One New)
| Event | Date | d (40m tor) | pBonf | kmin | Verdict |
|---|---|---|---|---|---|
| Mayfield, KY | 2021-12-11 | −0.447 | 1.1 × 10−3 | −270 | REPLICATES (V2 + V3) |
| Oklahoma (Barnsdall EF4) | 2024-05-06 | −0.595 | 8.7 × 10−9 | −105 | REPLICATES (NEW) |
| 4 more | — | (various) | (various) | (various) | PARTIAL |
| 6 more | — | — | — | — | gate-fail (per-stratum density) |
Mayfield reproduced V2 to three decimals (d = −0.447, kmin = −270 min — identical). That's methodology-integrity check. Oklahoma 2024 is the new one: Barnsdall EF4, stronger effect, shorter lead time. Six outbreaks gate-fail the 40m tornado stratum on per-event bin counts but contribute non-failing strata to the pooled analysis.
The Primary V3 Test Came Back Null
If the WSPR precursor were a specific marker of outbreak severity, outbreak-pool d should be more negative than dose-control-pool d, and the gap should be statistically detectable. We ran both Welch's t-test and the Mann-Whitney U test on the pooled 40m tornado storm-bin SNR residuals:
| Pool | Nstorm | Nquiet | Cohen's d | pBonf vs quiet |
|---|---|---|---|---|
| Outbreak | 286 | 273,755 | −0.525 | 2.9 × 10−18 |
| Dose-control | 20 | 250,154 | −0.384 | (sig vs quiet) |
| Clean-control | 0 | structurally undefined (by design) | ||
Outbreak vs dose Welch one-sided: Δd = −0.142, CI [−0.442, +0.213], p = 0.219, pBonf = 1.0. Mann-Whitney U: U = 2374, p (one-sided) = 0.102. Both tests point the same direction, neither clears α = 0.05, let alone the Bonferroni threshold of 4.17 × 10−3.
So the outbreak effect exists. The dose effect exists. They are not statistically distinguishable from each other. The most honest framing: the WSPR 40m depression is a response to any tornadic convection rather than a marker that escalates with outbreak severity.
Oklahoma 2024 Closeup
The Barnsdall, OK EF4 on May 6, 2024 is the new clean replication. Cohen's d = −0.595, 8.7 × 10−9 Bonferroni-significant, kmin at −105 minutes. Different geographic corridor from Mayfield (Plains vs Mid-South), different season (spring vs December), different ionospheric conditions, same 40m signal.
Animated Plotly closeup — 72h window, 15-min frames, Oklahoma/Kansas corridor:
→ Open the Oklahoma 2024 closeupMayfield 2021 closeup (unchanged from V2):
→ Open the Mayfield 2021 closeup
What V3 Locks In
Over three papers on three independent data windows, the 40m pre-tornado SNR depression has replicated at kmin between −100 and −300 minutes, with Cohen's d between −0.25 and −0.60, and the band gradient always follows D-layer absorption physics (80m > 40m > 30m > 20m). That's the established part of the finding.
What V3 explicitly did not establish: that the effect is specific to named outbreaks or that it scales with event severity. The dose-response regression is flat. A day with a handful of tornadoes looks much like a day with dozens. That finding reshapes the next step.
What V4 Looks Like
The open question is mechanism. We have four candidates: D-layer ionospheric absorption driven by convective overshoot, lightning-radio-noise QRN crushing SNR at receiver sites, transient luminous events like sprites altering D-region ionization, or sporadic-E patch formation. The physics-consistent band gradient favors D-layer absorption, but favoring is not proving.
The natural discriminator is concurrent lightning density. If the depression is D-layer absorption from convective overshoot, it should precede lightning onset by tens of minutes. If it's QRN contamination, it should track lightning density in real time with zero lag. The Blitzortung.org global lightning network publishes a live WebSocket of lightning strikes with millisecond timestamps and lat/lon. V4 would overlay that with the WSPR anomaly grid on the same events and compute the cross-correlation lag.
Reproducibility
All code, data, intermediate artifacts, and the full statistical pipeline live in the wspr-tornado-v3-controls-fixed workspace. Every number in this article comes from data/cross_event_summary.json, a per-event storm_test_*.json, or data/mwu_ob_vs_dose.json. GitHub issues #150 through #155 track each stage with its own numerical audit. Paper #29 (V1), paper #30 (V2), and paper #31 (V3) form a disciplined three-stage study with appropriate effect-size shrinkage as control quality improved.
Paper #31 accepted 2026-04-20. PMA draft, Mike R1 ACCEPT (3 non-blocking minors), combined PMA revision + Dana copyedit. Data: wspr.live, NOAA SPC archive. All times UTC.