99.9% uptime SLA
99.9% uptime allows 43 minutes 49 seconds of downtime a month, 1 minute 26 seconds a day and 8 hours 45 minutes 56 seconds a year, using a 365.2425-day year. Detecting an outage with 1-minute checks and one confirming retry takes up to 2 minutes, 4.6% of that monthly budget, before anyone starts fixing it.
How much downtime 99.9% allows, and what it takes to actually meet it.
Allowed downtime
| Period | Allowed downtime | Required uptime |
|---|---|---|
| Daily | 1m 26s | 23h 58m 33s |
| Weekly | 10m 4s | 6d 23h 49m 55s |
| Monthly | 43m 49s | 30d 9h 45m 16s |
| Quarterly | 2h 11m 29s | 91d 5h 15m 48s |
| Yearly | 8h 45m 56s | 364d 21h 3m 15s |
Year = 365.2425 days; month = year ÷ 12 (30.44 days); quarter = year ÷ 4. Rounded down to the second.
What 99.9% takes in practice
Detection eats into the budget
Monitoring can't alert before it has seen the failure. Worst-case detection is roughly the check interval times the number of failed checks it takes to confirm (confirmation avoids paging on a single network blip).
| Check interval | Failed checks to alert | Worst-case detection | Share of the monthly budget |
|---|---|---|---|
| 5 minutes | 1 | 5m | 11.4% |
| 5 minutes | 2 | 10m | 22.8% |
| 1 minute | 1 | 1m | 2.3% |
| 1 minute | 2 | 2m | 4.6% |
| 30 seconds | 1 | 30s | 1.1% |
| 30 seconds | 2 | 1m | 2.3% |
Dependencies multiply
If your service needs two components that are each 99.9% available (say, the app and its database), the best you can expect is 99.9% × 99.9% ≈ 99.8001%, which is 1h 27m 36s of downtime a month. Every hard dependency on the request path lowers the ceiling.
Other SLA levels
| SLA | Per month |
|---|---|
| 99% | 7h 18m 17s |
| 99.5% | 3h 39m 8s |
| 99.9% | 43m 49s |
| 99.95% | 21m 54s |
| 99.99% | 4m 22s |
| 99.999% | 26s |
Know your real uptime, not just the promised one
Vigil checks every minute from several locations and confirms a failure before alerting, so detection stays a small slice of your budget. Monthly SLA reports and a public status page come included.