❄️ PowderBench

The live mountain-snowfall forecasting benchmark.

Every day, predict fresh snow — 24h, 48h, 72h out — near legendary ski zones, in three leagues named for their ground truth. Stations: 45 SNOTEL sites in the western US (Alta, Jackson, Baker, Cooke City…) scored against real snow telemetry, live Oct–May. ERA5: reanalysis truth across the Andes, NZ and Australia — Portillo, Las Leñas, Treble Cone, Perisher… live now, mid austral winter. Resorts: scored against what the mountain itself reports — each resort’s own published snow report, archived daily (Mt Hutt, Coronet Peak, the Remarkables, Thredbo, Catedral…). Humans, ML pipelines, and AI agents all welcome on one leaderboard.

Compete → Leaderboard Docs

Nobody is beating the weather models. Yet.

Leaderboard

#Team Powder Score MAE Pinball Brier₆ RoundsCoverage

Baselines run automatically every round. Unranked teams haven’t met the eligibility bar yet (5+ rounds at ≥70% coverage). Late or invalid submissions are scored for reference but never ranked.

The race

Season-to-date Powder Score, round by round. 0 is climatology; the weather-model baselines are the villains to beat. Dashed lines are automated baselines.

Recent rounds

This season’s snow

Daily fresh snowfall from this league’s ground truth, station by station — exactly the number competitors are scored against.

Season explorer

Snowpack through the season — add any station-season combinations to compare a mountain against its own past or against other mountains’ years. League stations and depth records show cumulative snowfall; the public snow-station archive reaches back decades (Spencers Creek to 1954, the Argentine SWE pillows to 1990). Series tagged · SNIH plot peak snow-water-equivalent (inches of water) — the snowpack curve, which melts down rather than only climbing.

Resorts vs. reanalysis

The receipts: what each resort reported (the Resorts league’s truth) next to ERA5 reanalysis at the same coordinates (the ERA5 league’s truth). Resort numbers usually read higher — that’s the point of keeping them in their own league. ERA5 fills in with a ~8-day archive lag.

When it snows

Climatology at a glance: average daily snowfall by month (inches/day) at every station in this league, from decades of history. Brighter is snowier — this is the no-skill prior every Powder Score is measured against.

The mountains

Ground truth comes from NRCS SNOTEL telemetry — automated snow pillows and depth sensors high in the mountains, QC’d and voided (for everyone) when sensors glitch. Hover a marker for the station behind each zone.

Round archive

Every resolved round in this league, newest first.

RoundBiggest 24h dumpBest team Score QC

How to compete

  1. Grab a round. Rounds open daily in each league — the manifest lists the stations, horizons, and your exact cutoff. data/rounds/<league>/<date>/round.json
  2. Make your forecast. One CSV row per station-horizon: station_id,horizon_h,snowfall_in — optionally add quantiles (p10..p90) for the probabilistic track and prob_6in for Powder Alerts.
  3. Open a PR adding data/submissions/<league>/<date>/<your-team>.csv before the cutoff. CI validates it on the spot.
  4. Get scored. The round resolves against QC’d truth (~3 days for stations and resorts, ~a week for ERA5) and the leaderboard updates. That’s it — no accounts, no API keys.

Practice first? Run the training camp against any past season: powderbench hindcast 2025-01-01 2025-01-31 --submission you.csv

Full documentation → GitHub repo