Burn rate beats a threshold on the raw metric

A threshold on an error rate fires at the same point whether the budget is fresh or already spent, which is not the decision anybody wants to make.

# 99.5% objective → 0.5% error budget
# burning at 14.4x consumes a 30-day budget in ~2 days

- alert: CheckoutBudgetBurningFast
  expr: |
    (1 - sli:checkout:availability_1h) > 14.4 * 0.005
    and
    (1 - sli:checkout:availability_5m) > 14.4 * 0.005
  for: 2m
  labels: { severity: page }

The two windows together are what removes both false positives and slow detection: the long window establishes that it is sustained and the short one makes the alert stop quickly once it recovers. A single 1% threshold pages for a two-minute blip and stays silent for a 0.9% error rate lasting a fortnight, which is the one that actually costs the budget. Multiple burn rates — fast paging and slow ticketing — is the arrangement that covers both.