Skip to content
Skip to main content
Novel Systems home
Decision log
D-052August 5, 2026

A window belongs to the check that produced the figure, and an unreported window is null

Decided

platformAvailability and windowDays are read from the same component. observedSince is nullable, and a provider that omits a start date produces null rather than "today". windowLabel renders that null as "an unreported window".

Affects: lib/uptime-monitor.ts, app/support/page.tsx, app/page.tsx

What was actually on the page. /security spent a fortnight serving "Measured, less than a day of history · 97.9%" for a figure that covered days. Two independent faults produced that one sentence, and both were the same mistake made twice — an absence rendered as a small number.

The first: when a provider omitted created_at, summarise fell back to now.getTime(), so an unknown start became a start of *now*, permanently and invisibly.

The second, and the one that was live: the window was Math.max over the starts of *all* measured components, while platformAvailability is Math.min — a selection, not an average. Better Stack reports six monitors. A healthy monitor recreated that morning, which could not have produced a 97.9% figure and did not, was collapsing the window for the REST health check that had been running for days and actually did produce it. The number came from one check; the duration came from a different one.

What the alternative was. Ship the earliest start across all checks, which is what an even earlier version did. That is wrong in the opposite direction: it advertises a longer history than the figure has evidence for, which is the failure mode that matters more, because it inflates a claim rather than deflating one.

The reduce now picks the worst availability and takes the window from that component alone, with ties going to the *younger* start. A minimum selects rather than averages, so "every contributing check" is a set of one, and the tiebreak errs toward the shorter, less flattering window.

What this deliberately does not do. It does not make the figure publishable. It moves the label from a fabricated "less than a day" to a true "2 days of history", still under PUBLISHABLE_WINDOW_DAYS (14), so the homepage continues to publish the contractual floor rather than the observed number. The defect was never the suppression — the suppression was working. The defect was that the sentence explaining the suppression was false.

isPublishable was widened to narrow windowDays as well as platformAvailability, and that is not decoration: a headline figure with an unknown window would render "Observed by an independent external monitor over an unreported window" in the tile making the claim.

Why null rather than zero. A reader can act on "an unreported window" — they can ask us for the provider export. They cannot act on a fabricated duration, because nothing about it looks wrong. Unknown is a third state, distinct from "began today", and every place that conflated the two produced a false sentence within a fortnight of being written.

What would make this wrong. If the site ever publishes an availability figure that is a genuine average across components rather than a minimum, the window would have to become the intersection of the contributing windows, not the window of one component. That is a different statistic and it should be computed as one, not by loosening this rule.