Methodology β€’ Snowday

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

Overview

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.

Goal

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

Assumptions
  • 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.
Where the data comes from

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)