SLA uptime calculator: allowed downtime, error budget and downtime cost
Turn an SLA target into allowed minutes of downtime, check whether your dependency chain can meet it, and price the downtime and the credits.
How to verify this
Open your browser's network tab and change an input: nothing is sent. The page computes with the formulas and the dated price table below. The same engine answers the API and the MCP tool, so you can reproduce any scenario from code.
99.9% allows 43.2 minutes of downtime per month. Your dependency chain delivers 99.95%.
Allowed downtime by SLA tier (minutes)
| SLA | Per month | Per quarter | Per year |
|---|---|---|---|
| 99.5% | 216 | 648 | 2,628 |
| 99.9% | 43.2 | 129.6 | 525.6 |
| 99.95% | 21.6 | 64.8 | 262.8 |
| 99.99% | 4.32 | 12.96 | 52.56 |
| 99.999% | 0.43 | 1.3 | 5.26 |
Dependency chain
- Your service99.95%
- Whole system99.95%Meets target
Boxes in a row multiply. A dashed box is a redundant group: it is down only when every copy in it is down at once.
Your dependencies together deliver 100% and may fall as low as 99.95% before the 99.9% target is lost.
Cost of downtime and SLA credits
| If uptime falls below | Credit, share of monthly fee | Credit per customer |
|---|---|---|
| 95% | 50% | $5,000 |
| 99% | 25% | $2,500 |
| 99.9% | 10% | $1,000 |
Allowed downtime per month by SLA target (log scale)
How it is calculated
Allowed downtime
D = (1 − A) × P P = days × 1,440 minutes, with 30 days a month, 90 a quarter and 365 a year
Composite availability of the chain
A_system = A_own × Π A_i (series) × Π_g (1 − Π_j (1 − A_j)) Series entries multiply. Each redundant group g is the chance that not all of its copies are down at once.
Can the target be reached?
met when A_system ≥ target required dependency availability = target ÷ A_own (above 100% means no dependency chain can do it)
Cost of downtime
cost per hour = annual revenue ÷ 8,760 × revenue impact + headcount × loaded cost per hour × productivity loss cost of the allowed downtime per year = allowed hours per year × cost per hour
Error budget
consumed = (1 − actual uptime) ÷ (1 − target) ok below 50%, low from 50% to 100%, breached above 100%
SLA credit
credit % = that of the lowest threshold the actual uptime falls below credit in dollars = credit % × ACV ÷ 12
Assumptions
- A is availability as a fraction, P is the period in minutes, A_own is your own service, A_i are series dependencies and A_j are the copies inside a redundant group.
- Failures are independent. Correlated failures (a shared region, a shared deploy, one bad config) make real availability lower than the product, especially for redundant copies.
- A dependency's availability is its published or contracted SLA, not what you measured. A redundant entry with no partner in its group counts as one more link in the chain.
- Planned maintenance counts as downtime here. Many contracts exclude it, so check the definition before comparing numbers.
- Days per window are fixed at 30, 90 and 365, and a year has 8,760 hours. A calendar month of 31 days allows about 3% more downtime than the 30-day month used here.
- Downtime cost counts lost revenue and blocked staff time only. Churn, penalties beyond the credit schedule and brand damage are not modelled.
- The SLA credit uses one twelfth of the annual contract value as the monthly fee, and the uptime you enter is the figure the credit schedule is read against, whatever period it covers.
The data behind it
| Period | Days | Minutes | Hours |
|---|---|---|---|
| Month | 30 | 43,200 | 720 |
| Quarter | 90 | 129,600 | 2,160 |
| Year | 365 | 525,600 | 8,760 |
| Share of the budget used | Status |
|---|---|
| Under 50% | OK |
| 50% to 100% | Low |
| Over 100% | Breached |
| Topic | What catches people out |
|---|---|
| What a month is | Contracts define the month as 30 days or as the calendar month. The difference is up to 3% of the downtime allowed. |
| Planned maintenance | It is often excluded from the SLA, so the contractual uptime can look better than what users experienced. |
| Measurement method | Per-minute checks and per-request error rates give different uptime for the same incident. Read how the contract measures. |
| Chained dependencies | Availabilities multiply: three 99.9% services give 99.7%, about 130 minutes a month instead of 43. |
| Credits | Credits are usually capped and paid as account credit, not cash, and the customer often has to claim them within a deadline. |
| Five nines | 99.999% leaves about 26 seconds of downtime a month, less than one slow failover. |
Last updated 2026-11-05 (dataset none, refreshed none (math only)).
Three ways to reduce this number
- Remove single points of failure: put critical dependencies in redundant groups so one failure no longer takes you down.
- Shorten detection and recovery time. Downtime is incident count times duration, so faster alerting and rollback cut minutes directly.
- Choose dependencies, regions and zones whose SLA supports your target, because your service can never be more available than its chain.
Use it from code
The same engine is available as a REST endpoint and as an MCP tool named calc_sla_uptime_error_budget_calculator. Your scenario as an API call:
curl -X POST 'https://api.x12i.com/v1/calc/sla-uptime-error-budget-calculator' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"input": {
"target_sla_pct": 99.9,
"window": "month",
"own_service_sla_pct": 99.95,
"dependency_1_placement": "series",
"dependency_2_placement": "series",
"dependency_3_placement": "series",
"dependency_4_placement": "series",
"dependency_5_placement": "series",
"dependency_6_placement": "series",
"annual_revenue_usd": 12000000,
"revenue_impact_pct": 100,
"affected_headcount": 40,
"loaded_cost_per_hour_usd": 85,
"productivity_loss_pct": 50,
"acv_usd": 120000,
"credit_1_below_pct": 99.9,
"credit_1_pct": 10,
"credit_2_below_pct": 99,
"credit_2_pct": 25,
"credit_3_below_pct": 95,
"credit_3_pct": 50,
"sre_maturity": "none"
},
"options": {
"explain": false
}
}' Schema: GET /v1/calc/sla-uptime-error-budget-calculator/schema
Frequently asked questions
How many minutes of downtime is 99.9%?
In a 30-day month, 99.9% allows 43.2 minutes of downtime: (1 − 0.999) × 30 × 1,440. Over a 90-day quarter that is 129.6 minutes, and over a 365-day year it is 525.6 minutes, about 8 hours 46 minutes.
What is an error budget?
The error budget is the downtime your SLA target allows in a period. A 99.95% target allows 21.6 minutes in a 30-day month. Every minute of real downtime spends part of it, and measured downtime above the budget means the SLA is breached. This calculator rates the budget ok below 50% used, low from 50% to 100%, and breached above 100%.
How do I calculate the SLA of dependent services?
Multiply the availabilities of everything that must work at the same time. Three 99.9% services in a chain give 0.999 × 0.999 × 0.999 = 99.7%. Redundant copies work the other way: two independent 99.9% copies are both down only 0.1% × 0.1% of the time, so the pair delivers 99.9999%. This calculator multiplies your own service, every series dependency and each redundant group.