Finding New DXCC with PSK Reporter: A Data-Driven DX Hunting Workflow
Stop calling into the void. Watch what stations a few hundred kilometers away are decoding, and you'll know exactly when a rare one is workable from your QTH.
DX hunting has a classic loop: watch the cluster, hear DX CQ'd by somebody, tune in, call, call again, give up. It works, but it's blind. You're gambling on propagation you can't see. Over the last year I've switched to a different signal that costs nothing and is far more reliable: what stations near me are decoding right now. If a station 500 km away is decoding Franz Josef Land on 15 meters, the path from my QTH to the high Arctic is open too — at this exact moment.
This article is the workflow I actually use, built around a small self-hosted tool that turns PSK Reporter's public spot data into a short list of DXCC entities I haven't worked yet but realistically can, right now.
Your neighbors are a propagation oracle
PSK Reporter already publishes millions of decoded-spot records a day: station A decoded callsign B on frequency F with signal strength S at time T. The data is a living map of who is hearing whom across every band, worldwide.
The trick is that propagation is regional. If a station in my propagation zone decodes a DXCC entity, the same opening is almost certainly reaching my antenna too. This is the principle behind propagation beacons — except instead of one beacon, I have thousands of nearby operators, each reporting in real time. The hard part is never the data; it's filtering it down to: "which DXCC do people around me hear that I still need?"
A personal PSK Reporter analysis dashboard
To answer that question continuously, I run a small dashboard that ingests PSK Reporter spots into a database, keeps my worked-DXCC list, and recomputes a recommendation set every few minutes. It's the kind of thing that started as a script and grew into a proper page — full-data explorer, a map of nearby spots, and a DXCC recommendation view.
It runs at radio.vlsc.net and knows my station: Beijing, grid ON80da. Everything downstream is relative to that QTH.
How the recommendation works
Under the hood it's a single question, restated as a query:
Within the last N hours, which DXCC entities were decoded by stations within 1000 km of me — that I have not yet confirmed in my log?
Three parameters control the answer, and all three are knobs I've learned to respect:
- The time window. Short windows (1–2 hours) show only what's happening now. Long windows (8 hours) catch entities that were briefly open and may be gone. I usually start with 2 hours for action, 8 hours for planning.
- The radius. 1000 km is a good default: close enough that propagation correlates, wide enough that there are stations to watch. Widen it and you get more candidates but weaker correlation to your own path.
- The worked list. This is what turns a wall of spots into a shortlist. Mine has 163 confirmed entities, and anything not on it is a candidate.
Reading the table
The recommendation view is a small table — DXCC, band, spot count, distinct calls, average SNR, most recent time, and a status flag. Two columns matter more than the rest:
- 🆕 First seen. The tool tags an entity the first time it ever appears in my analysis window. That flag is the single highest-value signal in the whole app: rare entities almost always surface first as one quiet spot from one station. When it shows up, drop what you're doing.
- Most recent time. Freshness is everything. A spot from twenty minutes ago means the station is probably still on. A spot from eight hours ago is history.
Spot count and distinct calls tell you how solid an opening is: five spots from three different German stations means a healthy path; one spot from one station means a fragile but possibly precious one.
A real evening session
Here's a live example from tonight. The 2-hour window returned two candidates:
| DXCC | Band | Spots | Calls | SNR | Last heard | Status |
|---|---|---|---|---|---|---|
| Franz Josef Land (R1FJZ) | 15 m | 1 | 1 | −16 dB | 18:49 local | 🆕 First seen |
| Fed. Rep. of Germany (DL) | 15 m | 5 | 3 | −14 dB | 18:44 local | Already appeared |
The headline is Franz Josef Land — an Arctic entity I've never worked, flagged first seen, one spot, one call, on 15 meters, heard at 18:49 local. A station near me was decoding it twenty minutes before I looked. The Arctic path was open. That's the moment the tool exists for: not "someday workable," but workable right now.
Germany was the volume play — five spots from three calls, a solid but ordinary path to a common entity that still counts toward the DXCC total. And earlier, before it slipped out of the 2-hour window, Dodecanese had shown up on 20 meters — a reminder that keeping a couple of windows open catches the ones you'd otherwise miss.
Behind it all, the propagation backdrop: F10.7 at 200 (high solar flux — the high bands are alive), Kp 1.7 (a quiet geomagnetic field), Bz positive. That combination is exactly why the action was on 15 meters rather than 40.
The action sequence
The tool narrows the world down to a shortlist; the QSO still happens at the radio. When a candidate looks fresh, my sequence is:
- Get the callsign. The recommendation is at DXCC granularity. I open the live map or full-data view filtered to the last few hours to pull the actual callsigns and frequencies.
- Trust the band. If the tool says 15 m, I go to 15 m. The band it was decoded on is the band the path supports.
- Tune and decode. Set the frequency, let the decoder run, and the first time the call appears, answer. With FT8, being already tuned when the station transmits is half the battle.
- Log it. The confirmation goes into the log, which is what makes the worked list — and therefore the whole recommendation engine — accurate.
None of this is magic. The tool just makes sure I'm at the right frequency at the right time, and tells me which entity to chase in the first place.
What I've learned
- First seen beats volume. One fresh spot from a rare entity is worth more than ten stale spots from a common country.
- Freshness beats everything. A single spot from the last half hour is actionable; a burst from last night is a memory.
- The radius is a patience dial. Wide radius, more candidates, worse correlation. Start tight, widen when quiet.
- Your log is the engine. The recommendations are only as good as the worked list. Logging discipline is what makes the whole loop converge.
Field notes
Tonight's session ended the way most good ones do: a short list, one clear priority, and the clock already past 21:00 local. The 15-meter path to the Arctic that had been open at 18:49 was fading by the time I had the rig warmed. That's the honest part of this workflow — the tool tells you the window exists, but it doesn't hold it open for you. The value isn't in the recommendation itself; it's in being ready when the flag goes up: tuned, decoding, and pointed at the right band.