# monitor.uptime-bars The row of daily bars under each component on a status page ("90 days ago ... today"): one `DayBar` per UTC day, oldest first, each with the seconds up, degraded, down and unknown, the day's uptime in basis points and a state to colour it by. Each day is measured by `monitor.uptime` over that day's window, with the same `maxGapSeconds` rule: a check's status holds until the next check, for at most `maxGapSeconds`, and the latest check before midnight carries into the day. So an outage that crosses midnight shows on both days. ## Days - Days are UTC calendar days, `date` is `YYYY-MM-DD`. Status pages that show local days shift `now` first. - The last bar is today, and it ends at `now`, not midnight, so the part of today that has not happened yet is not reported as unknown. At exactly midnight today's bar is empty (`no-data`). - Midnight is found by flooring, so a `now` before 1970 still lands on the right day (`-1` is 1969-12-31). - Checks after `now` are ignored. - `days` is 1 to 366; 90 is the usual status page. ## State In order: `no-data` when nothing that day is known; `outage` if any second was down; `degraded` if any second was degraded; otherwise `operational`. Unknown time alone does not change the colour of a day that has some known time: a monitor gap is not an outage. The worst moment decides, the way status pages colour their bars; the uptime figure says how bad the day was. ## Errors - `now must be whole seconds` - `days must be 1 to 366, received X` - Everything `monitor.uptime` refuses: `maxGapSeconds must be a whole number of at least 1`, `checks must be in strictly ascending time order`, `unknown check status: X`.