RF Forecast — next 6 hours, frozen and graded
Nine shortwave bands, one question each: will a receiver within a couple of hundred kilometres of Great Falls decode a WSPR beacon from at least 3,000 km away during the next six-hour UTC window? The number is written down before the window opens and cannot be changed; the next engine run asks wspr.live what actually happened and keeps the score. Today the number is the climatology — last month's base rate for this time of day — and it stays that way until a model beats it on a graded record.
as of 2026-08-31 · committed snapshot · Great Falls, MT (city-level)
In plain English
Next 6-hour window · 2026-09-01 00:00Z → 06:00Z
frozen 2026-08-31T19:03:34Z · site DN47 Great Falls, MT (city-level)Per band: P(a receiver in the DN47 neighbourhood decodes a WSPR path ≥ 3,000 km in the window). p = climatology (trailing 30 days, same time of day, wspr.live); the null beside it is the same number — the model IS the null until it earns in.
- 160 m0.50null 0.504 days of history · coinfrozen
160 m → ≥3,000 km from Montana: 0.5 (coin — 4 day(s) of history)
- 80 m0.50null 0.504 days of history · coinfrozen
80 m → ≥3,000 km from Montana: 0.5 (coin — 4 day(s) of history)
- 40 m0.50null 0.504 days of history · coinfrozen
40 m → ≥3,000 km from Montana: 0.5 (coin — 4 day(s) of history)
- 30 m0.50null 0.504 days of history · coinfrozen
30 m → ≥3,000 km from Montana: 0.5 (coin — 4 day(s) of history)
- 20 m0.50null 0.504 days of history · coinfrozen
20 m → ≥3,000 km from Montana: 0.5 (coin — 4 day(s) of history)
- 17 m0.50null 0.504 days of history · coinfrozen
17 m → ≥3,000 km from Montana: 0.5 (coin — 4 day(s) of history)
- 15 m0.50null 0.504 days of history · coinfrozen
15 m → ≥3,000 km from Montana: 0.5 (coin — 4 day(s) of history)
- 12 m0.50null 0.504 days of history · coinfrozen
12 m → ≥3,000 km from Montana: 0.5 (coin — 4 day(s) of history)
- 10 m0.50null 0.504 days of history · coinfrozen
10 m → ≥3,000 km from Montana: 0.5 (coin — 4 day(s) of history)
Scoreboard
- graded
- 0 · void 27 · open 9
- Brier (forecast)
- —
- Brier (climatology)
- —
- bands beating climatology
- 0 / 3 needed
- earned in
- false
The bar: climatology holds p until a model earns in: >= 20 graded windows AND Brier better than climatology across >= 3 bands, on the frozen record, before any non-climatology model may write p; promotion is human-only
prereg/2026-08-28-skywatch-rf-forecast · frozen 2026-08-28
How to read a row
- bar — the frozen probability; faint while it is a coin (fewer than 10 days of history → 0.5).
- null — the pre-registered climatology it must beat; identical today by construction.
- frozen — the window has not closed; graded ✓/✗ — wspr.live said yes/no; void — no receiver near us decoded anything, so nothing was observable (never a miss).
▸Learn more
What can I hear right now?
No model has earned in. These tiers are the climatology sorted by probability — a watermark, not a rating. The names Excellent / Good / Poor are withheld until the bar is met.
no band in this tier
- 160 m0.50
- 80 m0.50
- 40 m0.50
- 30 m0.50
- 20 m0.50
- 17 m0.50
- 15 m0.50
- 12 m0.50
- 10 m0.50
no band in this tier
▸Learn more
Provenance — the exact wspr.live SQL
Source: wspr.live (db1.wspr.live ClickHouse HTTP, FORMAT JSON). Neighbourhood squares: DN47, DN46, DN48, DN37, DN57, DN36, DN38, DN56, DN58. Record: omen-wealth data/skywatch_rf/forecast.jsonl (append-once; a frozen row is never rewritten).
SELECT toDate(time) AS d, band, max(distance) AS kmMax, count() AS n FROM wspr.rx WHERE time >= '2026-08-02 00:00:00' AND time < '2026-09-01 00:00:00' AND toHour(time) >= 0 AND toHour(time) < 6 AND substring(rx_loc,1,4) IN ('DN47', 'DN46', 'DN48', 'DN37', 'DN57', 'DN36', 'DN38', 'DN56', 'DN58') GROUP BY d, band ORDER BY d, band FORMAT JSONSELECT band, max(distance) AS kmMax, count() AS n FROM wspr.rx WHERE time >= '2026-09-01 00:00:00' AND time < '2026-09-01 06:00:00' AND substring(rx_loc,1,4) IN ('DN47', 'DN46', 'DN48', 'DN37', 'DN57', 'DN36', 'DN38', 'DN56', 'DN58') GROUP BY band ORDER BY band FORMAT JSONRule: outcome = 1 if kmMax for band 1 in the window >= 3000 else 0; VOID (unobservable, never a miss) when the query returns no row on any band (no receiver in the neighbourhood decoded anything); graded no earlier than 60 min after the window closes (upload lag)
rf-climatology-v1: trailing-30d base rate of the same 6 h window-of-day x band (wspr.live), shrunk to 0.5 while base has < 10 days; = the null; fixed