99.9% sounds like a rounding error away from perfect. It allows 8 hours and 46 minutes of downtime a year. A full working day of your service being dark fits comfortably inside "three nines," which is why the number on the SLA page and the experience of your users can be very different things wearing the same percentage.
Each additional nine cuts the allowance by a factor of ten, and the jumps are brutal in both directions. Here's the whole ladder in real time:
| Uptime | Per year | Per month | Per week |
|---|---|---|---|
| 99% | 3 days 15.6 hours | 7 hours 18 min | 1 hour 41 min |
| 99.5% | 1 day 19.8 hours | 3 hours 39 min | 50 min 24 s |
| 99.9% | 8 hours 46 min | 43 min 50 s | 10 min 5 s |
| 99.95% | 4 hours 23 min | 21 min 55 s | 5 min 2 s |
| 99.99% | 52 min 36 s | 4 min 23 s | 1 min 1 s |
| 99.999% | 5 min 16 s | 26 s | 6 s |
Two rows on that table do most of the work. Three nines permits an outage most of a workday long, once a year, and still lets you print 99.9% on the pricing page. Four nines permits fifty-two minutes a year total, which means one incident nobody notices for an hour has already blown the annual budget. The distance between "sounds the same" and "is the same" on this ladder is enormous.
Run your own numbers against any target and window with the SLA calculator.
The more useful way to hold these numbers is the error budget: flip the target from a promise into an allowance. At 99.9%, you have 43 minutes and 50 seconds of permitted downtime a month. That's a resource you spend, on deploys that go sideways, on a dependency's bad afternoon, on the migration that ran long.
The framing changes decisions. Budget mostly intact near month's end? You have room to ship the risky refactor. Budget spent by the 10th? The rational move is to slow releases and spend the time on stability instead. "Be reliable" is a vibe; "we have 12 minutes left this month" is a decision you can actually make. The error budget calculator does the arithmetic for any target, and the downtime cost calculator converts the minutes into money, which is the version of the argument that works on whoever approves the infrastructure spend.
Fewer than the number you can privately hit. A sane SLA leaves a gap between internal reality and the public promise, so a merely bad month doesn't turn into a contractual one. If you reliably achieve 99.95%, promise 99.9%: you look honest, and you have headroom for the quarter where everything goes wrong at once.
Beyond that, match the nine to what an hour of your downtime actually costs. An internal tool nobody uses at night can live at 99.5% and nobody suffers. A checkout flow bleeds real money per minute, which usually justifies the engineering that four nines demands. And be skeptical of anyone advertising 100%: over any honest window it isn't a reliability claim, it's an SLA payout formula. Hardware fails and deploys go wrong for everyone; the difference is who finds out in one minute versus forty.
The nines compress wildly different realities into similar-looking numbers: 99% is three and a half days dark a year, 99.9% is a working day, 99.99% is under an hour. Treat your target as a monthly budget you spend rather than a promise you hope to keep, promise the public one nine below what you privately hit, and remember that undetected minutes drain the budget exactly as fast as acknowledged ones. You can't control when things break. Detection speed you can control, and it's the cheapest reliability you'll ever add.
failover.io detects the outage in seconds and escalates until a human acknowledges. Free plan, no credit card.
Start monitoring free →