An on-call rota you can defend ONCALL
Somebody swaps a week, then another. Eighteen months later one person has had four Christmases and nobody can say how, because the sheet only ever showed this quarter.
The period
Who is in it
The generator is deterministic: the same people, dates and blackouts always give the same rota. A rota that can be reproduced can be defended; one that came out of a shuffle nobody can repeat cannot.
The weeks
How it falls
The rota, written out
How it works
On-call is never unfair on purpose
Somebody builds it in a spreadsheet. Somebody swaps a week. Somebody covers at short notice and it is never paid back. Eighteen months later one person has had four Christmases and another has had none, and nobody can say how that happened, because the spreadsheet only ever showed the current quarter, and each individual decision was reasonable.
That is what makes it corrosive. There is no villain, so there is nothing to raise, and the person on the wrong end knows the situation is unfair but cannot prove it. Meanwhile whoever built the rota is certain it is fair, because they have looked at it and it looks fair.
So this generates the rotation and then does the part that matters: it counts. Weeks each, weekends each, and named dates each (the public holidays, the ones people actually mind about), and it shows the spread between the luckiest and unluckiest person as a number.
The spread is the number to look at
Not the average, which is always fine by construction. A rota where the gap between the most-burdened and least-burdened person is one weekend is a rota nobody will complain about. A gap of five is one somebody is entitled to raise, and it is much better to find that in the generator than in a grievance.
Christmas and New Year deserve their own count. They are not interchangeable with an ordinary weekend, everybody knows it, and a rota that treats them as equivalent is fair on paper and resented in practice. Counting them separately lets you do the obvious thing: whoever had one last year does not have it this year, visibly, by rule rather than by goodwill.
A generated rotation is a starting point
Real life has unavailability in it, so blackout dates are honoured when generating rather than being fixed afterwards: a swap made after the fact is the thing that quietly unbalances everything.
When somebody does swap, record it as a swap rather than editing the rota, so the counts follow. That single habit is what keeps the record honest: an edited cell has no memory, and a logged swap means the person who covered is credited and the person covered for is owed.
Publish it far enough ahead that people can plan, and publish the counts with it. Showing everybody where they sit relative to everybody else stops most of the arguments before they start, and the ones it does not stop are the ones with something real behind them.
Everything stays in this browser, which for a rota naming a small team and the dates they are unavailable is the right default: that is personal data. Nearby: ROSTER builds the working rota, CAPACITY says how many people you actually have, LEAVE shows the days you go under, and SLA works out when a response is really due in open hours.
Doing this often? OBSCURA Pro saves the on-call rota from here, along with the result of every other tool outside the Workspace, and includes the paid applications. Everything is US$9 a month or US$79 a year, 7 days free.