← Blog Escalations

Escalation policies explained without the enterprise fog machine

An escalation policy is a timed ownership transfer for an alert that has not been acknowledged. Designing one means turning a response objective into people, delays and fallback paths — without building a pager labyrinth that summons the entire company for a staging warning.

By Published 9 min read escalation policies alert routing incident response

Escalation policies exist because delivery is not acknowledgement. A webhook can return 200, a chat message can display a green check, and the only qualified responder can still be asleep underneath a phone in airplane mode. If a critical alert remains unacknowledged, the system needs a deterministic next step.

IncidentRelay routing screen
Routing decides where the alert starts. Escalation decides how hard it keeps knocking.

First, separate four similar-looking mechanisms

MechanismWhat changesExample
Delivery retryThe system retries a failed send to the same destination.A webhook timed out, so the notification worker tries again.
ReminderThe same owner is notified again because the alert is still unacknowledged.Remind the primary every five minutes.
EscalationOwnership moves to another responder or rotation.After five minutes, assign the backup.
Incident coordinationMore roles join after acknowledgement.Add an incident commander and communications lead.

Do not use five chat channels as a substitute for escalation. Multiple delivery destinations can improve reachability, but they still target the same ownership decision. A second human is redundancy; a second emoji-capable webhook is merely another webhook.

Design backward from the response objective

Start with the maximum acceptable time until a qualified human owns the incident. Suppose a P1 must be acknowledged within ten minutes. Reserve time for notification delivery and human reaction, then fit escalation steps inside what remains.

response objective:              10 minutes
delivery and processing budget:  1 minute
primary response window:         4 minutes
secondary response window:       5 minutes
latest backup notification:      minute 5

A policy that waits fifteen minutes before notifying the secondary cannot achieve a ten-minute acknowledgement objective. This sounds obvious when written down, which is exactly why writing it down is useful.

A practical P1 timeline

12:00  alert created; primary rotation notified
12:04  no ACK; backup rotation notified
12:09  no ACK; named duty manager notified
12:15  no ACK; repeat policy once and trigger fallback process
12:??  ACK at any step stops ownership escalation

The exact numbers depend on risk, page volume and channel reliability. Very short delays can create a notification stampede: the primary acknowledges at 12:04:02 while the backup is already being called. Very long delays preserve tranquility by sacrificing response time. Measure actual acknowledgement latency, then tune.

Pick the IncidentRelay escalation mode

IncidentRelay routes support two modes, and they behave differently.

Simple rotation mode

Route -> Rotation -> reminders -> next on-call member

The rotation controls the reminder interval, and the team setting controls how many reminders occur before moving to the next on-call user. This is a good fit for a straightforward round-robin team where every member is an equivalent escalation target.

Example: a five-minute reminder interval plus "escalate after two reminders" moves the alert after roughly two unanswered reminders. If reminders are disabled with interval 0, reminder-based escalation does not progress.

Escalation policy mode

Route -> ordered policy rules -> rotation or named user targets

Each rule has a delay and targets either a rotation or a specific user. This fits explicit primary, backup and leadership chains. In this mode, policy delays control escalation and the team's simple reminder-based escalation settings are ignored for that route.

A policy can repeat the complete rule chain. A repeat_count of 0 runs it once; 1 allows one additional full pass. Once all rules and repeats are exhausted, policy reminders stop, but the alert remains firing until someone acknowledges or resolves it.

See Escalation Policies and Reminders and Escalations for the exact product behavior.

Use different paths for different urgency

ClassFirst targetEscalation ideaDelivery
P1: active customer outagePrimary immediatelyBackup in 4-5 min, duty manager by 10 minPush/chat plus voice or another strong channel
P2: serious degradationPrimary immediatelyBackup in 10-15 minPush/chat; voice only if justified
P3: action needed in working hoursOwning team queueNo nighttime human chainTicket or non-paging channel
InfoDashboard or logNoneNo human interruption

Severity is only useful if it reflects impact. Do not trust an incoming critical label forever just because a monitoring template shipped with it. Route on service, environment and impact signals, and periodically compare classification with what responders actually found.

Pager wisdom

If every alert escalates to the boss, eventually the boss escalates to deleting your monitoring rules.

Build targets that can actually respond

Every step must resolve to an active, trained and reachable person. Check that rotation layers cover the policy window, users belong to the team, notification channels are usable, and the final named user is not someone who left the organization six months ago but remains spiritually present in production.

A robust three-step policy often looks like:

  1. Primary rotation: the person currently operating the service.
  2. Backup rotation: a separate qualified responder, not the same schedule with a nicer name.
  3. Named duty lead: someone authorized to mobilize help and use an out-of-band fallback.

Do not add executives merely to make the chain look serious. Add a person only if they have a defined action when the notification arrives.

Make acknowledgement semantics explicit

An ACK should mean "I own the next action", not "I saw a red rectangle while walking the dog". The responder should be able to open the alert, see the service and route, access a runbook, and either act or deliberately reassign/escalate.

Supported interactive channels can make acknowledgement fast, but the audit trail matters just as much: who acknowledged, when, which policy rule was active and which notifications were attempted. During review, this separates a routing problem from a human response problem.

Test the policy as a timeline

Do not stop at a successful test notification. Use a harmless test route or maintenance window and exercise each state:

  1. Acknowledge at step one; verify later steps do not fire.
  2. Ignore step one; verify the backup is selected at the intended time.
  3. Acknowledge at step two; verify escalation stops.
  4. Exhaust all rules; verify repeat behavior and final state.
  5. Disable or remove a target in a test setup; confirm diagnostics expose the broken path.
  6. Resolve and silence alerts; verify reminders stop in both cases.
  7. Inspect alert details and confirm a responder can explain the complete chain.

Run the test after changing rotations, policy rules, route matchers or notification channels. Also run it periodically; expiring credentials enjoy waiting quietly for the least convenient night.

Common policy failures

SymptomLikely design problemFix
Everyone gets paged immediatelyEscalation confused with broadcast delivery.Assign one owner, then add timed fallbacks.
Secondary is always pagedPrimary delay is too short or delivery is unreliable.Measure ACK latency and verify the first channel.
No escalation occursSimple mode has reminders disabled, or the route uses a different mode than expected.Inspect route mode, rotation interval and policy state.
Policy reaches an empty rotationFuture schedule coverage was not validated.Use On-call Health and inspect the calendar window.
Responders ignore later stepsToo many low-value alerts enter the P1 policy.Fix severity routing and alert quality.

Review outcomes, not policy beauty

Useful monthly metrics include acknowledgement time by severity, percentage acknowledged at each step, number of exhausted policies, missed or failed deliveries, and pages later classified as non-actionable. If 80% of P1 alerts always reach the secondary, the answer is not necessarily a fourth escalation rule. The first delay, primary workload, notification channel or alert classification is probably wrong.

A good policy is boring to read: source, owner, delay, next owner, stop condition. If explaining it requires a whiteboard, three senior engineers and a family tree, simplify it before it becomes folklore.

Want to make this less theoretical?

IncidentRelay gives you schedules, rotations, routing, escalations and alert actions in one open-source, self-hosted package. The pager may still be rude, but at least it will be organized.