The accuracy edge, measured
Our blend beats the best single model
7.1%
lower forecast error than the best single model at 1–3 days out
Blending all seven models — weighted by each one's verified regional skill — beats every individual model. No single model wins at every horizon, so the ensemble is consistently more accurate than picking any one.
| Horizon | Blend MAE | Best single model | vs best |
|---|---|---|---|
| All horizons | 5.29 cm | JMA (5.52 cm) | −4.3% |
| 1–3 days out | 4.89 cm | JMA (5.26 cm) | −7.1% |
| 4–7 days out | 5.55 cm | JMA (5.67 cm) | −2.1% |
| 8–14 days out | 5.47 cm | ECMWF (5.68 cm) | −3.8% |
MAE = mean absolute error in centimeters. Scored on snow days (measured snowfall ≥ 1 cm), against measured ground truth only — SNOTEL stations and resort-reported totals, never another model. Lower is better; a negative “vs best” means the blend has lower error than the strongest single model for that horizon. Coverage today is weighted toward SNOTEL-instrumented (largely North American) resorts. Updated Jun 25, 2026, 11:35 PM UTC.
Why we built this
Ski forecasts disagree — a lot. ECMWF, GFS, GEM, and four other global models can diverge by 30 cm or more on the same storm. Picking the wrong one means bad trip timing, missed powder, or chasing storms that never arrive.
SnowSure runs a daily verification pipeline: we store what each model predicted, wait for the snow to fall, then grade the forecast against real ground truth — never against another model. That corpus powers regional model weights, per-resort accuracy cards, and our ML extended outlook.
Verification corpus
One row per resort × model × forecast day × target day. Grows daily as the verify-forecasts cron runs.
Verified forecast rows
6,303,901
All horizons, all models
Resorts tracked
450
Mountains with coordinates
Weather models
7
ECMWF, GFS, GEM, JMA, ICON, Météo-France, Met Norway
Date range
2024-01-01 → 2026-06-26
Historical backfill + live archive
Historical backfill
4,159,212 rows
Open-Meteo Previous Runs vs ERA5 actuals, 2024-01-01 → pre-archive gap
Live daily archive
2,144,689 rows
From 2026-02-21 — stored forecasts vs measured outcomes each morning
Ground truth tiers
We never grade a forecast against itself. Actual snowfall is resolved through a strict priority ladder — higher tiers always win when available for that resort and date.
961 active stations matched to resorts · daily NRCS ingestion
Scraped from official resort snow reports where available
Used only when no SNOTEL or resort report exists for that mountain and date
Best model by region
Recalculated weekly from verified mean absolute error (MAE). Skill score is 100 − (MAE × 5), capped 0–100 — higher is better. Each resort page shows a 90-day breakdown for that specific mountain.
| Region | Top model | Day-1 MAE | Skill score |
|---|---|---|---|
| Japan | JMA | 0 cm | 100 |
| Alps | Météo-France | 0 cm | 100 |
| Sierra | JMA | 0 cm | 100 |
| Scandinavia | GEM | 0 cm | 100 |
| Pyrenees | ECMWF | 0 cm | 100 |
| East Coast | JMA | 0 cm | 100 |
| Rockies | Météo-France | 0 cm | 100 |
| Cascades | GFS | 0.1 cm | 99.7 |
| Southern Alps | Météo-France | 0.2 cm | 99.1 |
| Andes | GFS | 1.4 cm | 93.5 |
How verification works
- 1
Capture forecasts
Every hour, weather-sync stores each model's multi-day snowfall forecast per resort in weather_snapshots. A daily archive row is kept indefinitely.
- 2
Measure what fell
SNOTEL cron pulls station snow-water equivalent; sync-resort-depths captures operator-reported 24h totals. ERA5 fills gaps for resorts without local sensors.
- 3
Grade predictions
The verify-forecasts cron (8 AM UTC) pairs yesterday's stored forecasts with measured actuals and writes one verification row per model and horizon.
- 4
Weight and display
Weekly model-accuracy cron updates regional blending weights. Resort pages show per-model MAE; this page shows the global corpus and regional leaders.
Use this data
Per-resort accuracy appears on every resort page. Developers and AI agents can query the JSON API — cite SnowSure when sharing forecast credibility.
GET /api/v1/blend-accuracy · GET /api/v1/forecast-trust · GET /api/v1/resorts/{slug}/forecast-accuracy






