A personal HF propagation tool centered on a single Maidenhead grid, with separate scoring models for long-distance (DX) and short-range high-angle (NVIS) work.
The geometric intuition: DX cares about how the bands behave at low elevation angles over long paths, so its model weights D-layer absorption heavily — that’s where most of the signal loss happens on a multi-thousand-kilometer hop. NVIS cares about whether the F-layer is ionized enough to bounce signals straight back down to you, so foF2 is the dominant story — if the critical frequency falls below your operating frequency, the signal punches through and you hear nothing locally regardless of how much sunspot activity there is. D-layer absorption still matters on 80 and 40 m around midday, especially in summer and during flares, but with less weight than on a long DX path.
DX mode applies a continuous D-layer absorption term derived from solar elevation, SFI, and current X-ray flare class, weighted per band (80 m hit hardest, 10 m essentially immune). Because the D-layer sits ~90 km up it stays sunlit ~9° past ground sunset, and its electrons take 30–45 min to recombine afterward — both effects are modeled, so dayside absorption persists right up to and a bit past local sundown rather than vanishing at the geometric horizon. A gray-line bonus boosts 80 m during civil twilight. Geomagnetic Kp adds a uniform penalty above Kp 4–5.
NVIS mode compares operating frequency to the available foF2. For “now,” the measured value from the nearest GIRO ionosonde takes priority; the IRI climatology fills in when no station is reporting. The +3 h and +6 h forecast horizons use IRI directly, since no real-time measurement of the future exists. Quality is primarily determined by how far foF2 exceeds the band’s operating frequency. A reduced D-layer absorption term (solar elevation + SFI + flare class) is then applied to reflect the dayside losses on 80 and 40 m as the signal traverses the D-layer twice on the up-and-down path.
Quality buckets are poor, fair, good, excellent. The +3h and +6h columns reuse the same model with projected Kp and recomputed solar geometry; SFI is held constant (it changes too slowly to matter at that horizon) and flares are not projected forward (they decay in minutes).
The HAF indicator (Highest Affected Frequency from NOAA's D-RAP product) is shown alongside the model for comparison but does not currently feed the band ratings — the in-house absorption formula above runs independently. The two are deliberately decoupled while we observe how their dayside and flare-time outputs agree.
For POTA / SOTA activators: the activator’s problem is “will the people who hunt me actually be able to copy my signal from this park, right now or in two hours when I get there?” A generic report gives you global SFI and a vague colored grid, but doesn’t know whether you need DX or NVIS. This tool tells you both, side-by-side, for your specific location and for the future window when you’ll actually be operating.
For regional nets: regional nets live or die by foF2 — if the F2 critical frequency drops below the net frequency, the net fails regardless of what the global SFI says. This tool pulls real measured foF2 from the nearest ionosonde, so when an NVIS net on 75 m starts losing check-ins it’s usually visible here before it’s visible on the air.
For DX: the +3 h and +6 h columns let you plan around band openings. Querying a remote grid (e.g. ?grid=PM85) recomputes solar geometry at the far end, so you can see when the target region transitions through gray-line or when a flare blackout on the path is likely to have cleared.
When a new feature ships or the model is meaningfully revised, a short announcement appears on first load as a dismissable modal. Click OK to dismiss it; the page remembers (in browser local storage) which announcements you've already seen, so you won't be shown the same note again on subsequent visits. If several have queued up since your last visit, they're shown one at a time with a counter (“2 of 3”).
To re-read past announcements, append ?news=all to the URL. That replays every embedded message in order, oldest first, without updating the “last seen” marker — so your normal dismissal state is preserved. Only announcements posted in roughly the last week or two are embedded; older ones are dropped from the page to keep its weight down.
poor/fair/good/excellent) are subjective and tuned to typical SSB/CW DX or NVIS regional work. WSPR and FT8 routinely succeed on bands labeled poor; that’s expected, not a model failure.This report would not exist without the data and services freely provided by:
This is a non-commercial personal project. Comments, corrections, and suggestions to KD6O.
What worked, what didn’t, what surprised you, what’s missing. Your callsign if you want a reply. Hit Send and your local email client will open with the message ready to send to KD6O.
| Band | now 00:46 · Kp 1.3 |
+3h 03:46 · Kp 1.7 |
+6h 06:46 · Kp 1.7 |
WSPR DX >1500 km, last 15 min |
|---|---|---|---|---|
| 160m | excellent 0 0 | excellent | fair | — |
| 80m | good 0 0 | good | poor | 5 · 5 RX · -25 dB |
| 60m | good 0 0 | good | good | — |
| 40m | good 0 0 | good | good | 262 · 77 RX · -21 dB |
| 30m | good 0 0 | good | good | 83 · 50 RX · -21 dB |
| 20m | fair 0 0 | fair | fair | 369 · 80 RX · -20 dB |
| 17m | poor 0 0 | poor | fair | 53 · 30 RX · -20 dB |
| 15m | poor 0 0 | poor | fair | 7 · 5 RX · -22 dB |
| 12m | poor 0 0 | poor | fair | — |
| 10m | poor 0 0 | poor | fair | — |
Solar radio emission at 2.8 GHz. Proxy for the EUV that ionizes the F-layer and lifts the MUF. Higher = better high-band DX (15/12/10 m especially).
Typical: <70 minimum · 100 low · 140 active · 180+ solar peak.
The classic measure of solar activity — daily count of sunspots weighted by group size. Tracks the ~11-year solar cycle. Strongly correlated with SFI.
Typical: 0–30 minimum · 30–100 ascending/descending · 100–200 active · 200+ peak.
3-hour global measure of geomagnetic disturbance from a network of magnetometers. Quasi-logarithmic. Higher Kp = more HF absorption, especially on polar paths and high bands.
0–2 quiet · 3–4 unsettled · 5 G1 minor storm · 6 G2 moderate · 7+ severe.
Solar X-ray flux measured by GOES satellites, indicates flare activity. Classes A < B < C < M < X (each 10× the previous). Flares cause sudden ionospheric disturbance — dayside HF degradation lasting minutes to an hour.
A/B background · C minor · M dayside fadeout · X dayside blackout.
NOAA SWPC's estimate of the highest frequency at which at least 1 dB of D-layer absorption is occurring at your QTH right now. Frequencies below HAF are absorbed more strongly (roughly 1/f²); frequencies above it pass through nearly unaffected.
For example, HAF = 0.0 MHz means all amateur bands are clean.
Updated every minute from GOES X-ray + 5-min proton flux.
Highest frequency the F2 layer reflects straight back down. For NVIS, your operating frequency must be below foF2 or your signal punches through and doesn't return. Also caps the MUF.
<3 only 160 m NVIS · 3–5 80 m marginal · 5–8 80 m solid, 40 m marginal · 8–12 40 m good, high MUF · 12+ great DX bands.
The IRI forecast ×1.27 note means today's measured foF2 differs significantly from the IRI climatology, so the +3h and +6h forecast foF2 values are being scaled by that ratio to anchor them to live conditions.
The north–south component of the solar wind's embedded magnetic field, measured at L1 ~1 hour upstream of Earth. Sustained southward (negative) Bz couples solar wind energy into Earth's magnetosphere and drives geomagnetic storms. The single best ~1-hour leading indicator for Kp.
+5 to −5 quiet · −5 to −10 storm-driving · −10 to −20 strong · <−20 severe.
Speed of solar wind plasma at L1. Faster wind couples more energy into the magnetosphere, especially when Bz is also southward. Sustained elevated speed often signals a coronal hole stream that drives recurring Kp activity.
300–400 slow/quiet · 400–500 normal · 500–700 fast (Kp watch) · 700+ very fast (CME or strong stream).
Whether the sun is above the horizon at this location. Drives the D-layer absorption that kills 80/40 m DX during the day, and the gray-line bonus that briefly opens those bands at sunrise and sunset.
Watch for the gray-line window (~30 min around sunrise/sunset) — best low-band DX of the day.
:Product: 3-Day Forecast
:Issued: 2026 Jun 16 0030 UTC
# Prepared by the U.S. Dept. of Commerce, NOAA, Space Weather Prediction Center
#
A. NOAA Geomagnetic Activity Observation and Forecast
The greatest observed 3 hr Kp over the past 24 hours was 2 (below NOAA
Scale levels).
The greatest expected 3 hr Kp for Jun 16-Jun 18 2026 is 4.00 (below NOAA
Scale levels).
NOAA Kp index breakdown Jun 16-Jun 18 2026
Jun 16 Jun 17 Jun 18
00-03UT 2.67 3.00 3.33
03-06UT 3.67 2.00 3.00
06-09UT 3.67 2.00 2.33
09-12UT 2.67 1.67 2.00
12-15UT 1.67 1.33 1.67
15-18UT 1.67 2.67 1.33
18-21UT 1.67 4.00 1.33
21-00UT 2.00 3.00 2.67
Rationale: No G1 (Minor) or greater geomagnetic storms are expected
through 18 Jun.
B. NOAA Solar Radiation Activity Observation and Forecast
Solar radiation, as observed by NOAA GOES-18 over the past 24 hours, was
below S-scale storm level thresholds.
Solar Radiation Storm Forecast for Jun 16-Jun 18 2026
Jun 16 Jun 17 Jun 18
S1 or greater 1% 1% 1%
Rationale: No S1 (Minor) or greater solar radiation storms are expected.
through 18 Jun.
C. NOAA Radio Blackout Activity and Forecast
No radio blackouts were observed over the past 24 hours.
Radio Blackout Forecast for Jun 16-Jun 18 2026
Jun 16 Jun 17 Jun 18
R1-R2 20% 20% 20%
R3 or greater 1% 1% 1%
Rationale: There is a slight chance for R1-R2 (Minor-Moderate) radio
blackouts through 18 Jun.
2026-05-21.md