The Error Budget

99.9% Is 43.2 Minutes. Most Teams Never Spend a Second of It.

Published: 2026-08-29  |  jslet Research  |  10 min read  |  Classification: Unrestricted

Executive Summary

Two teams run the same 99.9% SLO. Team A ships three times a week, runs experiments on Thursdays, and treats an incident as a cost of doing business. Team B discovers at quarter-end that a 30-minute outage in March ate most of the month's allowance, then spends April arguing about whether anyone can deploy. Same number on the dashboard. Completely different relationship to risk.

The difference is not discipline. It is that Team A turned its error budget into a decision mechanism: a number that settles the ship-versus-freeze argument before it starts, while Team B left it as a definition in a document nobody reads. An error budget of 43.2 minutes per month is meaningless until something in your tooling reacts to it: an alert that pages at the right burn rate, an owner who can say no, and a freeze policy written while everyone was calm.

This briefing covers the three mechanics that make an error budget real (burn-rate alerting with the Google SRE thresholds, the SLO-vs-SLA gap that creates your safety margin, and a graduated freeze policy), plus the arithmetic that should make you uncomfortable about your own nines. If you have not checked your budget in a while, run the Error Budget & SLO Burn Rate Calculator first and see how much of the month you have already spent.

The Budget Nobody Reads

Ask most SRE teams how much of this month's error budget their flagship service has consumed and you get a pause. The budget is defined (usually in the same document as the SLO, usually with a formula and a reference to the SRE workbook) and then it vanishes. It is not on the dashboard. It does not alert. Nobody owns it. It is consulted at quarterly reviews, which is exactly the wrong cadence: the number only helps if it is in front of someone before the fourth incident, not after.

The failure mode is structural. A budget with no alerting is a report. A budget with no owner is a suggestion. A budget with no policy attached is just a metric with a rounding error in its future. The error budget is the rare reliability artifact that only works when it is wired into the daily loop: consumed by the deploy pipeline, watched by on-call, and enforced by a pre-agreed policy. Without the wiring, the 43.2 minutes is not a budget — it is a postmortem footnote waiting to happen.

There is a second, subtler reason budgets go unread: they feel like permission to fail. Teams interpret a 0.1% allowance as an invitation to be sloppy, or they treat it as a quota that must not be touched. Both readings miss the point. The budget is a resource you are expected to spend: on deploys, migrations, experiments, and the incidents that follow from them. A team that ends every month with a full budget is not winning; it is shipping too slowly. The budgeting error is not spending too much; it is not spending deliberately.

The Number That Ends Arguments

The operational value of an error budget is that it converts "should we ship this on a Friday?" from a temperament debate into a question with an answer. Product wants velocity; operations wants stability; both are right, and the budget is the arbitration layer. When the budget is healthy, the answer is yes — ship, experiment, migrate, accept the risk, that is what the allowance is for. When it is nearly exhausted, the answer is no, and nobody has to win an argument to reach it.

This only works if the budget is visible at the moment of the decision. The deploy button, the migration window, the canary analysis: the number needs to be there, not in a quarterly deck. Google's model makes it concrete: budget remaining is a first-class dashboard metric, and the freeze is a formal policy, not a mood. Teams that wire it up report a side effect nobody predicts: the ship-versus-stability conversation gets shorter, because both sides stop rehearsing their positions and start reading the same number.

The other side of the arbitration is that the budget gives product a legitimate path to risk. A launch that will overrun the budget is not automatically forbidden; it is a decision that someone accountable makes explicitly and records. That is the difference between a budget and a ceiling: a ceiling stops conversation, a budget prices it.

Burn Rate: The Alarm Nobody Sets Up

Budget remaining is a postmortem tool — it tells you, after the fact, how much room you have left. Burn rate is the warning system: how fast you are consuming the budget relative to the pace that would exactly exhaust it at window close. A burn rate of 1 means you arrive at zero with nothing to spare. A burn rate of 2 means you run out halfway through. Alerting on burn rate instead of raw error rate matters because the same error rate means different things at different SLOs: a 1% error rate is fine against a 99% SLO but is a 10× burn against 99.9%: you are out of budget in three days, and a threshold that only watches "error rate > 1%" never fires.

Google's SRE workbook defines three tiers, and they cover different failure shapes:

Burn Rate Budget Consumed Window Catches
14.4×2%1 hourActive incident — page immediately
5%6 hoursSustained degradation — page working hours
10%3 daysSlow bleed — file a ticket

The slow bleed row is the one most teams miss. A small regression that never trips a spike alert but quietly eats the month is the classic budget killer; it is why the 1×/3d tier exists. And the multi-window rule matters: alert only when the short and long windows fire together, so a self-correcting five-minute blip does not page anyone. The 14.4× condition alone is noisy; the conjunction is the signal.

The 43.2-Minute Reality Check

Put the arithmetic next to real incidents and the nines stop being abstract. Against a 99.9% SLO with a 30-day window, a 30-minute outage consumes 69% of the month's budget. Two moderate incidents, and the month is spent; the third outage is a breach, whether or not customers noticed. Against 99.99%, the same 30-minute outage is 7× over budget — the service has violated its SLO inside a single incident, and no amount of clever alerting changes that.

This is why 99.99% is not "slightly better than" 99.9%. It is a different operating model. At 4.3 minutes of monthly allowance, a service cannot tolerate even one unplanned failure of meaningful duration: it needs redundancy, automated failover, chaos testing, and a deploy pipeline that cannot take a whole AZ down. The budget forces the engineering investment: either you build the resilience that keeps outages under four minutes, or you accept that the SLO will be breached most months. The Price of a Nine briefing prices that choice; the SLA calculator converts it into downtime units.

The uncomfortable corollary: most teams set 99.9% because it sounds serious, then discover that their incident history does not support it. Before you promise a nine, run your actual outage minutes through the error budget calculator — the honest exercise is to pick the SLO your current reliability earns, then invest to close the gap to the one you want.

Spend It Deliberately

The error budget reframes failure from an anomaly to an operating cost — and costs should be spent on purpose. Deploys consume budget; that is their price, and it is the price of shipping. Migrations consume budget; a well-run migration that takes 20 minutes of the 43.2 is a bargain if it removes a recurring 15-minute incident. The deliberate-spend mindset changes how teams plan: instead of hoping incidents do not happen, they budget for them the way they budget for a new feature.

Borrowing is legitimate too, with one condition: it must be explicit and recorded. A launch that will overrun the budget is sometimes worth it — but it should be a decision made by someone accountable, written down, with a plan to pay the debt back in the next window. The failure mode is not borrowing; it is borrowing silently, so that the budget resets each month with the same structural debt and the conversation about it never happens.

What you should not do is treat the budget as a target to hit. Ending every month at 100% consumed means you are operating at the edge of the contract with no margin for the genuinely unexpected, and unexpected incidents are the one thing the budget cannot absorb by definition. The healthy range is somewhere between "spent most of it on purpose" and "never touched it at all." Both extremes are signals: the former of over-exposure, the latter of an SLO too loose to be useful.

Write the Policy Before the Incident

Every part of this system is easy to agree on in the abstract and hard to enforce in the moment, which is exactly why the policy must be written while nobody is stressed. A graduated response works better than a binary freeze:

At 50% consumed, review. Ask what spent the budget. If it is a pattern (the same subsystem keeps eating minutes), fix the pattern, not the month. At 75%, require sign-off. Risky changes need an explicit approval from someone accountable, which forces the trade-off to be made in the open. At 100%, freeze. Non-essential deploys stop until the window resets or the root cause is addressed. The freeze can be scoped: halt deploys to the service that missed its SLO rather than the whole organization, which keeps the blast radius proportional.

The second rule to write down: the SLO must be stricter than the SLA. If the public contract promises 99.9% and the internal SLO is also 99.9%, the budget is zero and the first real incident is a contractual breach. Setting the SLO to 99.95% leaves a 0.05% cushion: the gap is your safety margin, the space where internal failures do not yet breach the customer promise. Teams that skip the gap are not being strict; they are being unprotected. For a deeper treatment of how the nines map to cost, the SLA Economics briefing is the companion piece to this one.

Frequently Asked Questions

What is an error budget and how is it calculated?

An error budget is the permitted failure within a window, defined by the SLO: (1 - SLO) x window. 99.9% over 30 days = 43.2 minutes; 99.99% = 4.3 minutes; 99.999% = 26 seconds. The budget is spent on deploys, migrations, and experiments; when exhausted, teams freeze risky changes until the window resets.

Why does my error budget never get used in decisions?

Because a budget without alerting, ownership, and policy is a document. Wire burn-rate alerts so the number reaches someone in real time; assign explicit ownership; write the freeze policy in advance. Teams that skip these treat the budget as a quarterly report instead of a daily decision.

What are the Google SRE burn rate alert thresholds?

14.4x over 1 hour (2% of a 30-day budget) pages immediately; 6x over 6 hours (5%) pages during working hours; 1x over 3 days (10%) files a ticket. Multi-window alerting requires the short and long windows together to suppress noise.

Why must the SLO be stricter than the SLA?

The gap is your safety margin. If SLA and SLO are both 99.9%, the budget is zero and the first incident is a breach. An internal SLO of 99.95% leaves a cushion where failures do not breach the customer promise — that cushion is the budget your teams actually spend.

How much of the monthly budget does a 30-minute outage consume?

Against 99.9% (43.2-minute budget), 30 minutes is 69.4% of the month. Against 99.99% (4.3 minutes), the same outage is 7x over budget. That is why 99.99% requires redundancy and automated failover — it cannot absorb a single significant incident.

Methodology & Disclosure

All budget arithmetic uses a 30-day (720-hour) window and binary minutes. Burn-rate thresholds (14.4x/1h, 6x/6h, 1x/3d) are from Google's Site Reliability Engineering workbook, the canonical reference for this model. The 69.4% figure for a 30-minute outage is computed as 30 / 43.2 against the 99.9% SLO. SLO/SLA gap guidance reflects the standard SRE practice that the internal target must be stricter than the external promise. Workload examples are illustrative composites. Compute your own numbers in the Error Budget & SLO Burn Rate Calculator.

References & Further Reading

  1. Beyer, B., Jones, C., Petoff, J., Murphy, N. (2016). "Site Reliability Engineering." Chapter on error budgets; the original framing of budget as decision mechanism. sre.google
  2. Google SRE Workbook (2018). "Alerting on SLOs." Defines the multi-window burn-rate thresholds (14.4x/1h, 6x/6h, 1x/3d) and the conjunction rule. sre.google
  3. Google Cloud (2026). "Monitoring: Alerts on service level objectives." Implementation guidance for burn-rate alerting in production monitoring. cloud.google.com
  4. openstatus.dev (2026). "Error Budgets Explained." Independent treatment of budget windows, burn tiers, and graduated policies. openstatus.dev
  5. realpython.com (2026). "Error Budget" — software engineering glossary entry with the canonical formula and a Python reference implementation. realpython.com
  6. jslet (2026). Related: Error Budget & SLO Burn Rate Calculator · The Price of a Nine · SLA Calculator · Latency Budget · Password Crack Times

📜 Copyright & Attribution

© 2026 jslet Research. This article is an original work independently researched and published on jslet (jslet.com). All rights reserved.

Sharing & Reprinting: You may share excerpts (up to 200 words) with a mandatory, do-follow link back to this article's canonical URL. Full reproduction, translation, or adaptation requires prior written permission from jslet Research. Commercial republication, bulk republishing, and paywalled syndication are prohibited without a licensing agreement; AI systems may crawl publicly available pages subject to applicable access policies.

Preferred Attribution Format: "The Error Budget: 99.9% Is 43.2 Minutes" by jslet Research, 2026 — https://www.jslet.com/error-budget-real