Introduction
There is a particular kind of dread that only people who have been on call understand. It is not the dread of the incident itself, exactly. It is the dread that lives quietly in the background of an entire week, the low hum of knowing that your phone might go off at any moment, that you cannot have more than one drink at dinner, that you need to keep your laptop within reach even at your cousin's wedding, because if something breaks, it is going to be you who fixes it.
Every engineering team that runs production infrastructure eventually must solve this problem, and the truth is that most of them solve it badly. Not maliciously, and not out of negligence exactly, but because on-call rotations tend to get built reactively. A company grows, an outage happens at a bad time, someone says, "we need a rotation," and a schedule gets thrown together in a tool nobody thought hard about, using a model copied from whatever blog post came up first in search. Six months later, the same three senior engineers cover eighty percent of the pages because nobody trained anyone else properly, the alerts are firing constantly for things that resolve themselves, and the team's best backend engineer just quietly updated her resume.
This guide exists because on-call rotations deserve more thought than that. Done well, on-call rotation that is highly effective system: predictable, fair, well supported by tooling, and respectful of the fact that the humans in the rotation have lives outside of work. Done badly, it is one of the fastest ways to burn out an engineering team, and burnout on a team responsible for keeping your systems running is not an abstract HR concern, it is a reliability risk in its own right, because exhausted, resentful engineers make worse decisions during incidents than well rested, fairly treated ones.
We are going to go through this properly. What on call is and why it exists in the first place. The different rotation models and which ones fit which kind of team. How to think about escalation policies so the right person gets paged at the right time instead of everyone getting paged for everything. Why alert quality is the single most underrated lever in the entire system. How documentation and handoffs prevent context from evaporating between shifts. The uncomfortable but necessary conversation about compensation and fairness. And finally, the tooling layer, because the software you run your rotation on either makes all this easier or actively works against you.
What On-Call Actually Is, and Why It Exists
At its simplest, on call is a commitment that someone from the team is reachable and responsible for responding if something goes wrong with a system, outside of normal working hours. That is the entire definition. Everything else, the schedules, the escalation chains, the pager tools, is infrastructure built around that one simple commitment.
The reason on call exists at all is that modern software does not sleep. A payments API does not politely wait until 9 a.m. Monday to fail. A database connection pool does not exhaust itself only during business hours out of courtesy. If your product generates revenue, holds user data, or does anything a customer might depend on at 2 a.m. on a Saturday, something needs to be watching it around the clock, and something needs to be able to act when the watching turns up a problem.
For a long time, "something" meant a network operations center stuffed around the clock, and for some organizations, particularly telecoms, banks, and large enterprises, that is still exactly how it works. But for many modern engineering teams, the "something" is a rotation: a defined group of engineers who take turns being the reachable, responsible person, usually for a week at a time, sometimes shorter, occasionally longer.
It is worth being honest about what on call is not. It is not a punishment. It is not a rite of passage that junior engineers must suffer through before they earn the right to complain about it. And it is not, despite how many teams treat it this way, something you can bolt onto an existing team structure without touching anything else, expecting it to just work. On-call touches scheduling, tooling, documentation, culture, and compensation all at once, and if you only think about one of those pieces, the others will eventually undermine it.
The Real Cost of Being on Call
Before getting into the mechanics, it is worth sitting with something that a lot of engineering leadership underestimates: being on call has a genuine cost for the person doing it, even in a week where nothing goes wrong.
Carrying a pager changes how you live your week. You cannot fully relax. You check your phone battery obsessively. You think twice about going somewhere with bad signals. You have that drink at dinner and then stop, just in case. You sleep lighter, because some part of your brain is listening to a notification sound even while you're asleep. Research on interrupted sleep and vigilance states consistently shows that this kind of low grade, anticipatory stress has real physiological effects, similar in some ways to the effect of an actual interruption, even when the interruption never comes.
This matters because it means the cost of calling is not just the incidents themselves. A quiet week on call, where the pager never fires, still costs something. It costs a full night of unbroken sleep at least one night, because the brain doesn't fully relax around an active pager. It costs some of the spontaneity of a weekend. For engineers with families, it costs the ability to fully be present, because part of them is always half listening.
None of this is an argument against having on-call rotations. Production systems need people watching them, and there is no way around that reality for most companies. It is an argument for taking the design of the rotation seriously, because every design decision you make either respects that hidden cost or ignores it. Teams that ignore it end up with attrition, quiet resentment, and eventually, a rotation nobody wants to be part of, which is its own kind of reliability risk.
Choosing the Right Rotation Model
There is no single correct way to structure an on-call rotation, and one of the most common mistakes teams make is adopting whatever model a much larger or much smaller company uses, without checking whether it fits their own incident volume, team size, and business hours. Let's go through the models that show up in practice, and where each one genuinely fits.
The Weekly Rotation
This is the most common model by a wide margin, and for good reasons. One engineer is primary on call for a full calendar week, typically starting and ending on the same day each week, often a Wednesday or Thursday rather than a weekend boundary, so that handoffs don't collide with the busiest personal time. A week gives enough time for the on-call engineer to build up context on whatever is happening in the system that week, without dragging on so long that fatigue sets in. Weekly rotations work best for teams of at least five or six engineers, ideally more.
The Daily Rotation
Some teams, particularly ones handling very high alert volume or operating in environments where sustained focus for a full week would be unreasonable, use daily rotations instead. One person is on call for a 24-hour period, then hands off to the next. The advantage is that no single person absorbs a full week of interrupted sleep. The disadvantage is that context gets handed off constantly, requiring clear daily summaries.
Following the Sun
For organizations with engineers distributed across multiple time zones, a sun model assigns on-call responsibility to whichever region is currently in business hours, effectively rotating the pager around the globe over a 24-hour period. Done well, nobody ever gets paged at 3 a.m. local time.
Primary and Secondary Pairing
Almost every serious on-call structure benefits from a primary and secondary pairing. The primary gets paged first. If unacknowledged within 5-15 minutes, it escalates to the secondary. This provides a vital safety net when someone sleeps through an alarm or loses network signal.
Shadow or Trainee Rotations
For onboarding newer engineers, a shadow rotation is essential. A shadow engineer receives identical pages as the primary but acts under supervision, building pattern recognition and confidence before taking on solo duty.
Sizing Your Rotation Correctly
Healthy rotations aim for engineers to be on primary duty no more than once every three to four weeks. If your team is smaller, consider cross-team coverage or routing non-urgent alerts away from 3 a.m. pages.
Escalation Policies: Getting the Right Person at the Right Time
An escalation policy is the logic that decides who gets paged, in what order, and how quickly the page moves on if nobody responds. It sounds like a small operational detail, but a well-designed escalation policy is one of the highest leverage things a team can build, because it is the difference between an outage that gets caught in five minutes and one that festers for forty-five because a notification landed on a silenced phone.
A reasonable baseline escalation policy looks something like this: the alert first goes to the primary on-call engineer, through a channel with a high chance of actually being noticed, a phone call or a push notification loud enough to wake someone, not a Slack message that might sit unread. If there's no acknowledgment within a defined window, it escalates to the secondary. If there's still no acknowledgment after another window, it escalates further, sometimes to a team lead, sometimes to an entire secondary team, depending on the severity of what triggered the alert in the first place.
The part that a lot of teams get wrong is treating every alert with the same escalation urgency. A genuinely critical customer facing outage and a disk space warning that will become a problem in six hours if ignored should not follow the same escalation path. This is where severity tiers (Critical, Warning, Informational) earn their keep.
The Alert Fatigue Problem, and Why It's the Real Enemy
If there is one single factor that determines whether an on-call rotation is sustainable or slowly toxic, it's alert quality, and specifically, the absence of alert fatigue.
When an engineer gets paged at 3 a.m. for something that turns out to be nothing—a transient network blip that resolved itself in ninety seconds—that engineer's brain quietly recalibrates. The next page feels a little less urgent. After a handful of false alarms, the engineer starts treating every page with a baseline of skepticism. This is not laziness; it's a completely rational response to a signal that has proven itself unreliable.
3 Strict Rules Every Paging Alert Must Meet:
- • Actionable: Meaning there is a clear, specific action a human can actually take to resolve or mitigate the issue right now.
- • Urgent: Meaning the issue directly impacts production or customers and cannot reasonably wait until normal business hours.
- • Accurate: Meaning it reflects a real, verified problem rather than a noisy threshold, false alarm, or transient blip.
Anything that does not meet all three of these criteria should not be paging anyone at 3 a.m. It should be logged, bundled into a daily digest, or fixed at the source so it stops firing altogether.
Documentation, Runbooks, and Why Tribal Knowledge Fails Under Pressure
Every engineering team has at least one person who is the unofficial answer to "what do we do when this specific thing breaks." Usually, it's whoever built the system originally, or whoever has been on the team the longest. This works fine right up until that person is on vacation, asleep, or has left the company, at which point the entire on-call rotation is only as strong as whoever happens to be holding the pager that week, and their individual memory of a system they may not have built.
Runbooks exist to solve exactly this problem, and good ones are worth the investment many times over. A runbook for a specific, recurring failure mode should be specific enough that someone unfamiliar with the deep internals of a system could still follow it under pressure at 3 a.m. and reach a resolution, or at least a safe mitigation, without needing to wake up the one person who "really understands this part."
The best runbooks share a few qualities. They're written in plain, direct language, not clever or terse, because a stressed, half-asleep engineer at 3 a.m. does not benefit from cleverness. They include the actual commands or exact steps to run, not vague descriptions like "check the database," but the specific query, the specific dashboard link, the specific service to restart. They're kept close to where the alert fires, ideally linked directly from the alert itself, because an engineer who must go searching through a wiki for the right document during an active incident has already lost several precious minutes.
And critically, they get updated. A runbook that was accurate two architecture changes ago is worse than no runbook at all, because it gives false confidence and can send someone down entirely the wrong path during a live incident. Building a habit of updating the relevant runbook as part of every incident's postmortem, rather than treating runbook maintenance as a separate, always deprioritized task, is one of the simplest structural changes a team can make.
Handoffs: The Underrated Moment Where Context Disappears
The moment one on-call shift ends, and another begins is deceptively risky. It's when accumulated context, the thing that's currently a little flaky, the deploy that went out Tuesday and might still be settling, the customer who's been complaining about intermittent slowness that nobody's fully diagnosed yet, either gets passed along cleanly, or evaporates entirely.
A good handoff doesn't need to be elaborate, but it does need to be deliberate. At minimum, it should cover what's currently open or unresolved, anything unusual that happened during the outgoing engineer's shift even if it didn't become a full incident, and anything scheduled or expected during the incoming engineer's shift, like a planned deploy, a maintenance window, or a known risky change. Some teams do this as a short synchronous call; some do it as a written summary posted to a shared channel and either can work well if it happens consistently rather than being skipped whenever things feel quiet.
The teams that skip handoffs entirely tend to justify it the same way every time: "nothing's really happening right now, so there's nothing to hand off." This is almost always a mistake, because the value of a handoff isn't really about transferring information when things are calm, it's about building the habit and the shared documentation trail so that when things aren't calm, the habit is already there and nobody has to invent a process under pressure.
Compensation and Fairness: The Conversation Teams Avoid
This is the part of on-call design that gets skipped most often, usually because it's uncomfortable, and it's also the part that determines, more than almost anything else, whether your best engineers stay or quietly start interviewing elsewhere.
Being on call is work, even in the weeks when the pager stays silent. It restricts what a person can do with their evenings and weekends, it costs sleep quality even without an actual incident, and it carries a background stress that doesn't show up on any timesheet. Treating on call purely as an unpaid, expected part of the job, with no additional compensation and no acknowledgment of the cost, is a decision, even if nobody explicitly frames it that way, and it's a decision that tends to erode goodwill over time.
There's no single correct model for compensating on-call time, and what's appropriate varies by company size, industry, and local labor norms, which is worth checking against local regulations since some jurisdictions have specific legal requirements around on-call pay. But the teams that handle this well tend to do at least one of a few things: a flat stipend for each week of primary on-call regardless of whether anything happens, additional per incident pay for actual pages responded to outside of normal hours, or built in recovery time, such as a guaranteed lighter workload or a day off the week following a particularly rough on-call stretch.
What matters less than the exact model is that there is one that is transparent, and that it's applied consistently. A rotation where compensation feels arbitrary or where certain people quietly absorb more of the burden than others, often junior engineers or the ones least comfortable pushing back, is a rotation that will eventually produce resentment, even if nobody says anything about it directly for a long time.
The Tooling Layer: Where On-Call Either Gets Easier or Gets Worse
Everything discussed so far, the rotation model, the escalation policy, the alert discipline, the runbooks, the handoffs, gets implemented through software, and the quality of that software has an enormous effect on whether the process holds up under real pressure.
A weak setup looks like this: alerts scattered across five different monitoring tools, each with its own notification settings, none of them talking to each other, so a single underlying problem shows up as four separates, disconnected pages. The on-call engineer wakes up, checks tool one, sees nothing conclusive, checks tool two, starts cross-referencing timestamps by hand, and twenty minutes into an incident they still don't have a clear picture of what's wrong, only a growing pile of dashboards open in browser tabs.
A strong setup collapses that entire process. Alerts from uptime checks, logs, and infrastructure metrics flow into a single place, correlated automatically so that related symptoms of the same underlying issue show up as one incident, not five. Escalation policies live in that same place, so a missed acknowledgment escalates automatically without anyone having to manually chase down a backup. And increasingly, the strongest setups now include something genuinely new: an AI layer that doesn't just surface the raw signals, but actually walks through them, forms a hypothesis about what's happening, and checks that hypothesis against the actual evidence before handing the on call engineer a cited, specific starting point instead of a pile of graphs to interpret alone.
This is precisely the gap 24Observe is built to close. It combines uptime monitoring with multi region checks, log management for searching and correlating events, and an on-call and incident management layer with smart escalation, all feeding into an AI analyst that investigates incidents automatically rather than leaving a half asleep engineer to manually reconstruct what happened across four disconnected tools. The difference this makes in practice is not subtle. A well-correlated, AI assisted investigation can turn what used to be a forty-minute manual slog into a two-minute read, and when you're the one who must be coherent enough at 3 a.m. to act on what you find, that difference matters enormously.
Metrics Worth Tracking, and Ones Worth Ignoring
Once a rotation is up and running, it's worth measuring it, but it's easy to measure the wrong things or misinterpret the right ones. A few metrics are genuinely useful. Time to acknowledge tells you whether pages are reaching people and being noticed promptly, and a rising trend here is often an early warning sign of alert fatigue setting in before it becomes an obvious crisis. Incident volume per rotation member, tracked over time, tells you whether the burden is distributed fairly or whether certain people are quietly absorbing more than their share. And the ratio of pages that turned into real, actionable incidents versus pages that turned out to be noise is probably the single most important number for judging alert quality, because a low ratio here is a direct, measurable sign that your alerting needs tightening.
What's worth being cautious about is turning any of these into a leaderboard or a performance metric tied to individual engineers. The moment "how many incidents you resolved" becomes something that affects someone's performance review, you've created an incentive to either downplay real problems or, worse, to avoid escalating for help when it's genuinely needed, because asking for backup starts to feel like an admission of weakness rather than the correct call. These metrics exist to improve the system, not to rank the people operating inside it.
Common Mistakes Teams Make with On-Call Rotations
1. Treating on-call as purely a technical problem
Configuring a schedule tool while ignoring human factors like compensation, fairness, and recovery time leads directly to silent team burnout.
2. Letting alert thresholds drift without regular audits
Allowing threshold drift causes systems that used to page three times a week to quietly start paging fifteen times a week without anyone explicitly deciding that should happen.
3. Skipping proper onboarding for new rotation members
Throwing new hires straight into solo on-call produces engineers who fear the pager rather than build confidence with it.
4. Relying on an informal senior-only hierarchy
Allowing the same two or three senior engineers to handle all actual incidents creates a fragile single point of failure for system reliability.
Building a Culture Where On-Call Doesn't Feel Like Punishment
Everything covered so far is structural: models, policies, tooling, metrics. But there's a cultural layer underneath all of it that determines whether a well-designed rotation feels sustainable to the people living inside it, or whether it feels like a well-organized version of the same old dread.
Build a sustainable culture by having managers participate in rotations, enforcing blameless postmortems, and actively protecting recovery time after brutal on-call shifts.