How am I doing?
Monday, 1 January 0001
Every figure this site publishes gets checked against what actually happened. Each morning the daily run fetches observed conditions and scores every past forecast day — the weekly outlook’s day-by-day calls and the daily blurbs alike. Errors are observed minus forecast, so a positive bias means the days ran warmer than forecast.
Scores below cover the last 45 days (172 scored forecast-days, most recent: 2026-08-21).
Temperature error by lead time
Two baselines for honesty: persistence is the dumbest possible forecast (every day will be like the last one observed), climatology just answers with the 1991–2020 normal for the date. If the forecast’s MAE doesn’t beat both, it has added nothing.
| Lead time | Forecast-days | Tmax MAE (°C) | Tmin MAE (°C) | Persistence Tmax MAE | Climatology Tmax MAE |
|---|---|---|---|---|---|
| Same / next day | 99 | 0.6 | 0.7 | 1.6 | 4.2 |
| 2–3 days out | 35 | 1.0 | 0.9 | 2.0 | 4.7 |
| 4–7 days out | 38 | 1.4 | 1.0 | 2.8 | 4.1 |
Rain
25 of 172 scored days turned out wet (≥1 mm). Brier score for the published rain probabilities: 0.177 (0 is perfect, 0.25 is what always saying 50% would get). Against always guessing the seasonal wet-day frequency, the Brier skill score is -0.32 (positive beats climatology, 1 is perfect).
Do the ratings hold up?
Each day’s published 1–10 rating, graded against the rating recomputed from what actually happened (observed temperatures, dew point, rain, gusts, fog, and PM2.5). Over 67 scored day(s): mean absolute error 0.7 points, within ±1 point 88% of the time. Storm organization can’t be judged in hindsight, so treat sub-point differences as noise.
Air quality calls (PM2.5)
Forecast daily-max PM2.5 versus observed, over 48 scored day(s): MAE 0.7 µg/m³. The CF traffic-light band was called correctly 100% of the time.
Which model has been best?
Tmax error per model at short lead (≤ 3 days), same scoring window.
| Model | Forecast-days | Tmax MAE (°C) | Bias (°C) |
|---|---|---|---|
| best_match | 134 | 0.8 | -0.3 |
| icon_seamless | 134 | 0.8 | -0.3 |
| meteofrance_seamless | 134 | 1.0 | -0.4 |
| ecmwf_ifs025 | 134 | 1.2 | +1.1 |
| gfs_seamless | 134 | 2.1 | -1.9 |