"Three nines" sounds close to perfect. It is, for a spreadsheet. For a customer trying to check out at the wrong moment it means something more specific, and it is worth knowing the numbers before you put one on a status page or in a contract.
The table
| Uptime | Downtime per day | Per month | Per year |
|---|---|---|---|
| 99% | 14.4 min | 7.3 hours | 3.65 days |
| 99.5% | 7.2 min | 3.65 hours | 1.83 days |
| 99.9% | 1.4 min | 43.8 min | 8.77 hours |
| 99.95% | 43 s | 21.9 min | 4.38 hours |
| 99.99% | 8.6 s | 4.4 min | 52.6 min |
The jump from 99.9% to 99.99% is the one that changes engineering: forty-four minutes a month is one bad deploy; four minutes a month means no bad deploys, ever, plus redundancy for everything that can fail on its own.
Your check interval sets a floor
Here is the part that catches people out. If you check a service every five minutes, an outage can last up to five minutes before you know it started, and up to five more before you know it ended. You cannot measure — let alone promise — anything finer than your interval. Monitoring every five minutes and claiming 99.99% is claiming to have measured 4.4 minutes of downtime with a five-minute ruler.
For a meaningful 99.9% figure, one-minute checks are the sensible floor. For anything beyond that, you need more than a monitor: you need the service to be redundant.
Measured, not declared
An uptime number should come from checks, not from an incident count someone remembered to log. That means: every check recorded, failures counted honestly, planned maintenance excluded because you chose it, and the estimate labelled as an estimate when the interval means it is one. Downtime derived from "failed checks × interval" is honest about what was actually measured; a number to two decimal places from a five-minute check is not.
Set a target and let the tool judge it
The useful habit is to decide what you are promising per service — 99.9% for the API, 99.5% for the marketing site, no target for the staging box — and have the report say met or missed against it every month. Then the number stops being a feeling.
UpConduit's reports do exactly that: uptime over 7, 30 or 90 days against a target you set per monitor, incidents with how long each lasted, and downtime labelled as the estimate it is.