## TL;DR

Write down who gets paged first for each service, who they escalate to after 10 minutes, and what happens at the 30-minute mark for a SEV1. A one-page escalation policy kills the "who do I call?" scramble at 3am. Templates beat tribal knowledge because the incident commander follows a list instead of guessing.

## Error / query

```text
how to page the right person: escalation policy template
```

You want pages to reach the right person fast, without improvisation, even when the primary responder is asleep.

## Use this skill when

- pages routinely land on the wrong person or on nobody
- youre standing up an on-call rotation for the first time
- alerts have no clear owning service or team
- you need a documented escalation chain for an audit or compliance review

## Not for this skill when

- you need the paging tool itself (PagerDuty/Opsgenie setup is a separate task)
- you need on-call scheduling software configuration
- the question is compensation or rotation length (see the on-call norms skill)

## Steps

### 1. Map every service to a primary responder and a backup

List services and who owns them. Nobody pages "the backend team"; pages go to a named rotation.

```bash
cat > /tmp/escalation-map.csv <<'EOF'
service,primary_rotation,backup_team,sev1_owner
payments-api,payments-oncall,platform-team,engineering-manager
web-frontend,frontend-oncall,platform-team,engineering-manager
postgres-primary,data-oncall,platform-team,cto-oncall
EOF
cat /tmp/escalation-map.csv
```

Expected: a CSV with one row per critical service, each with a named primary rotation, a backup team, and a SEV1 owner.

### 2. Write the time-based escalation ladder

Define exactly what happens at 5, 10, and 30 minutes of silence. Minute marks remove all judgment calls.

```bash
cat > /tmp/escalation-ladder.md <<'EOF'
# Escalation ladder

- T+0: page the primary rotation for the affected service
- T+5: no ack -> page primary again and notify the team channel
- T+10: no ack -> escalate to the backup team rotation
- T+15 (SEV1): auto-escalate to the engineering manager regardless of ack
- T+30 (SEV1 unresolved): page the CTO-level on-call, pull in a second responder
EOF
cat /tmp/escalation-ladder.md
```

Expected: a documented ladder with concrete minute marks, so nobody improvises escalation timing mid-incident.

### 3. Store it where the incident commander can reach it in 30 seconds

Put the policy in the runbook repo and link it from the team channel topic or a pinned post.

```bash
cp /tmp/escalation-map.csv ./runbooks/escalation-map.csv
cp /tmp/escalation-ladder.md ./runbooks/escalation-ladder.md
git add runbooks/ && git commit -m "Add escalation policy" && git push
```

Expected: policy committed to the runbooks repo; anyone can open it from a phone browser during an incident.

## Variant phrasings

### who gets paged first when a service goes down

Same fix: the escalation map from step 1 answers this per service. If there is no map, nobody knows, and writing the map is the first job.

### escalation policy example for a small team

Same fix: shrink the ladder to two levels (primary, then everyone) but keep the minute marks. A 5-person team still needs written timing.

### how to escalate an incident to management

Same fix: the T+15 manager escalation rule defines when management gets pulled in, which stops both premature escalations and late ones.

## Why it happens

Pages go to the wrong person because ownership lives in peoples heads, not in a doc. The 10 minutes spent figuring out who owns a service are the most expensive minutes of any incident, so writing it down once pays off every single time.

## Edge cases and pitfalls

- Cross-team services with two owners: pick one primary. "Both own it" means nobody responds.
- People who cant carry a pager (contractors, some regions) need a named fallback, not a silent gap.
- Update the map when teams reorganize. A stale escalation policy is worse than none because people trust it.
- Time zones matter for global teams: the ladder should name rotations, not people, so it works while someone sleeps.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_jcOPJlwymunMpA-whwbruQ
