What it is
A service level indicator (SLI) is a number you measure from real traffic. Good examples are the share of checkout requests that succeed, the share of API calls faster than your latency limit, or the age of the oldest unprocessed order. The SLI has to come from telemetry your users actually generate, not from a status page you update by hand.
A service level objective (SLO) puts a target on that indicator over a window. You might say the checkout success SLI must stay above its target across a rolling 28 days. The target is a choice, not a law of nature. Pick it from what users need and what the system can sustain.
The error budget is the room for failure that the SLO allows. If the target requires a certain number of good events in the window, the budget is the rest: the failed requests, slow calls, or minutes of bad freshness you can spend. It turns reliability into a quantity you can track, discuss, and spend on change.
An SLA is different. It is a contract with a customer and it usually has consequences when missed. An SLO is an internal operating target. Keep the SLO tighter than the SLA so the contract is the last line, not the first warning.
How it works
Start with one flow that matters, like login, checkout, or invoice generation. Write the SLI spec in plain words: which requests count, which count as good, where the data comes from, and how late data is handled. Define which failures count. Do not exclude the failures you dislike. A vague SLI gives a vague budget.
Define the window and the budget math. Rolling windows are common because they age out old failures. Calendar windows reset on a fixed date, which can hide a bad week. State the window in the SLO document so nobody argues about it later. The document should also name the owner, the data source, and the error budget policy.
Track budget burn, not just the raw target. Burn is how fast the budget is being used. A slow burn over days deserves a ticket. A fast burn that would exhaust the budget in hours deserves a page. The alert should point to the user flow and the failing signal, not to a dashboard nobody opens.
Write an error budget policy before you need it. It says who decides, what happens when the budget is healthy, and what happens when it is gone. A common policy allows normal releases while the budget is healthy, limits risky changes when it is low, and pauses feature work when it is exhausted until reliability work lands. Security fixes and rollbacks still go out. The policy is the part that changes behavior; the dashboard is only evidence.
Why it matters for a business
Reliability work competes with feature work for the same engineers. An SLO and its error budget make that trade-off explicit. Product and engineering can look at the same number and decide whether to spend the budget on a launch or save it for a busy period.
It also protects users from silent decay. Without a target, a slow API or a rising failure rate can look like a minor annoyance for weeks. With an SLO, the trend shows up as budget spending, and someone owns the response.
The budget keeps teams from chasing perfection. Every extra step toward perfection costs engineering time, operational complexity, and slower change. A target that matches user needs lets you stop spending when the service is good enough and put the effort somewhere else.
Finance and operations get a clearer story too. Customer commitments, support load, and engineering capacity can be discussed against the same reliability target. You can show why a reliability project is worth a slot in the roadmap without guessing.
Common mistakes
Setting too many SLOs. A wall of targets with no owner is reporting, not operations. Start with the few flows that hurt users and the business when they fail.
Copying a target from a vendor page or setting it at perfection. Perfect leaves no error budget, so the first small failure triggers a crisis. A target copied from another company ignores your users, your architecture, and your traffic patterns.
Measuring uptime of a server instead of the user flow. A host can be up while checkout fails because a dependency is down or a queue is stuck. Measure the outcome the user sees.
Writing an error budget policy and then ignoring it. If teams ship through an exhausted budget with no consequence, the SLO becomes decoration. The other failure is treating the budget as permission to ship known bad changes. The budget covers normal failure, not careless releases.
How to get started
Pick one user flow and one SLI. Write the spec, connect it to real telemetry, and compute the budget in a spreadsheet or your monitoring tool. Run it in shadow mode for a few weeks so you can see normal variation before you set a hard target.
Set an initial target from measured history and user needs. Write down why you chose it. Define the window, the owner, and the alert thresholds for fast and slow burn. Review the budget in a weekly operations meeting, not once a quarter.
Add the error budget policy to your release process. Name the person or group who can grant an exception. Record exceptions so patterns are visible. Expand to a second flow only when the first one is understood and owned.
If your team lacks the pipelines, environments, and monitoring to collect trustworthy signals, a platform setup can come first. Cloudverg offers Delivery platform setup at a fixed price of $14,500 over four weeks, which includes monitoring, alerting, dashboards, and a tested rollback process. It is one option among others. You can also build the pieces in house or hire a specialist.
Frequently asked questions
What is the difference between an SLO and an SLA?
An SLO is an internal target for reliability that your team uses to make decisions. An SLA is an external contract with a customer that usually has consequences when missed. Keep the SLO tighter than the SLA so you get warning before the contract is at risk.
How do you calculate an error budget?
The error budget is the gap between the total valid events in the window and the good events the SLO requires. Count requests, successful calls, or minutes, then subtract the required good amount from the total. Keep the SLI definition fixed so the budget means the same thing each period.
What should happen when an error budget is exhausted?
The written policy should decide. Typical practice is to pause risky feature releases while keeping fixes, security patches, and rollbacks moving. The team then spends time on the reliability gaps that used the budget.