Guide · 5 min read

How to make a fair on-call schedule for residents

Fairness on a call rota is not a feeling, it is a set of numbers you can check. This guide walks through counting the load, splitting weekends and holidays, protecting post-call rest and keeping score across months.

Updated 2 October 2026 · FasterShift team

On this page
  1. What "fair" means on a call rota
  2. Step 1: Count the load before naming anyone
  3. Step 2: Split weekends and holidays separately
  4. Step 3: Space calls and protect post-call rest
  5. Step 4: Lock in leave and requests first
  6. Step 5: Keep a running ledger across months
  7. Pre-publish checklist

What "fair" means on a call rota

Most arguments about a call schedule are not about the total number of calls. They are about which calls: the third Saturday in a row, the call before someone's exam, Christmas Eve again, two calls squeezed into four days. A schedule feels unfair when the hard calls cluster on the same people, even if everyone has the same total.

So treat fairness as several separate counters that should each come out even:

  • Total calls per resident in the period.
  • Weekend calls (decide up front whether Friday night counts as a weekend).
  • Holiday calls, tracked over the whole year, not month by month.
  • Spacing: the shortest gap between two calls for each person.
  • Request success: how many of each person's "please not this day" requests were honoured.

If you can show these five numbers next to the published rota, most complaints never start, because people can see the trade-offs for themselves.

Step 1: Count the load before naming anyone

Before you type a single name, work out what a fair share looks like. Take a common case: 6 residents, a 30-day month, 1 resident on call each night. That is 30 calls, and 30 ÷ 6 = 5 calls each. If the division is not exact (say 31 days), one resident carries a sixth call, and that extra goes on your ledger so someone else carries it next month.

Now check the frequency against whatever rules apply to your programme. Five calls in 30 days is roughly one call every six nights, comfortably inside a limit such as the ACGME requirement that in-house call be no more frequent than every third night, averaged over four weeks. Rules differ by country and contract, so see our summary of rest and call rules before you assume your limits.

Step 2: Split weekends and holidays separately

Weekend calls are the ones people remember, so count them on their own. Suppose the month starts on a Friday. Its Saturdays fall on the 2nd, 9th, 16th, 23rd and 30th, and its Sundays on the 3rd, 10th, 17th and 24th. That is 9 weekend days.

Nine weekend calls across six residents is 1.5 each, which cannot be split evenly in a single month. The honest answer is: three residents take 2 weekend calls and three take 1, and next month the groups swap. The rest of each person's quota is filled with weekday calls: there are 30 − 9 = 21 weekday calls, so the residents with 2 weekend calls take 3 weekday calls and the residents with 1 weekend call take 4 (3 × 3 + 3 × 4 = 21). Everyone still ends on 5.

Example split: 6 residents, 30-day month starting on a Friday
GroupResidentsWeekend callsWeekday callsTotal
Group A (this month)3235
Group B (this month)3145

Holidays work the same way but over a longer horizon. Keep a list of the year's public holidays and assign them first, rotating so that nobody gets the same major holiday two years in a row if you can avoid it.

Tip: If Friday nights are as hard as Saturdays in your hospital, count them as weekend calls. Just decide before you build the rota and write the definition at the top of the schedule.

Step 3: Space calls and protect post-call rest

Two people can both have five calls and still have very different months. Five calls spread evenly every six nights is manageable; five calls packed into ten days is not. Set a minimum gap (for example, no two calls within three nights of each other) and check every resident against it.

Then block out the day after each call. Many programmes treat the post-call day as off, and some rules require it in practice: the ACGME, for example, requires at least 14 hours free of clinical work and education after 24 hours of in-house call. Mark post-call days on the rota so nobody accidentally books a clinic, theatre list or teaching session on them.

Step 4: Lock in leave and requests first

Place approved leave, exams and fixed commitments before you assign any calls. If you fill the calendar first and patch leave in afterwards, you will end up moving five calls to fix one.

Leave also changes what a fair share is. Say one of the six residents has 7 days of leave, so they are available for 23 of the 30 nights. Total availability is 5 × 30 + 23 = 173 resident-nights, and 30 calls ÷ 173 ≈ 0.17 calls per available night. The resident on leave should carry about 23 × 0.17 ≈ 4 calls, leaving 26 for the other five: four of them take 5 and one takes 6. The person who took the sixth call gets one fewer next month. Writing this down stops the "you were on holiday, so you owe us" conversation from turning personal.

For requests ("not the 14th, it's my sister's wedding"), set a simple rule such as two soft requests per person per month, and record which ones were met. Our guide on handling leave and swaps without rebuilding the schedule covers what to do when requests arrive after the rota is published.

Step 5: Keep a running ledger across months

Perfect balance inside one month is often impossible, as the weekend example shows. Balance over three to six months is achievable, but only if you keep score. A ledger can be a simple table with one row per resident and columns for total calls, weekend calls, holiday calls, Friday calls and requests met, plus a running difference from the group average.

Each month, start from the ledger: whoever is above average on weekends gets fewer weekend calls this month, and whoever is below average takes the odd extra. Share the ledger with the group. Transparency does more for trust than any single clever assignment.

Pre-publish checklist

  • Every night has exactly the required number of residents on call.
  • Total, weekend and holiday counts are within one of each other (or the difference is on the ledger).
  • No resident is on call during leave, an exam or an approved request day.
  • Minimum spacing between calls is respected for everyone.
  • Post-call days are free of scheduled clinical duties.
  • Frequency and rest limits that apply to your programme are met.
  • The rule for what counts as a "weekend" is written on the rota.

If you are doing this in a spreadsheet, the checks are the part that usually slips. Our comparison of Excel and scheduling software explains where spreadsheets work well and where they start to hurt. For a quick start, the free call schedule generator builds a balanced draft in your browser, and your data stays in the browser.

14-day free trial

Let the counting happen for you

FasterShift is an AI-powered scheduler: you describe your rules in plain language, such as "no one on call twice in three nights" or "share weekends evenly", and it builds a draft you can check and adjust. Try FasterShift free for 14 days — no card needed. After the trial, plans start from US$12 per team per month.

Get new guides by email

Practical rota and shift scheduling tips plus product news; no spam.