17°

Open log · updates itself

Weather scoreboard

The weights of ECMWF’s forecast model are public, and they weigh under a gigabyte. So I set it running on my desktop graphics card, and every day I record two things before anything happens: what that model predicts at my house and what the official forecast predicts, which runs on a supercomputer.

When time passes, what actually occurred gets written down. Predictions are never edited. In a few months this table will say who gets it right more often, without anyone having to be taken at their word.

The bot waiting for the next data pointNext hour awaiting confirmation: 20/8, 20:00, 13.4 °C predicted by the model at home.

Local AI

1.17°C

mean error · AIFS on an RTX 4070 Ti SUPER

rmse
1.40
bias
-0.84
worst
3.69
wins
18
Official

1.19°C

mean error · ECMWF operational IFS

rmse
1.50
bias
-0.81
worst
3.30
wins
20

38 hours verified2 waiting on the clocksince 2026-08-16Santiago, Chile · temperature at 2 m

The three curves

  • Local AI
  • Official
  • What happened
12°21°02:0014:0002:0014:0002:0014:0002:0014:0002:0014:0002:00

The reality line stops where time has not arrived yet.

The error by how far ahead you look

+6h
+12h
+18h
+24h
+30h
+36h
+42h
+48h

Each pair compares the mean error at that horizon. The further the model looks, the more it shows.

The full log

last run: 22.3s · 5.77 GB

The actual column gets filled in later, with the ERA5 reanalysis; until that arrives the recent analysis is used, marked with an asterisk. The two forecast columns are never edited.

Analysis of 2026-08-19 06:00:00 UTC6/8 verified

22.3s on NVIDIA GeForce RTX 4070 Ti SUPER · 5.77 GB of memory· grid -33.583, -70.720

Hour (Chile)Local AIOfficialActualAI errorOfficial error
19/8, 08:006.416.508.902.492.40
19/8, 14:0016.8118.3017.700.890.60
19/8, 20:0011.6512.1012.200.550.10
20/8, 02:007.828.7010.502.681.80
20/8, 08:006.717.8010.403.692.60
20/8, 14:0018.5619.2016.901.662.30
20/8, 20:0013.4013.40
21/8, 02:009.408.40
Analysis of 2026-08-18 06:00:00 UTC8/8 verified

21.3s on NVIDIA GeForce RTX 4070 Ti SUPER · 5.77 GB of memory· grid -33.583, -70.720

Hour (Chile)Local AIOfficialActualAI errorOfficial error
18/8, 08:006.213.807.100.893.30
18/8, 14:0017.9517.6017.000.950.60
18/8, 20:0012.6411.8013.400.761.60
19/8, 02:008.307.809.601.301.80
19/8, 08:006.816.008.902.092.90
19/8, 14:0016.4017.2017.701.300.50
19/8, 20:0011.3412.4012.200.860.20
20/8, 02:007.329.7010.503.180.80
Analysis of 2026-08-17 06:00:00 UTC8/8 verified

19.1s on NVIDIA GeForce RTX 4070 Ti SUPER · 5.77 GB of memory· grid -33.583, -70.720

Hour (Chile)Local AIOfficialActualAI errorOfficial error
17/8, 08:007.258.308.100.850.20
17/8, 14:0013.7613.5013.500.260.00
17/8, 20:0010.7610.3011.600.841.30
18/8, 02:007.516.408.100.591.70
18/8, 08:006.393.807.100.713.30
18/8, 14:0017.9417.6017.000.940.60
18/8, 20:0012.5811.8013.400.821.60
19/8, 02:008.097.809.601.511.80
Analysis of 2026-08-16 06:00:00 UTC8/8 verified

19.4s on NVIDIA GeForce RTX 4070 Ti SUPER · 5.77 GB of memory· grid -33.583, -70.720

Hour (Chile)Local AIOfficialActualAI errorOfficial error
16/8, 08:004.675.104.900.230.20
16/8, 14:0014.7915.2014.000.791.20
16/8, 20:0010.219.8010.800.591.00
17/8, 02:007.558.408.901.350.50
17/8, 08:006.597.908.101.510.20
17/8, 14:0013.6212.7013.500.120.80
17/8, 20:0010.4710.4011.601.131.20
18/8, 02:006.945.708.101.162.40
Analysis of 2026-08-16 00:00:00 UTC8/8 verified

108.5s on NVIDIA GeForce RTX 4070 Ti SUPER · 5.77 GB of memory· grid -33.583, -70.720

Hour (Chile)Local AIOfficialActualAI errorOfficial error
16/8, 02:005.776.006.600.830.60
16/8, 08:005.155.104.900.250.20
16/8, 14:0015.1715.2014.001.171.20
16/8, 20:0010.439.8010.800.371.00
17/8, 02:007.598.408.901.310.50
17/8, 08:006.567.908.101.540.20
17/8, 14:0012.8812.7013.500.620.80
17/8, 20:0010.1010.4011.601.501.20

Method and data

Local model
ECMWF AIFS Single 2.0, public weights (CC-BY-4.0), running on an RTX 4070 Ti SUPER with the wrapper that swaps flash-attn for SDPA.
Official reference
ECMWF operational IFS via Open-Meteo, requested with cell_selection=nearest and elevation=nan to get the grid point without elevation correction. Without those parameters the value arrives adjusted by a 90 m elevation model, which introduces 0.60 °C of bias in Santiago.
Ground truth
ERA5 reanalysis. While ERA5 is unavailable the recent analysis is used, flagged as provisional and replaced as soon as the definitive one arrives.
Point
The nearest point of the reduced Gaussian grid to Santiago (−33.4489, −70.6693), about 15 km from the centre. No interpolation.
Metrics
MAE is the mean absolute error. RMSE squares before averaging, so it punishes large errors more: if it is well above the MAE, the model fails rarely but badly. Bias carries a sign and says whether it runs warm or cold.
Known limitation
The IFS updates four times a day and the scoreboard queries the current forecast, which may start from a more recent analysis than AIFS does. That favours the official one. Pinning both runs to the same initial analysis is still pending.

Download the full log as CSV· 40 rows · regenerated on every update

How it is built, step by step, in the article about the model.The code that keeps this log lives onGitHub.