On-Call Schedule Best Practices for Small Teams
A good on-call schedule keeps each person on-call no more than once every three to four weeks, uses a defined primary-and-secondary escalation so no single person is a point of failure, schedules handoffs at a predictable low-traffic time, and allows easy overrides — the right shape depends on team size, not a single fixed template.
How many people do you actually need for a sustainable rotation?
A sustainable rotation needs enough people that no one is on-call more often than roughly once every three to four weeks — a rule of thumb consistent with Google's own guidance in the SRE workbook's on-call chapter. In practice that tends to mean at least four or five people sharing the load. Below that, the math stops being forgiving: with three people rotating weekly, each person is on-call a third of the time, leaving very little room to fully switch off between shifts. A team that's genuinely too small for a sustainable rotation has a few real options. It can recruit a wider pool by pulling in adjacent teams for secondary coverage, shorten the shift length so the burden is spread differently, or accept that it needs to hire before the rotation can be made healthy. Pretending the math works out when it doesn't just moves the cost from a hiring conversation to a burnout conversation later.
Shift length
A week-long rotation is the most common default, and it works reasonably well for teams of five or more. Each person is fully off-call for several weeks between shifts, giving real recovery time. For teams of two or three, a week-long rotation means each person is on-call roughly half the time or more. That's a genuinely heavy load regardless of how quiet the alerts actually are — just being reachable and unable to fully switch off is its own cost.
For very small teams, shorter rotations — two or three days — spread that constraint more evenly, at the cost of more frequent handoffs. There's no universally correct shift length. The right one is whatever keeps each person's on-call frequency at a level they can sustain indefinitely, not just survive once.
Handoff timing
Handoffs should happen at a predictable, low-traffic time. Early morning on a weekday tends to work well. It avoids both the highest-traffic hours and the temptation to hand off right before a weekend, when nobody's fully paying attention. A handoff that happens mid-incident, purely because the clock ran out, is its own hazard. Build in a brief overlap window rather than a hard cutoff, so an in-progress incident doesn't get orphaned between two people mid-response.
Primary and secondary coverage
A rotation with only a primary on-call person and no secondary is a rotation with a single point of failure. The primary's phone might die, or they might already be on another call, or they might simply not respond in time. There needs to be a defined secondary who picks it up, not a scramble to figure out who's actually reachable in the moment — this is exactly the structure PagerDuty's own public documentation on being on-call recommends for the same reason. This is the scheduling equivalent of an escalation policy: the schedule itself should already answer "who's next" before an incident ever makes that question urgent.
Secondary coverage doesn't need to mean a second person sitting fully alert in parallel with the primary — for most teams that's more coverage than the actual risk justifies. It's enough for the secondary to be one step in the escalation chain, paged automatically if the primary doesn't acknowledge within a set window. They don't need to actively watch alongside the primary for the whole shift. The distinction matters for burnout: a true secondary role that only activates on a missed acknowledgment costs almost nothing in day-to-day disruption. A secondary expected to watch every page in real time, by contrast, is effectively working a second full on-call shift with none of the compensation.
Overrides matter as much as the base schedule
Rotations are planned in advance. Life isn't. Someone will get sick, have a family emergency, or simply need a specific day off that lands during their scheduled week. A rotation without an easy override mechanism creates real pressure to grit through an on-call shift a person shouldn't be covering. That's worse for everyone, including whoever eventually gets paged and reaches someone who's not actually able to respond well.
A "cover now" mechanism — letting any team member claim an in-progress shift or pick up coverage on short notice — solves this without requiring a manager to manually reshuffle the schedule every time. PingParrot's on-call scheduling supports exactly this: recurring rotations with a straightforward override any team member can claim. A schedule change doesn't require rebuilding the whole rotation around one exception.
Review the schedule against real fatigue signals
The best test of whether a rotation is structured correctly isn't a policy debate. It's the team's actual paging data. Rising acknowledgment times, an uneven distribution of who's covering weekends, a pattern of swap requests concentrated around one person's slots — all of these are signals that the schedule's shape needs adjusting, not just individual willpower. A rotation that's never been reviewed against this kind of data is a rotation running on the assumption that the original design was correct and stays correct as the team changes. That assumption is rarely true for long.