How the score is calculated

Every percentage on this site comes from one function. The tables below are the constants that function uses. If the code changes, this page changes with it.

The window

For a school date, we sum the hours from 7 p.m. the day before through 8 a.m. that morning. Open-Meteo reports precipitation as the previous 60 minutes, so the 8 a.m. value is snow that fell between 7 and 8. We ask for one past day and seven forecast days, in the location's own timezone.

Snow

Snow points follow a curve, then a regional multiplier. High tolerance means a snow-belt or heavy-snow community, so the same centimetres count less. Low tolerance means a place where a small fall is disruptive. The multiplier does not apply to ice or cold.

Closure snow anchors, before the regional multiplier
CentimetresPoints
00
28
526
1051
1571
2587
4094
Bus snow anchors, before the regional multiplier
CentimetresPoints
00
112
336
664
1084
1592
3096

Low tolerance multiplies snow points by 1.25. Typical uses 1. High uses 0.72. Snow points then cap at 94 for closures and 96 for buses.

British Columbia's south coast, roughly south of 49.6°N and west of 122.4°W, uses the low multiplier when the place is not already a saved city. Alberta, Saskatchewan, and Manitoba default to high cold sensitivity. Territories default to high snow tolerance and high cold sensitivity. A saved city overrides the provincial default.

Freezing rain, wind, and cold

Weather codes 56, 57, 66, and 67 count as freezing drizzle or freezing rain. Each such hour adds 14 closure points and 18 bus points. Codes 57 and 67 add a further 12 and 14, once. Rain at or below 0°C without those codes adds 6 and 8 per hour. Ice points cap at 55 and 70.

Gusts of 60, 75, and 90 km/h add wind points only when the window already has at least 1 cm of snow or any freezing-rain hour. A gust of 90 km/h with 0.5 to 1 cm of snow, and no freezing rain, adds a smaller drifting penalty instead.

Cold uses the minimum apparent temperature from 5 a.m. to 8 a.m. High sensitivity and standard sensitivity use different steps, listed in the code as -45°C → 28, -40°C → 22, -35°C → 16, -30°C → 11, -25°C → 6, -20°C → 2 and -45°C → 18, -40°C → 14, -35°C → 9, -30°C → 5, -25°C → 2. At or below -30°C the bus score gets 2 more points.

Timing, routes, and the cap

If the heaviest snow falls between 5 and 7 a.m., we add 7 closure points and 10 bus points. If it falls between 7 and 10 p.m. the evening before, the commute hours are nearly clear, and the window has at least 2 cm, we subtract 6 and 4.

Elementary adds 4 and 6. Secondary subtracts 2 from the closure score. Rural adds 5 and 12. Suburban adds 4 to buses. Urban subtracts 3 from buses. The board you select does not change the math.

The two totals are rounded and capped at 97. Fewer than 4 hours in the window means we do not score that day. Fewer than 10 hours lowers the confidence label. Days 0 and 1 are higher confidence, days 2 and 3 moderate, and later days lower.

A live example

Ten centimetres at 2 a.m., nothing else remarkable, typical region, school type and setting left unspecified: closure 51 (possible), buses 84 (very-likely). Buses are more likely to be cancelled than the school is to close. If your child rides, plan a backup.

Weather comes from Open-Meteo. City names use their geocoder with Canada selected. Postal codes use OpenStreetMap Nominatim. Compare anything that matters with Environment and Climate Change Canada.