A rota is a promise about who'll be where, and it fails in two ways: it doesn't cover the shifts, or the people on it never saw it. Here's how to make one that does neither — on paper, in a spreadsheet, or in a tool. The steps are the same everywhere.
Not the people — the shifts. Open, mid, close, Saturday late: each with its hours and how many people it needs to run safely. This list barely changes week to week, and it's the skeleton every rota hangs off. If you're not sure how many a shift needs, look at the last time it went wrong.
Ask for can't-do days before you write a single name. A rota built on guesses generates the most painful kind of work: redoing it. Keep requests somewhere you can see while you build — a note per person beats a memory.
Fill Saturday night and the early opens before the easy midweek slots. The hard shifts have the fewest people who can work them, so give them first pick of the rota. Then spread the rest so nobody works every weekend and nobody gets no hours.
A printout by the till reaches whoever's in today. A photo in the group chat reaches whoever scrolls back far enough. What you want is each person seeing their own shifts, and some way of knowing they've seen them — a reply, a tick, anything you can check.
Someone will be ill; someone will swap. The rota that causes no-shows isn't the badly built one — it's the one that changed after people looked at it. Every change needs to reach the person it affects, and you need to know it did.
Four people, three shift types. The opens and closes need two each; Saturday late needs two and only has one so far — that's the gap to chase on Tuesday, not discover on Saturday.
| Shift | Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|---|
| Open7:00 – 15:00 | Sam, Priya | Sam, Leo | Priya, Leo | Sam, Priya | Sam, Leo | Priya, Mia | Leo, Mia |
| Close14:00 – 22:00 | Leo, Mia | Priya, Mia | Sam, Mia | Leo, Mia | Priya, Mia | Sam, Leo | Sam, Priya |
| Sat late18:00 – 01:00 | — | — | — | — | — | Leo + 1 short | — |
Notice the spread: nobody opens and closes the same day, and nobody has every weekend shift.
Building around people instead of shifts
Start from who wants to work and you'll cover the easy hours twice and the hard ones never. The shifts are the fixed thing; the names move.
Publishing before it's finished
Share half a rota and every edit afterwards looks like a broken promise. Finish it, check the hard shifts, then send it once.
Giving the same people every bad shift
The person who never complains about Saturday nights is keeping a tally anyway. Spread the painful shifts on purpose, not by who objects loudest.
Treating silence as a yes
A name on a rota nobody's confirmed is a hope, not a plan. If you can't see who's seen it, assume the person you most need hasn't.
Steps 1–3 work fine in a spreadsheet. Steps 4 and 5 are where it gets you: the spreadsheet can't tell anyone it changed, and it can't tell you who's seen it. So changes go out as messages, the messages drift from the file, and eventually someone works a shift that only exists in an old photo of the rota.
That's the part RotaBuilder was built for. You do steps 1–3 in about the time they take to read — patterns once, then a generated rota for each period — and it handles 4 and 5: everyone gets a link to their own shifts, answers yes, maybe or no, and anything still short turns amber, then red.
The week at a glance: green is covered, red is a problem you still have time to fix.
7 days free, no card — or read more about the online rota maker first.