Public methodology
How this site works
This page is the plain-language record of what Season Relative measures, which official datasets we use, and what we do not claim. It is here so a skier — or a lawyer — can see the method without guessing.
1. Purpose
Raw storm totals make Utah look “better” than Vermont every year. That is a climate ranking, not an answer to the question most people are asking: is this a good winter at the mountain I care about?
Cumulative Snowfall compares this season’s snow at each mountain to that same mountain’s own history, as a percentile through the same date. Alta is judged against Alta. Killington is judged against Killington.
Snow Forecast is a separate, optional map layer: expected new snow over the next ~3 days from the National Weather Service. It is not a percentile and it is not a substitute for an official forecast product.
2. Cumulative Snowfall mode
One season window for every mountain: November 1–April 30. That is a ski-season convention, not each resort’s opening day. Early October dumps and May leftovers are out of sample on purpose so every year is the same length. Mid-season, we compare snow to date against the same calendar date in past years. Leap-day snow is folded into March 1.
Today is 2026-08-30. That is late August, so the default view is the completed 2025-26 season through 2026-04-30. A national 2025-26 summary is generated from the same official gauges.
Official sources
- NOAA / NCEI GHCN-Daily observed snowfall, element
SNOW(millimetres in the file → inches at 25.4). Used where a COOP, WBAN, or long CoCoRaHS station sits near the resort and still reports. Quality-flagged days are dropped. - USDA NRCS SNOTEL daily
PREC(inches of water), via the public AWDB REST API. We difference the water-year accumulator and sum November–April. Negative steps are treated as zero.
These are not the same physical thing. A SNOTEL “30 inches” is water, not fluff. Color is percentile so the map stays apples-to-apples; every total is labeled. West high country is often SNOTEL because the nearby GHCN gauge is in the valley or ended years ago. East is GHCN because there is no SNOTEL.
Percentile vs own history
For each mountain we take snow accumulated from November 1 through a comparison date, then ask: what share of past seasons at that same station had less? If the answer is 82%, the copy reads “wetter than 82% of seasons since 2011.” Ties use a midrank. The current season is excluded from the sample. We do not mix climates. We do not convert water to fluff with a 10:1 ratio.
Map colors in this mode are that same percentile — not a second statistic:
- Red — percentile < 33. Poor versus that mountain’s own history.
- Yellow — 33–66. Average.
- Green — ≥ 67. Wetter than at least two-thirds of past seasons at that station.
Every mountain is its own small unclustered dot. Past 7.2× CONUS zoom (tight local — not a continental or state overview), visible mountains get a name + number callout with a thin leader line. Overlapping labels are omitted. Mid zoom stays unlabeled dots so the map stays readable. On a phone the national dots stay small and circular.
Missing days and Incomplete seasons
Remaining holes in a season that still qualifies are treated as zero. A season enters the historical sample if at most 20% of November–April days are missing and no gap is longer than 7 days. Seasons that fail that cut are excluded from the percentile sample. Minimum sample is 12 valid seasons.
If the current season fails the cut, we do not paint it as a quiet red year. It is Incomplete — dashed gray on the map, “—” on the scan list — and it is excluded from the good / average / poor counts. The observed total is a lower bound. We would rather mark a hole than impute a storm.
Valley gauges are not summit stakes
Many “mountain” series are valley or village gauges. Alta’s COOP is actually at Alta. Mount Mansfield’s official GHCN snowfall series ends in 2017, so Stowe uses a village CoCoRaHS observer. Killington uses Chittenden. Jay Peak’s own COOP died in 2014. A valley gauge will under-count the ridge and can still rank seasons honestly if the bias is stable. The mountain page names the station.
Vermont is the hard case. A sweep of current GHCN / CoCoRaHS SNOW stations found no higher official gauge with a cleaner 12+ season record next to Stowe, Killington, Sugarbush, Jay, Okemo, or Stratton. Peru is shared by Okemo, Stratton, Bromley, and Magic. Nearby higher observers were too short or too gappy to switch.
Labeled mid-mountain estimates
The gauge percentile stays primary. Where a factor is defensible we also show a labeled ESTIMATE of mid-mountain snowfall. These are estimates, not resort reports and not scraped totals.
- Stowe and Smugglers’ Notch use the official GHCN SNOW pair at Mt. Mansfield (USC00435416, ends 2017) versus the current valley station, interpolated to mid-mountain. Mansfield stake depth (SNWD) is context only — not snowfall inches.
- Other Vermont mountains may use OSU PRISM 4 km 1991–2020 November–April precipitation at the ski-area coordinate versus the gauge, and only when that ratio is at least 1.10. Precipitation is not fluff. If PRISM does not show a clearly wetter mountain cell, we show no inches estimate — only the valley-gauge footnote.
3. Snow Forecast mode
The map toggle’s second mode is expected new snow over roughly the next three days. For each mountain we call the National Weather Service api.weather.gov /points/lat,lon, follow forecastGridData, and sum snowfallAmount periods inside a 72-hour window (millimetres → inches). We do not use quantitativePrecipitation — that is liquid, not new snow. If the series is missing, the dot is dashed gray / Incomplete, not a fake zero.
Traffic-light bins for that ~3-day total:
- Red — < 0.5 in (no snow, including exact 0).
- Yellow — 0.5–3 in (medium).
- Green — ≥ 3 in (a lot).
The legend names the real window (usually “next ~3 days”). Forecasts are cached a few times a day. Snow forecast from the National Weather Service. The NWS does not endorse this site.
4. What we do not do
- We do not scrape OpenSnow, OnTheSnow, resort marketing pages, or other commercial snow sites.
- We do not use Tony Crocker / bestsnow.net totals or any other unofficial compiled ranking as a source.
- Not resort-reported snowfall. Those stakes move, and marketing happens.
- Not snow depth, base depth, or SWE on a given morning.
- Not a score for grooming, wind, or whether it was cold enough to keep.
- Not every US ski area. The catalog is official-gauge-gated: a nearby NOAA GHCN SNOW or NRCS SNOTEL PREC series with enough clean Nov–Apr seasons. This build has 172 mountains.
5. Pass filters
The map can filter All, Epic, or Ikon. Tags are user-maintained for the 2025-26 Epic Pass and Full Ikon networks at destinations we cover — a static snapshot, not a live affiliation feed. They may lag later roster changes. Independents stay visible only under All. A mountain can be on one pass, both (rare), or neither.
6. Disclaimers
- This site is not an official forecast product of NOAA, the National Weather Service, NRCS, or any government agency.
- NOAA and the National Weather Service do not endorse this site. NWS data is used under their public API terms; the forecast layer is our own display of
snowfallAmount. - Official station files and grid forecasts can lag, have gaps, or contain errors. We mark gappy current seasons Incomplete; we cannot catch every bad observation.
- Nothing here is advice for travel, skiing, or avalanche safety. Check local avalanche centers, highway reports, and official NWS forecasts before you go.
Sources in this build
The UI reads a static snapshot generated 2026-08-30. Rebuild from the live official APIs (no keys) with python3 scripts/build_snapshot.py and python3 scripts/fetch_nws_forecast.py.
- NOAA / NCEI GHCN-Daily
- USDA NRCS AWDB REST API (SNOTEL)
- OSU PRISM 4 km precipitation normals (Vermont estimates only)
- National Weather Service api.weather.gov (Snow Forecast mode)