How the Snow Day Chance Formula Works
How does Snowday calculate a snow day chance? It converts 48 hours of hourly Open-Meteo forecast data into a 0–100 score whose core is a logistic curve centered on each state’s closure baseline — for example, 6 inches in Michigan — with snow weighted 1.5× during the 5–9 a.m. commute and bonuses for cold below 15 °F, wind above 20 mph, and existing snow depth. The full formula is documented below.
The data source
The bottom line: two free, keyless public APIs from Open-Meteo, called from your browser — nothing passes through any server of ours.
- Geocoding:
geocoding-api.open-meteo.com/v1/searchconverts your ZIP code or city into coordinates. Results are filtered to US locations (country code US). - Forecast:
api.open-meteo.com/v1/forecastreturns hourly snowfall, snow depth, temperature (2 m), wind speed (10 m), and precipitation probability for the next 48 hours, plus daily summaries, withtimezone=autoso all window math happens in your local time. Open-Meteo blends government models including NOAA and ECMWF inputs; its data is published under CC BY 4.0.
Metric units are requested and converted client-side (cm → inches at 2.54, °C → °F, km/h → mph) so there is no unit ambiguity anywhere in the pipeline.
The formula, weight by weight
The bottom line: a logistic base curve for snowfall, three capped weather bonuses, then three profile multipliers — every constant is in the table below and in the source code comments.
“Tomorrow” means the next calendar day at your location. The overnight window runs 6 p.m. today to 5 a.m. tomorrow; the commute window runs 5–9 a.m. tomorrow, when buses roll and roads are still unplowed.
| Factor | Rule | Weight |
|---|---|---|
| Base snowfall curve | Logistic: 100 / (1 + e^(−1.1 × (inches − baseline))) | Sets everything; 50 points at the baseline |
| State closure baseline | Inches ≈ a coin-flip closure, by state | VT/ME/NH 8 · AK 9 · MI 6 · NY 6 · CO/UT/MN 5 · WA 3 · default 4 |
| Commute-hour snow | Snow falling 5–9 a.m. | ×1.5 vs overnight snow |
| Forecast confidence | Average precipitation probability (clamped 35–100%) | Scales snow totals linearly |
| Cold | Hours below 15 °F (blowing/drifting risk) | +0.8/hr, cap +10 |
| Wind | Hours at or above 20 mph | +0.8/hr, cap +10 |
| Existing snow depth | Depth already on the ground | +0.5/in, cap +6 |
| School level | Elementary / middle / high | ×1.12 / ×1.04 / ×0.96 |
| School type | Public / private | ×1.00 / ×0.92 |
| District strictness | Lenient / typical / strict | ×0.82 / ×1.00 / ×1.18 |
The final score is clamped to 0–97 and rounded to a whole percent. The 97% cap is deliberate honesty, not a bug.
Accuracy — the honest part
The bottom line: the score is good at ranking mornings (big-storm vs quiet) and deliberately humble about the exact number, because two things we cannot see make the final call.
- Forecasts themselves are uncertain. A 6-inch forecast can verify as 2 or 10. Our probability weighting helps, but it cannot remove model error.
- Closures are human decisions. Bus driver availability, road-crew timing, and ice on one bad hill can close a district that our score rates 30% — or keep one open at 80%.
So treat the number as a smart guess, not a guarantee. If it says 70% and your district stays open, the formula was wrong about a human being — that will keep happening, and we would rather tell you that than pretend otherwise.
Known limitations
The bottom line: no delays, no ice-specific modeling, no district-level tuning — and the score is only as good as tomorrow’s forecast.
- Two-hour delays are not predicted; the score covers full closures only.
- Freezing rain is modeled only indirectly (via temperature), even though ice often closes schools faster than snow.
- District strictness is a slider, not a database — we do not track individual districts.
- State baselines are single statewide values; a storm can behave very differently 100 miles apart (lake-effect snowbands are the classic case).
- US locations only. The baselines mean nothing in, say, Québec, where norms differ entirely.
Last updated: October 2026