Markdown Editor

Toil Review Template (Quarterly Operational Load and Automation ROI)

Quarterly toil review: toil definition tests, measurement method, toil share per engineer vs cap, pages per shift, on-call health, toil inventory, automation ROI ranking, decisions

BetriebVollständigGoogle SRE book (cited by name only)toilreview

Anleitung: Use it each quarter to measure an operations or SRE team's toil and decide which automation to fund. Fill the measurement method and per-engineer toil share first, from tickets, pages and time diaries. The main pitfall is reporting only the team average, which hides the engineers who carry the queues.

Vorschau

Toil Review: [Team name] [Quarter YYYY-QN]

Quarterly review of a team's operational load: how toil is defined and measured, toil share per engineer against an agreed cap, page and interrupt load per on-call shift, on-call health, the toil inventory, automation candidates ranked by return on investment, a capacity headroom check-in, and the decisions taken. Toil is a term from site reliability engineering practice; the Google book Site Reliability Engineering is cited by name only, and the definition tests, method and numbers in this template are original. Replace every [bracketed] value and every row marked Example.

Document control

FieldValue
Document ID[TOIL-YYYY-QN-TEAM]
Team[Team name]
Review period[YYYY-MM-DD to YYYY-MM-DD]
Review meetingYYYY-MM-DD
Version[0.1]
Status[Draft / Reviewed / Decisions agreed / Closed]
Owner[@engineering-manager]
Approvers/reviewers[@sre-lead], [@product-owner], [@director-of-engineering]
Last updatedYYYY-MM-DD
Classification[Internal]
Toil cap in force[Percentage of available engineering time, agreed on YYYY-MM-DD]
Previous review[TOIL-YYYY-QN-TEAM]

Approvals

RoleNameDecisionDate
Engineering manager[@name][Approve / Approve with conditions / Reject]YYYY-MM-DD
SRE lead[@name][Decision]YYYY-MM-DD
Product owner[@name][Decision]YYYY-MM-DD
Director of engineering[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]Data collected and draft written
1.0YYYY-MM-DD[@name]Example: Decisions agreed in the review meeting
1.1YYYY-MM-DD[@name]Example: Automation candidate AUT-004 deferred to next quarter

Contents

1. Executive summary

[Summarise the team's toil share and trend, engineers above the cap, page load and out-of-hours load, the top automation investments approved, the engineering time they take and the expected saving.]

Example: In 2026-Q3 the Corvid Commerce platform reliability team spent 959 of 2,860 available hours on toil, a team share of 33.5%, below the team's 40% cap but up from 29.8% in Q2. Two of six engineers (E1 at 44.0% and E3 at 45.0%) were above the cap, both because they carried the release and access-request queues. On-call engineers received 286 pages over 184 twelve-hour shifts (1.55 per shift), and only 66.1% of pages needed action. The team approved three automation investments for Q4 (AUT-002 alert tuning, AUT-001 self-service access and AUT-003 certificate rotation), costing 360 build hours and expected to free about 1,457 hours a year gross (1,397 net of maintenance) once in place. Release promotion automation (AUT-004) was deferred to Q1 because of its 8-month payback.

MeasurePrevious quarterThis quarterTarget (Example)Status
Team toil share (Example)29.8%33.5%40% or lessMet, rising
Engineers above cap (Example)1 of 62 of 60Not met
Pages per 12-hour shift (Example)1.311.552 or fewerMet
Actionable page share (Example)70.2%66.1%80% or higherNot met
Nights with an out-of-hours page (Example)38.5%44.6%25% or lessNot met

2. Scope and period

ItemValue
Team and services[Team], [services or platforms operated]
Period[Quarter, start and end dates]
Working weeks in period[N]
Nominal hours per engineer[Weeks x contracted weekly hours]
On-call rotations covered[Rotation names and shift length]
Engineers measured[N, pseudonymised E1 to EN]

Example: Corvid Commerce platform reliability, 2026-07-01 to 2026-09-30, 13 weeks at 40 contracted hours, so 520 nominal hours per engineer. Six engineers in one primary rotation with two 12-hour shifts a day (184 shifts in the 92 days from 1 July to 30 September). E6 joined on 2026-07-13 and has 400 available hours.

3. Toil definition and classification rules

3.1 Working definition

For this review, toil is hands-on operational work that follows a recipe the team already knows, keeps coming back, and leaves the service no better once it is done. The opposite is engineering: work that changes the service so the same need arises less often, or not at all, however tedious that work feels while doing it. The term comes from site reliability engineering practice (see the Google book Site Reliability Engineering, cited by name only); the tests below are this team's own operational rules, not a restatement of that book.

Classify each recurring task with the five tests. A task is toil when test 5 is answered "No" and at least two of tests 1 to 4 are answered "Yes" (Example rule, set your own):

No.TestQuestion for the teamCounts toward toil whenExample that countsExample that does not
1Hands on keyboardDoes the task stall until a person types, clicks or approves something?YesApproving each production promotion in the pipeline UIA promotion that proceeds when checks pass
2Known recipeCould a new team member finish it from a written checklist without asking anyone?YesGranting a standard read-only role from an approved requestDeciding whether a new supplier may hold customer data
3Comes backWill the same request or alert return within the next quarter?YesWeekly reset of the shared QA environmentA one-off move of a database to a new region
4Someone else's clockIs the timing set by a queue, an alert or another team, rather than by the team's own plan?YesAnswering a disk-full ticket raised by a product teamScheduling a storage redesign in the quarterly plan
5Lasting changeWhen the task is finished, is the service permanently better: fewer future occurrences, faster, or safer?NoRestarting a worker that hangsFixing the defect that makes the worker hang

Record one more attribute for every task in the inventory (section 8), without using it as a test: the growth driver, meaning what makes the volume rise (traffic, customers, services, engineers, regions). A task whose driver grows faster than the team is the first candidate for automation even when its hours are modest today.

3.2 What is not toil

CategoryDescriptionWhere it is tracked
EngineeringWork that leaves a lasting improvement: automation, design, fixing root causesProject or product backlog
Incident response with learningDiagnosing a new failure and writing the postmortemPostmortem (dev/postmortem)
OverheadMeetings, planning, hiring, training, administrative tasksNot measured here, but shown in section 5 as non-engineering time
On-call availabilityBeing reachable while on call with nothing to doCounted in on-call health (section 7), not as toil

Repeated response to the same known incident, where nothing new is learned, is toil. The first diagnosis of a novel failure is not.

4. Measurement method

4.1 Data sources

SourceWhat it givesCoverage (Example)Weakness
Ticket system, toil labelCount and logged time of request and interrupt tickets612 tickets, time logged on 81%Time not logged on every ticket
Paging systemPages, timestamps, acknowledgement, shiftAll 286 pagesNo time spent per page
Calendar samplingRandom two-week time diary per engineer, once a quarter6 of 6 engineersSmall sample
Pull request and pipeline dataManual approvals and release stepsAll releasesDoes not show waiting time
Quarterly surveyPerceived toil, on-call strain6 of 6 responsesSubjective

4.2 Calculation

Available hours (engineer)  = Nominal hours - leave - public holidays - training days
Toil hours (engineer)       = Logged toil ticket time
                            + Pages x mean handling time per page
                            + Unlogged ticket time estimated from the time diary ratio
Toil share (engineer)       = Toil hours / Available hours
Team toil share             = Sum of toil hours / Sum of available hours
Annualised hours            = Quarterly hours x 4  (assumes stable volume; state if not)

Example: For tickets without logged time, Corvid Commerce used the median logged time of tickets with the same label. For pages, it used a mean handling time of 39.2 minutes per page from the time diaries, so 286 pages x 39.2 / 60 = 187 hours. Time spent diagnosing a novel failure for the first time is excluded and recorded in the postmortem.

4.3 Data quality

[Record known gaps: tickets without labels, missing time logs, engineers without a diary sample, changes in labelling since the previous quarter. State whether the gaps change any conclusion.]

5. Toil share per engineer

The cap is the highest share of available time the team agrees to spend on toil, so that enough time remains for engineering work that reduces future toil. Example: Corvid Commerce set a cap of 40% for this team in 2026-Q1; set your own cap with your engineering leadership and record the date it was agreed in Document control.

EngineerAvailable hoursToil hoursToil shareCap (Example)StatusMain sources
E1 (Example)48021144.0%40%AboveRelease approvals, access requests
E2 (Example)52018235.0%40%WithinAlert triage
E3 (Example)44019845.0%40%AboveAccess requests, data fixes
E4 (Example)50012024.0%40%WithinCertificate rotations
E5 (Example)52015630.0%40%WithinCapacity tickets
E6 (Example)4009223.0%40%WithinEnvironment resets
Team2,86095933.5%40%Within

Arithmetic (Example): available hours 480 + 520 + 440 + 500 + 520 + 400 = 2,860; toil hours 211 + 182 + 198 + 120 + 156 + 92 = 959; 959 / 2,860 = 33.5%. E1: 211 / 480 = 44.0%. E3: 198 / 440 = 45.0%.

5.1 Trend

QuarterTeam toil shareEngineers above capNote
2026-Q1 (Example)36.1%2Cap agreed
2026-Q2 (Example)29.8%1Deploy automation shipped
2026-Q3 (Example)33.5%2New region added access and capacity work
[Quarter][N%][N][Note]

6. Page and interrupt load

6.1 Paging

MeasureFormulaValue (Example)Target (Example)
PagesCount in period286n/a
ShiftsDays x shifts per day92 x 2 = 184n/a
Pages per shiftPages / shifts286 / 184 = 1.552 or fewer
Shifts above targetShifts with more than 2 pages / shifts31 / 184 = 16.8%10% or less
Highest pages in one shiftMaximum9Investigated if above 5
Out-of-hours pagesPages between 22:00 and 07:00 local / pages104 / 286 = 36.4%25% or less
Actionable pagesPages that needed human action / pages189 / 286 = 66.1%80% or higher

6.2 Top paging sources

AlertPagesActionableAction
Example: Queue depth high, order events589Re-tune to SLO burn rate per the Alerting Policy (ops/alerting-policy)
Example: Node disk above 85%4130Automate log rotation and volume growth
Example: Synthetic check failure, single location374Require two locations before paging
Example: Certificate expiry within 14 days2222Automate renewal (AUT-003)
[Alert name][N][N][Action]

6.3 Interrupts outside paging

MeasureValue (Example)
Interrupt tickets in period612
Business days64
Interrupt tickets per business day612 / 64 = 9.6
Share handled by the person on interrupt duty71%

An interrupt rota (one named engineer per day or week who absorbs tickets) protects the rest of the team's focus time. If the share handled by that person is low, interrupts are leaking to everyone.

7. On-call health

IndicatorValue (Example)Threshold (Example)Status
Nights with at least one page between 22:00 and 07:0041 of 92 = 44.6%25% or lessAbove
Engineers with two or more consecutive disturbed nights4 of 60Above
Recovery time off taken after disturbed nights, per the On-call Handbook (ops/on-call-handbook)9 of 14 eligibleAll eligibleBelow
Rotation size6 (about 31 shifts each per quarter: 184 / 6 = 30.7)[Agreed minimum] (Example: 8 or more for a single-site 24-hour rotation; 6 or more per site for follow-the-sun)Below
Survey: "on-call load is sustainable" (1 to 5)2.83.5 or higherBelow
Engineers asking to leave the rotation10Watch

Example: The out-of-hours load comes mostly from the queue depth and single-location synthetic alerts (section 6.2). Both are noisy alerts, so alert tuning (AUT-002) is the fastest way to improve sleep, ahead of any larger automation. The rotation is also below the team's agreed minimum size for a single-site 24-hour rotation; the engineering manager takes this to the next headcount planning cycle (TR-D-06).

8. Toil inventory

Toil IDTaskCategoryOccurrences per quarterHours per quarterTrendSource of demandGrowth driver
TOIL-001 (Example)Manual release approval and promotionRelease107214RisingProduct teamsNumber of services and releases
TOIL-002 (Example)Page handling for repeating, known alerts (97 of them non-actionable)Alerting286187RisingMonitoring configurationNumber of monitored services
TOIL-003 (Example)Access requests for standard rolesAccess316158RisingAll engineering teamsEngineering headcount
TOIL-004 (Example)Manual scaling and quota ticketsCapacity61121FlatProduct teamsTraffic and regions
TOIL-005 (Example)Production data fixes on requestData46115FlatSupportCustomer count
TOIL-006 (Example)Certificate and secret rotationSecurity hygiene4896FlatExpiry calendarNumber of services and certificates
TOIL-007 (Example)Test environment resetsEnvironments3468FallingQANumber of QA test cycles
Total959

Arithmetic (Example): 214 + 187 + 158 + 121 + 115 + 96 + 68 = 959, equal to the team toil hours in section 5.

9. Automation candidates ranked by return

9.1 Formulas

Apply the same formulas to every candidate so the ranking is fair. Use hours rather than money unless finance supplies a loaded hourly cost.

Annual toil hours (Y)        = Quarterly hours x 4
Hours freed per year (H)     = Y x expected reduction
Build hours (B)              = Estimated one-off effort
Maintenance hours/year (M)   = Estimated upkeep
Net hours per year (N)       = H - M
Payback (months)             = B / (N / 12)
First-year net hours         = N - B
Return ratio (rank key)      = H / (B + M)

9.2 Ranked candidates

RankCandidateToil IDYReductionHBMNPaybackFirst-year netReturn ratio
1AUT-002 (Example) Alert tuning: burn-rate alerts, multi-location syntheticsTOIL-00274870%523.68016507.61.9 months427.65.45
2AUT-001 (Example) Self-service access for standard roles with automatic expiryTOIL-00363290%568.812024544.82.6 months424.83.95
3AUT-003 (Example) Automated certificate and secret rotationTOIL-00638495%364.816020344.85.6 months184.82.03
4AUT-005 (Example) Self-service environment resetTOIL-00727280%217.610012205.65.8 months105.61.94
5AUT-004 (Example) Automatic release promotion on passing checksTOIL-00185660%513.632040473.68.1 months153.61.43
[N][AUT-NNN][TOIL-NNN][Y][%][H][B][M][N][months][hours][ratio]

Check for AUT-001 (Example): Y = 158 x 4 = 632; H = 632 x 0.90 = 568.8; N = 568.8 - 24 = 544.8; payback = 120 / (544.8 / 12) = 2.6 months; first-year net = 544.8 - 120 = 424.8; ratio = 568.8 / 144 = 3.95. Approved candidates AUT-002, AUT-001 and AUT-003 cost 80 + 120 + 160 = 360 build hours and free 523.6 + 568.8 + 364.8 = 1,457.2 hours a year.

9.3 Non-financial factors

Rank by return, then adjust for factors the formula does not capture, and record each adjustment:

FactorEffect on ranking
Out-of-hours load and burnout riskMove up candidates that remove night pages
Security or compliance risk of the manual taskMove up candidates that remove error-prone manual handling of secrets or access
Dependency on another teamMove down, or convert into a request to that team
Toil that should be eliminated, not automatedPrefer removing the demand (for example a product change) over automating it

Example: AUT-003 ranks third on return but removes manual secret handling, so it was approved in the same quarter as the top two. AUT-004 has the largest toil pool but the longest payback and needs the delivery platform team, so it moves to Q1 with a joint plan.

10. Capacity headroom check-in

ItemHours next quarter (Example)
Available hours (6 engineers, 13 weeks, after planned leave)2,960
Expected toil (current rate 33.5%, before automation savings)992
Overhead (meetings, hiring, training, estimated 15%)444
Remaining engineering hours1,524
Approved automation build hours (AUT-001, AUT-002, AUT-003)360
Hours left for product and platform roadmap1,164

Arithmetic (Example): 2,960 x 0.335 = 991.6, rounded to 992; 2,960 x 0.15 = 444; 2,960 - 992 - 444 = 1,524; 1,524 - 360 = 1,164.

Service capacity signals for the Capacity Plan (ops/capacity-plan): [record any toil that is really a capacity problem, for example manual scaling tickets that show autoscaling limits are too low].

11. Decisions

Decision IDDecisionOwnerDueTrade-off
TR-D-01 (Example)Build AUT-002 and AUT-001 in Q4 weeks 1 to 6[@sre-lead]2026-11-13Observability dashboard refresh moves to Q1
TR-D-02 (Example)Build AUT-003 in Q4 weeks 4 to 10[@security-platform-engineer]2026-12-11None, inside remaining hours
TR-D-03 (Example)Rotate the release approval queue weekly across all six engineers until AUT-004 ships[@engineering-manager]2026-10-12E1 and E3 load drops below cap
TR-D-04 (Example)Ask product teams to own data fix requests through a self-service tool request[@product-owner]2026-12-31Product backlog item added
TR-D-05 (Example)Defer AUT-004 to Q1 with a joint plan with the delivery platform team[@director-of-engineering]2027-01-15Release toil stays at about 214 h per quarter
TR-D-06 (Example)Request two more engineers for the rotation, or move night cover to a second site, in the next headcount cycle[@engineering-manager]2026-12-15Until then, no new service joins the rotation without an alert review
[TR-D-NN][Decision][@owner]YYYY-MM-DD[Trade-off]

12. Follow-up of previous actions

Previous decisionDeliveredExpected savingMeasured savingNote
Example: TR-D-01 of 2026-Q2, automated deploy rollbackYes, 2026-08-0490 h per quarter72 h per quarterRollback still needs manual approval at night
Example: TR-D-03 of 2026-Q2, page deduplicationNo40 h per quarter0Carried over as part of AUT-002
[Decision ID][Yes / No / Partly][Hours][Hours][Note]

13. Glossary and references

13.1 Glossary

TermMeaning in this review
ToilHands-on operational work with a known recipe that keeps returning and leaves the service no better (section 3.1 tests)
Growth driverWhat makes a toil task's volume rise, recorded in the inventory
Toil capThe maximum share of available engineering time the team agrees to spend on toil
Available hoursContracted hours minus leave, holidays and training
PageA notification that requires the on-call engineer to respond now
Actionable pageA page where a person had to take an action that could not be skipped
InterruptUnplanned request or ticket that breaks planned work, outside paging
Return ratioHours freed per year divided by build plus yearly maintenance hours
PaybackMonths until hours freed exceed build hours

13.2 References

  • Beyer, Jones, Petoff and Murphy (eds.), Site Reliability Engineering, O'Reilly, 2016; online edition at https://sre.google/books/ (CC BY-NC-ND 4.0). Cited by name only, as the origin of the term toil.
  • Related templates: On-call Handbook (ops/on-call-handbook), Alerting Policy (ops/alerting-policy), Incident Severity Matrix (ops/incident-severity-matrix), Error Budget Policy (ops/error-budget-policy), Capacity Plan (ops/capacity-plan), SLO document (dev/slo-doc), Developer Experience Survey (dev/developer-experience-survey), Delivery Performance Report (dev/delivery-performance-report).

Standard and licence note

Structure aligned with site reliability engineering practice for measuring and reducing toil. The Google book Site Reliability Engineering is cited by name only, as the origin of the term: its online edition is licensed CC BY-NC-ND 4.0 and its second edition is all rights reserved, so no text, list, figure, threshold or number from it is reproduced. The five classification tests in section 3 are original operational rules written for this template and do not restate the book's description of toil. The formulas, thresholds, ranking method and the Corvid Commerce example are original and fictional; every target value is an example to be replaced by your own. Check the current editions of the cited books before relying on them. Google is a trademark of its owner; this template is not affiliated with or endorsed by it. Template licence: MIT.

Ähnliche Vorlagen