Can WSPR Detect Commercial Aircraft?
A Pre-Registered Test That Couldn't Run.
We collected 5.3 million WSPR spots and 934,000 ADS-B aircraft positions across 24 hours and three transatlantic station pairs. Every WSPR bin had at least one aircraft in it. The control group had zero members. The test returned NaN.
The Prior Question
The Godfrey WSPR-MH370 hypothesis claims that disturbances in WSPR (Weak Signal Propagation Reporter) station-pair data can be used to retroactively trace the path of Malaysia Airlines flight 370 across the southern Indian Ocean in 2014. The claim has attracted major public attention without controlled evaluation.
Before any responsible evaluation of that hypothesis against the historical record, we have to answer a prior question: can WSPR detect commercial aircraft at all, against ground truth, on a recent date with full ADS-B coverage and full WSPR archive coverage?
If the answer is no, the hypothesis is dead regardless of how compelling post-hoc pattern matches look. If the answer is yes, we have a reference signature for what an aircraft crossing actually looks like in WSPR data. This is the only honest starting point.
Pre-registration
All methods were locked in a pre-registration document committed to Git on 2026-04-10 before any data was pulled. Hypothesis, data sources, station-pair selection criteria, statistical tests, significance threshold, seed, and decision rule — all specified up front. Five subsequent deviations (upstream data-source changes, window shift, integer bin-guard rounding) are logged with dates and reasons in the paper's §10.
What We Collected
Result Table
| Pair | ADS-B hits | Bins | Crossing bins | Welch p | Perm p |
|---|---|---|---|---|---|
| SP3VSS→EI4JJB | 8,724 | 202 | 202 (100%) | NaN | 1.0 |
| IU0JJD→WA2TP | 51,423 | 158 | 158 (100%) | NaN | 1.0 |
| RL3DF→LA1ZM | 0 | 144 | 0 (0%) | NaN | 1.0 |
Welch's t-test requires both groups to have at least one observation. For pairs 1–2 the control group (non-crossing bins) is empty. For pair 3 the treatment group is empty.
The Crossing Walls
The crossings aren't a trickle — they're a continuous wall. The IU0JJD→WA2TP path (Italy to New York, 6,908 km) crosses southern European airspace, the UK flight information region, and the US Northeast corridor. At any given moment, hundreds of aircraft are within 25 km of this great circle near its endpoints.
Why Saturation Happened
The pre-registration estimated 50–200 discrete crossing transits per day, implicitly assuming aircraft would cross the great-circle path transiently (perpendicular transit, one event per aircraft). The actual geometry differs in two ways:
- Parallel tracking. Many aircraft fly along or parallel to the great-circle path for extended periods. A 25-km perpendicular tolerance captures anyone on nearby airways. An aircraft following a North Atlantic Organized Track route stays inside the envelope for hundreds of kilometers — dozens of state-vector hits per aircraft at 60-second polling.
- Endpoint convergence. Near the stations themselves (dense European and North American airspace), the great circle passes through terminal maneuvering areas. Cross-sectional traffic density here vastly exceeds the mid-ocean rate the pre-registration was calibrated against.
The Mid-Atlantic Blind Spot
ADS-B ground truth is structurally unavailable over the mid-Atlantic (roughly 50°W to 20°W) because community ADS-B depends on volunteer ground receivers with ~370 km line-of-sight range at FL350. The nearest receivers (Newfoundland, Iceland, Ireland) leave ~2,000 km of open ocean without coverage. Satellite ADS-B (Aireon via FlightAware/Spire) covers the gap but requires paid commercial access outside this study's budget.
What the Null Result Still Tells Us
We report this honestly as inconclusive — the test could not be executed, so we don't claim WSPR does or doesn't detect aircraft. But the saturation finding has an indirect implication for post-hoc retrospective studies.
If air traffic is so dense that virtually every WSPR bin on a transatlantic path contains crossing events, then any correlation between SNR anomalies and "aircraft presence" may be trivially true — not because WSPR detects aircraft, but because aircraft are always present. Post-hoc analyses that identify SNR anomalies and retroactively associate them with aircraft presence face this same problem: on busy corridors, every anomaly will have a nearby aircraft by chance.
What a Better Test Would Look Like
A revised pre-registration could address saturation:
- Narrower tolerance — 5 km perpendicular distance targeting only aircraft on the Fresnel zone
- Altitude filtering — restrict to aircraft above FL300, excluding traffic unlikely to interact with ionospheric skip paths
- Quieter corridors — polar or oceanic station pairs with sparser traffic than the busiest corridor on Earth
- Satellite ADS-B — eliminates both saturation near shore and the mid-ocean blind spot
- Continuous crossing-density metric instead of binary crossing/non-crossing classification
These require a new pre-registration and are outside the scope of this study.
Reproducibility
All code, data, and intermediate artifacts live in the wspr-aircraft-detection workspace.
Pre-registration is locked. Every generated artifact carries a .meta.json provenance sidecar (git SHA + input hashes). Seed: 42. Pipeline entry point: python -m scripts.run_pipeline.
Paper #25 accepted 2026-04-13 through Elise → Mike (R1 major revision: 15 issues addressed; R2 minor: 1 issue) → Dana (copyedit: 12 fixes). Data: db1.wspr.live, adsb.fi. All times UTC.
Published paper
The full scientific paper, with methods, tables, and references.