Ninety bars. One per day. One row per service.
A visitor who arrives during an outage wants to know two things: is it just me, and does this happen a lot. The second question is answered by history, and history only counts if it is shown without editing.
This is the whole component.
One strip per service, drawn from the same checks that decide whether the page says operational. Nothing here is a summary of a summary — each bar is that day's checks.
Checkout API
- Daily uptime
- 91.67%
- Avg response
- 1,284 ms
- Checks
- 2,880
Shown on hover
Four colours, and the exact number behind each one.
A bar is coloured by the share of that day's checks that succeeded. The boundaries are fixed — there is no per-page fiddle that quietly turns a bad day green.
| Bar | Daily uptime | What it means |
|---|---|---|
| Operational | ≥ 99.00% | Effectively a clean day. Up to about 14 minutes of failed checks. |
| Degraded | 95.00% – 98.99% | Something was wrong for part of the day, but the service was mostly answering. |
| Down | < 95.00% | More than about 72 minutes of the day failed. This is the bar people screenshot. |
| No data | No checks | The monitor did not exist yet, was paused, or the day falls outside your retention window. |
Five figures per bar
Hover any day and you get the date, the status label, the daily uptime percentage, the average response time across that day, and the number of checks that ran.
Two decimals, not one
The 30-day figure under each service reads 99.94%, not 99.9%. The difference between those two numbers is about 26 minutes a month, and rounding it away is how status pages lose their credibility.
Latest response time
The most recent measured response time sits beside the percentage, so a page that says operational still shows you when something is getting slower.
The strip is always 90 bars. Your plan decides how many of them have data.
Retention is a real limit, not a display setting. Check results older than your plan's window are deleted, so those days render as no-data bars for everyone — including you. A page created last week shows a week of history and 83 grey days, and that is the honest picture.
| Plan | Retention |
|---|---|
| Free | 30 days |
| Starter | 90 days |
| Growth | 180 days |
| Scale | 365 days |
Status pages always display the most recent 90 days. Growth and Scale keep more than 90 days of check data for reporting, but the public strip still draws the most recent 90.
No-data bars are drawn in a muted grey and labelled No data on hover. They are never counted as uptime, and never counted as downtime.
Availability checks draw bars. Expiry checks do not.
Three kinds of check can be attached to a status page, and all three draw a strip. The certificate and domain monitors answer a question about a date instead, so they stay in the dashboard.
- HTTP / HTTPS — Status code, redirects, timeout and body checks.
- ICMP ping — Reachability of a host.
- TCP port — Whether a port accepts a connection.
- SSL certificate — Reports days remaining, issuer and validity dates — not availability.
- Domain expiry (WHOIS) — Reports registration expiry and nameserver changes.
SSL and domain monitors cannot be attached to a status page — they are dashboard instruments, not page services. If you want a strip for a hostname, add an HTTP monitor alongside the certificate monitor.
The same history, delivered on a schedule.
Pick daily, weekly or monthly. The email lists every monitor worst-first, so the thing you should look at is at the top rather than buried alphabetically.
Every report carries a signed unsubscribe token, so anyone on the distribution list can take themselves off it without an account. Reports are included on every plan.
- Uptime
- 99.94%
- Avg response
- 213 ms
- p95 response
- 486 ms
- Incidents
- 1
- Total checks
- 20,160
- Period
- 28 Apr – 04 May
What the history does not do.
Two things a reader could reasonably assume from this page, which are not true today.
Three consecutive failures open an incident on your status page and the bar for that day turns. Nothing is sent to Slack, email or a webhook. Today the six notification channels only fire on Watch Owl server-metric alert rules — uptime alerting is the thing we are building right now, and it is tracked on the roadmap.
There is no subscriber list on a StatusOwl status page yet. History is something visitors come and look at; it is not pushed to them.
Bars cannot be edited
There is no way to mark a day as excluded, retroactively reclassify a red bar, or apply an SLA credit adjustment. The strip is what the checks recorded. If that sounds like a limitation, it is also the only reason the number means anything.
Ninety days of history, on your own domain, free.
One status page, your own domain with SSL, and the full uptime strip on the Free plan. No credit card, and nothing expires.