SLO and Error Budget Template
Six documents and three sheets, including a register that puts what your service actually achieved beside every reliability number you have already promised.
Free download · No account needed
You have already promised reliability numbers in four places: a customer agreement, a renewal slide, a runbook header, a dashboard panel title. They disagree with each other, and none of them was ever checked against what the service delivered. Google's SRE Workbook names the outcome of adopting one anyway. A target tighter than the service can currently reach leaves you permanently out of SLO and subject to your own error budget policy. That is how a policy comes to be suspended the first time it would stop a release.
A latency target written as a percentile is worse than unmeasured, because it reports a number. Prometheus documents that its quantile function interpolates across bucket boundaries somebody chose, and that an observation missing its boundary label is silently ignored. A quantile landing in the highest bucket returns the upper bound of the second highest one instead. A service whose slow requests all sit above the top finite boundary reports a flat, excellent number that cannot be breached, and a regression inside the unlabelled traffic moves nothing at all.
So the specification sheet carries three columns. One transcribes each promise exactly as it is written with where it came from, one holds trailing attainment from your own telemetry, and one classes the pair as enforceable now, aspirational, or not measurable at all. Percentile targets get a countable rewrite beside the original. Once a target holds, the alert review prunes what pages on it and the incident postmortem reports what the outage cost the budget.
What's in the pack
SLI Specification
One row per indicator, carrying the target transcribed exactly as written next to trailing attainment, the class, and the countable rewrite where the original could not carry a policy.
Attainment History
One row per month per indicator, with what consumed the budget, the longest single event inside it, every exclusion named, and whether the policy actually triggered.
Budget Consumption
The current period's burn rate against thresholds derived from the budget rather than picked, with a fast window and a slow one, and what each of them notifies.
Error Budget Policy
What happens at half, all and twice the budget spent, which objectives are named as requiring no action, and who may suspend the whole thing.
Reading a Latency Target
Why a percentile is an interpolation rather than a measurement, read off the query engine's own documentation, and what to count instead.
Definition Standard
Indicators as counts over counts, the four classes an objective can hold, and the questions a team answers once about windows and exclusions.
Worked Example, Checkout Availability
One service from a first look at ninety days of history through the target, the budget, the policy trigger and both alert windows.
How to use it
- 1
Open in River, or take it blank
Send the pack your availability data inside River, or download the six documents and three sheets and work through them without an account.
- 2
Transcribe every promise
Each reliability number you have already written down goes in with its source, exactly as worded, before anything is computed against it.
- 3
Measure before you commit
Trailing attainment lands beside each promise, and every indicator gets a class: enforceable today, aspirational, not measurable, or measuring something a user never experiences.
- 4
Set the thresholds
The alert windows come out of the budget rather than being picked, and the policy says what happens at half, all and twice the budget spent.
Frequently asked questions
Is this template free?
Yes, and the download needs no account and no card. Edit with AI is the optional half: it reads the availability data you send, transcribes every target you have already promised somewhere, and puts the real number beside each one. Every other pack is in the template library.
What format are the downloaded files?
Six documents as Word files and three sheets as CSVs, in one zip. The sheets open in Excel, Numbers or Google Sheets with the columns already ordered, and the documents open in Word or Pages. Nothing needs converting, and no part of the pack depends on River to be readable.
Our p99 panel has read the same number for weeks. Is that a problem?
It means the metric is capped rather than the service being steady. A quantile landing in the highest bucket returns the upper bound of the second highest one, so a target above your top finite boundary can never be breached. Prometheus's own histogram guidance is why the rewrite counts requests over a threshold instead.
What do we do about a target a customer has already been shown?
Keep measuring it and stop enforcing it. An aspirational objective is tracked beside the real one and named in the policy as requiring no action, so the gap stays visible without putting the team in permanent breach. Disagreement about the budget arithmetic goes to a named person, which the reference error budget policy escalates to the CTO.
How many alerts does an error budget need?
More than one window. A single threshold misses the burn rate sitting just under it, so alerting on SLOs pairs a fast window that catches a collapse with a slower one that catches sustained degradation, and each of them notifies differently.
We only have one month of data. Is that enough?
Yes, to start. One month gives a trailing figure and a first target under it, and the register records how long the period actually was rather than describing thirty days as ninety. Each further month becomes a row in Attainment History, and the quarterly review is where the number tightens.
How does this relate to our incident work?
An objective decides what counts as bad enough to page on, which is upstream of everything else. The runbook set covers responding to what pages, the incident timeline reconstructs what happened, and any architectural change the budget forces gets its own decision record. Whether the responder is handed a current document at all is the on-call handbook.
Find out which targets your service can actually hold
Take the Word documents and CSV sheets blank, or open this exact pack in River and let it measure the ninety days you already have.
Edit with AI