SEASON RELATIVE

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

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:

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.

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:

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

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.

← Back to the map