POTA Statistics
This site collects and aggregates historical Parks on The Air spot data. The POTA program has been a great way to get new operators into radio. For me, it was the gateway to learning CW. This provides operators with a way to track which bands, modes, and parks are the most popular across the entire program. It shows clearly how many unique activators are participating in the program over time.
Frequently Asked Questions
How are spots counted?
A "spot" is a report of an activator being heard on the air. The POTA API provides spot data that includes the activator's callsign, park reference, frequency, mode, and timestamp. We collect this data every minute and aggregate it hourly. The total spots count represents the sum of all spot reports in the selected time range.
How are unique activators counted?
Unique activators are counted by extracting distinct callsigns from all spots in the time range. If the same operator (e.g., W0ARR) is spotted multiple times across different parks, bands, or modes, they still count as one unique activator. This helps track how many distinct operators are participating in POTA.
How are "spotted activations" tracked?
A spotted activation is identified by a unique combination of callsign + park reference in the spot data. For example, if W1ABC is spotted at K-1234, that's one spotted activation. If they're later spotted at K-5678, that's a second spotted activation.
Important: These are spotted activations based on spot reports only. We cannot verify whether the activator made the 10+ contacts required for an official POTA activation. The actual number of valid POTA activations is typically lower than this count.
How are unique parks counted?
Unique parks counts the number of distinct park references (e.g., K-1234, VE-1234) that appear in the spot data for the selected time range. This shows how many different parks had active operators.
What do the mode categories mean in Activator Statistics?
Modes are grouped into three categories for trend analysis:
- CW - Morse code (CW)
- SSB - Voice modes including SSB, AM, FM, LSB, and USB
- Digital - Digital modes including FT8, FT4, RTTY, PSK31, JS8, and others
An activator using multiple modes (e.g., both CW and SSB) counts once in each category they used.
How does this work?
Raw spot data is pulled in once a minute via a Cloudflare Worker and stored as NDJSON files into Cloudflare R2. For performance reasons, we do periodic rollups so so it's easier for the browser to query. There is no querying on the backend. I was looking for a reason to use the WASM version of DuckDB which does 100% of the processing in the browser and this was a great use case!
Is this open source?
Yeah -- my full blog isn't but all of the collection, aggregation and queries are up on GitHub here.