TOPIC 02 — RISK

Error Budgets

The single best idea SRE gave the industry: turn “how reliable should we be?” from an endless argument into a number both dev and ops agree to spend.

Why budgets, not promises

Traditionally, dev teams are rewarded for shipping and ops teams for stability — so they fight. The error budget dissolves the fight with arithmetic. Once the business has chosen an SLO of 99.9%, it has also chosen to tolerate 0.1% unreliability. That 0.1% is not shameful failure; it's a resource. Spend it deliberately:

  • Risky launches and big migrations
  • Chaos experiments and failover drills
  • Skipping a canary for an urgent fix
  • Planned maintenance that briefly degrades service
THE MENTAL FLIP

An outage stops being “a thing that must never happen” and becomes “an expected expense against a budget everyone agreed to.” That flip is what lets teams ship quickly without gambling the service.

The arithmetic

For a 30-day window, the budget in minutes is (1 − SLO) × 43,200:

SLOBudgetDowntime / 30 daysFeels like
99%1%7.2 hoursAn afternoon outage every month is fine
99.9%0.1%43.2 minutesOne bad deploy a month, if you catch it fast
99.95%0.05%21.6 minutesEvery incident needs a practiced response
99.99%0.01%4.3 minutesHumans are too slow — recovery must be automatic
99.999%0.001%26 secondsTelecom territory. Eye-wateringly expensive

Partial outages spend the budget proportionally: if 10% of requests fail for 100 minutes, you've burned the equivalent of 10 minutes of full downtime.

The error budget policy

A budget only works if running out has consequences agreed in advance, in writing, signed by engineering leadership. A typical policy:

  1. Budget > 50%: normal operations. Ship freely.
  2. Budget < 50% and burning fast: risky launches need SRE sign-off; postmortem action items get priority.
  3. Budget exhausted: feature freeze. All engineering effort goes to reliability work until the rolling window recovers.
WATCH OUT

A policy nobody enforces is worse than no policy — it teaches the org that reliability targets are decorative. If leadership won't honour the freeze, renegotiate the SLO downward instead. An honest 99.5% beats a fictional 99.95%.

Burn rate: the early-warning system

Burn rate is how fast you're consuming budget relative to the sustainable pace. Burn rate 1 means you'll spend exactly your budget by the end of the window. Burn rate 14.4 means you'll torch a 30-day budget in 50 hours.

The SRE Workbook's recommended alerting strategy pairs a fast and a slow signal, each checked over two windows to avoid flapping:

AlertBurn rateWindowsBudget consumedAction
Page14.4×1 h + 5 min2% in 1 hourWake someone up now
Page6 h + 30 min5% in 6 hoursRespond within the hour
Ticket3 days + 6 h10% in 3 daysInvestigate this week

This is why error budgets change alerting culture: you page on “the user experience is degrading fast enough to matter,” never on “a CPU is busy.”

Common pitfalls

  • Having a budget but no policy — a bank account where overdrafts are ignored.
  • Resetting the budget on the 1st of the month. Rolling windows prevent “it's the 28th, ship everything” behaviour.
  • Letting one dependency eat the whole budget. If a vendor burns 80% of your budget, that's an engineering (or contract) problem to fix.
  • Punishing the team that spends budget. Spending it is the point; hoarding it means you're shipping too slowly.

Go deeper