Which weather model is most accurate in Denver?
Denver, Colorado · daily high temperature in °C · trailing 30 days · refreshed at most every 6 hours
Every day, The Spread archives what each major weather model predicted for Denver at 1-, 3-, and 7-day leads, then scores those forecasts against the DEN observations once the day has happened. This page covers the trailing 30 days (2026-08-04 to 2026-09-02), for daily high temperature.
One day out, too close to call; at three days, too close to call; at seven days, NOAA GFS (2.09°C).
The largest standing bias belongs to NOAA AIGFS (AI), which has run cool by about 1.91°C at 1-day lead over this window.
The Spread's own bias-corrected blend scored a 0.89°C typical miss at one day. Its corrections come from the same window it is scored on (in-sample), so read it as a ceiling, not a promise.
The scoreboard
Typical miss (MAE) in °C with the signed bias in parentheses — positive bias means the model ran warm. Days = scored days behind the 1-day number.
| Model | 1-day | 3-day | 7-day | Days |
|---|---|---|---|---|
| NOAA GFS | 1.3° (-0.3°) | 1.4° (+0.5°) | 2.1° (+0.4°) | 30 |
| UKMO (UK) | 1.3° (-0.5°) | 1.9° (-0.8°) | — | 30 |
| ECMWF IFS | 1.4° (-0.7°) | 1.7° (-0.7°) | 3.1° (-0.7°) | 30 |
| ECMWF AIFS (AI) | 1.4° (-1.3°) | 1.5° (-1.1°) | 2.8° (-1.9°) | 30 |
| DWD ICON | 1.5° (-1.0°) | 1.4° (-0.8°) | — | 30 |
| GEM (Canada) | 1.5° (-0.8°) | 1.6° (-1.1°) | 2.9° (-1.6°) | 30 |
| NOAA AIGFS (AI) | 2.1° (-1.9°) | 2.0° (-1.8°) | 2.8° (-2.2°) | 30 |
| NBM (US blend) | 1.4° (-1.2°) | 1.8° (-1.4°) | 2.3° (-1.2°) | 30 |
| Blended (bias-corrected) | 0.9° (-0.0°) | 1.1° (-0.0°) | 1.7° (-0.0°) | 30 |
Method, honestly
The Spread's Denver point is the Denver Intl station (DEN), 29 km from downtown, used for both forecasts and verifications. Forecasts come from each model's actual archived runs via Open-Meteo's Previous Runs API — what the model said at the time, not a reconstruction. Truth is DEN observations — the station's own daily highs, a thermometer rather than a grid, and no correction applies: the thermometer is the truth outright. Rankings cover the models themselves; the two consensus products at the bottom of the table — NBM, which is itself a blend of models, and The Spread's own bias-corrected blend — are shown for comparison, never ranked or named "most accurate" here. The blend's corrections come from the same trailing window it is scored on (in-sample), so treat its score as a ceiling. A rolling 30-day window means these numbers move — that is the point.
Receipts — was the forecast right?
One page per settled date: what every model said as the day approached, what happened, and who was closest.
- Tue Sep 1 7 days out the models said 28–33; it hit 31. UKMO led (off 0.3°C); AIGFS ran 3°C cold.
- Mon Aug 31 6 days out the models said 26–29; it hit 30. GFS led (off 0.5°C); ICON ran 4°C cold.
- Sun Aug 30 5 days out the models said 26–34; it hit 29. GFS led (off 0.3°C); UKMO ran 2°C hot.
- Sat Aug 29 4 days out the models said 31–35; it hit 34. UKMO led (off 0.3°C); AIFS ran 3°C cold.
- Fri Aug 28 3 days out the models said 33–34; it hit 35. ECMWF led (off 0.2°C); UKMO ran 2°C cold.
- Wed Aug 19 13 days out the models said 25–32; it hit 33. UKMO led (off 0.0°C); GEM ran 2°C cold.
- Tue Aug 18 13 days out the models said 26–30; it hit 32. AIGFS led (off 0.7°C); GFS ran 3°C hot.
- Mon Aug 17 13 days out the models said 24–37; it hit 35. GFS led (off 0.6°C); GEM ran 4°C cold.
- Sun Aug 16 13 days out the models said 22–33; it hit 29. ICON led (off 0.3°C); GEM ran 4°C cold.
- Sat Aug 15 13 days out the models said 28–35; it hit 27. AIGFS led (off 0.4°C); GEM ran 4°C cold.
- Fri Aug 14 13 days out the models said 22–35; it hit 30. ICON led (off 0.2°C); GEM ran 5°C cold.
- Thu Aug 13 13 days out the models said 26–34; it hit 27. ECMWF led (off 0.4°C); AIFS ran 4°C cold.
- Wed Aug 12 13 days out the models said 30–38; it hit 34. GEM led (off 0.8°C); AIFS ran 3°C cold.
- Tue Aug 11 13 days out the models said 30–37; it hit 36. ECMWF led (off 0.0°C); GEM ran 3°C cold.
- Mon Aug 10 13 days out the models said 29–36; it hit 34. AIFS led (off 0.2°C); ICON ran 2°C hot.
- Sun Aug 9 13 days out the models said 29–40; it hit 36. ECMWF led (off 0.3°C); GEM ran 4°C cold.
- Sat Aug 8 14 days out the models said 34–39; it hit 38. ECMWF led (off 0.4°C); GEM ran 3°C cold.
- Fri Aug 7 13 days out the models said 35–40; it hit 36. GFS led (off 0.1°C); GEM ran 3°C cold.
- Thu Aug 6 12 days out the models said 32–38; it hit 37. UKMO led (off 0.0°C); GEM ran 5°C cold.
- Wed Aug 5 11 days out the models said 28–39; it hit 29. ICON led (off 0.3°C); GEM ran 2°C cold.
- Tue Aug 4 10 days out the models said 24–39; it hit 24. AIGFS led (off 0.5°C); UKMO ran 3°C hot.
- Mon Aug 3 9 days out the models said 27–34; it hit 39. GFS led (off 0.2°C); GEM ran 4°C cold.
- Sun Aug 2 8 days out the models said 34–40; it hit 39. ECMWF led (off 0.1°C); GEM ran 4°C cold.
- Sat Aug 1 7 days out the models said 33–39; it hit 35. GFS led (off 0.2°C); GEM ran 3°C cold.
- Fri Jul 31 6 days out the models said 32–39; it hit 32. ICON led (off 0.2°C); GFS ran 2°C hot.
- Thu Jul 30 5 days out the models said 32–38; it hit 35. GFS led (off 0.7°C); ECMWF ran 4°C cold.
- Wed Jul 29 4 days out the models said 30–36; it hit 33. ECMWF led (off 0.2°C); AIFS ran 2°C cold.
- Tue Jul 28 3 days out the models said 29–38; it hit 33. ECMWF led (off 0.3°C); AIGFS ran 3°C cold.
Other cities
Atlanta, Georgia Berlin, State of Berlin Boston, Massachusetts Buffalo, New York Charlotte, North Carolina Chicago, Illinois Dallas, Texas Detroit, Michigan Houston, Texas London, England Los Angeles, California Miami, Florida Milan, Lombardy Minneapolis, Minnesota New Orleans, Louisiana New York, New York Oklahoma City, Oklahoma Orlando, Florida Paris, Île-de-France Region Philadelphia, Pennsylvania Phoenix, Arizona Salt Lake City, Utah San Antonio, Texas San Diego, California San Francisco, California Seattle, Washington St. Louis, Missouri Tampa, Florida Washington, District of Columbia
The Spread — the forecast spread — is in closed beta. These verification pages are public while the rest is gated.