Forecast vs reality
11.4µg/m³ · MAE PM10on average the forecast misses by this much
94%of hours · status matchthe forecast landed in the correct danger level
Counted over 7800 matched forecast-vs-fact hours. Updated hourly — we publish the result even when it doesn’t flatter us.
By forecast horizon
| Horizon | MAE, µg/m³ | Status match | Pairs |
|---|---|---|---|
| 1 h ahead | 4.4 µg/m³ | 97% | 400 |
| 2 h ahead | 5.1 µg/m³ | 96% | 390 |
| 3 h ahead | 5.9 µg/m³ | 96% | 380 |
| 4 h ahead | 6.8 µg/m³ | 95% | 370 |
| 5 h ahead | 7.7 µg/m³ | 95% | 360 |
| 6 h ahead | 8.3 µg/m³ | 95% | 350 |
| 7 h ahead | 8.5 µg/m³ | 94% | 340 |
| 8 h ahead | 8.8 µg/m³ | 94% | 330 |
| 9 h ahead | 9.6 µg/m³ | 93% | 320 |
| 10 h ahead | 10.5 µg/m³ | 92% | 310 |
| 11 h ahead | 11.3 µg/m³ | 92% | 300 |
| 12 h ahead | 12.1 µg/m³ | 92% | 290 |
| 13 h ahead | 12.8 µg/m³ | 92% | 280 |
| 14 h ahead | 13.3 µg/m³ | 92% | 270 |
| 15 h ahead | 13.8 µg/m³ | 93% | 260 |
| 16 h ahead | 14.8 µg/m³ | 92% | 250 |
| 17 h ahead | 16.1 µg/m³ | 91% | 240 |
| 18 h ahead | 17.3 µg/m³ | 91% | 230 |
| 19 h ahead | 17.3 µg/m³ | 91% | 220 |
| 20 h ahead | 16.7 µg/m³ | 92% | 210 |
| 21 h ahead | 16.1 µg/m³ | 93% | 200 |
| 22 h ahead | 15.4 µg/m³ | 93% | 190 |
| 23 h ahead | 14.7 µg/m³ | 94% | 180 |
| 24 h ahead | 13.9 µg/m³ | 94% | 170 |
| 25 h ahead | 13.7 µg/m³ | 94% | 160 |
| 26 h ahead | 16.3 µg/m³ | 93% | 150 |
| 27 h ahead | 19.4 µg/m³ | 93% | 140 |
| 28 h ahead | 20.1 µg/m³ | 93% | 130 |
| 29 h ahead | 16.6 µg/m³ | 94% | 110 |
| 30 h ahead | 11.8 µg/m³ | 96% | 90 |
| 31 h ahead | 10.3 µg/m³ | 96% | 70 |
| 32 h ahead | 10.1 µg/m³ | 94% | 50 |
| 33 h ahead | 10 µg/m³ | 90% | 30 |
| 34 h ahead | 10.1 µg/m³ | 85% | 20 |
| 35 h ahead | 11.7 µg/m³ | 90% | 10 |
The closer the hour, the more accurate the forecast — the shortest horizon has the smallest error.
Promised → happened
| Time | Settlement | Horizon | Promised, µg/m³ | Happened, µg/m³ | Difference |
|---|---|---|---|---|---|
| 06/13, 04:00 | Moynaq | 1 h ahead | 43.3 | 43.3 | 0 µg/m³ |
| 06/13, 04:00 | Chimboy | 1 h ahead | 35.5 | 35.5 | 0 µg/m³ |
| 06/13, 04:00 | Taxiatosh | 1 h ahead | 26.5 | 26.5 | 0 µg/m³ |
| 06/13, 04:00 | Xoʻjayli | 1 h ahead | 26.5 | 26.5 | 0 µg/m³ |
| 06/13, 04:00 | Nukus | 1 h ahead | 26.5 | 26.5 | 0 µg/m³ |
| 06/13, 04:00 | Aralsk | 1 h ahead | 5.3 | 5.3 | 0 µg/m³ |
| 06/13, 04:00 | Qazaly | 1 h ahead | 220.7 | 220.7 | 0 µg/m³ |
| 06/13, 04:00 | Konye-Urgench | 1 h ahead | 29.3 | 29.3 | 0 µg/m³ |
| 06/13, 04:00 | Qongʻirot | 1 h ahead | 46.4 | 46.4 | 0 µg/m³ |
| 06/13, 04:00 | Dashoguz | 1 h ahead | 16.8 | 16.8 | 0 µg/m³ |
| 06/13, 04:00 | Moynaq | 2 h ahead | 43.3 | 43.3 | 0 µg/m³ |
| 06/13, 04:00 | Qongʻirot | 2 h ahead | 46.4 | 46.4 | 0 µg/m³ |
How we calculate it
- On every hourly update the system remembers what the CAMS forecast promised for future hours. When that hour arrives, the freshest value recorded for it becomes the fact, and the pair is compared.
- MAE is the mean absolute PM10 error in µg/m³. Status match is the share of hours when the forecast landed in the same danger level by the 55/155/355 µg/m³ thresholds.
- An honest caveat: we compare the CAMS forecast against the CAMS analysis, not against ground stations — there are almost none in the region. This measures the model’s consistency over time, not absolute ground truth.