If you manage an engineering team, you have probably heard the terms SLO, SLI, and error budget thrown around, often in the context of site reliability engineering. These concepts originated at Google and have become essential for any team that cares about service reliability. But many managers find them abstract or intimidating. This article breaks them down into practical tools you can use to make better decisions about reliability, feature work, and team trade offs.
What Is an SLI?
A Service Level Indicator is a measurable metric that reflects some aspect of your service’s performance. Common SLIs include request latency, error rate, throughput, and availability. The key is that an SLI must be quantifiable. You cannot have a subjective SLI. For example, "users are happy" is not an SLI, but "percentage of requests completed in under 200 milliseconds" is.
Choosing the right SLIs matters because they form the foundation for everything else. Pick SLIs that directly correlate with user experience. If your users care most about fast page loads, latency is your primary SLI. If they care about uptime, availability is more relevant. Do not try to measure everything. Focus on a handful of SLIs that truly represent the health of your service from the user’s perspective.
What Is an SLO?
A Service Level Objective is a target value or range for your SLI over a defined period. For instance, "99.9% of requests will complete in under 200 milliseconds over a 30 day window" is an SLO. The SLO is a promise to your users, but it is not a contract. It is an internal goal that helps your team know when the service is healthy and when it needs attention.
Setting an SLO requires careful thought. If you set it too high, you may spend excessive effort on reliability that users do not notice. If you set it too low, your service may feel unreliable. A common approach is to start with historical data. Look at your actual SLI values over the past few months and set an SLO slightly below the worst observed performance that still kept users happy. This gives you room to make mistakes without immediate alarm.
SLOs should be reviewed and adjusted periodically. As your system evolves, user expectations change, and your SLOs should reflect that. Do not treat SLOs as fixed forever. They are living targets.
What Is an Error Budget?
An error budget is the amount of time or number of events that your service can fail to meet its SLO before it becomes unacceptable. It is calculated as 100% minus the SLO target. For example, if your SLO is 99.9% availability over a month, your error budget is 0.1% of the month, which is about 43 minutes. You can "spend" that error budget on deployments, experiments, or other risky activities that might cause downtime.
The beauty of an error budget is that it turns reliability from a vague fear into a measurable resource. When your error budget is full, your team can move fast and accept some risk. When the error budget is running low, you should slow down, focus on stability, and avoid changes that could push you over the edge. This creates a clear mechanism for balancing reliability and velocity.
Why Engineering Managers Should Care
As an engineering manager, you are responsible for both delivering features and keeping the service running. These two goals often conflict. Without a structured approach, you end up making ad hoc decisions based on pressure from stakeholders or fear of incidents. SLOs and error budgets give you a data driven way to resolve that conflict.
When a product manager asks for a risky deployment to hit a deadline, you can look at your error budget and say, "We have 20 minutes of error budget left this month. We can proceed, but if we burn through it, we will stop all releases until the next month." That conversation is objective and transparent. It shifts the debate from opinion to fact.
Error budgets also help you communicate with your team. Engineers often feel anxious about pushing changes that might break things. An error budget gives them permission to make mistakes as long as the budget is not exhausted. This can reduce stress and increase velocity, because the team knows exactly how much risk is acceptable.
How to Start Implementing SLOs and Error Budgets
Step 1: Identify Your Most Critical User Journeys
Do not try to create SLOs for every microservice or endpoint. Focus on the user facing services that matter most. If your product is an e commerce site, the checkout flow is critical. If it is a messaging app, message delivery latency is critical. List your top three to five user journeys and start there.
Step 2: Define SLIs for Each Journey
For each critical journey, pick one or two SLIs that capture its health. Availability and latency are usually the best starting points. Ensure you have the instrumentation to measure these SLIs accurately. If you cannot measure it, you cannot set an SLO for it. Invest in observability before defining SLOs.
Step 3: Set Initial SLOs Based on Historical Data
Look at your monitoring data for the past three to six months. Identify the worst performing period that still did not cause major user complaints. Set your SLO just below that level. For example, if your latency was 250ms at the 99th percentile during a busy day and users did not complain, set an SLO of 300ms at the 99th percentile over 30 days. This gives you a buffer.
Step 4: Calculate Your Error Budget
Once you have an SLO, compute the error budget as 100% minus the SLO target. For availability SLOs, this is straightforward. For latency SLOs, the error budget is the number of requests that exceed the threshold. You need to decide whether to measure by time or by count. Most teams use time for availability and request count for latency. Choose what works for your service.
Step 5: Create a Policy for Spending the Error Budget
Decide how your team will use the error budget. A common policy is: when the budget is above 50%, the team can deploy freely, including during weekends. When it falls between 20% and 50%, slow down deployments and require additional testing. When it drops below 20%, freeze all releases and focus solely on reliability improvements until the budget recovers. Communicate this policy to the entire organization so everyone understands the rules.
Common Pitfalls to Avoid
One mistake is setting SLOs that are too aggressive. A 99.99% availability SLO sounds impressive but requires extreme engineering effort and may not be worth the cost. Understand your users actual needs. Many B2B services can operate at 99.9% without complaints. Reserve five nines for systems where downtime directly costs large amounts of money.
Another pitfall is ignoring the error budget once it is defined. The whole point is to use it for decision making. If you set an error budget but never reference it in planning or incident reviews, you are just creating paperwork. Integrate the error budget into your team’s regular rituals, such as sprint planning and postmortems.
Do not confuse SLOs with SLAs. A Service Level Agreement is a contractual promise to an external customer, often with financial penalties. SLOs are internal targets that are stricter than SLAs. Your SLO should be more ambitious than your SLA, so you have a buffer before you breach the contract. For example, if your SLA promises 99.9% uptime, set your internal SLO at 99.95%.
Real World Example
Imagine you manage a team that runs a payment processing API. You identify the critical user journey as "successful payment completion within 2 seconds." Your SLI is the percentage of payments that complete within 2 seconds. Historical data shows that 99.5% of payments succeed within 2 seconds over a 30 day window, and users are satisfied. You set your SLO at 99.0% to have a buffer. The error budget is 1% of total payment requests over 30 days. If your API handles 10 million requests per month, the error budget is 100,000 failed or slow payments. During a week with many releases, you use 30,000 of that budget. You have 70,000 left. The team can decide whether to keep deploying or to stabilize.
This example shows how concrete SLOs and error budgets become. They turn abstract reliability into a finite resource that you can manage.
How to Get Team Buy In
Introducing SLOs and error budgets can feel like adding process. To get your team on board, explain the benefits clearly. Emphasize that error budgets give engineers permission to move fast without guilt. Many engineers fear breaking things. An error budget legitimizes some risk and reduces anxiety. Also, involve the team in defining the SLIs and SLOs. If engineers help choose the metrics, they will own them more deeply.
Start small. Do not try to roll out SLOs for the entire system at once. Pick one service or one user journey, set it up, and show the team how it works. Once they see the value, they will want to expand to other areas.
Measuring Success
Track how often your team stays within the error budget, how quickly incidents are detected and resolved, and whether the team feels less stressed about deployments. If your SLOs are realistic, you should see fewer emergency releases and more predictable velocity. Over time, you can tighten SLOs to improve reliability further.
Remember that SLOs and error budgets are not about perfection. They are about making intentional trade offs. By adopting these practices, you move from reactive firefighting to proactive management of reliability. Your team will thank you for it.

Leave a Reply