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. SLA vs SLO vs SLI: What's the Difference?
Glossary

SLA vs SLO vs SLI: What's the Difference?

An SLI is what you measure, an SLO is the target you set on it, and an SLA is the promise — with penalties — you make to customers. Here is how the three reliability layers stack, why your SLO should be stricter than your SLA, and how to pick good ones.

Vivek KumarVivek Kumar·Jul 16, 2026·7 min read
Glossary
Isometric line-art stack of three nested reliability layers — SLA contract on top, SLO target in the middle, SLI measurement at the base — lime on a dark canvas
TL;DR
  • An SLI (Service Level Indicator) is a measurement of your service — latency, error rate, availability %.
  • An SLO (Service Level Objective) is a target set on an SLI — e.g. 99.9% of requests succeed over 30 days. It is your internal goal.
  • An SLA (Service Level Agreement) is a contract with a customer that includes SLOs plus consequences (credits/penalties) if missed.
  • The hierarchy: SLI → SLO → SLA — what you measure, the goal you set on it, the promise with teeth you make externally.
  • Set SLOs stricter than your SLA to buy a buffer; the SLO drives the error budget that balances reliability against shipping speed.

Definition

An SLI is a measurement of a service (latency, error rate, availability %). An SLO is a target set on that SLI, like 99.9% success over 30 days — the internal goal. An SLA is a customer contract bundling SLOs with consequences if missed. SLI → SLO → SLA: measure, target, promise.

The three terms get used interchangeably in standups, and they should not be, because they name three different layers of the same idea. The cleanest framing comes from the Google SRE book, which defines them as a stack that builds bottom-up. Start at the base with the SLI, the Service Level Indicator: a carefully defined quantitative measure of some aspect of the level of service. Request latency, error rate, throughput, availability — anything you can put a number on. An SLI is not a goal; it is just the ruler.

Set a threshold on that ruler and you get the middle layer, the SLO, or Service Level Objective: a target value or range for an SLI, measured over a window. 'The 30-day availability SLI should be at least 99.9%' is an SLO. It is the number your team commits to internally, and it is the pivot of the whole system — everything above it is a promise, everything below it is instrumentation. Put a contract around a set of SLOs, add money to the outcome, and you reach the top layer, the SLA or Service Level Agreement: an explicit or implicit contract with your users that includes consequences of meeting (or missing) the SLOs it contains. The consequence is what distinguishes an SLA from an SLO. As the SRE book puts it, if there is no explicit consequence for missing the objective, you are almost certainly looking at an SLO, not an SLA.

One example, threaded through all three

Concreteness beats definitions, so take a single service and follow availability up the stack. The SLI is the measured proportion of successful requests: the count of valid HTTP responses divided by the count of total valid requests, sampled continuously. Over the last 30 days it reads 99.95%. That is a fact about the world, not a goal — just what the ruler currently says.

The SLO is the target you draw on that ruler: 99.9% of requests succeed over a rolling 30-day window. It is what your on-call rotation defends, what your alerts fire against, and what product signed off on. The SLA is the clause your customers actually see: we guarantee 99.5% monthly availability; fall below it and you receive a 10% service credit. Same underlying indicator — success rate — three different rows in the same table. Only the audience and the stakes change as you climb. And notice the deliberate gap: the 99.5% SLA sits below the 99.9% SLO on purpose, so that missing your internal goal is an early warning rather than an instant breach.

FeatureSLISLOSLA
What it isA measurement of the serviceA target set on an SLIA contract that bundles SLOs
Example99.95% of requests succeeded (30d)≥ 99.9% success over rolling 30d99.5%/month or 10% service credit
AudienceInternalInternalExternal (customer)
Has consequences?——✓
Who owns itEngineering / SREEngineering + ProductBusiness / Legal / Sales
SLI, SLO, SLA side by side: the same success-rate indicator, three layers, three audiences, one with financial consequences.

Why the distinction matters

The reason to keep these straight is not pedantry — it is that the gap between the layers is where reliability engineering actually happens. First, you deliberately set your SLO stricter than your SLA. If the contract promises 99.5% and your internal objective is 99.9%, you have built yourself a buffer: your alerts fire on the tighter internal number, so incident response starts well before you are anywhere near owing a customer money. Breaching an SLO costs you a stressful week; breaching an SLA costs you credits and trust. The looser external promise is a feature, not sloppiness.

Second, the SLO is what generates your error budget — the amount of unreliability the objective permits. A 99.9% availability SLO grants a 0.1% budget: roughly 43 minutes of allowed unavailability per 30-day window. That budget is a currency. As the SRE book argues in Embracing Risk, it lets you spend reliability headroom on shipping speed: while the budget has room, push features and take risks; when it is nearly exhausted, freeze risky changes and prioritise stability. The error budget turns 'reliable vs. fast' from an argument into a number both engineering and product can read off the same dashboard. When incidents do eat the budget, tracking and shrinking your mean time to recovery is one of the highest-leverage ways to protect it.

100% is the wrong target

The SRE book is blunt about this: 100% reliability is the wrong reliability target for nearly everything. Chasing the last fraction of a nine costs exponentially more, and users usually cannot tell the difference between 99.9% and 99.99% when their own network, ISP, and device already introduce more failure than that. A realistic SLO is one set just high enough to keep users happy and no higher — because every nine you promise you also have to defend, and the headroom below 100% is exactly the error budget you spend on shipping.

How to choose good SLIs and realistic SLOs

A good SLI is user-centric and measurable. The SRE workbook recommends framing SLIs as the ratio of good events to valid events — proportion of requests served faster than a threshold, proportion returning a non-error status — because a normalised 0–100% figure is easy to reason about and to set a target on. The test for a candidate SLI is simple: if this number gets worse, does a real user feel it? Availability, latency, and correctness usually pass. CPU utilisation usually does not — nobody outside your team cares what your CPU is doing, only whether the page loaded. Measure the thing your user experiences, not the thing that is convenient to graph. Choosing the right signals here is really an observability problem: you can only set an SLI on behaviour your telemetry actually captures.

A realistic SLO is set by working backwards from what users actually need, then leaving deliberate headroom. Start loose, measure your current performance for a few weeks, and set the target where it keeps users happy without pinning you to perfection — you can always tighten it later. Resist the urge to promise nines you cannot defend, and resist the opposite urge to set a target so slack it never alerts. The SLO should be tight enough that breaching it means something is genuinely wrong and worth waking someone up for, which is also where your incident severity levels hook in: a sustained SLO burn is often what escalates an issue from a low-priority ticket to a paging Sev-1.

Where the numbers come from

An SLI is only as good as the telemetry behind it. If your availability metric is computed from load-balancer logs, it never sees the client-side failures — the JavaScript error that blanked the page, the request that timed out in the browser, the retry storm the user endured. A green server-side SLI can sit on top of a genuinely broken experience. Grounding your indicators in what actually happened in failing user sessions — the console, the network, the DOM at the moment of failure — is what keeps the number honest. That is the gap BugMojo fills: it captures what the user really saw, so the reliability figure your SLO defends reflects real user impact rather than server-side optimism.

Put the whole stack together and the mental model is short enough to keep in your head. You measure with an SLI, you target that measurement with an SLO, and you promise a looser version of that target to customers with an SLA that carries consequences. The distance between the SLO and 100% is your error budget; the distance between the SLO and the SLA is your safety margin. Get the SLIs pointed at real user pain, set the SLOs just high enough to matter, and keep the SLA comfortably below the SLO — and the three acronyms stop being jargon and start being a control system for how much risk you can afford to ship.

Ground your SLIs in what users actually saw

An availability number computed from server logs can hide a broken client experience. BugMojo captures the failing session — rrweb replay, console, and network — so the reliability you measure reflects real user impact, and your SLOs defend the right thing.

Install the extension

Frequently asked questions

Frequently asked questions

Sources

  1. Service Level Objectives — SLIs, SLOs, and SLAs defined and related (Google SRE Book, ch. 4) — Google SRE Book (2026)
  2. Implementing SLOs — choosing good SLIs and realistic SLO targets in practice — Google SRE Workbook (2026)
  3. SLA vs. SLO vs. SLI — how the three reliability terms differ and relate — Atlassian (2026)
  4. Embracing Risk — error budgets, why 100% is the wrong reliability target — Google SRE Book (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
  • One example, threaded through all three
  • Why the distinction matters
  • How to choose good SLIs and realistic SLOs

Get bug-tracking insights, weekly.

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