How to Calculate Uptime - The Complete Guide to SLA Percentages
What does 99.9% uptime actually mean? How much downtime is 99.95%? Here's how to calculate uptime, understand SLA tiers, and use our interactive calculator.
Interactive Uptime Calculator
Enter any uptime percentage to see how much downtime it allows.
What Does "Five Nines" Actually Mean?
You've seen uptime guarantees everywhere - 99.9%, 99.95%, 99.99%. They all sound impressive. But the difference between them is enormous, and most people don't realize how much downtime each tier actually permits.
99.9% uptime sounds almost perfect. But it allows for 8 hours and 46 minutes of downtime per year. That's enough time for a major outage that costs real money, damages trust, and triggers SLA penalties.
99.99% uptime - just one more nine - cuts that to 52 minutes per year. And 99.999% (five nines) allows only 5 minutes and 15 seconds of downtime across an entire year.
The math matters. Here's how it works.
The Uptime Formula
Uptime percentage is calculated with a simple formula:
Uptime % = ((Total Time - Downtime) / Total Time) × 100
Or equivalently:
Downtime = Total Time × (1 - Uptime % / 100)
For example, to calculate the allowed downtime for a 99.9% SLA over one year:
- Total minutes in a year: 365.25 × 24 × 60 = 525,960 minutes
- Allowed downtime: 525,960 × (1 - 0.999) = 525,960 × 0.001 = 525.96 minutes ≈ 8 hours 46 minutes
The Nines Table
Here's what each uptime tier means in real downtime:
| Uptime % | Called | Downtime / year | Downtime / month | Downtime / week | Downtime / day |
|---|---|---|---|---|---|
| 99% | Two nines | 3d 15h 36m | 7h 18m | 1h 41m | 14m 24s |
| 99.5% | 1d 19h 48m | 3h 39m | 50m 24s | 7m 12s | |
| 99.9% | Three nines | 8h 46m | 43m 50s | 10m 5s | 1m 26s |
| 99.95% | 4h 23m | 21m 55s | 5m 2s | 43s | |
| 99.99% | Four nines | 52m 36s | 4m 23s | 1m 1s | 8.6s |
| 99.995% | 26m 18s | 2m 11s | 30s | 4.3s | |
| 99.999% | Five nines | 5m 16s | 26s | 6s | 0.9s |
The jump from 99.9% to 99.99% reduces your downtime budget from nearly 9 hours to under an hour per year. That single extra nine requires a fundamentally different level of infrastructure investment.
What Counts as Downtime?
This is where SLA definitions get tricky. Different providers define "downtime" differently:
Total Downtime
Any period where the service is completely unreachable. This is the strictest definition - if even one health check fails from any region, the clock starts ticking.
User-Impacting Downtime
Downtime that actually affects end users. Brief internal failures that are caught by retry logic or failover might not count. This is more forgiving but harder to measure objectively.
Scheduled vs. Unplanned
Most SLAs exclude scheduled maintenance from downtime calculations. A 2-hour maintenance window at 3 AM doesn't count against your uptime percentage - as long as it was communicated in advance.
This is important: if your monitoring tool doesn't distinguish between planned and unplanned downtime, your uptime reports will be inaccurate. Vantaj's maintenance windows automatically exclude scheduled downtime from SLA calculations.
Partial Degradation
Is your service "down" if the API responds but takes 30 seconds? What about if one region is unreachable but others are fine? SLAs should define thresholds for what constitutes downtime:
- Response time threshold - Responses slower than X seconds count as downtime
- Error rate threshold - More than X% of requests failing counts as downtime
- Regional scope - Downtime in a specific region vs. global outage
How to Choose Your SLA Tier
99% - Hobby and Internal Tools
Allows over 3.5 days of downtime per year. Appropriate for internal dashboards, development environments, and non-critical tools. No real infrastructure investment required.
99.9% - Most SaaS Products
The most common SLA for commercial software. Nearly 9 hours of downtime per year is workable for most B2B and B2C products, as long as outages are communicated well and resolved quickly.
Achieving 99.9% requires:
- Basic redundancy (no single points of failure)
- Automated restarts and health checks
- Monitoring with alerting
- Reasonable incident response processes
99.95% - Business-Critical Applications
Just over 4 hours of downtime per year. Common for e-commerce platforms, financial services, and applications where downtime directly equals lost revenue.
Achieving 99.95% requires everything above, plus:
- Multi-region or multi-AZ deployment
- Automated failover
- Load balancing with health checks
- Faster incident response (on-call rotation)
99.99% - Infrastructure and Platform Services
Under an hour of downtime per year. This is the tier for cloud platforms, payment processors, and services that other businesses depend on.
Achieving 99.99% requires:
- Active-active multi-region deployment
- Zero-downtime deployments
- Automated incident detection and remediation
- Redundancy at every layer (compute, storage, network, DNS)
- Mature on-call culture with fast escalation
99.999% - Telecommunications and Critical Infrastructure
Just over 5 minutes per year. This tier is reserved for systems where downtime has safety or regulatory implications - telecommunications, emergency services, and critical financial infrastructure.
Achieving five nines is extraordinarily expensive and requires engineering effort that's impractical for most software businesses.
How to Track Your Actual Uptime
Claiming an SLA percentage is easy. Proving it requires data.
Use External Monitoring
Your server logs can tell you when your application process was running, but they can't tell you whether users could actually reach your service. Network issues, DNS failures, CDN outages, and certificate problems all cause downtime that only external monitoring detects.
Monitor from multiple regions to get an accurate picture of global availability.
Calculate Over the Right Window
Uptime should be calculated over the SLA period - typically monthly. A service that was down for 4 hours in January and perfect for the rest of the year has 99.95% annual uptime, but its January uptime was 99.46%. If your SLA is measured monthly, January would be a breach.
Exclude Planned Maintenance
If your SLA excludes scheduled maintenance (most do), make sure your monitoring tool accounts for this. Maintenance windows in Vantaj automatically exclude planned downtime from uptime calculations, so your reports reflect unplanned downtime only.
Report Transparently
The best way to build trust around your uptime is to make it public. A status page with historical uptime data shows customers your actual track record - not just a number you claim in a contract.
Common Uptime Myths
"We've never been down"
You have. You just didn't notice - or weren't monitoring closely enough. Brief outages, regional failures, and partial degradation happen to everyone. Honest uptime tracking reveals issues that internal monitoring misses.
"99.99% is achievable with good code"
Code quality is necessary but not sufficient. Four nines requires infrastructure redundancy, automated failover, zero-downtime deployments, and operational maturity that goes far beyond writing good software.
"Our cloud provider guarantees 99.99%, so we get it too"
Your cloud provider's SLA covers their infrastructure, not your application. Your code, configuration, deployment process, and dependencies all introduce additional failure modes. Your actual uptime will always be lower than your hosting provider's.
"More nines is always better"
Each additional nine costs exponentially more to achieve and maintain. A startup spending engineering effort on five nines instead of shipping features is optimizing the wrong thing. Choose the SLA tier that matches your customers' actual expectations and your business's risk tolerance.
The Bottom Line
Uptime percentages are deceptively simple. The difference between 99.9% and 99.99% sounds tiny but represents an order-of-magnitude reduction in allowed downtime - and an order-of-magnitude increase in infrastructure complexity and cost.
Know what your customers expect, choose an SLA you can actually meet, monitor it with external checks from multiple regions, and report it honestly. The uptime number on your status page is only as trustworthy as the monitoring behind it.