Plainwork

Plainwork / Turnkeep / How to make an on-call rota fair

How to make an on-call rota fair

A plain round-robin looks fair and quietly is not: one person gets every Christmas, another never gets a weekend, and swaps vanish from memory. This guide explains a points method that small teams can run in a spreadsheet or in Turnkeep, with a worked example and the limits that matter.

Why plain round-robin drifts

Round-robin gives everyone the same number of turns. But a turn is not a fixed amount of pain. A week that contains a weekend or a public holiday is worse than a quiet midweek week, and who gets the heavy ones depends on where the cycle happens to start. Add leave and swaps and the cycle stops being a cycle at all: the person who covered for a colleague in August is not credited when the next rota is drawn up in January.

The points method

  1. Give each kind of day a number. A common starting point is 1 point for a weekday, 2 for a weekend day and 3 for a public holiday. Teams that get paged more at weekends use bigger gaps. Write the numbers down so everyone agrees before the first rota.
  2. Score a shift by its days. A Monday-to-Sunday week with no holiday is 5 weekdays and 2 weekend days: 9 points. If a public holiday falls on a weekday, that week is 11 points.
  3. Keep a running total per person of what they have actually worked, swaps included, over a window such as the last 6 to 12 months.
  4. Give the next shift to whoever would be lowest after taking it, among the people who are not on leave. Scale each total by the person's share if someone works part time.

Two worked examples

Both were produced by the Turnkeep engine when this page was built, from 2026-10-12 to 2027-04-12, with three holidays (25 and 26 December, 1 January). The same inputs give the same result every time.

Daily duty among seven people (a support desk or a release captain), 182 shifts. A seven-day cycle meets a seven-day week, so plain round-robin gives each person the same weekday for the whole period. Points:

MethodAnaBenChenDanaEliFaridGusGap, most to least
Plain round-robin2626262630535227
Points method343434353434341

Round-robin leaves a gap of 27 points between the most and least loaded person, because the people who always draw Saturday or Sunday carry double. The points method brings the gap to 1.

Weekly shifts among five people, 26 shifts:

MethodAnaBenChenDanaEliGap, most to least
Plain round-robin574745454512
Points method48475445459

Here the gap is 12 for round-robin and 9 for the points method. With 26 weeks and five people someone must take a sixth week, so a gap of about one ordinary week cannot be removed; what the method controls is which weeks are the heavy ones. 2 of the 26 weeks contain a holiday, and under round-robin who gets them depends only on where the cycle happens to start.

Leave, swaps and part-time

  • Leave: if anyone is away on any day of a shift, they cannot take that shift. If you plan weekly shifts, one day of leave removes the whole week for that person.
  • Swaps: record who actually covered. If Ben takes Ana's week, the points move to Ben, and the next rota gives Ana a bit more and Ben a bit less. That is the whole mechanism for repaying favours: no IOU list.
  • Part-time: a person at 50% should carry about half the points. Give them a share instead of excluding them from the rota.
  • Rest: avoid back-to-back shifts unless the team is so small that it cannot be helped.

How much on-call is too much

Google's SRE book recommends that no more than 25% of an engineer's time is spent on call, and works out that a 24/7 rota from a single site needs at least eight engineers (six at each of two sites) to stay within that. It also says out-of-hours work should be compensated, with time off in lieu or cash capped at a proportion of salary, and that the aim is a balanced distribution (Being On-Call, chapter 11). A team of four cannot meet that on its own; it can only be honest about the load and share it evenly. Turnkeep shows each person's share of days and warns above 25%.

Do it in a spreadsheet, or in Turnkeep

A spreadsheet works for one team and one rota: a column per person, a row per shift, a points formula, and a total. It struggles with swaps, leave and a history that survives from one plan to the next. The free generator does a one-off plan in your browser, and Turnkeep keeps the rota, the swap record and the running totals so the next plan starts from what really happened. Neither pages anyone: pair the rota with whatever alerting you already use.

Points, pay and working-time rules differ between countries and employers. This guide is about distributing the load, not about what you owe people, and it is not legal advice.

More from the catalogue

Other small tools

See everything →