Error Budget & SLO Burn Rate

A 99.9% SLO is 43.2 minutes per month — spend it on deploys, lose it to incidents. Feed in your SLO, window, and consumed downtime, and get the number that tells you whether to ship or freeze.

SLO & Window

Consumption

Burn rate needs the elapsed fraction: it compares consumption so far against the pace that would exactly exhaust the budget at window close.

📋 Google SRE Multi-Window Alerting Thresholds

Burn RateBudget ConsumedWindowAction
14.4×2%1 hourPage immediately — active incident
5%6 hoursPage during working hours — sustained degradation
10%3 daysFile a ticket — slow bleed

📋 Error Budget by SLO (30-Day Window)

SLOPer MonthPer YearOperating Model
99%432 min (7h 12m)3d 15h 36mInternal tools, batch
99.9%43.2 min8h 45mSaaS APIs, business apps
99.95%21.6 min4h 22mConsumer platforms
99.99%4.3 min52m 34sPayments, critical infra
99.999%26 sec5m 15sCarrier-grade, life-critical

The Math That Turns Reliability Into a Number

Error budget = (1 − SLO) × window. That one line replaces every argument about "how stable is stable enough" with a number both engineering and product can read. A 99.9% availability SLO over a 30-day window permits 43.2 minutes of downtime; every minute of outage draws from that account. The budget is not a tolerance for carelessness — it is a resource to be spent on deploys, migrations, and experiments, which is exactly why Google's SRE framework calls it a budget rather than a target.

Burn Rate: The Warning System

Budget remaining is a postmortem tool; burn rate is the alarm. Burn rate compares how fast you are consuming the budget against the pace that would exactly exhaust it at window close — a rate of 1 means you arrive at zero with nothing to spare. The 14.4×/1h threshold pages on-call because it spends 2% of a monthly budget in a single hour; the slow 1×/3d burn catches the regression that never trips a spike alert but quietly eats the month. Alerting on burn rate instead of raw error rate matters: a 1% error rate is fine against a 99% SLO but is a 10× burn against 99.9% — same signal, wildly different meaning.

When the Budget Runs Out

The value of an error budget is not the freeze — it is that the policy was written while everyone was calm. Graduated responses work best: review what spent the budget at 50%, require sign-off for risky changes at 75%, freeze non-essential deploys at 100%. And keep the SLO stricter than the SLA: if the public contract promises 99.9%, an internal SLO of 99.95% leaves a safety margin where internal failures do not yet breach the customer promise. Budget your nines before the incident, not after.