MMSD Snowday Forecast Methodology
How the model works, what data goes into it, and how the final probability is calculated. Updated June 11, 2026 at 09:20 PM
How this works
The MMSD Snowday Forecast is one of the simpler models on HDR Analytics. Each data input is assigned a value, and those values are combined into a final probability score that estimates the chance of a closure or virtual day.
The model is designed to turn weather and transportation conditions into one simple percentage that reflects how likely MMSD is to cancel or modify school for a given day.
Assumptions and data sources
- MMSD no longer uses late starts or early closings, but may occasionally use virtual instruction.
- MMSD has historically been more hesitant than many nearby districts to close for inclement weather.
- MMSD almost certainly closes for more than 0.1 inches of ice accumulation.
Forecast weather data comes from the National Weather Service API, and road condition data can come from the Wisconsin Department of Transportation 511 API when a developer key is configured. Manual overrides remain available for closings data and source outages.
How each attribute is calculated
Snow accumulation
The model sums forecast snow from 4 PM the day before through 4 PM the forecast day. Madison often cannot plow everything overnight, and schools close by about 4 PM, so snowfall during that full period matters.
Temperature
This is the lowest forecast temperature between 7 AM and 4 PM on the day being forecast, since buses start running around 7 AM and schools close by 4 PM.
Wind chill
This works the same way as temperature. It uses the lowest wind chill between 7 AM and 4 PM on the forecast day.
Road conditions
The model reads Wisconsin 511 winter road-condition records whose API area is exactly Dane County. This includes reported segments such as the Beltline, Madison-area Interstate approaches, Stoughton Road, major U.S. highways, and state highways within Dane County. A highway segment elsewhere in Wisconsin is not included merely because it has the same route number. The worst reported Dane County segment is converted to a value from 0 to 1.
- Travel Not Advised = 1.0
- Ice Covered = 0.9
- Snow Covered = 0.8
- Slippery Stretches = 0.7
- Good Winter Driving = 0
Snowfall rate
This measures the highest hourly precip value in inches during the forecast day. The automated version uses the Weather Underground hourly page's Precip column.
Previous snow days
This is the number of snow or cold days MMSD has already had that school year. The assumption is that as more days are canceled, the district becomes less likely to cancel again.
Rain accumulation
This is calculated the same way as snow accumulation, but for rain instead of snow.
Winds
This is the highest forecast sustained wind speed during the school day, from 7 AM to 4 PM.
Gusts
This is the highest forecast wind gust during the school day.
Ice
This is the total forecast ice accumulation from 4 PM the previous day through 4 PM of the forecast day.
Other districts
This tracks the number of southern Wisconsin school districts that have already closed. The automated pipeline reads Channel 3000's school-closing feed, counts full closures, virtual instruction, remote learning, or no-school notices, and excludes delays and event-only cancellations. MMSD and the separately weighted Big Three districts are excluded from this count. Manual per-date overrides remain available if the feed is unavailable or needs correction.
Big Three
This counts closures from Verona, Middleton-Cross Plains, and Sun Prairie. It is currently a manual override.
Time
This is 0 until 4 PM the day before the forecast day. After that, it uses the current decimal hour, so 6:30 PM is 6.5.
How the forecast is made
After each attribute is calculated, the model combines them into one final probability score. Some categories are weighted more heavily than others because they matter more to district decisions.
| Attribute | Multiplier / formula |
|---|---|
| Snow | *4 (Total accumulation) |
| Temperature | If temperature is below 32Β°F: (32 - temperature) / 2 |
| Wind Chill | If wind chill is below 0Β°F: (0 - wind chill) / 2 |
| Road Conditions | *7.5 (Road conditions value) |
| Snow Rate | *10 (Snow rate in inches/hour) |
| Previous Snowdays | -10*(1-(0.5^days))/0.5 |
| Rain | *5 (Total accumulation) |
| Winds | *0.25 (Max sustained wind speed) |
| Gusts | *0.5 (Max gust speed) |
| Ice | *300 (Total accumulation) |
| Other Districts | *0.1 (Number of closings) |
| Big Three | *10 (Number of Big Three closures) |
| Time | If time is above 0: -2*(time-3) |