Listening for events…

Data Lab / WSPR Solar Cycle Modulation — How the 11-Year Cycle Reshapes HF Propagation

WSPR Solar Cycle Modulation: How the 11-Year Cycle Reshapes HF Propagation

Status: Complete (R1 draft)
Author: TerraPulse Lab
Created: 2026-04-06

We aggregated 10.94 billion raw WSPR spots (258 monthly files, Nov 2004 to Mar 2026) into monthly mean signal-to-noise ratio (SNR) per band, then correlated them against SILSO sunspot numbers across two complete solar cycles (24 and 25).

The Surprise

10 m and 12 m show negative correlation with sunspot number, opposite to standard high-frequency (HF) propagation theory.

BandPearson rp-valueDetrended rCohen's d (max vs. min)N monthsSurvives Bonf
80 m-0.243.3e-04+0.24-0.26217*
40 m+0.393.1e-09+0.63+0.96219*
30 m+0.305.3e-06+0.63+0.77217*
20 m+0.275.6e-05+0.52+0.65217*
17 m+0.030.62+0.34+0.16217
15 m+0.100.14+0.37+0.29211
12 m-0.441.6e-11-0.35-0.88210*
10 m-0.408.6e-10-0.31-0.80217*

Fisher z contrast 10 m vs. 40 m: z = -8.64, p < 10^-17. The bands respond in opposite directions.

Permutation test on 10 m: observed r = -0.40, permutation p = 0.001, robust against chance.

The Likely Explanation: Selection Effect

This is not a refutation of solar physics. It is an artifact of how WSPR mean SNR is computed:

  1. 40 m, 30 m, and 20 m: F-layer enhancement during solar maximum lets more signals get through with higher SNR, producing the positive correlation. Standard physics.
  1. 10 m and 12 m: These bands are mostly dead during solar minimum. The few stations operating then are short-distance ground-wave or sporadic-E contacts with strong signals (SNR around -10 dB). During solar maximum, the band opens, and hundreds of stations attempt DX contacts (over 10,000 km), most of which are weak (SNR around -25 dB). More attempts at long DX produce lower mean SNR, even though more total contacts complete.
  1. 80 m: Slight negative correlation (-0.24). D-layer absorption during high solar activity slightly degrades nighttime sky-wave.

Validation

  • N = 217 months (18 years of monthly data)
  • All five significant bands (40 m, 30 m, 20 m, 12 m, and 10 m) survive Bonferroni correction (alpha = 0.00625).
  • Detrended correlations (linear trend removed) preserve the directions but change magnitudes. The solar cycle is not just a secular trend.
  • Permutation test (1000 shuffles) confirms the 10 m result: p = 0.001.
  • Total data: 10,935,947,917 spots.

What This Means for Future Analyses

The raw mean SNR metric on bands that toggle between dead and alive (10 m and 12 m) is biased by selection. To measure the actual ionospheric response on these bands, we must do one of the following:

  1. Filter by station consistency (same TX-RX pairs across the cycle).
  2. Condition on path geometry (only short paths, to remove DX selection).
  3. Use spot count as the primary signal rather than mean SNR.

This is a methodological finding that should inform any future WSPR-versus-solar-cycle analysis.

Reproducibility

cd workspaces/wspr-solar-cycle-modulation
python scripts/analyze.py    # ~40 minutes for 10.9B spots

Data: /mnt/ursa/data/terrapulse/wspr/raw/wspr_raw_YYYYMM.parquet (258 files, 213.8 GB)

SSN: sunspot_number metric in PostgreSQL (SILSO daily, 1818-present)

Author: PMA

Published: 2026-04-06 · Updated: 2026-04-06

Data files: results.json, sunspot_monthly.parquet, wspr_monthly_bands.parquet, wspr_ssn_wide.parquet

Scripts: analyze.py, make_figure.py, make_og_image.py, make_plotly.py

← Back to Data Lab
Live Feed