THIS EXPLANATION
THE ROOM
CDA·83 Computing, Data & AI 7 MIN · 8 STATIONS

Error budgets

A Socratic walk-through of error budgets — reasoned out one step at a time, not lectured.

abcdefgh
a

The question we started with

THE QUESTION #

Why does deciding in advance how much failure is acceptable make a team ship faster and break less?

Two groups in the same company want opposite things, and both are right. The people who build features want to ship; every release is value delivered. The people who keep the service up want fewer changes; every release is a new way to break. Neither position is unreasonable, and the argument between them has no natural resolution — it recurs at every planning meeting and is settled by whoever is more senior or more recently burned.

Now consider a strange proposal: write down, in advance, exactly how much failure the service is permitted to have. Not zero. A specific quantity of badness, agreed before anyone knows where it will be spent.

Why would naming a permitted amount of failure make things better? The claim is not obvious, and working out why it holds is the whole subject.

b

Reasoning it through

REASONING #

Begin with the target. Why not aim for perfect reliability?

Two reasons, and the second is the interesting one. The first is cost: each additional nine of availability roughly multiplies the engineering effort. The second is that your users cannot perceive the difference anyway. Their phone's network is less reliable than your service already, so improving from 99.99 to 99.999 percent is invisible beneath the noise of the path between you. Reliability above the level at which users can detect it is expenditure with no recipient.

So a finite target is right. Now watch what a target does arithmetically. If the objective is 99.9 percent success over thirty days, then 0.1 percent of requests are permitted to fail — roughly forty-three minutes of full outage, or a wider smear of partial failure. That remainder is the error budget: not an estimate of what will go wrong, but an allowance of what is allowed to.

Here is the move that changes the argument. What if that allowance were treated as a resource the feature team may spend?

Then the two positions stop being opinions. Shipping consumes budget, through the risk each change carries; not shipping conserves it. The decision about whether to ship on Friday is no longer a negotiation between temperaments — it is a question with a factual answer: is there budget left? The disagreement has been converted into a measurement.

Notice what that does to incentives, because this is where the "ship faster" claim comes from. Under the old arrangement, the reliability team's only lever was to resist change, so they resisted all of it, including the safe kind. Under a budget, a team with plenty remaining has an earned right to move quickly, and nobody can veto it on a feeling. The budget protects velocity as much as reliability — most people meet it as a brake and are surprised to find it is equally a permission slip.

And the other half: why does it break less? Because the budget introduces a consequence that arrives before the disaster does. The usual policy is that when the budget is exhausted, feature work stops and reliability work takes priority until it recovers. That is a small, automatic, unarguable penalty attached to burning reliability — so the pressure to invest in testing, staged rollout, and fast rollback exists continuously, rather than only in the fortnight after an outage.

A subtlety worth pausing on: what does it mean to have budget left over at the end of a period?

It means you were more reliable than you promised — which sounds like success and is actually a signal that you were too conservative. You paid for reliability the user could not perceive, and you did it by shipping less than you safely could have. Chronic underspend means the target is wrong, in the same way chronic overspend does.

Now the honest limitations, because this mechanism is easier to describe than to run.

It only works if the indicator behind it genuinely reflects user experience — a budget computed from a metric that does not track users measures nothing, however rigorously it is enforced. It works badly for rare, catastrophic risk: a thirty-day budget says little about a once-a-decade data loss, and treating security incidents as budget spend is a category error. And the freeze is a social commitment, not a technical one. A budget that is exhausted and then waived under commercial pressure is worse than no budget, because it teaches everyone that the numbers are decorative.

c

The analogy

THE ANALOGY #
THE FIGURE

Think of a household that agrees a monthly spending allowance. The point is not to spend less — it is to end the recurring argument about each individual purchase. Within the allowance, nobody must justify anything, which is liberating. When it runs out, the answer is no, and it is no without anyone having to be the disciplinarian. The rule absorbs the conflict that would otherwise fall on a person.

WHERE IT BREAKS DOWN

money spent is gone and its total is known exactly, whereas an error budget is consumed by risk whose size you learn only after the fact — so a team can ship what it believed was a small change and discover it has burned the month in eleven minutes, which is why the budget governs the policy rather than predicting the outcome.

d

Clarifying the model

THE MODEL #

Three clarifications.

The first is that the budget is a policy instrument, not a forecast. Nobody plans to use it evenly. Its function is to make a decision rule exist before the pressure that would otherwise decide it — and its value is highest at precisely the moment it is least welcome.

The second corrects a widespread misreading: that an error budget makes reliability optional. It does the opposite. It makes reliability a shared currency with a price, so every team faces the cost of the risk it introduces rather than externalising it onto whoever is on call. That is why it belongs in the vocabulary of organisational design and not only of engineering.

The third concerns burn rate, which is what makes the budget operationally useful rather than merely retrospective. Watching the rate at which budget is being consumed lets you alert on trajectory instead of on threshold: a fast burn over a short window means something acute is happening now, while a slow burn over a long window means chronic degradation that no single incident would ever trigger. Alerting on burn rate is how a budget stops being a monthly report and becomes the thing that pages you.

e

A picture of it

THE PICTURE #
Error budgets
Error budgets Only one state holds at a time, and the transitions are the events that move you between them. A period begins with a full budget, and the self-loop on Healthy is ordinary shipping. Two paths reach exhaustion -- an acute fast burn and a slow chronic one -- and both land in the same automatic freeze, which is the point of agreeing the policy in advance. Note the Underspent branch: ending a period almost untouched is not a win, it signals that the target is too conservative. {"generator":"mermaid-svg-renderer@3.2.1","source":"../Socrates/.diagram-cache/_src/error-budgets.md","sourceIndex":1,"sourceLine":4,"sourceHash":"633aed66ea0023537f97d2ed653d021443b6341178c851fddf4928e6e8397186","diagramType":"stateDiagram","layoutVariant":"source","repairedDuplicateIds":[],"motion":"entrance-with-reduced-motion-fallback","presentation":"editorial","attempt":2,"viewBox":{"x":0,"y":0,"width":1300,"height":1376},"qa":{"passed":true,"findings":[]}} period begins with fullbudget ship freely, small burnaccepted fast burn alert, budgetdraining in hours cause fixed, burn ratereturns to normal budget consumed beforethe period ends slow chronic burnreaches zero agreed policy takes effectautomatically new period begins,budget resets reliability work only, nofeature releases period ends with most ofthe budget unused target renegotiated, morerisk permitted Healthy BurningFast Exhausted Frozen Underspent The freeze is a socialcommitment.Waiving it under pressureteacheseveryone the number isdecorative.

How to readOnly one state holds at a time, and the transitions are the events that move you between them. A period begins with a full budget, and the self-loop on Healthy is ordinary shipping. Two paths reach exhaustion — an acute fast burn and a slow chronic one — and both land in the same automatic freeze, which is the point of agreeing the policy in advance. Note the Underspent branch: ending a period almost untouched is not a win, it signals that the target is too conservative.

f

What became clearer

WHAT CLEARED #
WHAT CLEARED

An error budget does not make a service more reliable by itself. It converts an unresolvable argument about temperament into an arithmetic question with an agreed answer, and attaches an automatic, proportionate consequence to spending reliability — which is why the same mechanism can both grant permission to move fast and stop the movement, without anyone having to win the meeting.

g

Where to go next

ONWARD #
  • Multi-window multi-burn-rate alerting, and why a single threshold alert is a poor budget alarm.
  • Rolling windows versus calendar periods, and the gaming each invites.
  • What to do about dependencies whose failures you inherit but cannot control.
h

Key terms

TERMS #
TermWhat it means
Error budgetthe amount of failure permitted by a reliability objective over a period, treated as a spendable allowance.
Burn ratehow fast the budget is being consumed relative to the period, used to alert on trajectory rather than on a fixed threshold.
Feature freezethe agreed policy of halting feature releases in favour of reliability work once the budget is exhausted.

Every term the collection defines is gathered in the glossary.

Nearby on the shelf

4