{
  "version": "0.1",
  "date": "2026-11-10",
  "status": "Every threshold and weight below is our assumption v0.1 (2026-11). None has been fitted to real outcomes yet.",
  "windows": {
    "earlier": { "label": "the afternoon before (noon-6 pm)", "startPrevDay": 12, "endPrevDay": 18, "weight": 0.5 },
    "decision": { "label": "6 pm the evening before to 7 am", "startPrevDay": 18, "end": 7 },
    "school": { "label": "the school day (7 am-3 pm)", "start": 7, "end": 15 },
    "bus": { "label": "the morning bus window (6-9 am)", "start": 6, "end": 9 }
  },
  "localScale": {
    "about": "Snow counts for more where snow is rare. Effective inches = forecast inches x (30 / local normal) ^ 0.6, kept between 0.45x and 2.5x. No station within 80 km: 1x.",
    "referenceIn": 30, "exponent": 0.6, "min": 0.45, "max": 2.5
  },
  "closure": {
    "snow": { "label": "Snow overnight and before the buses", "unit": "effective in", "curve": [[0, 0], [0.5, 4], [1, 10], [2, 20], [4, 34], [6, 44], [8, 52], [12, 60]] },
    "daySnow": { "label": "Snow during the school day", "unit": "effective in", "curve": [[0, 0], [1, 4], [2, 8], [4, 14], [6, 18]] },
    "ice": { "label": "Ice (freezing rain) overnight and before the buses", "unit": "in", "curve": [[0, 0], [0.01, 12], [0.05, 22], [0.1, 30], [0.25, 42], [0.5, 50]] },
    "cold": { "label": "Lowest wind chill, 6-9 am", "unit": "°F", "curve": [[-10, 0], [-20, 6], [-30, 14], [-40, 20]] },
    "alerts": {
      "label": "Strongest NWS alert in effect overnight or in the morning (only one counts)",
      "points": {
        "Blizzard Warning": 24, "Ice Storm Warning": 24, "Winter Storm Warning": 18, "Lake Effect Snow Warning": 18,
        "Extreme Cold Warning": 10, "Wind Chill Warning": 10, "Winter Storm Watch": 8, "Snow Squall Warning": 6,
        "Freezing Rain Advisory": 6, "Winter Weather Advisory": 5, "Extreme Cold Watch": 4, "Cold Weather Advisory": 2,
        "Wind Chill Advisory": 2
      }
    },
    "logistic": { "midpoint": 40, "scale": 9 }
  },
  "delay": {
    "about": "Delay odds are for a late start when school does not close: raw delay chance x (1 - closure chance).",
    "snow": { "label": "Light snow overnight and before the buses", "unit": "effective in", "curve": [[0, 0], [0.3, 8], [0.75, 18], [1.5, 28], [3, 32]] },
    "ice": { "label": "Ice before the buses", "unit": "in", "curve": [[0, 0], [0.01, 20], [0.05, 26], [0.1, 28]] },
    "cold": { "label": "Lowest wind chill, 6-9 am", "unit": "°F", "curve": [[-5, 0], [-15, 14], [-25, 22]] },
    "alerts": { "points": { "Winter Weather Advisory": 6, "Freezing Rain Advisory": 8, "Cold Weather Advisory": 4, "Wind Chill Advisory": 4, "Snow Squall Warning": 6 } },
    "logistic": { "midpoint": 24, "scale": 7 }
  },
  "adjusters": {
    "district": { "label": "My district closes…", "options": { "easily": 8, "normally": 0, "rarely": -8 }, "default": "normally" },
    "daysUsed": { "label": "Snow days used this year", "options": { "0-1": 0, "2-3": -3, "4+": -6 }, "default": "0-1" }
  },
  "cold": {
    "about": "Cold-day flag from the lowest wind chill in the 6-9 am bus window, or an Extreme Cold alert.",
    "levels": [[-30, "high"], [-20, "moderate"], [-10, "low"]],
    "highAlerts": ["Extreme Cold Warning", "Wind Chill Warning"], "moderateAlerts": ["Extreme Cold Watch", "Cold Weather Advisory", "Wind Chill Advisory"]
  },
  "output": { "min": 5, "max": 95, "step": 5 },
  "changelog": [
    { "version": "0.1", "date": "2026-11-10", "change": "First version. Factors and starting weights chosen by hand as a starting point; not yet fitted to outcomes." }
  ]
}
