Listening for events…

WSPR 21-Year Census

11.53 billion spots, 221 months, Nov 2004 to Apr 2026

Complete statistical census of the WSPRnet raw spot archive, aggregated with

a subprocess-per-file pattern in 64 minutes of wall time on a single

workstation. No Parquet files were corrupt; the census reads every spot ever

uploaded to the central WSPRnet database.


Data Coverage

  • Total spots: 11,532,770,139 (11.53 billion)
  • Months analyzed: 221 (of 258 in the Nov 2004 to Apr 2026 window)
  • Corrupt files: 0
  • Empty months: 37, almost all in 2005 to 2007 before the WSPRnet database was widely adopted, plus two isolated gaps (Feb 2013, and parts of early 2008)
  • Wall time: 3,860 s (64 min), effective throughput 3.0 M spots/s
  • Method: subprocess per monthly Parquet file (scripts/analyze_v3.py driver and scripts/agg_one.py worker)

1. Network Growth

The WSPR network grew from 28 spots in November 2004 (beta testing by a

handful of K1JT collaborators) to a peak of 235,252,203 spots in a single

month in March 2026, a factor of roughly over the 21-year span.

Growth milestones:

  • First activity: 28 spots, November 2004 (one RX and seven TX callsigns)
  • First month with >1,000 spots: March 2008 (93,890 spots, WSPR 2.0 era)
  • First month with >1M spots: July 2009 (1,017,860)
  • First month with >10M spots: January 2016 (10,462,998)
  • First month with >100M spots: October 2021 (104,594,921)
  • Peak month: March 2026, 235,252,203 spots
  • Peak unique TX per month: 163,965 (March 2026)
  • Peak unique RX per month: 7,035 (January 2022)

The transmit-to-receive callsign ratio is roughly 20:1 at the 2026 peak,

reflecting the network's persistent structural asymmetry: most stations

operate transmit-only and rely on a smaller pool of high-quality monitoring

receivers (KiwiSDR sites and wsprdaemon installations) for reception reports.

!Network growth


2. Band Usage

The HF bands dominate overwhelmingly. The three most active bands (40 m, 20 m,

and 30 m) carry 75.6 % of all census traffic; the ten amateur HF bands from

160 m through 10 m collectively account for 97.7 %.

BandSpotsShare (%)Mean dist. (km)
40 m3,685,787,22631.961680
20 m3,106,992,49326.942574
30 m1,929,991,14816.732035
80 m873,649,3817.581026
17 m435,810,2493.783092
15 m425,956,3583.693310
10 m347,790,2823.023502
630 m (MF)208,883,2651.81943
160 m201,407,2831.75793
12 m129,970,7801.133387
60 m129,002,0931.121112
2200 m (LF)20,697,6970.18970
6 m13,234,2920.11336

The 630 m (MF) band appeared around 2012 after European allocation changes

and is the fifth most active band in the census. Approximately 0.02 % of

spots carry out-of-range band codes (likely firmware bugs or database

corruption) and are included in totals but excluded from band-specific

tables.

!Band usage and mean distance


3. Distance and the Frequency-Distance Relation

Mean spot distance scales monotonically with frequency across the HF bands:

  • 160 m: 793 km
  • 80 m: 1,026 km
  • 40 m: 1,680 km
  • 30 m: 2,035 km
  • 20 m: 2,574 km
  • 17 m: 3,092 km
  • 15 m: 3,310 km
  • 12 m: 3,387 km
  • 10 m: 3,502 km
  • 6 m: 336 km (VHF outlier, local and sporadic-E)

This ordering is the textbook signature of HF skip-zone physics: higher

frequencies require denser ionospheric layers, which implies a shallower

reflection geometry and longer single-hop ground range. 6 m falls off the

trend because its bulk traffic is local and tropospheric rather than F2 skip.

Maximum reported distance on every HF band is between 19,900 km and

20,015 km, the full antipodal circumference of the Earth. These long-path

spots are physically plausible at the top of the solar cycle and are not

filtered out of the aggregates.


4. Geographic Coverage

Top 10 TX grid squares (lifetime)

RankGridSpotsLocation
1IO91239,321,189SE England (London)
2JO31175,763,984Netherlands
3JN48167,387,532SW Germany
4JO01161,590,393SE England / Kent
5IO81152,063,280S Wales / SW England
6FN42151,605,202Boston / New York
7DN70149,435,469Fort Collins, CO (NIST WWV)
8JO22146,843,859Netherlands
9IO93142,433,264N England
10JO21138,659,037Belgium / Netherlands

Top 10 RX grid squares (lifetime)

RankGridSpotsLocation
1JN47416,643,234Switzerland / S Germany
2JO31292,408,646Netherlands
3CM88215,865,609SF Bay Area, CA
4FM18213,080,532Washington DC / Maryland
5CM87207,840,903Central California coast
6JN48204,819,435SW Germany
7JN58198,112,686Central Germany
8JN49181,533,487Central Germany
9IL38180,330,246Canary Islands
10JO21157,271,975Belgium / Netherlands

Eight of the top 10 TX grids and seven of the top 10 RX grids are European.

US coverage is concentrated in two coastal clusters (CM87/CM88 on the West

Coast, FN42/FM18/FN30 on the East Coast) plus the single high-volume NIST

site at DN70.


5. Top Stations

Most Active Transmitters

RankCallsignSpots
1WW0WWV132,531,243
2WB6CXC80,297,316
3NI5F61,942,465
4TA4/G8SCU56,474,340
5DL6NL56,117,639
6G4HSB54,261,030
7OK2SAM50,349,600
8OZ7IT49,077,581
9TI4JWC48,342,026
10DK2DB46,147,850

The transmit champion is WW0WWV, the dedicated WSPR beacon associated

with the NIST WWV time-signal station in Fort Collins, Colorado (grid

square DN70).

Most Prolific Receivers

RankCallsignSpots
1EA8BFK127,456,403
2DK6UG110,845,973
3OE9GHV110,240,969
4WA2TP95,596,700
5KD2OM82,139,623
6N2HQI79,615,194
7LX1DQ78,220,930
8KA7OEI-177,995,423
9ON5KQ77,817,733
10DK8FT76,049,217

The receive champion is EA8BFK in the Canary Islands (grid square IL38),

with 127,456,403 spots. The Canary Islands sit at a favorable point for

transatlantic and trans-equatorial HF propagation.


6. Transmit Power

WSPR encodes power in 3 dB steps. Five power levels account for 87.2 % of

all census spots:

PowerWattsSpotsShare
23 dBm200 mW4,833,515,60441.9 %
37 dBm5 W2,330,490,64120.2 %
30 dBm1 W1,476,220,54012.8 %
33 dBm2 W792,984,1176.9 %
20 dBm100 mW625,964,1925.4 %
10 dBm10 mW239,236,0252.1 %
40 dBm10 W184,012,8571.6 %

200 mW is the single most common power level (41.9 % of all spots).

This is the default for the widely used ZachTek WSPR-TX "Desktop" and "Mini"

beacons that dominate the low-end transmitter market. Only 2.93 % of spots

are transmitted at 10 W or higher, and powers below 10 mW account for less

than 1 % of traffic. WSPR operation is overwhelmingly QRP (low-power).


7. SNR and Diurnal Patterns

Aggregate SNR

Spot-weighted mean SNR across all bands and all years is -15.1 dB in the

standard 2,500 Hz WSPR reference bandwidth.

By band

BandMean SNR (dB)
40 m-14.48
60 m-14.96
80 m-14.97
160 m-15.05
20 m-15.19
30 m-15.60
10 m-16.04
15 m-16.38
17 m-16.59
12 m-16.87
6 m-9.49 (sporadic-E and local outlier)

By year

YearMean SNR (dB)
2008-13.88
2009-13.69
2010-13.72
2011-13.59
2012-13.41
2013-13.51
2014-13.46
2015-13.84
2016-14.43
2017-14.97
2018-15.13
2019-15.84
2020-15.73
2021-15.40
2022-15.21
2023-15.08
2024-14.93
2025-15.11
2026-15.03

Annual mean SNR varies within a narrow ~2 dB band after network

stabilization in 2008. This paper does not attempt to decompose the

variation into solar-cycle, band-mix, and station-turnover components;

see the wspr-ionospheric-baseline and wspr-transient-anomalies

workspaces for dedicated treatments.

Diurnal

Hour (UTC)Spots (millions)
00454.4
04375.4 (minimum)
08462.2
12490.5
15564.1 (maximum)
18534.2
20516.4
23496.6

Total-network diurnal amplitude is modest (max/min ratio = 1.50) because the

global 24-hour receiving network averages over local day-night asymmetries.

Individual bands show much stronger diurnal structure.


8. Data Quality

  • Zero corrupt files out of 258 monthly Parquet files: every spot was

read successfully.

  • 37 empty months in the nominal 258-month window: 35 are in 2005 to 2007

(database not yet widely used), plus Feb 2013 and parts of early 2008

(apparent database outages).

  • ~0.02 % spurious band codes: a long tail of integer band values that

do not correspond to any amateur allocation (likely firmware bugs or

corrupted uploads). Included in totals, excluded from band-specific

statistics.

  • SNR outliers: the archive contains entries with SNR values as high as

+127 dB that are physically impossible (the WSPR decoder caps at ~+30 dB).

These are early-decoder software bugs or database corruption artifacts.

  • Top-k merging: callsign and grid lists are merged from per-file

top-200 and top-100 lists. Top-50 entries are exact at the precision shown;

long-tail callsigns with fewer than 200 per-month spots could be undercounted.


Files

FileDescription
scripts/analyze_v3.pyDriver: subprocess-per-file aggregation over 258 Parquet files
scripts/agg_one.pyWorker: aggregates a single monthly file, emits JSON on stdout
scripts/analyze.pyv1 analysis script (superseded, kept for reference)
scripts/analyze_v2.pyv2 analysis script (superseded, kept for reference)
scripts/visualize.pyv1 Plotly HTML chart generator (superseded, kept for reference)
scripts/make_figures.pyStatic PNG figures for the paper (reads data/results.json)
data/results.jsonFinal aggregates: every number in the paper comes from this file
paper/paper.texFormal LaTeX paper
paper/paper.pdfCompiled paper
paper/figure1.pngNetwork growth figure
paper/figure2.pngBand usage + mean distance figure

Reproduce

cd workspaces/wspr-21year-census
python scripts/analyze_v3.py        # re-run the full 64-min census
python scripts/make_figures.py      # regenerate figure1.png, figure2.png
cd paper && pdflatex paper.tex && pdflatex paper.tex

Author:

Published: — · Updated:

Data files: results.json

Scripts: agg_one.py, analyze.py, analyze_v2.py, analyze_v3.py, make_figures.py, make_plotly.py, visualize.py

← Back to Data Lab
Live Feed