Embeds, the calendar, and the monthly reports
The one-line widget
Drop the script where the badge belongs:
<script src="https://status.example.test/widget.js"
data-status-host="https://status.example.test"
data-width="360" async></script>
It renders an iframe of /embed — the compact instrument: the
worst-of word with its colored edge, one lamp per service, a link to
the full board. data-width/data-height size it (else 100% and an
estimated height; data-services refines the estimate). The embed
carries the page's own theme and is noindex.
The windows calendar
/calendar.ics (also discoverable in the page head as
rel=alternate): every published incident and maintenance window as
calendar events — the same merged set the RSS/Atom feeds carry,
drafts never. Subscribe from any calendar app.
The monthly SLA report
/reports/:YYYY-MM — the measured month against the declared
objectives, per service: measured availability (truncated, never
rounded up), the meeting/missing verdict, the incident count, the
coverage (measured probes against the expected count for the
covered days), and the probe days.
Why coverage exists: availability is computed from recorded
probes — a prober that is silent records nothing, so a stopped
prober would otherwise read as a perfect month. Coverage names what
the report did NOT measure: the HOME prober's recorded probes
against the expected count for its own window (the row's first
covered day to now, today pro-rated). The home prober is the
measurement's spine — the relays add pooled mass to the
availability math and their staggered join dates are named on the
vantage strip, not smuggled into the coverage. A missing minute is
not a failed service, but it is not a measurement either. ?format=csv is the export a tenant attaches to their
own evidence; ?format=json is the machine shape. A month in
progress says so; a month with no probes reads no data, never zero.
Reports are page-scoped by Host like every public surface.