SLO & Error Budget Calculator
Turn an availability target into allowed downtime, a request budget, and a burn rate you can actually alert on.
Quality Attributes·Last reviewed · revision 1
Inputs
Optional — request-based budget
Runs entirely in your browser. Nothing is uploaded, stored, or sent anywhere.
Results
Allowed downtime per 30 days
Total for the window
43m 12s
Error budget 0.1000% — 1 bad request in 1,000
Downtime allowance by period
- Per day
- 1m 26s
- Per week
- 10m 5s
- Per 30 days
- 43m 12s
- Per year
- 8h 45m 36s
Downtime figures assume the error budget is spent as continuous unavailability — a worst-case reading, and the right one for planning. Burn rate follows Google SRE's multi-window convention: 1x consumes the budget exactly at the window boundary, 14.4x consumes it in about 2% of the window.
An error budget is the inverse of your SLO: a 99.9% target permits 0.1% failure, which is 43 minutes 12 seconds of downtime in a 30-day window. Burn rate is observed error rate divided by budgeted error rate — 1x spends the budget exactly at the window boundary, 14.4x spends it in about 2% of the window and is the conventional page-a-human threshold.
How the numbers are derived
Four formulas, all of them arithmetic:
error budget (fraction) = 1 − (SLO ÷ 100)
allowed downtime = error budget × window duration
allowed bad requests = error budget × total requests in window
burn rate = (bad requests ÷ total requests) ÷ error budget
÷ (fraction of window elapsed)Nothing is estimated and nothing is fitted. If a figure surprises you, the SLO surprised you.
Downtime allowance by target
The table people actually come for. Read the row, then ask whether your on-call rotation can credibly detect and fix an incident inside that budget — because if it cannot, the SLO is aspirational.
| SLO | Per day | Per 30 days | Per year |
|---|---|---|---|
| 99% | 14m 24s | 7h 12m | 3d 15h 36m |
| 99.5% | 7m 12s | 3h 36m | 1d 19h 48m |
| 99.9% | 1m 26s | 43m 12s | 8h 45m 36s |
| 99.95% | 43.2s | 21m 36s | 4h 22m 48s |
| 99.99% | 8.6s | 4m 19s | 52m 34s |
| 99.999% | 864 ms | 25.9s | 5m 15s |
Two things fall out of this table immediately.
Below 99.9%, humans can be in the loop. Seven hours a month is enough to page someone, have them wake up, read a dashboard, and act. At 99.99% they cannot. Four minutes a month means detection and mitigation must both be automatic; a human who responds in three minutes has already spent three quarters of the monthly budget on one incident.
Every nine costs roughly an order of magnitude. Not in downtime — in engineering. The jump from 99.9% to 99.99% typically means multi-AZ, automated failover, load shedding, and a serious investment in observability. Ask what the extra nine is for before buying it.
Why request-based budgets beat minutes
A time-based budget silently assumes traffic is uniform across the window. It never is.
Consider a 30-day window and a five-minute total outage. Time-based, that is 11.6% of a 99.9% budget, regardless of when it happened. Request-based, a five-minute outage at your traffic peak might cost 4% of daily requests, and the same outage at 3am might cost 0.05%. Those are not the same incident, and a budget that cannot tell them apart will let you burn real user-facing reliability while the dashboard stays green.
Use minutes only when you have no per-request telemetry — and treat the answer as a worst case, not a measurement.
The burn-rate bands
Burn rate is what makes an SLO alertable. A raw error-rate threshold either pages you for noise or misses a slow bleed; burn rate normalises for both.
| Burn rate | Budget gone in | Conventional response |
|---|---|---|
| 14.4x | ~2% of window (≈10h of 30d) | Page immediately |
| 6x | ~5% of window (≈36h of 30d) | Page |
| 3x | ~10% of window (≈3d of 30d) | Ticket |
| 1x | Exactly at the window boundary | On budget, watch it |
| < 1x | Not exhausted | Within budget |
The reason to run two windows per band — a long one for significance and a short one to confirm the problem is still happening — is that a single long window keeps alerting long after an incident has resolved, and a single short window fires on every blip. Google's workbook has the full multi-window configuration; the calculator above gives you the single-window burn rate that those alerts are built on.
The part nobody implements
An error budget with no policy attached is a dashboard. The mechanism only works if exhausting the budget causes something specific to happen — feature freeze, reliability work takes priority, releases require an explicit exception. Write that down before you publish the SLO, get whoever owns the roadmap to agree to it in advance, and make the consequence automatic rather than a negotiation held under pressure during an incident.
The most common failure I see is not a badly chosen SLO. It is a well-chosen SLO that nothing is attached to, quietly breached for two quarters, with everyone still shipping features.
Choosing the target
Do not start from a number of nines. Start from these three questions:
- What do users actually notice? If they cannot distinguish 99.9% from 99.99% because their own network is worse than both, you are buying reliability nobody consumes.
- What do your dependencies give you? Your availability cannot exceed the product of everything on your critical path. Three sequential dependencies at 99.9% each cap you at 99.7% before you write a line of code.
- What would you stop doing to fund it? An extra nine is paid for in engineering time. If nothing comes off the roadmap, the nine is not real.
Then pick the lowest target your users cannot tell apart from perfect, and spend the difference on shipping.
Sources
- Site Reliability Engineering — Chapter 4: Service Level Objectives — Google (verified )
- The Site Reliability Workbook — Alerting on SLOs (multi-window burn rate) — Google (verified )
Frequently asked
How much downtime does 99.9% uptime allow?
43 minutes and 12 seconds over a 30-day window, or 8 hours 45 minutes and 36 seconds over a year. At 99.99% those figures drop to 4 minutes 19 seconds per month and 52 minutes 34 seconds per year. Each additional nine divides the allowance by ten.
What is a burn rate in SLO terms?
Observed error rate divided by the error rate your budget permits. A burn rate of 1 spends the whole budget exactly as the window closes. A burn rate of 14.4 spends it in roughly 2% of the window — about ten hours of a 30-day window — which is why that value is the conventional threshold for waking someone up.
Should an error budget be measured in time or in requests?
Requests, wherever you can. Time-based downtime assumes every second of the window carries equal traffic, which is never true — a five-minute outage at 3am and one at peak are the same number of minutes and wildly different numbers of failed requests. Use minutes only when you have no per-request telemetry, and treat the figure as a worst case.
What should happen when the error budget is exhausted?
Feature releases stop and reliability work takes priority until the budget recovers. That consequence is the entire point — an error budget without a policy attached is a dashboard, not a control. If nothing changes when the budget runs out, the SLO is decorative.
Can an SLO be 100%?
No, usefully. A 100% target sets the error budget to zero, which means any single failure is a breach and there is no room to deploy, patch, or fail over. It also makes burn rate undefined. Pick the lowest number of nines your users cannot distinguish from perfect, then spend the difference on shipping.
Revision history
First publication. Time-based and request-based budgets, budget consumed, burn rate with the multi-window alerting bands, and projected exhaustion.
Go deeper
- ArticleApplication Availability: The Nines, Explained
- ReferenceLatency Numbers Every Engineer Should Know — 2026
- PathwayProduction Observability with OpenTelemetry
- ArticleSustainable On-Call Schedules
- ArticleBlameless Postmortems That Change Behavior
- ReferenceThe Distributed Systems Failure Catalog
- ReferenceArchitecture Fitness Functions Catalog