BugMojoBugMojoBugMojo
FeaturesPricingBlogHelpAbout
Add to ChromeLog inGet started
BugMojoBugMojo

Bug reports that actually help fix bugs — capture, replay, share.

A product of Softech Infra.

Product

  • Features
  • Pricing
  • Browser extension
  • Get started
  • Log in

Resources

  • Help & guides
  • Blog
  • Compare
  • Glossary

Company

  • About
  • Contact
  • Security
  • Privacy
  • Terms
  • Sitemap
© 2026 BugMojo. All rights reserved.
AllGuidesEngineeringPlaybooksCompareGlossaryAlternativesBy roleBug tracking by framework
  1. Home
  2. Blog
  3. Glossary
  4. What Is an Error Budget? (SRE Explained)
Glossary

What Is an Error Budget? (SRE Explained)

An error budget is the amount of unreliability you are allowed to spend — 100% minus your SLO. Here is how it is calculated, why 100% reliability is the wrong target, and how an error budget policy turns arguments about reliability into a data-driven rule.

Vivek KumarVivek Kumar·Jul 16, 2026·8 min read
Glossary
Isometric line-art pipeline of an error budget being consumed by successive incidents until it is exhausted, the final node cracked, lime on a dark canvas
TL;DR
  • An error budget is the amount of unreliability you are allowed — 100% minus your SLO.
  • An SLO of 99.9% availability gives a 0.1% budget: roughly 43 minutes of downtime per month you can spend.
  • The Google SRE insight: 100% reliability is the wrong target — impossibly expensive, and invisible to users above a threshold.
  • It aligns incentives: while budget remains, ship fast; when it is exhausted, freeze risky launches and fix reliability.
  • An error budget policy makes that response automatic — a budget nobody enforces is theater.

Definition

An error budget is the amount of unreliability a service is allowed over a window — the complement of its SLO, or 100% minus the objective. A 99.9% availability SLO yields a 0.1% budget: about 43 minutes of downtime a month the team can deliberately spend on failed requests, incidents, and risky launches.

The idea comes straight from Google's Site Reliability Engineering practice. In Embracing Risk, the SRE Book defines the error budget as the flip side of the Service Level Objective: if you commit to a 99.9% SLO, you are simultaneously committing to tolerate 0.1% unreliability — and that 0.1% is not failure, it is allowance. The mental shift is everything. Reliability stops being an absolute demand ('never go down') and becomes a finite resource with a balance you can watch, spend, and run out of.

That reframing dissolves a fight that every engineering org has had. Product wants to ship; operations wants stability; nobody can say how much reliability is 'enough,' so the argument recurs at every launch. The error budget answers the question numerically once, in advance, and then lets the data referee. As Atlassian's breakdown of SLA vs. SLO vs. SLI puts it, the objective is the internal promise and the budget is what you have left to gamble against it.

How an error budget is calculated

The budget is derived, not invented. It falls out of three nested terms — the SLI, the SLO, and the budget — which we cover in full in SLA vs. SLO vs. SLI. The SLI (Service Level Indicator) is the thing you actually measure: the ratio of good events to total events, such as successful HTTP responses over all responses. The SLO is the target you hold that indicator to — 99.9%. The error budget is simply everything the SLO leaves on the table: 100% − SLO, measured over a fixed window, usually 28 or 30 days.

Percentages are abstract, so translate them into units people feel. Over a 30-day month, a 99.9% availability SLO buys about 43 minutes of allowed downtime; 99.95% cuts that to roughly 22 minutes; 99.99% to about 4 minutes. For a request-based SLO the same math gives you a count instead of a clock: 0.1% of 10 million requests is 10,000 permitted failures before the budget is gone. Google's Implementing SLOs chapter walks through choosing the right SLI and window so the budget reflects what users actually experience rather than an arbitrary uptime number.

The budget is consumed by every deviation from the SLO: an outage, a spike of failed requests, elevated latency past your threshold, a botched deploy. Each incident draws the balance down. When the window rolls over — a new 30-day period begins — the budget refills. That rolling replenishment is what makes it a live resource rather than a one-time allotment: you are always spending against the trailing window.

Why 100% reliability is the wrong target

The counterintuitive core of the idea

100% is the wrong reliability target for two compounding reasons. It is impossibly expensive — each additional nine costs disproportionately more in redundancy, engineering, and release friction. And users cannot tell the difference above a threshold: their own device, Wi-Fi, and ISP already inject more unreliability than the gap between 99.9% and 100%. Chasing perfection burns resources on reliability nobody perceives.

This is the argument the SRE Book's chapter on Service Level Objectives makes at length. The cost curve of reliability is not linear — it bends sharply upward as you approach 100%. Getting from 99% to 99.9% might be a caching layer and a retry policy; getting from 99.99% to 99.999% can mean multi-region failover, chaos testing, and a release cadence slow enough to vet every change. Past a point you are spending enormous effort buying nines that sit below the noise floor of the user's own connection. So the SRE move is to set the SLO deliberately below 100% and then, crucially, to treat the leftover unreliability not as a shameful gap but as a budget you are expected to spend. Unspent budget is a signal you are being too conservative — you could be shipping faster.

What the error budget is for

The budget's real job is to align two teams that otherwise pull in opposite directions. Developers are rewarded for shipping features; operators are rewarded for keeping things up. Left unmediated, those incentives collide at every release. The error budget replaces the collision with a shared scoreboard: while budget remains, ship features fast — take the risk, launch the experiment, roll out quickly, because the numbers say you can afford it. When the budget is exhausted, stop shipping risky changes and redirect effort to reliability: fix the bugs, harden the fragile paths, pay down whatever has been burning the budget.

Notice what this does to the conversation. Nobody has to argue for slowing down; the balance decides. Product and ops are no longer adversaries negotiating gut feelings — they are reading the same meter. Reliability work gets prioritized automatically at exactly the moment the data says it is needed, and velocity is protected at exactly the moment the data says it is safe. A tight mean time to recovery also helps here: faster incident resolution means each outage spends less of the budget, which buys back room to keep shipping.

The error budget policy

A budget without a rule is just a chart. The error budget policy is the pre-agreed, written contract for what happens when the budget runs out — decided before an incident, not litigated during one. A common policy: while budget remains, launches proceed through the normal release readiness checklist; once the budget is spent, a feature freeze kicks in and the team's priority shifts to reliability until the next window restores the balance. Some policies escalate by severity, tying the freeze to how the budget was burned — a single SEV1 or SEV2 can consume a month of budget in one afternoon and trigger the policy on its own.

The power of writing it down in advance is that it removes the emotion and the politics from the decision. When the budget is gone, the freeze is not a punishment somebody chose to impose — it is a rule everyone signed off on when things were calm. That is what converts a perpetual argument about 'how much reliability' into a single data-driven trigger.

The honest caveat

A budget nobody enforces is theater

Error budgets only work under two conditions. First, the SLIs feeding them must be trustworthy — if your measurement is noisy or measures the wrong thing, the budget is fiction and every decision built on it is wrong. Second, you need real organizational buy-in: leadership has to honor the freeze when the budget runs out. A budget that is quietly overridden the moment a deadline looms teaches everyone the scoreboard is decorative, and the whole mechanism collapses back into the old argument.

So the failure modes are not subtle. A budget with a bad SLI behind it produces confident, precise, wrong answers. A budget with a solid SLI but no enforcement is a dashboard people glance at and ignore. Both are worse than no budget, because they wear the costume of rigor without the substance. The prerequisite for the whole model is that you can measure user-facing reliability well and that the org has agreed, in advance, to be governed by the number.

Where BugMojo fits

Every user-facing bug spends error budget. A failed checkout, a broken form, a page that errors on load — each is a draw against the balance, whether or not it ever pages an on-call engineer. Which means the fastest way to protect the budget is to make the biggest budget-burners visible and faster to fix. That is the narrow thing BugMojo does: its browser extension captures each user-facing failure with the state around it — an rrweb session replay, the console output, and the network request that failed — so the bug arrives as a reproduction instead of a vague report. Reproductions are what shrink the time from 'budget is bleeding' to 'change merged,' which is exactly the loop the error budget is meant to keep tight. BugMojo is capture-and-repro, not an SLO monitor — but the reproductions it produces are what let you spend less budget recovering from the bugs that eat it.

Key takeaway

An error budget is 100% minus your SLO — the unreliability you are allowed to spend. Set the SLO below 100% on purpose, translate the budget into minutes or failed requests, and let an error budget policy decide when to ship and when to freeze. It only works with trustworthy SLIs and real enforcement; otherwise it is theater. And remember every user-facing bug spends the budget — so making bugs fast to reproduce and fix is reliability work, not a distraction from it.

Stop the bugs that burn your error budget

BugMojo captures every user-facing failure as a real reproduction — rrweb replay, console, and network — so the bugs eating your error budget become visible and fast to fix. Spend less budget recovering, more shipping.

Install the extension

Frequently asked questions

Frequently asked questions

Sources

  1. Embracing Risk — the error budget as the complement of the SLO, and why 100% is the wrong reliability target — Google SRE Book (2026)
  2. Implementing SLOs — deriving SLIs and SLOs and the error budget that falls out of them — Google SRE Workbook (2026)
  3. Service Level Objectives — how SLIs, SLOs, and error budgets fit together — Google SRE Book (2026)
  4. SLA vs. SLO vs. SLI — how the three terms relate and where the error budget comes from — Atlassian (2026)
Share:
Vivek Kumar
Vivek Kumar· Co-Founder & CEO

Vivek Kumar is the Co-Founder and CEO of Softech Infra, the studio behind BugMojo. He builds developer and QA tooling on the belief that technology should empower teams, not complicate them.

On this page

  • Definition
  • How an error budget is calculated
  • Why 100% reliability is the wrong target
  • What the error budget is for
  • The error budget policy
  • The honest caveat
  • Where BugMojo fits

Get bug-tracking insights, weekly.

Engineering deep-dives, QA playbooks, and honest tool comparisons. No spam — unsubscribe in one click.