On-Call Rotation Best Practices: The Essential Guide for SRE Teams in 2026

On-call rotation best practices matter more in 2026 than they did a year ago. The State of Incident Management 2026 reported that toil rose 30%, the first increase in five years, despite widespread adoption of AI operations tooling. 88% of developers now work over 40 hours per week. 73% of teams had production outages caused by alerts that were ignored because engineers no longer trusted them.

The narrative that AI would reduce operational burden has not materialized at the team level. What is materializing instead is a reckoning: organizations that invested in better tooling without fixing the underlying rotation design, escalation logic, and alert hygiene are now running unsustainable on-call programs. Engineers are burning out. Rotations are unfair. Pages fire at 3am for things that can wait until morning.

This guide covers the on-call rotation best practices that high-performing SRE and platform engineering teams use in 2026: rotation model selection, escalation policy design, alert quality standards, shadow shifts, tooling in a post-Opsgenie landscape, compensation frameworks, and the metrics that tell you when your on-call program is becoming a retention problem.

Why On-Call Rotation Best Practices Fail in 2026

Before covering what works, understand why most on-call programs break down. The failure modes are predictable and well-documented.

Alert fatigue is the root cause of most on-call problems. Teams that page on every anomaly create an environment where engineers stop trusting their alerts. When 80% of pages require no action, the remaining 20% that are real incidents get the same skeptical response. The result is slower MTTR, not faster engineers have learned that most alerts are noise, so they approach real incidents with the same dismissive posture.

Rotation imbalance creates hero engineers. Every on-call program has at least one person who absorbs disproportionate load the senior engineer who gets called when others cannot resolve something, the person who volunteers for extra shifts to cover gaps, the one who is always somehow available when things go badly. This is not a people problem. It is a rotation design problem. When load is not measured and distributed deliberately, it concentrates.

The “you build it, you run it” model without safety rails is not enough. Developer on-call is the correct philosophy engineers who write the code are best positioned to fix it at 3am. But it requires runbooks, shadow rotations before first independent on-call, and alert standards that prevent new service deployments from flooding the rotation with low-quality pages.

Tooling fragmentation multiplies cognitive overhead. Context switching between monitoring, alerting, incident management, and communication platforms during an incident adds what some teams call the “coordination tax”: time spent finding the right people, assembling context, and navigating tools rather than actually diagnosing the problem. The more fragmented the toolchain, the higher the tax.

Opsgenie Migration: The 2026 Decision Teams Cannot Ignore

Before discussing on-call rotation best practices in the abstract, address the concrete tooling disruption affecting thousands of teams right now.

Atlassian stopped selling standalone Opsgenie on June 4, 2025. End of support is April 5, 2027. On that date, all Opsgenie instances go offline and all data: schedules, escalation policies, integration configurations, historical alert data, and audit logs, is permanently deleted.

This is not a gradual deprecation. It is a hard shutdown with a fixed date.

The migration timeline reality: Teams with simple setups (under 10 integrations, basic rotation schedules) typically take 4-8 weeks to migrate. Complex setups with 20+ integrations and layered escalation policies take 8-16 weeks. Nearly every team that has already migrated underestimated the timeline. If you are still on Opsgenie, the migration window that allows for a parallel run and proper validation is closing.

Atlassian’s prescribed path and its problems: Atlassian pushes Opsgenie users toward Jira Service Management or Compass. The issue many teams encounter is that this splits incident management across two tools that were previously unified in Opsgenie. Teams that valued Opsgenie precisely because it handled alerts, on-call scheduling, and escalation in a single product find the JSM migration adds process friction rather than reducing it.

The alternatives teams are actually choosing:

  • PagerDuty: Battle-tested, enterprise-grade, deep integrations. Correct choice for large organizations with complex service hierarchies. Pricing is the primary objection at smaller scale.
  • incident.io: Slack-native architecture that reduces the coordination tax by keeping incident management inside the communication tool engineers already use. Strong choice for startups where team size makes enterprise tooling overhead disproportionate.
  • Rootly: Combines on-call scheduling with incident management in one product: the closest functional replacement for what Opsgenie was.
  • Better Stack: Strong monitoring and on-call combination for teams that want to consolidate monitoring and alerting.

One migration team summarized the experience well: migrating off Opsgenie and switching to a Slack-native alternative eliminated context switching during incidents and dropped their MTTR by 25% in the first month. The forced migration is an opportunity, not just a disruption, use it to evaluate whether your current on-call toolchain actually serves the team.

On-Call Rotation Best Practices: Rotation Model Selection

The rotation model is the foundational decision in on-call rotation best practices. The wrong model for your team’s size and geography guarantees burnout regardless of how good everything else is.

The four primary rotation models:

Weekly rotation: One engineer is primary on-call for a full week, then fully off the following week. Simple, predictable, and easy to schedule. The burnout risk is real a bad week with frequent incidents means an engineer loses a week of productive work and sleep. Appropriate for services with low incident frequency and teams of five or more, so no individual carries more than one week in five.

Daily rotation: On-call duty rotates every 24 hours. Distributes load more evenly and prevents a single bad week from destroying one person’s month. Harder to build deep context when you rotate frequently the engineer who just came on-call has less familiarity with recent incidents than someone who has been on-call for days. Best for services with high but manageable incident rates and experienced teams.

Follow-the-sun: Different regional teams cover their own daylight hours. Engineers in Europe cover Europe business hours, engineers in the US cover US hours, engineers in APAC cover APAC hours. The result is that no engineer is routinely paged outside business hours. This is the gold standard for global SaaS teams with sufficient geographic distribution: burnout complaints “dropped to almost zero” for teams that made this transition, according to industry data. Requires at least three regional teams with adequate coverage.

Split shifts (12-hour): Day shift and night shift within a 24-hour period, typically with separate engineers. Ensures dedicated coverage without overnight disruption. Common in healthcare, financial services, and critical infrastructure where the consequence of delayed response is severe enough to justify the staffing overhead.

Rotation model selection framework:

Team sizeGeographic distributionRecommended model
Under 5 engineersSingle timezoneWeekly with strict incident caps
5-10 engineersSingle timezoneWeekly or daily
10+ engineersMulti-timezoneFollow-the-sun or daily
Any sizeCritical 24/7 serviceSplit shifts or follow-the-sun

The Google SRE minimum bar: No more than two to three actionable incidents per on-call shift. Consistently above that threshold and the rotation model is the problem, not the team. Track this number.

On-Call Rotation Best Practices: Primary and Secondary Coverage

Every production on-call rotation should have a primary and a secondary on-call engineer for each shift. This is one of the most fundamental on-call rotation best practices and one of the most commonly skipped in early-stage teams.

The secondary exists for two reasons. First, coverage if the primary misses an alert (asleep, in a meeting, temporarily unavailable), the page escalates automatically to the secondary after a defined timeout. Second, backup knowledge, major incidents often benefit from a second pair of eyes, and having a designated secondary prevents the primary from heroically solving everything alone.

Escalation timing:

Primary on-call → no acknowledgment in 5 minutes → Secondary on-call
Secondary on-call → no acknowledgment in 10 minutes → Engineering manager
Engineering manager → no acknowledgment in 15 minutes → VP Engineering

These thresholds vary by incident severity. Critical incidents (production down, data loss risk) should escalate faste: 3 minutes to secondary, 7 minutes to manager. Warning-level incidents can afford 10-minute timeouts.

Functional escalation vs. hierarchical escalation:

Most on-call rotation best practices documentation describes hierarchical escalation – alert goes to engineer, then manager, then VP. In practice, the most effective escalation for technical incidents is functional: alert goes to the service owner, then to the team with the relevant domain expertise, then to a senior engineer who can triage across domains.

A Kubernetes networking incident at 3am should escalate to the platform engineering team, not up the management chain. Configure your escalation policies to route by expertise domain, not organizational seniority.

On-Call Rotation Best Practices: Alert Quality as Prerequisite

No rotation model, compensation structure, or tooling choice solves a bad alert quality problem. Alert hygiene is the prerequisite that makes all other on-call rotation best practices work.

The 30-day rule: Any alert that nobody acts on for 30 consecutive days should be deleted. Not suppressed, not reduced in priority – deleted. An alert that engineers consistently ignore is not providing safety net. It is providing noise. Deleting it forces a deliberate decision: is this condition worth acting on? If yes, rewrite the alert with a higher quality threshold. If no, you just reduced noise.

Teams that implemented this rule reported MTTA (Mean Time To Acknowledge) dropping by 40%. The math is straightforward: fewer pages means each page gets more attention.

Alert quality criteria – every alert must pass all three:

  1. Actionable: The alert must indicate a condition that requires a specific human action. “CPU at 75%” is not actionable. “CPU throttling is causing p99 latency to exceed SLO threshold” is actionable.
  2. Urgent: The alert should fire only for conditions where the consequence of waiting until morning is worse than waking someone up. Most warning-level alerts are not urgent. Route them to a Slack channel for review during business hours.
  3. Accurate: The alert should not fire more than 5% of the time without a real issue. Alerts that fire on transient spikes that self-resolve are training engineers to ignore pages.

Alert classification for routing:

Severity: P1 (Critical)
  → Page primary on-call immediately
  → Escalate to secondary in 5 minutes if unacknowledged
  → Example: service unavailable, data corruption, security breach

Severity: P2 (High)
  → Page primary on-call
  → Escalate in 10 minutes
  → Example: SLO burn rate exceeding 6x, degraded performance affecting users

Severity: P3 (Medium)
  → Slack notification to on-call channel
  → No immediate page - review during business hours
  → Example: non-critical service degradation, elevated error rate not yet affecting SLO

Severity: P4 (Low)
  → Ticket creation only
  → Review in next sprint
  → Example: resource utilization trending upward, certificate expiring in 30 days

The failure mode most teams exhibit: routing P3 and P4 as pages. This trains engineers that pages are not urgent.

On-Call Rotation Best Practices: Shadow Shifts and Onboarding

Shadow shifts are one of the most underinvested on-call rotation best practices in engineering organizations that move fast. The consequence of skipping them is an engineer on independent on-call who has never handled a live incident, responding to a production alert at 2am with no practical experience and no runbooks.

The shadow shift progression:

Phase 1 – Observer (1-2 weeks): The new engineer is added to the on-call rotation as an observer. They receive all the same pages as the primary on-call but are not expected to respond. They watch how the primary handles incidents, asks questions afterward, and builds familiarity with the toolchain, dashboards, and escalation contacts.

Phase 2 – Reverse shadow (1-2 weeks): The new engineer takes the primary position with an experienced engineer in the secondary role who is watching. The new engineer leads incident response, makes the decisions, and takes the actions. The senior engineer intervenes only if the situation is heading toward a serious mistake.

Phase 3 – Independent on-call: The new engineer carries the pager independently. Runbooks are available for all known incident types. The escalation path is clear. A senior engineer is reachable (not on-call, but contactable) for genuine unknowns.

This progression costs approximately four to six weeks of partial senior engineer time. The alternative throwing engineers into independent on-call without this progression, creates a higher MTTR, more escalations, and a more stressful experience that accelerates attrition.

On-Call Rotation Best Practices: Handoff Structure

The handoff between outgoing and incoming on-call engineers is where institutional memory either transfers or evaporates. A weak handoff means the incoming engineer has no context on recent incidents, active investigations, or systems that are currently fragile.

The handoff summary (sent at every rotation change):

On-Call Handoff - [Service/Team] - [Date]

Outgoing: [Name]
Incoming: [Name]

== Active incidents ==
[List any open or recently resolved incidents with links and current status]

== Known fragile systems ==
[Any systems that are behaving unusually but haven't triggered alerts yet]
[Deployments that went out this week that may need monitoring]

== Recent changes ==
[Infrastructure changes, new deployments, config changes in the past 48h]

== Pending alerts to watch ==
[Any alerts that fired but were deferred - include reason and threshold for escalation]

== Runbook updates needed ==
[Any runbooks that proved incomplete or inaccurate during this shift]

This summary should take the outgoing engineer 15 minutes to write and should be posted to a shared channel visible to the entire SRE organization, not just sent between the two individuals. Context should never be trapped in one person’s head or a private message.

Live handoff call: For teams where the outgoing engineer had a difficult week (multiple incidents, fragile systems, open investigations) a 20-minute live handoff call is worth the time. A written summary cannot convey the texture of “we’re pretty sure the memory leak is in the payment service but haven’t confirmed it yet” as clearly as a conversation.

On-Call Rotation Best Practices: Compensation and Fairness

Compensation for on-call duty is one of the on-call rotation best practices that organizations most commonly handle poorly, either ignoring it entirely (treating on-call as part of the job with no additional recognition) or implementing it in ways that create perverse incentives.

Google’s on-call cap: No more than 25% of an engineer’s time should be spent on on-call activities. Combined with a maximum of two to three actionable incidents per shift, this sets the structural constraints that keep on-call sustainable. When on-call exceeds 25% of capacity, the organization must hire more engineers or reduce incident volume, not ask the existing team to absorb more.

Compensation approaches:

  • Time in lieu: Engineers who are paged outside business hours accrue time off. One hour paged at 2am = one hour of additional time off. Simple, valued by engineers, does not create incentive to generate incidents.
  • Monetary compensation: A fixed amount per on-call week, plus an additional amount per actionable page outside business hours. Appropriate for organizations where engineers’ time has a clear market rate.
  • Rotation-adjusted workload: Engineers who carry disproportionate on-call load have their sprint commitments reduced proportionally. If an engineer spent 40% of their time last week on on-call, their capacity for feature work this week is 60%, not 100%.

What does not work: treating on-call as an implicit part of the job with no additional recognition while also expecting full feature output. This is the model most likely to produce quiet resignation and attrition.

On-Call Rotation Best Practices: Metrics to Track

On-call rotation best practices cannot be sustained without measurement. These are the metrics that tell you whether your rotation is healthy or becoming a retention problem:

Alert volume per shift: Total pages per on-call period, broken down by actionable versus non-actionable. Target: under 20% non-actionable. More than that and alert hygiene work is overdue.

MTTA (Mean Time To Acknowledge): Time from alert firing to a human acknowledging it. High MTTA at 3am is normal. High MTTA at 10am during business hours indicates alert fatigue, engineers are ignoring pages.

MTTR (Mean Time To Resolution): Average time from incident detection to full resolution. Track this by severity and by service. Degrading MTTR often signals runbook quality problems or knowledge gaps in the rotation.

On-call load distribution: Hours spent responding to incidents outside business hours, per engineer, per month. If one engineer carries 3x the load of others, the rotation has a problem. Rebalance the schedule when the gap exceeds 2x.

Post-incident action item completion rate: Percentage of action items from postmortems that are completed within two sprints. Low completion rate means incidents are recurring because root causes are not being addressed.

Sleep disruption rate: Number of times engineers are paged between midnight and 6am per rotation period. This is the number that predicts burnout most directly. More than two to three overnight pages per week sustained is unsustainable.

Conclusion

The 30% toil increase in 2026 is a symptom of on-call programs that grew without deliberate design. Alert quality degraded. Rotation models that worked for a ten-person team became unsustainable at fifty. Shadow shifts were skipped to move faster. Handoffs became a Slack message rather than a structured transfer.

The on-call rotation best practices in this guide are not individually complex. What makes them difficult is implementing them together, consistently, while also shipping features and handling incidents. The teams that manage it treat on-call program health with the same rigor they apply to system reliability: measuring it, acting on the metrics, and treating burnout as a leading indicator that deserves the same attention as an SLO breach.

For teams currently on Opsgenie: the April 2027 end-of-support deadline is real. Six to eight weeks of migration time for a complex setup means starting now, not in 2027.

At The Good Shell we implement and operate SRE practices for startups and platform engineering teams, including on-call rotation design and incident response tooling. See our SRE services or our case studies.

For the foundational Google SRE guidance on on-call, the Google SRE Book chapter on being on-call remains the authoritative reference.