Versioned scoring
The portal config/operations.json defines canonical checks, categories, severity, applicability, freshness, thresholds, dependencies, and improvement steps. Category weights are availability 35%, performance and freshness 20%, resources 20%, recovery 15%, and coverage 10%. Explicit inapplicability redistributes weight proportionally; missing instrumentation does not.
Critical, warning, and informational checks have weights 3, 2, and 1. Passing checks earn full credit, warning conditions half, and failed or unknown checks zero. Each detail includes the points lost, category contribution, evidence time, and coverage gap or collected evidence. The displayed score rounds down.
Ceilings
An essential outage caps health at 25%; unresolved critical failure at 49%; warnings or incomplete required coverage at 94%. Canonical aliases deduplicate metric, alert, and daily evidence. The worst observation wins. Unverified failures keep their previous impact until a completed relevant check verifies recovery.
Timing
A server-side collector runs every minute independently of page visits. Current health is labeled separately from historical charts. Coverage counts fresh, usable checks; score history includes indefinite daily summaries and 90 days of detailed samples.
If the minute collector itself becomes stale, prior failing checks remain visible as unverified deductions. Previously passing checks become unknown and coverage falls to zero until collection resumes.