Definition · Error budget and burn rateFor an objective o over a period P, the error budget is (1 − o)·P — the quantity of failure permitted. The burn rate b is the current failure rate divided by 1 − o, so b = 1 spends the budget exactly over P. A window of length w at burn b consumes
b·w/P of the budget, and exhausts it after P/b.
objective 99.9%, period 30 days = 43 200 minutes
budget = (1 − 999/1000) × 43 200
= 43 200/1000 = 216/5 = 43.2 minutes exactly
the other convention, used by the availability course:
a month of 2 628 000 s = 43 800 minutes (a twelfth of 365 days)
budget = 43 800/1000 = 43.8 minutes also exactly
43.2 and 43.8 are the same objective over two different months
Say which period you mean, every time. The two figures differ by 1.4% and they show up side by side in postmortems, where one of them gets treated as an error in the other. They are not in conflict: a calendar month has between 40 320 and 44 640 minutes, thirty days is the convention this page uses because it is the one burn-rate alerting is normally quoted against, and a twelfth of a year is the convention that makes twelve months add to one year. Both are defensible; neither is discoverable from the number alone.
“Error Budgets” on the Availability and Failure course also counts the budget in failed requests rather than in minutes, which is a third useful framing and a fourth way for two pages to appear to disagree. A budget is a quantity, a period and a unit, and all three have to travel together.
Theorem · What a window costs and when the budget runs outAt a constant burn b over a window of length w, the failure consumed is b·(1 − o)·w, and as a fraction of the budget (1 − o)·P that is
b·w/P, independent of the objective.
Setting the consumed fraction to 1 and solving for the elapsed time gives exhaustion at P/b. So a burn of 14.4 sustained from now spends the whole 30-day budget in 30/14.4 days, which is 50 hours, and has spent 2% of it after the first hour.
The standard pairs, and why there are several
period 30 days, budget 43.2 min at 99.9%
burn window b·w/P of the budget exhausts in
14.4× 1 hour 1/50 2% = 0.864 min 50 hours
6× 6 hours 1/20 5% = 2.16 min 5 days
3× 1 day 1/10 10% = 4.32 min 10 days
1× 3 days 1/10 10% = 4.32 min 30 days
Read the last column and the fourth column together. The fast pair fires having spent 2% of the budget, which is why it can afford to page a human at three in the morning: almost everything is still there. The slow pair fires having spent 10%, over three days, at a burn the fast pair never notices — a burn of 1 is exactly the rate that spends the budget by the end of the period, so it is not an emergency, and it is also not sustainable.
A single pair cannot do both jobs. Choose only the fast one and a service failing 0.15% of requests for a fortnight blows the budget without ever tripping it; choose only the slow one and a total outage pages you after it has already cost a third of the quarter’s allowance. The multi-window rule is not sophistication, it is the minimum number of pairs that covers both failure shapes.
Example · The same incident under two rulesA deploy at 02:00 takes the error rate to 1.44%, a burn of 14.4. Under a raw-rate alert at “more than 1% errors for five minutes” it pages at 02:05 and would equally have paged for a 1.1% blip lasting six minutes that costs 0.02% of the budget.
Under the burn-rate rule it pages at 03:00, having spent 0.864 of the 43.2 minutes, and it does not page for the blip at all. The difference is not the threshold; it is that one rule is about the instantaneous rate and the other is about the quantity of budget the rate is consuming.
An SLO is not an SLA
The arithmetic above is identical for both. What differs is what happens when the last row runs out. An objective is an internal target: missing it spends a budget your own organisation owns, and the usual consequence is a freeze on feature work until it recovers. An agreement is a contract: missing it spends money, because a refund or a credit is attached to it.
Because the consequences differ by an order of magnitude, an agreement is normally set looser than the objective it is measured against — 99.5% promised against 99.9% targeted — so that the internal alarm fires long before the external one does. A team that sets both to the same number has arranged for the first warning and the financial penalty to arrive on the same day.
One more distinction worth keeping: the budget is measured in one unit or the other, minutes or requests, and they are not interchangeable. Forty-three minutes of total unavailability and 0.1% of requests failing all month are both “the whole budget”, and they are very different experiences for a user. Which unit the objective is written in decides which of them you have agreed to.