The DX Index is a real-time HF propagation assessment system that combines space weather data with actual WSPR (Weak Signal Propagation Reporter) measurements to provide operators with a 0-100 scale rating of current DX conditions and 24-hour forecasts.
Author: HB9VQQ
Version: 1.4 (November 26, 2025)
Bands: 10m and 15m (validated), 20m, 40m, and 80m (planned)
| Source | Data | Update Rate |
|---|---|---|
| WSPR Live (db1.wspr.live) | Spots per transmitter, DX paths >3000km | Real-time |
| NOAA SWPC | Solar Flux Index (SFI), Ap/Kp indices | Daily/3-hourly |
| NOAA 45-day Forecast | Predicted SFI and Ap | Daily |
DX Index = (SFI × 0.20) + (Ap × 0.20) + (WSPR × Seasonal × 0.60)Component Weights:
WSPR Normalization: Spots are divided by active transmitter count to remove network size bias. Only DX paths (>3000km) at standard power (23dBm) are counted.
| Rating | Index Range | Meaning |
|---|---|---|
| Excellent | 75-100 | Outstanding DX openings |
| Good | 55-75 | Reliable DX conditions |
| Fair | 40-55 | Mixed, DX possible but inconsistent |
| Poor | 25-40 | Marginal, occasional DX |
| Very Poor | 0-25 | Band essentially closed |
Seasonal patterns shift with the solar cycle. The system uses three phase-specific factor sets (Solar Minimum, Rising, Maximum) and interpolates based on current SFI. This captures the observation that spring propagation strengthens dramatically at solar maximum.
Tomorrow's forecast combines:
Weights adapt based on NOAA's recent accuracy—if NOAA was wrong yesterday, persistence gets more weight.
Using spots-per-TX instead of raw spot counts provides a stable metric that reflects true propagation quality, independent of how many stations are transmitting.
The system was validated against 58 months of WSPR data (2021-2025), covering the rise from near-minimum conditions through maximum of Solar Cycle 25 (which began December 2019). A full solar cycle is approximately 11 years; this dataset captures the ascending phase and peak, but not the future declining phase.
The model is continuously monitored for accuracy through automated tracking of forecast vs. actual conditions, with daily metrics stored in InfluxDB and visualized via Grafana dashboards. Based on this ongoing analysis, the model will be tuned automatically and accuracy is expected to improve over time.
Validated Test Cases (selected examples):
| Date | Spots/TX | Rating | Conditions |
|---|---|---|---|
| Oct 21, 2025 (10m) | 345 | Excellent | Peak autumn day |
| Mar 20, 2024 (15m) | 399 | Excellent | Best day in 5 years |
| Nov 25, 2025 (10m) | 147 | Fair | G1 geomagnetic storm |
| Jun 2, 2025 (15m) | 31 | Poor | Summer doldrums |
| Aug 22, 2021 (10m) | 2 | Very Poor | Solar minimum summer |
Additional test cases validated include Oct 2, 2022 (Poor), Oct 11, 2022 (Good), Aug 2, 2021 (Very Poor), and numerous monthly averages across the full 58-month dataset.
┌─────────────────────────────────────────────────────────────────┐
│ dx_index_multiband.py │
├─────────────────────────────────────────────────────────────────┤
│ Inputs: Processing: Outputs: │
│ ├─ WSPR Live API ├─ Normalize spots ├─ InfluxDB │
│ ├─ NOAA SFI/Ap ├─ Apply seasonal │ Realtime │
│ ├─ NOAA Forecast ├─ Calculate index │ Forecast │
│ └─ Kp (real-time) ├─ Blend forecast ├─ Grafana │
│ └─ Rate conditions └─ Logs │
└─────────────────────────────────────────────────────────────────┘Storage: InfluxDB Cloud (EU-Central)
Visualization: Grafana dashboards with real-time gauges, forecasts, and correlation analysis
Scheduling: Runs every 10 minutes via Task Scheduler
| Parameter | 10m | 15m |
|---|---|---|
| spots_per_tx_max | 350 | 400 |
| Seasonal variation | High (0.15-1.0) | Moderate (0.17-1.0) |
| MUF sensitivity | Very high | Moderate |
73 de Roland HB9VQQ