Google SRE WorkbookPagerDuty Schedule GuidanceILO Convention 47EU Working Time DirectiveDeep Prototype

OnCallRotation — 12-Week Schedule + Fairness Scoring

24 engineers × 12-week on-call schedule. Primary + secondary + follow-the-sun coverage. Fairness scored on 4 axes (weekend equity, holiday equity, page-load equity, time-zone alignment). Surfaces 4 engineers carrying disproportionate weekend duty + 1 timezone-coverage gap (no APAC primary 03:00-09:00 UTC).

OnCallRotation — 12-Week Schedule + Fairness Scoring preview
Open live →

What it is

The shape behind every fair on-call program. Most teams build the schedule once, then never audit fairness — until burnout produces a single resignation that explains the year of weekend coverage they were quietly absorbing.

What’s in it

  • 24 engineers × 12-week schedule as a 24×12 colored matrix (P1 primary / P2 secondary / WE weekend / H holiday).
  • 3 regions — NA (PT/ET), EMEA (CET/GMT/UTC+5:30), APAC (SGT/JST). Each engineer’s TZ explicit.
  • 4-axis fairness scoring per engineer:
    1. Weekend equity — count of weekend duties vs team mean
    2. Holiday equity — same for holidays
    3. Page-load equity — total duty weeks vs team mean
    4. Time-zone alignment — does primary coverage fit local working day
  • Worst-offender findings:
    • E07 (Olu) — 4 weekend duties vs 2.5 team mean
    • E13 (Diego) — 4 weekend duties + carrying both primary + secondary in same week
    • E17 (Cesar) — 5 weekend duties — most in the team
    • E23 (Aaliyah) — 3 weekend duties
  • Recommendations per engineer — explicit swap suggestions (“carrying 2 more weekend duties than the team mean — swap with an engineer below mean”).

Why this shape

Google SRE Workbook ch. 9 explicitly addresses on-call fairness as both an ethical and a long-term-reliability issue. PagerDuty schedule guidance recommends max 25% of weeks per engineer. ILO Convention 47 (40-hour week) + EU Working Time Directive 2003/88/EC apply to on-call hours under recent CJEU rulings. The hardest finding to fix without OnCallRotation: knowing WHICH engineers are carrying the disproportionate load before they leave.

How it ships

Single HTML file, ~18KB. Zero dependencies. 24 engineers × 12-week schedule × 4-axis fairness in 200 lines of vanilla JavaScript.

Open the tool →