barogram
Barogram is a pet forecast ensemble, a small collection of models I run for fun and to learn more about how forecasting actually works. Every three hours, they look at the latest readings from a backyard Tempest weather station in the Twin Cities, MN and a nearby NWS airport station, then each independently predict local temperature, dew point, pressure, and precipitation probability for the next 6 to 24 hours.
After each run, the previous predictions get scored against what actually happened. Models that beat a naive baseline earn more weight in the ensemble’s combined output; models that don’t are demoted toward a floor. The base models use simple approaches and none of them are impressive on their own. The ensemble is what makes them useful.
These forecasts are specific to that one station. This is a personal project running on data from my own equipment; it says nothing about conditions where you are.
Latest conditions in the Twin Cities
Tempest Weather Station
2026-06-07 13:15 CDT
| Temperature | 86.9°F |
|---|---|
| Dew Point | 72.8°F |
| Pressure | 1008.1 hPa |
| Wind | SW 2.0 mph, gusts to 4.5 mph |
| Precip today | 0.00 in |
| UV Index | 6.7 |
| Solar | 850 W/m² |
| Lightning | 0 strikes (3-min count) |
NWS: Minneapolis-St. Paul Intl (KMSP)
2026-06-07 12:53 CDT
| Temperature | 86.0°F |
|---|---|
| Dew Point | 67.0°F |
| Wind | SE 12.7 mph |
| Pressure | 1009.6 hPa |
| Sky | SCT065 OVC250 |
| METAR | KMSP 071753Z 13011G20KT 10SM SCT065 OVC250 30/19 A2984 RMK AO2 SLP096 T03000194 10306 20217 56013 $ |
Barometer says: Stormy, much rain (N)
Tendency: rapid fall — -0.56 hPa/h
Zambretti algorithm — sea-level pressure
Ensemble Forecast — Generated at 12:00 on June 8, 2026
Pres 1008.4 hPa
Dew 68°F
Dew 71°F
Pres 1005.6 hPa
Dew 67°F
Dew 69°F
Pres 1009.0 hPa
Dew 66°F
Dew 68°F
Pres 1010.2 hPa
Dew 66°F
Dew 68°F
Dew 73°F
Verification
Overall Forecast Skill
Skill score vs. climatological mean, averaged across temperature, dewpoint, and pressure (plus Precip Prob BSS once enough rain events have been observed). 100% = perfect · 0% = matches climatological mean · negative = worse than climatological mean.
14 days · 60 runs
| # | Model | Forecast Skill |
|---|---|---|
| 100 | barogram_ensemble ensemble | 67% |
| 202 | external_corrected external | 80% |
| 201 | tempest_forecast external | 67% |
| 200 | nws external | 74% |
| 1 | persistence | 48% |
| 2 | climatological_mean baseline | 0% |
| 3 | weighted_climatological_mean | 46% |
| 4 | climo_deviation | 63% |
| 5 | pressure_tendency | 50% |
| 6 | diurnal_curve | 69% |
| 7 | airmass_diurnal | 66% |
| 8 | analog | 59% |
| 9 | surface_signs | 51% |
| 10 | synoptic_state_machine | 50% |
| 12 | bogo fun | 35% |
| 13 | full_state_analog | 48% |
| 14 | multivariate_trend | 26% |
| 15 | dry_airmass_diurnal | 55% |
120 days · 461 runs
| # | Model | Forecast Skill |
|---|---|---|
| 100 | barogram_ensemble ensemble | 38% |
| 202 | external_corrected external | 74% |
| 201 | tempest_forecast external | 67% |
| 200 | nws external | 68% |
| 1 | persistence | 22% |
| 2 | climatological_mean baseline | 0% |
| 3 | weighted_climatological_mean | 14% |
| 4 | climo_deviation | 37% |
| 5 | pressure_tendency | -11% |
| 6 | diurnal_curve | 37% |
| 7 | airmass_diurnal | 40% |
| 8 | analog | 43% |
| 9 | surface_signs | 36% |
| 10 | synoptic_state_machine | 38% |
| 12 | bogo fun | 29% |
| 13 | full_state_analog | 32% |
| 14 | multivariate_trend | -24% |
| 15 | dry_airmass_diurnal | 36% |
all time · 461 runs
| # | Model | Forecast Skill |
|---|---|---|
| 100 | barogram_ensemble ensemble | 38% |
| 202 | external_corrected external | 74% |
| 201 | tempest_forecast external | 67% |
| 200 | nws external | 68% |
| 1 | persistence | 22% |
| 2 | climatological_mean baseline | 0% |
| 3 | weighted_climatological_mean | 14% |
| 4 | climo_deviation | 37% |
| 5 | pressure_tendency | -11% |
| 6 | diurnal_curve | 37% |
| 7 | airmass_diurnal | 40% |
| 8 | analog | 43% |
| 9 | surface_signs | 36% |
| 10 | synoptic_state_machine | 38% |
| 12 | bogo fun | 29% |
| 13 | full_state_analog | 32% |
| 14 | multivariate_trend | -24% |
| 15 | dry_airmass_diurnal | 36% |
last 10 runs
| # | Model | Forecast Skill |
|---|---|---|
| 100 | barogram_ensemble ensemble | 27% |
| 202 | external_corrected external | 61% |
| 201 | tempest_forecast external | 14% |
| 200 | nws external | 27% |
| 1 | persistence | -35% |
| 2 | climatological_mean baseline | 0% |
| 3 | weighted_climatological_mean | 14% |
| 4 | climo_deviation | 33% |
| 5 | pressure_tendency | -35% |
| 6 | diurnal_curve | 0% |
| 7 | airmass_diurnal | -11% |
| 8 | analog | -7% |
| 9 | surface_signs | -24% |
| 10 | synoptic_state_machine | -33% |
| 12 | bogo fun | -70% |
| 13 | full_state_analog | -42% |
| 14 | multivariate_trend | -121% |
| 15 | dry_airmass_diurnal | -53% |
Skill Over Time
Daily forecast skill vs. climatological mean (0% line). Averaged across all variables. Default: ensemble, NWS, Tempest Forecast.
Recent Misses (14 days)
Largest forecast errors per source over the last 14 days, sorted biggest miss first within each group.
| Variable | Lead | Valid | Predicted | Observed | Error |
|---|---|---|---|---|---|
| persistence | |||||
| Temperature | +12h | Jun 2 17:50 | 55.9°F | 83.1°F | -27.2 |
| Temperature | +12h | Jun 6 17:50 | 60.8°F | 85.6°F | -24.8 |
| Temperature | +6h | Jun 2 11:50 | 55.9°F | 80.8°F | -24.8 |
| Temperature | +12h | Jun 2 14:50 | 59.0°F | 82.6°F | -23.6 |
| Temperature | +12h | Jun 6 14:55 | 62.6°F | 85.8°F | -23.2 |
| Temperature | +12h | May 29 14:45 | 65.8°F | 88.9°F | -23.0 |
| Temperature | +12h | Jun 2 03:50 | 80.6°F | 57.7°F | +22.9 |
| Temperature | +12h | Jun 2 05:45 | 78.8°F | 55.9°F | +22.9 |
| Temperature | +12h | May 29 17:50 | 62.1°F | 84.2°F | -22.1 |
| Temperature | +12h | Jun 2 04:50 | 78.8°F | 56.7°F | +22.1 |
| climatological_mean | |||||
| Temperature | +18h | Jun 2 10:50 | 50.8°F | 78.4°F | -27.6 |
| Temperature | +24h | Jun 2 11:50 | 53.2°F | 80.8°F | -27.6 |
| Temperature | +12h | Jun 2 11:50 | 53.2°F | 80.8°F | -27.6 |
| Temperature | +18h | Jun 2 11:45 | 53.2°F | 80.8°F | -27.6 |
| Temperature | +6h | Jun 2 11:50 | 53.2°F | 80.8°F | -27.6 |
| Temperature | +24h | Jun 3 11:45 | 53.5°F | 81.0°F | -27.5 |
| Temperature | +18h | Jun 3 11:55 | 53.5°F | 80.6°F | -27.1 |
| Temperature | +6h | Jun 3 11:30 | 53.5°F | 80.2°F | -26.7 |
| Temperature | +18h | Jun 3 19:50 | 56.3°F | 82.2°F | -26.0 |
| Temperature | +18h | Jun 3 12:20 | 55.3°F | 81.1°F | -25.8 |
| weighted_climatological_mean | |||||
| Pressure | +24h | Jun 5 08:25 | 986.9 hPa | 975.6 hPa | +11.3 |
| Pressure | +24h | Jun 5 11:50 | 985.8 hPa | 975.3 hPa | +10.5 |
| Pressure | +24h | Jun 5 05:55 | 985.6 hPa | 975.1 hPa | +10.5 |
| Pressure | +18h | Jun 5 12:15 | 985.5 hPa | 975.2 hPa | +10.3 |
| Pressure | +18h | Jun 5 12:15 | 985.5 hPa | 975.2 hPa | +10.3 |
| Pressure | +18h | Jun 5 12:15 | 985.5 hPa | 975.2 hPa | +10.3 |
| Pressure | +18h | Jun 5 12:15 | 985.5 hPa | 975.2 hPa | +10.3 |
| Pressure | +18h | Jun 4 14:45 | 988.2 hPa | 978.0 hPa | +10.2 |
| Temperature | +12h | May 29 14:45 | 72.4°F | 88.9°F | -16.5 |
| Temperature | +12h | May 29 11:55 | 67.5°F | 84.0°F | -16.5 |
| climo_deviation | |||||
| Pressure | +24h | Jun 4 14:55 | 987.5 hPa | 977.9 hPa | +9.6 |
| Pressure | +24h | Jun 5 08:25 | 985.0 hPa | 975.6 hPa | +9.4 |
| Pressure | +24h | Jun 4 17:50 | 985.8 hPa | 976.6 hPa | +9.2 |
| Pressure | +24h | Jun 4 08:50 | 989.4 hPa | 980.4 hPa | +9.0 |
| Pressure | +24h | Jun 4 11:50 | 989.0 hPa | 980.0 hPa | +9.0 |
| Pressure | +24h | Jun 5 05:55 | 984.1 hPa | 975.1 hPa | +9.0 |
| Pressure | +24h | Jun 5 11:50 | 984.1 hPa | 975.3 hPa | +8.8 |
| Pressure | +24h | Jun 4 05:30 | 989.0 hPa | 980.3 hPa | +8.7 |
| Pressure | +18h | Jun 2 05:50 | 983.0 hPa | 991.3 hPa | -8.3 |
| Pressure | +18h | Jun 5 05:50 | 983.2 hPa | 975.1 hPa | +8.1 |
| pressure_tendency | |||||
| Temperature | +12h | Jun 2 17:50 | 57.0°F | 83.1°F | -26.1 |
| Temperature | +6h | Jun 2 11:50 | 56.3°F | 80.8°F | -24.5 |
| Temperature | +12h | Jun 2 05:45 | 79.7°F | 55.9°F | +23.7 |
| Temperature | +12h | May 29 14:45 | 65.2°F | 88.9°F | -23.7 |
| Temperature | +12h | Jun 2 03:50 | 81.4°F | 57.7°F | +23.6 |
| Temperature | +12h | Jun 6 17:50 | 62.3°F | 85.6°F | -23.3 |
| Temperature | +12h | Jun 2 04:50 | 79.9°F | 56.7°F | +23.2 |
| Temperature | +12h | Jun 3 06:20 | 84.0°F | 61.2°F | +22.8 |
| Temperature | +12h | May 29 17:50 | 62.1°F | 84.2°F | -22.1 |
| Temperature | +12h | Jun 6 14:55 | 63.8°F | 85.8°F | -22.0 |
| diurnal_curve | |||||
| Dew Point | +24h | Jun 5 02:55 | 51.1°F | 64.3°F | -13.2 |
| Dew Point | +18h | Jun 4 17:50 | 55.5°F | 68.3°F | -12.7 |
| Dew Point | +24h | Jun 4 20:45 | 53.8°F | 66.0°F | -12.2 |
| Dew Point | +12h | Jun 4 14:55 | 56.7°F | 68.4°F | -11.8 |
| Dew Point | +24h | Jun 4 17:50 | 56.5°F | 68.3°F | -11.7 |
| Dew Point | +18h | Jun 5 02:25 | 52.7°F | 64.3°F | -11.6 |
| Dew Point | +24h | Jun 4 14:55 | 57.0°F | 68.4°F | -11.5 |
| Dew Point | +24h | Jun 5 08:25 | 54.7°F | 65.9°F | -11.3 |
| Dew Point | +24h | Jun 4 23:50 | 51.9°F | 63.1°F | -11.2 |
| Dew Point | +18h | Jun 4 14:45 | 56.3°F | 67.3°F | -11.0 |
| airmass_diurnal | |||||
| Temperature | +12h | Jun 2 17:50 | 67.7°F | 83.1°F | -15.4 |
| Temperature | +24h | Jun 6 11:55 | 67.3°F | 82.6°F | -15.3 |
| Temperature | +6h | Jun 2 11:50 | 65.8°F | 80.8°F | -15.0 |
| Dew Point | +18h | Jun 4 17:50 | 54.2°F | 68.3°F | -14.0 |
| Temperature | +6h | May 29 14:50 | 75.5°F | 88.7°F | -13.2 |
| Dew Point | +12h | Jun 4 14:55 | 55.8°F | 68.4°F | -12.6 |
| Dew Point | +18h | May 30 23:45 | 59.6°F | 47.0°F | +12.6 |
| Dew Point | +24h | Jun 4 20:45 | 53.8°F | 66.0°F | -12.2 |
| Dew Point | +24h | Jun 5 02:55 | 52.2°F | 64.3°F | -12.1 |
| Dew Point | +18h | Jun 4 14:45 | 55.3°F | 67.3°F | -12.0 |
| analog | |||||
| Pressure | +18h | Jun 2 09:50 | 978.5 hPa | 993.0 hPa | -14.5 |
| Pressure | +24h | Jun 2 15:50 | 977.9 hPa | 991.9 hPa | -14.0 |
| Pressure | +18h | Jun 2 08:50 | 978.9 hPa | 992.2 hPa | -13.3 |
| Pressure | +24h | Jun 2 14:50 | 979.3 hPa | 992.4 hPa | -13.1 |
| Pressure | +18h | Jun 2 11:45 | 980.4 hPa | 993.0 hPa | -12.6 |
| Pressure | +18h | Jun 2 10:50 | 980.6 hPa | 993.1 hPa | -12.5 |
| Pressure | +24h | Jun 2 16:50 | 979.8 hPa | 991.2 hPa | -11.4 |
| Pressure | +24h | Jun 2 17:45 | 979.6 hPa | 990.6 hPa | -11.0 |
| Pressure | +18h | Jun 2 14:55 | 981.7 hPa | 992.3 hPa | -10.6 |
| Pressure | +24h | Jun 2 11:50 | 982.9 hPa | 993.0 hPa | -10.1 |
| surface_signs | |||||
| Temperature | +12h | Jun 2 17:50 | 56.8°F | 83.1°F | -26.3 |
| Temperature | +6h | Jun 2 11:50 | 56.3°F | 80.8°F | -24.5 |
| Temperature | +12h | May 30 05:55 | 86.9°F | 62.4°F | +24.4 |
| Temperature | +12h | Jun 6 17:50 | 61.6°F | 85.6°F | -24.0 |
| Temperature | +12h | Jun 2 05:45 | 79.7°F | 55.9°F | +23.7 |
| Temperature | +12h | Jun 3 17:30 | 60.2°F | 83.8°F | -23.6 |
| Temperature | +6h | May 29 11:50 | 61.4°F | 84.0°F | -22.6 |
| Temperature | +12h | Jun 3 06:20 | 83.6°F | 61.2°F | +22.4 |
| Temperature | +12h | Jun 3 06:20 | 83.6°F | 61.2°F | +22.4 |
| Temperature | +12h | Jun 6 14:55 | 63.4°F | 85.8°F | -22.4 |
| synoptic_state_machine | |||||
| Temperature | +12h | May 30 05:55 | 89.4°F | 62.4°F | +27.0 |
| Temperature | +12h | Jun 3 06:20 | 88.1°F | 61.2°F | +27.0 |
| Temperature | +12h | Jun 3 06:20 | 88.1°F | 61.2°F | +27.0 |
| Temperature | +12h | Jun 3 17:30 | 57.2°F | 83.8°F | -26.6 |
| Temperature | +12h | Jun 2 17:50 | 57.8°F | 83.1°F | -25.4 |
| Temperature | +12h | Jun 2 05:45 | 80.6°F | 55.9°F | +24.7 |
| Temperature | +6h | Jun 2 11:50 | 56.7°F | 80.8°F | -24.1 |
| Temperature | +12h | Jun 6 17:50 | 62.5°F | 85.6°F | -23.1 |
| Temperature | +12h | Jun 5 06:15 | 86.5°F | 63.7°F | +22.9 |
| Temperature | +12h | Jun 5 06:15 | 86.5°F | 63.7°F | +22.9 |
| bogo | |||||
| Temperature | +12h | May 29 14:45 | 64.4°F | 88.9°F | -24.5 |
| Temperature | +6h | May 29 11:50 | 61.7°F | 84.0°F | -22.3 |
| Temperature | +24h | Jun 3 18:20 | 61.8°F | 83.5°F | -21.7 |
| Temperature | +12h | Jun 2 14:50 | 61.2°F | 82.6°F | -21.4 |
| Temperature | +12h | May 29 17:50 | 63.1°F | 84.2°F | -21.1 |
| Temperature | +12h | Jun 3 13:50 | 60.9°F | 81.9°F | -21.0 |
| Temperature | +12h | Jun 2 17:50 | 62.4°F | 83.1°F | -20.7 |
| Temperature | +12h | Jun 2 11:50 | 60.3°F | 80.8°F | -20.5 |
| Temperature | +12h | May 29 11:55 | 64.2°F | 84.0°F | -19.8 |
| Dew Point | +24h | Jun 5 18:15 | 50.5°F | 69.1°F | -18.5 |
| full_state_analog | |||||
| Pressure | +24h | Jun 2 15:50 | 980.1 hPa | 991.9 hPa | -11.8 |
| Pressure | +24h | Jun 2 14:50 | 980.8 hPa | 992.4 hPa | -11.6 |
| Pressure | +18h | Jun 2 09:50 | 981.8 hPa | 993.0 hPa | -11.2 |
| Pressure | +18h | Jun 2 14:55 | 981.1 hPa | 992.3 hPa | -11.2 |
| Temperature | +24h | Jun 6 14:55 | 65.8°F | 85.8°F | -20.0 |
| Pressure | +18h | Jun 2 17:50 | 979.8 hPa | 990.6 hPa | -10.8 |
| Dew Point | +24h | Jun 5 08:25 | 46.7°F | 65.9°F | -19.3 |
| Pressure | +24h | Jun 2 23:50 | 980.3 hPa | 990.8 hPa | -10.5 |
| Dew Point | +18h | Jun 5 02:25 | 45.7°F | 64.3°F | -18.6 |
| Temperature | +24h | Jun 6 11:55 | 64.7°F | 82.6°F | -17.9 |
| multivariate_trend | |||||
| Temperature | +6h | Jun 5 00:15 | -70.0°F | 63.1°F | -133.1 |
| Temperature | +12h | Jun 3 06:20 | 105.5°F | 61.2°F | +44.3 |
| Temperature | +24h | Jun 3 18:20 | 119.5°F | 83.5°F | +36.0 |
| Temperature | +12h | Jun 2 17:50 | 47.1°F | 83.1°F | -36.0 |
| Temperature | +12h | Jun 5 06:15 | 99.6°F | 63.7°F | +35.9 |
| Temperature | +24h | Jun 3 18:20 | 119.2°F | 83.5°F | +35.7 |
| Temperature | +12h | Jun 6 17:50 | 53.0°F | 85.6°F | -32.6 |
| Temperature | +12h | Jun 2 14:50 | 50.0°F | 82.6°F | -32.6 |
| Temperature | +12h | Jun 6 14:55 | 53.7°F | 85.8°F | -32.1 |
| Temperature | +12h | Jun 3 06:20 | 92.5°F | 61.2°F | +31.4 |
| dry_airmass_diurnal | |||||
| Dew Point | +24h | Jun 4 18:00 | 50.3°F | 68.3°F | -17.9 |
| Dew Point | +24h | Jun 5 15:00 | 51.3°F | 69.1°F | -17.8 |
| Dew Point | +24h | Jun 5 18:00 | 51.1°F | 68.9°F | -17.7 |
| Dew Point | +24h | Jun 5 21:09 | 50.2°F | 66.8°F | -16.7 |
| Dew Point | +24h | Jun 5 09:11 | 50.5°F | 66.8°F | -16.3 |
| Dew Point | +24h | Jun 5 12:00 | 51.1°F | 67.3°F | -16.2 |
| Dew Point | +24h | Jun 4 15:00 | 51.2°F | 67.1°F | -15.9 |
| Dew Point | +18h | Jun 4 15:00 | 52.5°F | 68.4°F | -15.9 |
| Dew Point | +24h | Jun 5 03:00 | 48.5°F | 64.3°F | -15.8 |
| Dew Point | +18h | Jun 5 15:09 | 53.8°F | 69.4°F | -15.6 |
| barogram_ensemble | |||||
| Pressure | +24h | Jun 4 14:55 | 987.5 hPa | 977.9 hPa | +9.6 |
| Pressure | +24h | Jun 2 11:50 | 983.6 hPa | 993.0 hPa | -9.4 |
| Pressure | +24h | Jun 5 05:55 | 983.9 hPa | 975.1 hPa | +8.8 |
| Pressure | +24h | Jun 4 17:50 | 985.1 hPa | 976.6 hPa | +8.5 |
| Pressure | +24h | Jun 5 08:25 | 983.9 hPa | 975.6 hPa | +8.3 |
| Pressure | +18h | Jun 2 05:50 | 983.2 hPa | 991.3 hPa | -8.1 |
| Pressure | +24h | Jun 2 14:50 | 984.4 hPa | 992.4 hPa | -8.0 |
| Temperature | +6h | Jun 2 11:50 | 66.6°F | 80.8°F | -14.2 |
| Dew Point | +18h | Jun 4 17:50 | 55.2°F | 68.3°F | -13.1 |
| Dew Point | +12h | Jun 4 14:55 | 55.5°F | 68.4°F | -12.9 |
| nws | |||||
| Dew Point | +24h | May 29 12:00 | 54.0°F | 63.4°F | -9.4 |
| Temperature | +24h | Jun 4 04:00 | 64.0°F | 72.1°F | -8.1 |
| Dew Point | +24h | May 29 14:00 | 53.0°F | 61.0°F | -8.0 |
| Temperature | +6h | Jun 5 12:00 | 79.0°F | 71.2°F | +7.8 |
| Dew Point | +6h | Jun 3 18:00 | 49.0°F | 56.6°F | -7.6 |
| Dew Point | +24h | Jun 2 16:00 | 51.0°F | 58.3°F | -7.3 |
| Dew Point | +24h | May 30 06:00 | 51.0°F | 58.2°F | -7.2 |
| Dew Point | +18h | May 29 18:00 | 54.0°F | 61.0°F | -7.0 |
| Dew Point | +24h | May 29 18:00 | 54.0°F | 61.0°F | -7.0 |
| Dew Point | +18h | Jun 3 03:00 | 46.0°F | 52.9°F | -6.9 |
| tempest_forecast | |||||
| Dew Point | +24h | May 29 15:00 | 43.9°F | 61.3°F | -17.4 |
| Dew Point | +24h | May 29 18:00 | 46.1°F | 61.0°F | -14.9 |
| Dew Point | +12h | Jun 2 18:00 | 42.6°F | 57.0°F | -14.4 |
| Dew Point | +6h | Jun 2 18:00 | 42.6°F | 57.0°F | -14.4 |
| Dew Point | +18h | May 30 12:00 | 44.5°F | 58.7°F | -14.2 |
| Dew Point | +18h | Jun 2 18:00 | 43.1°F | 57.0°F | -13.9 |
| Dew Point | +6h | Jun 2 15:00 | 44.1°F | 58.0°F | -13.9 |
| Dew Point | +24h | May 29 14:00 | 47.1°F | 61.0°F | -13.9 |
| Dew Point | +24h | May 29 14:00 | 47.1°F | 61.0°F | -13.9 |
| Dew Point | +18h | May 31 03:00 | 33.1°F | 46.9°F | -13.8 |
| external_corrected | |||||
| Dew Point | +24h | May 29 15:00 | 52.9°F | 61.3°F | -8.4 |
| Dew Point | +24h | May 29 14:00 | 53.2°F | 61.0°F | -7.9 |
| Dew Point | +6h | Jun 2 15:00 | 50.5°F | 58.0°F | -7.5 |
| Dew Point | +18h | May 31 03:00 | 39.5°F | 46.9°F | -7.4 |
| Dew Point | +6h | Jun 1 21:00 | 62.0°F | 54.7°F | +7.3 |
| Dew Point | +6h | Jun 2 18:00 | 49.7°F | 57.0°F | -7.3 |
| Dew Point | +24h | May 29 18:00 | 53.8°F | 61.0°F | -7.2 |
| Dew Point | +18h | May 29 15:00 | 54.4°F | 61.3°F | -6.9 |
| Dew Point | +24h | Jun 2 16:00 | 51.4°F | 58.3°F | -6.9 |
| Dew Point | +18h | May 30 12:00 | 51.9°F | 58.7°F | -6.8 |
Forecast Skill by Lead Time
Skill score vs. climatological mean at each lead time for the selected variable. Negative = worse than climatology.
14 days · 60 runs
| # | Model | +6h | +12h | +18h | +24h |
|---|---|---|---|---|---|
| 100 | barogram_ensemble ensemble | 72% | 68% | 66% | 67% |
| 202 | external_corrected external | 86% | 82% | 84% | 80% |
| 201 | tempest_forecast external | 84% | 82% | 84% | 87% |
| 200 | nws external | 84% | 81% | 81% | 78% |
| 1 | persistence | 22% | -23% | 27% | 69% |
| 2 | climatological_mean baseline | 0% | 0% | 0% | 0% |
| 3 | weighted_climatological_mean | 56% | 58% | 55% | 56% |
| 4 | climo_deviation | 76% | 75% | 68% | 69% |
| 5 | pressure_tendency | 24% | -17% | 27% | 68% |
| 6 | diurnal_curve | 76% | 74% | 69% | 61% |
| 7 | airmass_diurnal | 65% | 60% | 69% | 63% |
| 8 | analog | 73% | 70% | 65% | 61% |
| 9 | surface_signs | 23% | -6% | 44% | 69% |
| 10 | synoptic_state_machine | 23% | -17% | 39% | 68% |
| 12 | bogo fun | 45% | 34% | 39% | 20% |
| 13 | full_state_analog | 59% | 50% | 53% | 43% |
| 14 | multivariate_trend | 17% | -45% | 42% | -17% |
| 15 | dry_airmass_diurnal | 73% | 63% | 66% | 64% |
120 days · 461 runs
| # | Model | +6h | +12h | +18h | +24h |
|---|---|---|---|---|---|
| 100 | barogram_ensemble ensemble | 52% | 41% | 35% | 28% |
| 202 | external_corrected external | 78% | 74% | 75% | 77% |
| 201 | tempest_forecast external | 78% | 75% | 73% | 77% |
| 200 | nws external | 76% | 75% | 72% | 75% |
| 1 | persistence | 14% | -27% | 6% | 22% |
| 2 | climatological_mean baseline | 0% | 0% | 0% | 0% |
| 3 | weighted_climatological_mean | 17% | 19% | 20% | 16% |
| 4 | climo_deviation | 55% | 45% | 36% | 25% |
| 5 | pressure_tendency | 15% | -25% | 8% | 22% |
| 6 | diurnal_curve | 50% | 40% | 33% | 23% |
| 7 | airmass_diurnal | 55% | 42% | 29% | 23% |
| 8 | analog | 58% | 50% | 43% | 41% |
| 9 | surface_signs | 24% | 4% | 30% | 33% |
| 10 | synoptic_state_machine | 24% | 5% | 30% | 31% |
| 12 | bogo fun | 41% | 28% | 26% | 14% |
| 13 | full_state_analog | 43% | 36% | 32% | 22% |
| 14 | multivariate_trend | -11% | -92% | -42% | -100% |
| 15 | dry_airmass_diurnal | 51% | 45% | 43% | 40% |
all time · 461 runs
| # | Model | +6h | +12h | +18h | +24h |
|---|---|---|---|---|---|
| 100 | barogram_ensemble ensemble | 52% | 41% | 35% | 28% |
| 202 | external_corrected external | 78% | 74% | 75% | 77% |
| 201 | tempest_forecast external | 78% | 75% | 73% | 77% |
| 200 | nws external | 76% | 75% | 72% | 75% |
| 1 | persistence | 14% | -27% | 6% | 22% |
| 2 | climatological_mean baseline | 0% | 0% | 0% | 0% |
| 3 | weighted_climatological_mean | 17% | 19% | 20% | 16% |
| 4 | climo_deviation | 55% | 45% | 36% | 25% |
| 5 | pressure_tendency | 15% | -25% | 8% | 22% |
| 6 | diurnal_curve | 50% | 40% | 33% | 23% |
| 7 | airmass_diurnal | 55% | 42% | 29% | 23% |
| 8 | analog | 58% | 50% | 43% | 41% |
| 9 | surface_signs | 24% | 4% | 30% | 33% |
| 10 | synoptic_state_machine | 24% | 5% | 30% | 31% |
| 12 | bogo fun | 41% | 28% | 26% | 14% |
| 13 | full_state_analog | 43% | 36% | 32% | 22% |
| 14 | multivariate_trend | -11% | -92% | -42% | -100% |
| 15 | dry_airmass_diurnal | 51% | 45% | 43% | 40% |
last 10 runs
| # | Model | +6h | +12h | +18h | +24h |
|---|---|---|---|---|---|
| 100 | barogram_ensemble ensemble | -64% | -45% | -31% | -40% |
| 202 | external_corrected external | 53% | 71% | 75% | 70% |
| 201 | tempest_forecast external | 44% | 72% | 68% | 79% |
| 200 | nws external | 15% | 36% | 61% | 53% |
| 1 | persistence | -260% | -398% | -112% | -27% |
| 2 | climatological_mean baseline | 0% | 0% | 0% | 0% |
| 3 | weighted_climatological_mean | -10% | -9% | -6% | -6% |
| 4 | climo_deviation | -0% | -20% | -9% | -20% |
| 5 | pressure_tendency | -228% | -349% | -97% | -28% |
| 6 | diurnal_curve | -22% | -32% | -23% | -41% |
| 7 | airmass_diurnal | -72% | -62% | -10% | -54% |
| 8 | analog | -23% | -37% | -56% | -88% |
| 9 | surface_signs | -243% | -352% | -82% | -26% |
| 10 | synoptic_state_machine | -234% | -368% | -117% | -35% |
| 12 | bogo fun | -96% | -181% | -109% | -142% |
| 13 | full_state_analog | -69% | -108% | -61% | -128% |
| 14 | multivariate_trend | -223% | -529% | -147% | -302% |
| 15 | dry_airmass_diurnal | -68% | -33% | -2% | -53% |
Skill over time
Y-axis: MAE ÷ climo MAE per run. 1.0 = same error as climatological mean · below 1.0 = better · above 1.0 = worse. Grey: climo (long-dash) and persistence (dotted). Per-run detail: solid with rolling average overlay.
Model Analysis
Bias Over Time
Score Heatmap
Forecast Trajectory
How each source's prediction for the most recently scored valid time evolved. Dashed black line = observed.
Diurnal Stratification
Weights
Skill-score weights computed by barogram tune. Each member is scored by how much it improves over a naive baseline; members that beat the baseline earn proportional weight, and those that don’t are floored or subfloored. Sector columns show how trust shifts across time-of-day.
barogram_ensemble (model 100)
equal weight: 7.1% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| 1 persistence | 11.9% | 6.7% | 5.4% | 5.1% |
| 2 climatological_mean | 1.4% | 2.0% | 1.0% | 0.9% |
| 3 weighted_climatological_mean | 6.7% | 5.1% | 6.2% | 4.0% |
| 4 climo_deviation | 9.7% | 8.3% | 7.9% | 8.3% |
| 5 pressure_tendency | 1.9% | 3.8% | 3.7% | 2.9% |
| 6 diurnal_curve | 10.0% | 9.2% | 8.5% | 9.4% |
| 7 airmass_diurnal | 9.5% | 10.1% | 10.4% | 10.2% |
| 8 analog | 16.0% | 10.2% | 8.6% | 15.4% |
| 9 surface_signs | 8.3% | 14.0% | 14.8% | 15.6% |
| 10 synoptic_state_machine | 13.0% | 20.7% | 24.2% | 18.6% |
| 12 bogo | 0.2% | 0.2% | 0.3% | 0.2% |
| 13 full_state_analog | 7.4% | 8.2% | 8.6% | 8.6% |
| 14 multivariate_trend | 2.9% | 1.0% | 1.3% | 1.4% |
| 15 dry_airmass_diurnal | 11.5% | 10.3% | 8.5% | 8.9% |
weighted_climatological_mean (model 3)
weighted_climatological_mean (model 3)
equal weight: 11.1% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| 1 today-only | 15.0% | 20.6% | 22.0% | 22.8% |
| 2 week-only | 9.5% | 9.8% | 8.8% | 8.7% |
| 3 month-only | 6.7% | 6.8% | 6.6% | 6.6% |
| 4 week+month | 8.9% | 9.2% | 8.6% | 8.7% |
| 5 today+week+month | 13.1% | 11.1% | 12.6% | 11.3% |
| 6 exp-steep | 13.1% | 12.0% | 11.5% | 12.1% |
| 7 exp-fast | 13.7% | 11.9% | 11.5% | 11.5% |
| 8 exp-moderate | 11.6% | 10.5% | 10.4% | 10.3% |
| 9 exp-gentle | 8.4% | 8.2% | 8.0% | 8.0% |
climo_deviation (model 4)
climo_deviation (model 4)
equal weight: 1.9% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| static | ||||
| 1 s-today-only | 1.0% | 1.3% | 1.5% | 1.4% |
| 2 s-week-only | 1.8% | 1.9% | 2.9% | 1.5% |
| 3 s-month-only | 2.1% | 1.9% | 5.5% | 1.5% |
| 4 s-week+month | 2.0% | 1.9% | 4.1% | 1.5% |
| 5 s-today+week+month | 1.1% | 1.7% | 1.6% | 1.5% |
| 6 s-exp-steep | 1.1% | 1.5% | 1.5% | 1.5% |
| 7 s-exp-fast | 1.5% | 1.8% | 2.4% | 1.5% |
| 8 s-exp-moderate | 1.8% | 1.8% | 3.9% | 1.5% |
| 9 s-exp-gentle | 2.1% | 1.9% | 5.2% | 1.5% |
| decay k=0.03 | ||||
| 10 d03-today-only | 1.4% | 1.8% | 1.8% | 1.9% |
| 11 d03-week-only | 3.1% | 2.5% | 1.9% | 3.0% |
| 12 d03-month-only | 0.2% | 0.4% | 0.2% | 0.2% |
| 13 d03-week+month | 3.4% | 2.6% | 2.3% | 3.4% |
| 14 d03-today+week+month | 2.3% | 2.5% | 1.9% | 3.0% |
| 15 d03-exp-steep | 1.7% | 2.0% | 1.7% | 1.7% |
| 16 d03-exp-fast | 2.3% | 2.5% | 1.9% | 3.1% |
| 17 d03-exp-moderate | 3.0% | 2.6% | 2.3% | 3.5% |
| 18 d03-exp-gentle | 3.3% | 2.6% | 2.8% | 3.7% |
| decay k=0.05 | ||||
| 19 d05-today-only | 1.5% | 1.9% | 1.8% | 1.9% |
| 20 d05-week-only | 2.2% | 2.3% | 1.6% | 2.0% |
| 21 d05-month-only | 2.2% | 2.3% | 1.7% | 2.7% |
| 22 d05-week+month | 2.2% | 2.4% | 1.7% | 2.4% |
| 23 d05-today+week+month | 2.2% | 2.4% | 1.8% | 2.5% |
| 24 d05-exp-steep | 1.7% | 1.9% | 1.5% | 1.4% |
| 25 d05-exp-fast | 2.2% | 2.3% | 1.7% | 2.4% |
| 26 d05-exp-moderate | 2.3% | 2.4% | 1.7% | 2.7% |
| 27 d05-exp-gentle | 2.3% | 2.4% | 1.7% | 2.7% |
| decay k=0.10 | ||||
| 28 d10-today-only | 1.5% | 1.8% | 1.7% | 1.8% |
| 29 d10-week-only | 1.7% | 1.7% | 1.1% | 1.1% |
| 30 d10-month-only | 1.6% | 1.6% | 1.0% | 1.0% |
| 31 d10-week+month | 1.7% | 1.7% | 1.2% | 1.1% |
| 32 d10-today+week+month | 1.8% | 1.8% | 1.4% | 1.3% |
| 33 d10-exp-steep | 1.5% | 1.7% | 1.2% | 1.2% |
| 34 d10-exp-fast | 1.9% | 1.8% | 1.3% | 1.2% |
| 35 d10-exp-moderate | 1.9% | 1.8% | 1.3% | 1.2% |
| 36 d10-exp-gentle | 1.7% | 1.6% | 1.1% | 1.1% |
| 37 a03-today-only | 1.5% | 1.6% | 1.6% | 1.8% |
| 38 a03-week-only | 1.7% | 1.8% | 1.7% | 1.8% |
| 39 a03-month-only | 1.8% | 1.8% | 1.7% | 1.8% |
| 40 a03-week+month | 1.7% | 1.8% | 1.7% | 1.8% |
| 41 a03-today+week+month | 1.7% | 1.8% | 1.7% | 1.8% |
| 42 a03-exp-steep | 1.7% | 1.8% | 1.7% | 1.8% |
| 43 a03-exp-fast | 1.7% | 1.8% | 1.7% | 1.8% |
| 44 a03-exp-moderate | 1.8% | 1.8% | 1.7% | 1.8% |
| 45 a03-exp-gentle | 1.8% | 1.8% | 1.7% | 1.8% |
| 46 a06-today-only | 1.5% | 1.5% | 1.5% | 1.7% |
| 47 a06-week-only | 1.7% | 1.5% | 1.4% | 1.6% |
| 48 a06-month-only | 1.7% | 1.4% | 1.3% | 1.7% |
| 49 a06-week+month | 1.7% | 1.5% | 1.4% | 1.7% |
| 50 a06-today+week+month | 1.7% | 1.5% | 1.4% | 1.7% |
| 51 a06-exp-steep | 1.7% | 1.6% | 1.5% | 1.8% |
| 52 a06-exp-fast | 1.7% | 1.6% | 1.5% | 1.7% |
| 53 a06-exp-moderate | 1.7% | 1.5% | 1.4% | 1.7% |
| 54 a06-exp-gentle | 1.7% | 1.4% | 1.3% | 1.7% |
pressure_tendency (model 5)
pressure_tendency (model 5)
equal weight: 9.1% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| 1 zambretti | 41.0% | 39.1% | 37.4% | 41.7% |
| 2 linear_1h | 7.0% | 6.9% | 6.6% | 11.7% |
| 3 linear_3h | 7.4% | 6.7% | 6.8% | 6.6% |
| 4 linear_6h | 8.7% | 6.6% | 7.0% | 6.7% |
| 5 linear_3h_hl45 | 7.3% | 6.7% | 8.8% | 6.6% |
| 6 quad_3h | 4.8% | 6.0% | 5.7% | 4.5% |
| 7 quad_6h | 4.7% | 5.3% | 5.4% | 4.2% |
| 8 quad_3h_hl20 | 4.8% | 6.1% | 5.8% | 4.8% |
| 9 quad_3h_hl45 | 4.8% | 6.1% | 5.8% | 4.6% |
| 10 quad_6h_hl20 | 4.7% | 5.2% | 5.3% | 4.2% |
| 11 quad_6h_hl45 | 4.7% | 5.2% | 5.3% | 4.2% |
diurnal_curve (model 6)
diurnal_curve (model 6)
equal weight: 3.3% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| sine | ||||
| 1 sine-7d-current | 5.8% | 5.7% | 6.0% | 5.8% |
| 2 sine-7d-midnight | 2.2% | 2.4% | 2.3% | 2.5% |
| 3 sine-7d-none | 2.8% | 2.9% | 2.3% | 2.7% |
| 4 sine-14d-current | 5.8% | 5.7% | 6.2% | 5.8% |
| 5 sine-14d-midnight | 2.2% | 2.4% | 2.3% | 2.4% |
| 6 sine-14d-none | 3.6% | 2.8% | 2.1% | 2.4% |
| 7 sine-30d-current | 5.9% | 5.7% | 6.2% | 5.9% |
| 8 sine-30d-midnight | 2.1% | 2.4% | 2.4% | 2.5% |
| 9 sine-30d-none | 0.8% | 1.7% | 1.2% | 1.2% |
| piecewise | ||||
| 13 piecewise-7d-current | 5.6% | 5.6% | 5.9% | 5.6% |
| 14 piecewise-7d-midnight | 2.4% | 2.4% | 2.2% | 2.5% |
| 15 piecewise-7d-none | 2.6% | 2.8% | 2.2% | 2.6% |
| 16 piecewise-14d-current | 5.7% | 5.7% | 6.1% | 5.8% |
| 17 piecewise-14d-midnight | 2.3% | 2.3% | 2.2% | 2.5% |
| 18 piecewise-14d-none | 3.5% | 2.7% | 2.1% | 2.3% |
| 19 piecewise-30d-current | 5.9% | 5.8% | 6.2% | 5.9% |
| 20 piecewise-30d-midnight | 2.2% | 2.4% | 2.3% | 2.5% |
| 21 piecewise-30d-none | 0.9% | 1.7% | 1.2% | 1.0% |
| asymmetric | ||||
| 25 asymmetric-7d-current | 5.7% | 5.4% | 6.0% | 5.4% |
| 26 asymmetric-7d-midnight | 2.0% | 2.0% | 2.2% | 2.5% |
| 27 asymmetric-7d-none | 2.4% | 2.6% | 2.1% | 2.4% |
| 28 asymmetric-14d-current | 5.7% | 5.5% | 6.1% | 5.4% |
| 29 asymmetric-14d-midnight | 2.0% | 2.0% | 2.2% | 2.4% |
| 30 asymmetric-14d-none | 3.4% | 2.4% | 2.1% | 2.4% |
| 31 asymmetric-30d-current | 5.7% | 5.5% | 6.2% | 5.6% |
| 32 asymmetric-30d-midnight | 2.1% | 2.1% | 2.2% | 2.5% |
| 33 asymmetric-30d-none | 0.9% | 0.9% | 1.1% | 1.7% |
| solar | ||||
| 37 solar-current | 5.2% | 5.0% | 5.5% | 5.0% |
| 38 solar-midnight | 1.6% | 1.5% | 2.0% | 2.4% |
| 39 solar-none | 1.0% | 2.2% | 1.0% | 0.2% |
airmass_diurnal (model 7)
airmass_diurnal (model 7)
equal weight: 6.2% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| 1 clearness-only | 6.2% | 7.0% | 6.7% | 6.9% |
| 2 clearness+dewpoint | 5.7% | 6.8% | 6.4% | 6.8% |
| 3 clearness-pressure-projected | 7.0% | 6.9% | 6.7% | 6.9% |
| 4 wind-sector-only | 8.4% | 6.9% | 6.9% | 6.8% |
| 5 wind+clearness | 5.0% | 6.6% | 6.4% | 6.4% |
| 6 morning-warmup-rate | 9.8% | 7.2% | 7.0% | 7.3% |
| 7 dewpoint-only | 9.8% | 7.2% | 7.2% | 7.1% |
| 8 combined-full | 4.7% | 6.5% | 6.1% | 6.3% |
| 9 clearness-trend | 6.5% | 7.1% | 7.3% | 7.3% |
| 10 clearness-trend+dewpoint | 5.4% | 6.7% | 6.7% | 6.9% |
| 11 clearness-trend+pressure-proj | 7.1% | 7.1% | 7.5% | 7.4% |
| 12 pressure-departure | 0.2% | 0.2% | 0.2% | 0.2% |
| 13 pressure-dep+clearness-trend | 3.5% | 3.4% | 3.7% | 3.8% |
| 14 wind-veer | 6.6% | 6.3% | 6.9% | 6.4% |
| 15 clearness-stability | 8.6% | 8.0% | 7.7% | 7.6% |
| 16 veer+clearness | 5.5% | 6.2% | 6.5% | 6.1% |
analog (model 8)
analog (model 8)
equal weight: 12.5% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| 1 k3 | 10.9% | 11.8% | 11.0% | 9.4% |
| 2 k5 | 12.3% | 12.4% | 11.6% | 11.1% |
| 3 k10 | 13.4% | 12.8% | 13.1% | 14.5% |
| 4 k20 | 12.1% | 11.9% | 18.0% | 13.0% |
| 5 k5-moisture | 12.8% | 12.9% | 12.0% | 12.2% |
| 6 k5-synoptic | 12.1% | 12.2% | 10.9% | 12.1% |
| 7 k10-dist-weighted | 13.6% | 13.1% | 12.1% | 14.5% |
| 8 k5-seasonal | 12.9% | 12.9% | 11.4% | 13.2% |
surface_signs (model 9)
surface_signs (model 9)
equal weight: 25.0% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| 1 wind-rotation | 37.0% | 34.7% | 30.2% | 27.2% |
| 2 dp-trend | 16.7% | 20.3% | 20.2% | 24.1% |
| solar | ||||
| 3 solar-cloud | 27.4% | 22.5% | 27.8% | 27.6% |
| 4 convective | 18.9% | 22.6% | 21.8% | 21.1% |
synoptic_state_machine (model 10)
synoptic_state_machine (model 10)
equal weight: 14.3% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| 1 full-4 | 10.4% | 11.2% | 11.3% | 9.6% |
| 2 no-cloud | 14.3% | 14.2% | 13.4% | 14.7% |
| 3 wind-moisture | 14.4% | 13.7% | 13.1% | 13.8% |
| 4 moisture-convective | 14.9% | 21.0% | 18.6% | 19.2% |
| 5 coarse-4 | 12.5% | 13.0% | 11.3% | 10.5% |
| 6 full-4+ptend | 20.4% | 12.5% | 12.8% | 14.7% |
| 7 no-cloud+ptend | 13.2% | 14.5% | 19.5% | 17.6% |
bogo (model 12)
bogo (not tuned) (model 12)
equal weight: 3.7% per member
| Member | Avg weight |
|---|---|
| 1 drunkard | 3.7% |
| 2 blind-drunkard | 3.7% |
| 3 chaos | 3.7% |
| 4 vibes | 3.7% |
| 5 contrarian | 3.7% |
| 6 hype-train | 3.7% |
| 7 mercury-retrograde | 3.7% |
| 8 weatherperson | 3.7% |
| 9 crowd-sourced | 3.7% |
| 10 groundhog-day | 3.7% |
| 11 CG | 3.7% |
| 12 climate-anxiety | 3.7% |
| 13 too-early | 3.7% |
| 14 monday | 3.7% |
| 15 grant-funded | 3.7% |
| 16 the-algorithm | 3.7% |
| 17 peer-review | 3.7% |
| 18 dew-denier | 3.7% |
| 19 breaking-news | 3.7% |
| 20 engagement-bait | 3.7% |
| 21 both-sides | 3.7% |
| 22 sponsored-content | 3.7% |
| 23 influencer | 3.7% |
| 24 panic | 3.7% |
| 25 nostalgia | 3.7% |
| 26 astroturfed | 3.7% |
| 27 record-breaker | 3.7% |
full_state_analog (model 13)
full_state_analog (model 13)
equal weight: 12.5% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| 1 full-k5 | 12.4% | 12.8% | 12.6% | 16.9% |
| 2 full-k10 | 17.2% | 12.4% | 13.9% | 12.2% |
| 3 thermo-wind | 14.5% | 14.5% | 14.0% | 14.8% |
| solar | ||||
| 4 solar-thermo | 11.3% | 11.9% | 12.5% | 10.2% |
| 5 synoptic | 5.4% | 12.2% | 7.4% | 11.3% |
| 6 precip-signal | 9.4% | 9.5% | 10.2% | 8.2% |
| 7 full-seasonal | 16.6% | 13.9% | 14.6% | 13.9% |
| 8 full-dist-weighted | 13.2% | 12.8% | 14.7% | 12.6% |
multivariate_trend (model 14)
multivariate_trend (model 14)
equal weight: 6.2% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| 1 linear-1h | 10.0% | 9.8% | 10.1% | 11.3% |
| 2 linear-3h | 3.7% | 3.4% | 6.4% | 3.2% |
| 3 linear-6h | 3.3% | 3.8% | 3.3% | 3.3% |
| 4 linear-12h | 5.9% | 12.9% | 4.5% | 3.8% |
| 5 wls-3h-hl20 | 4.0% | 5.8% | 9.0% | 3.5% |
| 6 wls-6h-hl45 | 3.4% | 3.8% | 3.3% | 3.4% |
| 7 wls-6h-hl120 | 3.4% | 3.8% | 3.3% | 3.3% |
| 8 quad-3h | 3.2% | 3.2% | 2.7% | 2.7% |
| 9 quad-6h | 3.2% | 3.2% | 2.7% | 2.7% |
| 10 ridge-6h | 4.1% | 3.9% | 4.0% | 3.3% |
| 11 linear-18h | 3.9% | 5.2% | 4.8% | 5.3% |
| 12 linear-24h | 3.2% | 3.2% | 2.7% | 2.7% |
| 13 linear-36h | 11.8% | 14.5% | 14.0% | 17.6% |
| 14 linear-48h | 26.1% | 12.3% | 18.7% | 17.8% |
| 15 wls-18h-hl240 | 4.3% | 5.5% | 4.9% | 5.6% |
| 16 wls-24h-hl360 | 6.5% | 5.7% | 5.7% | 10.5% |
dry_airmass_diurnal (model 15)
dry_airmass_diurnal (model 15)
equal weight: 16.7% per member
| Member | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| 1 24h-amp | 17.3% | 16.8% | 14.3% | 17.3% |
| 2 48h-amp | 16.5% | 16.3% | 15.4% | 16.1% |
| 3 72h-amp | 16.2% | 16.8% | 19.6% | 16.2% |
| 4 24h-amp-ridge | 17.3% | 16.9% | 14.7% | 17.5% |
| 5 48h-amp-ridge | 16.5% | 16.3% | 15.9% | 16.4% |
| 6 72h-amp-ridge | 16.3% | 16.9% | 20.1% | 16.4% |
external_corrected (model 202)
external_corrected (model 202)
NWS group (members 1–5) vs. Tempest group (members 6–10) — inverse-MAE weighting per variable, lead, and time of day. Blue = NWS leads, orange = Tempest leads. — = insufficient history.
| Variable / Lead | night 00-05 | morning 06-11 | afternoon 12-17 | evening 18-23 |
|---|---|---|---|---|
| temperature 6h | NWS 55% | 50 / 50 | Tmp 58% | Tmp 55% |
| temperature 12h | NWS 53% | 50 / 50 | Tmp 56% | 50 / 50 |
| temperature 18h | 50 / 50 | 50 / 50 | Tmp 55% | NWS 52% |
| temperature 24h | Tmp 53% | 50 / 50 | Tmp 53% | Tmp 54% |
| dewpoint 6h | NWS 53% | NWS 56% | NWS 56% | NWS 58% |
| dewpoint 12h | NWS 54% | NWS 58% | NWS 57% | NWS 61% |
| dewpoint 18h | NWS 53% | NWS 56% | NWS 56% | NWS 60% |
| dewpoint 24h | NWS 53% | NWS 59% | NWS 63% | NWS 58% |
Learnings
Tracked hypotheses that accumulate evidence over time. Thin data is expected early — the goal is to watch these relationships evolve.
Hypothesis A: Clearness persistence vs. pressure projection
Question: Does projecting the solar clearness index forward via pressure tendency (airmass_diurnal member 3) reduce temperature MAE compared to simply persisting it (member 1)? The weights table shows whether barogram tune tracks the better performer over time.
Status: +6h: m3 (pressure-projected) leads by 1.0°F MAE; +12h: m3 (pressure-projected) leads by 0.1°F MAE. The ensemble is currently leaning on m1 (clearness-only) for temperature.
show charts
Current tuning weights (members 1 and 3)
| variable | lead | member 1 clearness-only | member 3 clearness-pressure-projected |
|---|---|---|---|
| dewpoint | +6h | 0.0657 | 0.0657 |
| dewpoint | +12h | 0.0648 | 0.0648 |
| dewpoint | +18h | 0.0608 | 0.0608 |
| dewpoint | +24h | 0.0613 | 0.0613 |
| temperature | +6h | 0.0709 | 0.0707 |
| temperature | +12h | 0.0740 | 0.0745 |
| temperature | +18h | 0.0757 | 0.0795 |
| temperature | +24h | 0.0750 | 0.0754 |
Hypothesis B: Solar clearness index vs. NWS sky cover
Question: Does the Tempest station’s solar-derived clearness index (k) agree with NWS-reported sky cover? Each point is a daily average. What to look for: the two lines should move inversely (clearness drops on cloudy days, sky cover rises). If they move together or persistently diverge, there may be a sensor issue or a real local microclimate difference between the Tempest site and KMSP. NWS sky cover is never used as a model input — this is validation only.
Status: clearness and sky cover tend to move in opposite directions, but the pattern is noisy (30 days of data). Relationship is forming.
show chart
Hypothesis C: Is the ensemble closing the gap on its best member?
Question: The ensemble is currently worse than climo_deviation on temperature at every lead. The line shows the rolling gap (ensemble MAE − climo_deviation MAE, 10-run mean) over time. What to look for: the line trending toward or below zero — that means the ensemble is learning to match or beat its best member. A flat or rising line means the weighting is not converging.
Status: +6h gap +2.0°F (↑ diverging); +24h gap +0.9°F (↑ diverging). Ensemble still trails climo_deviation.
show charts
Hypothesis D: pressure_tendency — best and worst simultaneously
Question: pressure_tendency is the best model for dewpoint at all leads, but its pressure MAE climbs steeply (40+ hPa at 24h vs persistence’s 5 hPa). Both lines are shown at +12h with a 10-run rolling mean. What to look for: the two lines diverging — low dewpoint, high pressure. That’s expected and confirms the model design trade-off. If pressure MAE starts dropping back toward dewpoint level, something has changed.
Status at +12h: dewpoint MAE 4.2°F, pressure MAE 2.5 hPa. Pressure error is surprisingly low. If it stays this close to normal, the model's pressure sacrifice may have shrunk.
show chart
Hypothesis E: How long does the climo_deviation advantage last?
At +6h, climo_deviation beats persistence by ~1.9°F; by +24h that gap has shrunk to ~0.5°F. Lines are 10-run rolling means. What to look for: the two lines converging at +24h (gap approaching zero) while staying well separated at +6h. If they converge at +6h too, the recency signal has lost value. A seasonal shift (gap changes in summer vs winter) would also be meaningful.
Status: +6h: climo 3.2°F vs persistence 11.3°F (gap +8.2°F); +24h: climo 5.4°F vs persistence 5.7°F (gap +0.3°F). Advantage decaying with lead as expected.
show charts
Hypothesis F: Model specialization map
Which base model wins each (variable × lead) cell? Hover for MAE and sample size. What to look for: does the ensemble weighting actually reflect this map? If the ensemble underperforms for a variable, check whether the dominant model here gets high weight in that column.
Status: external_corrected has the lowest error in 7 of 12 variable/lead combinations. The ensemble is not giving extra weight to the model that's actually winning (1 of 12 combinations agree, 8%).
show chart
Hypothesis G: Does diurnal_curve ever beat climo_deviation?
diurnal_curve models the daily temperature cycle explicitly. climo_deviation wins at every lead right now by anchoring to recent deviations from climatology. Lines are 10-run rolling means. What to look for: diurnal_curve closing the gap, especially at overnight leads (+18h/+24h) where solar effects matter less. If it never closes, the recency signal in climo_deviation is the explanation — not the diurnal cycle.
Status: +6h: diurnal 3.9°F vs climo_dev 3.2°F (gap +0.7°F); +24h: diurnal 6.4°F vs climo_dev 5.4°F (gap +1.0°F). Gap grows at longer leads — diurnal_curve worsens with time.
show charts
Hypothesis H: Does trend window length have an optimal size?
Question: For each lead time, is there an optimal trend window where MAE is minimized — short enough to capture the recent signal, long enough to avoid noise? Or does skill simply improve monotonically with more history? multivariate_trend members span 1–48h windows; each point here is the all-time avg MAE for one (member, lead) pair. Note: early data for short-window members at long leads reflects pre-fix era forecast errors — those members are now restricted to appropriate leads.
Status: +6h best: 36h window (9.7°F MAE); +12h best: 48h window (9.8°F MAE); +18h best: 48h window (7.7°F MAE); +24h best: 48h window (11.7°F MAE).
show charts
Latest Forecast Run
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 86.9°F | 86.9°F | 86.9°F | 86.9°F |
| Dew Point | 72.8°F | 72.8°F | 72.8°F | 72.8°F |
| Station P | 976.2hPa | 976.2hPa | 976.2hPa | 976.2hPa |
| SLP | 1008.1 hPa | 1008.1 hPa | 1008.1 hPa | 1008.1 hPa |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 80.4°F | 65.0°F | 65.0°F | 80.0°F |
| Dew Point | 60.9°F | 58.3°F | 59.7°F | 63.1°F |
| Station P | 981.3hPa | 982.1hPa | 982.6hPa | 982.6hPa |
| SLP | 1013.2 hPa | 1014.0 hPa | 1014.5 hPa | 1014.6 hPa |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 80.7°F | 65.6°F | 65.8°F | 81.0°F |
| Dew Point | 61.5°F | 58.7°F | 60.3°F | 64.6°F |
| Station P | 980.6hPa | 981.4hPa | 982.5hPa | 979.9hPa |
| SLP | 1012.5 hPa | 1013.3 hPa | 1014.5 hPa | 1011.9 hPa |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 86.2°F | 70.5°F | 70.4°F | 85.9°F |
| Dew Point | 69.1°F | 65.4°F | 66.4°F | 71.1°F |
| Station P | 976.0hPa | 976.6hPa | 978.6hPa | 979.2hPa |
| SLP | 1007.9 hPa | 1008.5 hPa | 1010.5 hPa | 1011.1 hPa |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | — | — | — | — |
| Dew Point | — | — | — | — |
| Station P | — | — | — | — |
| SLP | — | — | — | — |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 83.8°F | 71.1°F | 70.7°F | 84.7°F |
| Dew Point | 68.3°F | 64.8°F | 66.9°F | 72.6°F |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 88.8°F | 70.0°F | 70.3°F | 89.9°F |
| Dew Point | 71.8°F | 69.4°F | 70.7°F | 72.8°F |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 82.9°F | 68.2°F | 65.6°F | 81.1°F |
| Dew Point | 63.7°F | 59.0°F | 59.9°F | 65.6°F |
| Station P | 977.1hPa | 978.3hPa | 979.3hPa | 978.6hPa |
| SLP | 1009.0 hPa | 1010.2 hPa | 1011.2 hPa | 1010.5 hPa |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 87.3°F | 77.7°F | 82.8°F | 87.4°F |
| Dew Point | 73.1°F | 72.5°F | 72.6°F | 73.6°F |
| Station P | 976.2hPa | 976.2hPa | 976.1hPa | 976.0hPa |
| SLP | 1008.2 hPa | 1008.1 hPa | 1008.0 hPa | 1007.9 hPa |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 88.0°F | 88.8°F | 88.2°F | 87.5°F |
| Dew Point | 73.5°F | 73.4°F | 73.2°F | 72.9°F |
| Station P | 976.7hPa | 976.7hPa | 977.0hPa | 977.0hPa |
| SLP | 1008.6 hPa | 1008.6 hPa | 1008.9 hPa | 1009.0 hPa |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 81.5°F | 73.7°F | 75.8°F | 83.4°F |
| Dew Point | 63.6°F | 61.0°F | 62.5°F | 63.2°F |
| Station P | 977.4hPa | 977.3hPa | 978.1hPa | 977.2hPa |
| SLP | 1009.4 hPa | 1009.3 hPa | 1010.0 hPa | 1009.1 hPa |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 79.2°F | 64.8°F | 62.1°F | 79.9°F |
| Dew Point | 58.6°F | 54.7°F | 55.7°F | 59.7°F |
| Station P | 978.2hPa | 979.4hPa | 980.7hPa | 980.3hPa |
| SLP | 1010.1 hPa | 1011.3 hPa | 1012.7 hPa | 1012.2 hPa |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 96.2°F | 72.4°F | 104.3°F | 123.6°F |
| Dew Point | 93.6°F | 94.5°F | 105.7°F | 110.7°F |
| Station P | 968.9hPa | 967.3hPa | 965.6hPa | 964.0hPa |
| SLP | 1000.9 hPa | 999.2 hPa | 997.6 hPa | 995.9 hPa |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 85.5°F | 76.0°F | 72.9°F | 84.2°F |
| Dew Point | 63.8°F | 59.1°F | 56.6°F | 57.9°F |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 85.3°F | 70.1°F | 72.8°F | 84.7°F |
| Dew Point | 69.4°F | 66.2°F | 65.9°F | 68.7°F |
| Station P | 976.5hPa | 973.7hPa | 977.1hPa | 978.3hPa |
| SLP | 1008.4 hPa | 1005.6 hPa | 1009.0 hPa | 1010.2 hPa |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 80.0°F | 70.0°F | 67.0°F | 83.0°F |
| Dew Point | 68.0°F | 65.0°F | 65.0°F | 71.0°F |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 82.4°F | 69.8°F | 66.2°F | 82.4°F |
| Dew Point | 67.6°F | 67.1°F | 65.9°F | 66.1°F |
| Variable | +6h | +12h | +18h | +24h |
|---|---|---|---|---|
| Temperature | 81.1°F | 69.3°F | 66.7°F | 82.5°F |
| Dew Point | 71.1°F | 69.0°F | 68.4°F | 73.0°F |
Observation History
Tempest Weather Station
| Time | Temperature | Dew Point | Station P | SLP | Wind | Precip (day) | Lightning |
|---|
NWS: Minneapolis-St. Paul Intl (KMSP)
| Time | Temperature | Dew Point | Wind | Pressure | Sky |
|---|