{
  "architecture": {
    "summaryLabel": "Sparse Sentinel SEN classroom environment — air, noise, light and comfort",
    "domain": "sen_school_environment",
    "domainLabel": "SEN classroom and nurture spaces (demo scenario outputs)",
    "signalComplexity": "medium",
    "complexityReason": "Combined environmental drivers with occupancy-linked behaviour.",
    "baselineDays": 14,
    "cadenceMinutes": 5
  },
  "senClassroomSnapshot": {
    "co2_ppm": 1420,
    "noiseBackground_dB": 52.3,
    "noisePeak_dB": 58.2,
    "temperature_c": 22.4,
    "rh_percent": 51,
    "illuminance_lux": 510,
    "occupancy_current": 12,
    "occupancy_design": 14
  },
  "detection": {
    "co2_ventilation_underperformance_classroom": {
      "displayLabel": "CO₂ — classroom under-ventilation pattern",
      "detectedAtHour": 10.2,
      "thresholdAlertHour": 16.8,
      "leadTimeHours": 6.6,
      "confidenceBucket": "high",
      "note": "Demo thresholds: sustained CO₂ elevation vs learned baseline before static proxy alert."
    },
    "noisy_sen_lesson_period": {
      "displayLabel": "Noisy SEN lesson period",
      "detectedAtHour": 14.0,
      "thresholdAlertHour": 15.5,
      "leadTimeHours": 1.5,
      "confidenceBucket": "med",
      "note": "Corridor and adjacent-room noise intrusion during focused tasks."
    },
    "stuffy_and_noisy_combination": {
      "displayLabel": "Stuffy and noisy combination",
      "detectedAtHour": 11.5,
      "thresholdAlertHour": 13.0,
      "leadTimeHours": 1.5,
      "confidenceBucket": "high",
      "note": "Combined CO₂ and noise flags — conditions that may feel difficult for learning."
    },
    "overbright_glare_risk": {
      "displayLabel": "Over-bright / glare risk",
      "detectedAtHour": 9.0,
      "thresholdAlertHour": 12.25,
      "leadTimeHours": 3.25,
      "confidenceBucket": "med",
      "note": "Illuminance spikes vs scene — illustrative only."
    }
  },
  "rootCause": {
    "summary": "Evidence-ranked hypotheses — not a guaranteed root-cause verdict.",
    "evidenceCases": [
      {
        "caseLabel": "Ventilation response lag under higher occupancy",
        "severity": "alert",
        "suspectedIssueLabel": "Air handling not matching room load during back-to-back lessons.",
        "suggestedInspection": "Check trickle vents, MVHR setpoints, and timetable overlap with corridor peaks.",
        "implicatedSubsystem": "Ventilation / room air path",
        "machineState": "teaching",
        "contribution": {
          "a": { "rank": 1, "label": "CO₂ trend", "direction": "rising", "magnitude": "sustained" },
          "b": { "rank": 2, "label": "Occupancy", "direction": "high vs design", "magnitude": "moderate" }
        }
      },
      {
        "caseLabel": "Corridor noise coupling",
        "severity": "watch",
        "suspectedIssueLabel": "Background noise exceeds demo SEN-friendly band during transitions.",
        "suggestedInspection": "Suggested inspection: door seals, break-time routing, and quiet-start cues.",
        "implicatedSubsystem": "Acoustic environment",
        "machineState": "teaching",
        "contribution": {
          "a": { "rank": 1, "label": "Noise floor", "direction": "elevated", "magnitude": "step change" }
        }
      },
      {
        "caseLabel": "Glare from side windows",
        "severity": "info",
        "suspectedIssueLabel": "Illuminance variability — blinds or scene may need simple adjustment.",
        "suggestedInspection": "Review blind position and task lighting balance (illustrative).",
        "implicatedSubsystem": "Daylight / electric lighting",
        "machineState": "teaching",
        "contribution": {}
      }
    ]
  },
  "pupilComfort": {
    "hoursGood": 62,
    "hoursBorderline": 24,
    "hoursDifficult": 10,
    "mainConstraint": "Combined stuffiness and noise during mid-morning and early afternoon — may feel difficult for learning without simple action.",
    "sentinelImpact": "Staff had extra time to act on ventilation and noise before conditions persisted across the week (demo scenario outputs).",
    "weekLabel": "Last 4 school days (illustrative)"
  },
  "stateSegmentation": {
    "summary": "Anomaly rate by school-day state — demo segmentation, not a compliance check.",
    "states": [
      { "id": "lesson_focus", "label": "Lesson — focus", "anomalyRate": 0.22, "tone": "alert" },
      { "id": "lesson_practical", "label": "Lesson — practical", "anomalyRate": 0.14, "tone": "watch" },
      { "id": "break", "label": "Break / transition", "anomalyRate": 0.08, "tone": "healthy" },
      { "id": "empty", "label": "Room empty / setup", "anomalyRate": 0.04, "tone": "healthy" }
    ],
    "note": "Higher anomaly rates during focus periods are consistent with occupancy and noise coupling — interpret alongside staff judgement."
  },
  "activityContext": {
    "summary": "Likely behaviour and sources tied to this room (illustrative narratives).",
    "rows": [
      { "id": "vent", "label": "Ventilation response", "detail": "CO₂ rises faster when windows remain closed during peak occupancy." },
      { "id": "corr", "label": "Corridor noise", "detail": "Peaks align with class changeovers; may affect concentration for some pupils." },
      { "id": "glare", "label": "Lighting glare", "detail": "Side daylight occasionally exceeds comfortable scene without blinds adjustment." },
      { "id": "clean", "label": "Cleaning products", "detail": "Short VOC blips after scheduled clean — minor sensor response (demo)." },
      { "id": "drift", "label": "Background drift", "detail": "Slow baseline shift in humidity vs seasonal norm — worth a simple check." }
    ]
  },
  "sensorHealth": {
    "summaryLabel": "Telemetry usable for demo; two channels show marginal cadence (illustrative only).",
    "allHealthy": false,
    "channels": {
      "co2_sensor": { "status": "healthy", "statusLabel": "CO₂ sensor stable vs cross-check" },
      "noise_sensor": { "status": "marginal", "statusLabel": "Marginal — occasional dropout during bell times" },
      "lux_sensor": { "status": "healthy", "statusLabel": "Illuminance channel consistent" },
      "temp_rh": { "status": "marginal", "statusLabel": "Marginal — one slow step suspected calibration drift" }
    }
  },
  "roomComparison": {
    "insight": "This nurture room shows more difficult hours than the adjacent mainstream classroom — worth a coordinated simple action plan, not a ranked league table.",
    "rooms": [
      { "name": "Nurture room A (this room)", "goodHours": 62, "difficultHours": 10, "status": "watch" },
      { "name": "Mainstream classroom B", "goodHours": 78, "difficultHours": 4, "status": "healthy" },
      { "name": "Sensory breakout C", "goodHours": 55, "difficultHours": 8, "status": "watch" }
    ]
  },
  "alertQuality": {
    "summary": "Actionability and likely outcome — demo scenario outputs.",
    "rows": [
      { "pattern": "CO₂ + noise combined", "actionability": "high", "likelyOutcome": "Staff could reduce concurrent noise and increase air change before the next lesson block." },
      { "pattern": "Glare-only episodes", "actionability": "medium", "likelyOutcome": "Simple blind or scene change often sufficient." },
      { "pattern": "Short VOC blips", "actionability": "low", "likelyOutcome": "Log and correlate with cleaning schedule — not a guaranteed root-cause verdict." }
    ]
  },
  "energyCarbonContext": {
    "summary": "Indicative operational context only — not audited carbon accounting.",
    "lines": [
      "Extra ventilation demand correlates with higher fan energy during peak CO₂ periods (illustrative kWh, not certified).",
      "Heating season overlap increases sensitivity to window opening vs heat loss — trade-offs are site-specific.",
      "Use these signals to prompt simple action and scheduling tweaks rather than single-number optimisation."
    ]
  }
}
