"99.9% uptime" sounds precise. In practice two dashboards can report very different numbers for the same outage, because there are two common ways to calculate uptime - and many tools only show one without saying which.
Check-based uptime
The simplest formula counts checks:
Uptime % = successful checks ÷ total checks × 100
If a monitor ran 10,000 checks and 9,998 succeeded, uptime is 99.98%. It is easy to compute and easy to explain. The weakness: it depends on how often you check. A five-minute interval can completely miss a three-minute outage, and a single failed check counts the same whether the site was down for ten seconds or ten minutes.
Duration-based (SLA) uptime
Service-level agreements are about time, not samples:
Uptime % = (monitored time − downtime) ÷ monitored time × 100
Downtime is measured from the first failed check of an incident to the first successful check after it. This is the number customers and contracts care about.
What the nines actually allow
| SLA | Downtime per month | Per year |
|---|---|---|
| 99% | ~7h 18m | ~3d 15h |
| 99.9% | ~43m 50s | ~8h 46m |
| 99.95% | ~21m 55s | ~4h 23m |
| 99.99% | ~4m 23s | ~52m 36s |
Try your own numbers with the uptime calculator.
Why you should see both numbers
When the two figures disagree, it tells you something. A high check-based number with a lower SLA number usually means a few long outages; the reverse suggests many short blips. Upmonora shows both on every monitor and in every report, clearly labelled, so nobody is misled - including you.
Rule of thumb: quote the duration-based figure to customers, and use the check-based figure to tune your monitoring.