{
  "slug": "error-budget-burn-rate",
  "title": "Error Budget Burn Rate Calculator",
  "heading": "SRE Error Budget Burn Rate Calculator",
  "category": "math",
  "url": "https://www.revenuelab.fyi/toolbox/error-budget-burn-rate",
  "summary": "See how fast an incident is consuming your monthly error budget.",
  "description": "An error budget is the inverse of your SLO — if your target is 99.9% availability, your error budget is the 0.1% of requests or time you're allowed to fail within the period. Burn rate measures how fast you're consuming that budget relative to a steady, even-pace consumption, and it's the metric behind Google SRE-style multi-window alerting: a burn rate of 1.0 means you're on track to exhaust the budget exactly at period end, while a burn rate of 10 means you'll exhaust a 30-day budget in 3 days if the current error rate continues. This calculator takes your SLO target, the time window, and your current observed error rate to compute burn rate and time-to-exhaustion, which is the number that should actually drive paging decisions — a short burst at high burn rate deserves a page, while the same total error count spread evenly across a month often doesn't.",
  "formula": "Error budget = (1 − SLO) × total requests (or time); burn rate = actual error rate ÷ allowed error rate; time to exhaustion = budget remaining ÷ (current burn rate × allowed rate).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=error-budget-burn-rate",
  "inputs": [
    {
      "id": "slo",
      "label": "SLO target",
      "kind": "number",
      "hint": null,
      "default": 99.9,
      "unit": "%",
      "min": 90,
      "max": 99.999
    },
    {
      "id": "windowDays",
      "label": "SLO window",
      "kind": "number",
      "hint": null,
      "default": 30,
      "unit": "days",
      "min": 1,
      "max": null
    },
    {
      "id": "currentErrorRate",
      "label": "Current observed error rate",
      "kind": "number",
      "hint": null,
      "default": 1.5,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "budgetConsumedPct",
      "label": "Budget already consumed this window",
      "kind": "number",
      "hint": null,
      "default": 20,
      "unit": "%",
      "min": 0,
      "max": 100
    }
  ],
  "outputs": [
    {
      "id": "burnRate",
      "label": "Current burn rate (×)",
      "format": "decimal",
      "hint": null,
      "primary": true
    },
    {
      "id": "daysToExhaustion",
      "label": "Days until budget exhausted",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "allowedErrorRate",
      "label": "Allowed error rate",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "budgetRemainingPct",
      "label": "Budget remaining",
      "format": "percent",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "SLO target: 99.9 %",
      "SLO window: 30 days",
      "Current observed error rate: 1.5 %",
      "Budget already consumed this window: 20 %"
    ],
    "outputs": [
      "Current burn rate (×): 15",
      "Days until budget exhausted: 1.6",
      "Allowed error rate: 0.100%",
      "Budget remaining: 80.0%"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter slo target (%).",
      "Enter slo window (days).",
      "Enter current observed error rate (%).",
      "Enter budget already consumed this window (%).",
      "Read your current burn rate (×) on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "slo": 90,
        "windowDays": 18,
        "currentErrorRate": 0.8999999999999999,
        "budgetConsumedPct": 12
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "slo": 99.9,
        "windowDays": 30,
        "currentErrorRate": 1.5,
        "budgetConsumedPct": 20
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "slo": 99.999,
        "windowDays": 48,
        "currentErrorRate": 2.4000000000000004,
        "budgetConsumedPct": 32
      }
    }
  ],
  "limitations": [
    "Results are rounded for display; the underlying calculation keeps full precision.",
    "Very large or very small inputs may hit floating-point limits in the browser.",
    "Inputs outside the accepted range are clamped rather than rejected."
  ],
  "faq": [
    {
      "q": "What burn rate should trigger a page versus a ticket?",
      "a": "Google's SRE workbook recommends a fast-burn alert around 14.4x sustained over 1 hour (would exhaust a 30-day budget in about 2 days) paired with a slow-burn alert around 6x sustained over 6 hours, using multi-window checks so brief blips don't page unnecessarily. Anything under roughly 1-2x burn rate is generally a next-business-day ticket, not a wake-someone-up event."
    },
    {
      "q": "What happens once the error budget is fully consumed?",
      "a": "Most SRE practices freeze non-critical feature releases once the budget hits zero for the period, redirecting engineering effort to reliability work until the budget resets, and require director/VP sign-off to override the freeze. This is the mechanism that actually forces the organizational trade-off between shipping speed and reliability instead of leaving it as an abstract debate."
    },
    {
      "q": "Should error budgets be measured by request count or by time?",
      "a": "Request-based budgets (percentage of failed requests) suit high-traffic services and give more statistical stability; time-based budgets (minutes of full outage) suit low-traffic or batch services where request volume is too sparse or spiky to be a reliable signal. Pick whichever unit matches how your users actually experience and would describe an outage."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/sla-uptime-downtime",
    "https://www.revenuelab.fyi/toolbox/incident-cost-per-minute",
    "https://www.revenuelab.fyi/toolbox/mttr-impact-calculator"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Error Budget Burn Rate Calculator (https://www.revenuelab.fyi/toolbox/error-budget-burn-rate)"
}