Skip to content
How to make a rota

How to make a staff rota, step by step.

Eight steps, in the order that works. The order is the part people get wrong. Below is how a staff rota actually gets made — in a spreadsheet, on a whiteboard, or in software — and then the setup walkthrough: every screen RotaBot needs, in the order you would do them.

Jump to a setup screen
  1. 01Your business
  2. 02Roles and areas
  3. 03Your people
  4. 04Configure each person
  5. 05Fixed shifts
  6. 06What the week needs
  7. 07Solve the week
  8. 08Review, then publish
The method

Eight questions, in the order that works.

This is how a staff rota gets made, whatever you build it in. The steps are the same in a spreadsheet, on a whiteboard and in software — all that changes is how much of it you are holding in your head. Where RotaBot holds an answer for you, the link goes to the screen that does it.

  1. 1

    Start with the hours, not the people

    Write the week out as hours needing cover before you decide who covers them. For each day: from what time until what time, how many people, and doing what. Two on the bar from six until ten is a line you can build against; a feeling that Friday is busy is not. Everything after this rests on it, and the judgement is yours — it comes from how the place actually trades, and nothing here reads your till or guesses your footfall for you.

    In RotaBot — RotaBot calls this your demand: blocks per day, saved as a template and reused whenever the same operating pattern comes round.

  2. 2

    Write down when each person can work

    One line per person, and be specific: all day, not at all, or between two times. Keep it wherever the rota is built rather than in a notebook or a group chat, because you will be checking it again next week and the week after. Somebody contracted has a baseline that comes from their contract, and it is yours to set. Somebody on no guaranteed hours should only appear on a day you have actually recorded them as able to work — not because the week came out thin.

    In RotaBot — Each person's week sits on their own record: every day is all day, off, or a window between two times.

  3. 3

    Write down the hours you owe, and the hours you must not exceed

    Contracted hours are a promise, and a rota that quietly misses them for three weeks is a problem arriving later with interest. A weekly maximum is the other half: the point past which you do not want somebody to go. Total each person's week and compare it with both numbers. Breaks are where this goes wrong — the hours that count against a contract are the hours worked, so a nine-hour shift with half an hour out is not nine hours.

    In RotaBot — Contract hours, an optional target and a weekly cap live on the same record, and breaks come off the totals automatically.

  4. 4

    Write down who is trained for what

    A rota that puts the wrong person in the right slot is worse than a gap, because it looks finished. Keep a list of who holds which job and make it the first filter on every slot you fill. Not trained on the bar? Not a candidate for the bar, however free they are that night.

    In RotaBot — Roles and areas come first in the setup, because nobody can be trained for a job that does not exist yet.

  5. 5

    Place what cannot move, first

    Some of the week is decided before you start: the shift somebody always works, the cover you have already promised, approved leave, a day the place is shut. Put those down before anything else, and treat approved leave as a wall rather than a preference. What is left over is the actual problem, and it is smaller than the whole week looked.

    In RotaBot — Fixed shifts live on the person. Approved leave and a closed day are hard blocks: nobody is rostered through either.

  6. 6

    Then fill the hardest hours, not Monday first

    Working left to right across the week feels orderly and leaves you with the Sunday close, two people who could do it, and both of them already on five days. Start instead with the hours only one or two people can cover, and work outwards towards the hours anybody can. You will undo less.

    In RotaBot — RotaBot builds the week from all of it — the demand, availability, approved leave, contracts, training, fixed shifts and shift limits.

  7. 7

    Check it three ways before anybody sees it

    Across, down, and against the rules. Across: for every hour you asked for, are the people in it the number you asked for? Down: does each person's total land where it should against their contract and their cap? Against the rules: is anybody on a day they told you they could not work, on a job they do not hold, or on a finish that leaves too little rest before their next start? Three passes, in that order, every week — and the week you skip them is the week it matters.

    In RotaBot — Coverage against your own requirements and everybody's assigned hours against their contract, on the same screen as the rota, before it is published. Where it could not fill a stretch of the week it names the day, the job, the times and how many people short.

  8. 8

    Publish one version, in one place

    The commonest rota failure is not a bad rota; it is two rotas. A printed copy, a photo in a group chat and a corrected version on your laptop, and by Thursday nobody knows which one is real. Pick the one place the rota lives, put the week out once, and make every change there.

    In RotaBot — Publishing makes the week readable in a browser, on a phone or anything else, to each person you have set up with a login — and nothing reaches them before you do it. It does not send anything to anybody — no text, no email, no push — so telling the team the rota is up is still yours to do.

If you are doing it in a spreadsheet

For a small team a grid is a perfectly good rota, and the eight steps above work in one. We give away a free Excel rota template that adds up step three's hours and does step seven's per-person and per-day totals for you — no sign-up, no email address. RotaBot itself is not free, and it is sold through a demonstration; there is no self-service sign-up. If you are weighing the two up, we wrote the comparison knowing we give the spreadsheet away.

How RotaBot does it

The same answers, on a screen instead of in your head.

Set up how your business operates once, and RotaBot builds every week from it. Every screen it needs is below, in the order you would do them.

01Settings

Your business

We set your business up with you.

RotaBot is not self-service. Request a demo, and your business is created with you during onboarding, with its first site ready to go, called Main site. You are given a login, and everything from here on is yours to do.

A site is one place your staff work — a pub, a branch, a clubhouse. Rename it to whatever you call it. If you run more than one place, add the others later: a selector at the top of every screen switches between them, and the rota, the staff and the busy times all belong to the site you have selected.

RotaBot — Settings
Site
Main siteRenameAdd a site

Everything you are looking at — the rota, the staff, the busy times — belongs to the site selected here.

02Roles & Areas

Roles and areas

Say what jobs your business has.

Create the roles your rota needs — Supervisor, Front of House, Kitchen, whatever you call them. RotaBot will only put somebody on a shift they are trained for, so this comes before everything else.

An area is a part of the business that needs covering rather than a particular job. Give it its member roles and how many of each it needs, then ask for one person from the area and the solver picks the role. Skip areas if your rota is simpler than that.

RotaBot — Roles & Areas

Roles

  • Supervisor
  • Front of House
  • Kitchen
  • Kiosk
  • Outside Ops
New role
e.g. Greenkeeper

Areas

Back of House
Member roles and composition
  • Kitchenmin 1
  • Kioskmin 0

An Area is a part of the business that needs covering rather than a particular job. Ask for one person from an Area and the solver picks the role.

03Staff

Your people

Add everyone who might appear on a rota.

For each person: their name, how many hours they are contracted to, and whether they are contracted or casual. Adding somebody to your team is not the same as giving them a login — most staff never need one.

Contracted and casual behave differently, and the difference matters. A contracted person's availability is a contractual baseline you set here. A casual, zero-hour person has no guaranteed hours, and is only scheduled where you have recorded the times they can work.

RotaBot — Staff
7 peopleAdd staff
  • Felix
    Supervisor
    40hContracted
  • Nora
    Front of House
    32hContracted
  • Zoe
    Front of House / Kitchen
    30hContracted
  • Rory
    Kitchen
    24hContracted
  • Iris
    Kiosk
    16hCasual
04Staff → a person → General

Configure each person

The rules around one person become part of every solve.

Open somebody and you get their roles and areas, contract hours, an optional target and a weekly cap, employment type, age band, a maximum shift length, and their week: each day is all day, off, or a window between two times.

There are tabs for breaks and for splitting — whether a long shift can be broken into parts, and how. The better RotaBot understands somebody, the less correcting their week needs afterwards.

RotaBot — Zoe
GeneralBreaksSplittingFixed Shifts
Name
Zoe
Email
Optional
Roles
Front of House, Kitchen
Areas
Back of House
Contract hours
30
Target hours
Same as contract hours
Max weekly hours
No cap
Employment type
Contracted
Availability is contractual, so this person's baseline is set here rather than varying week to week.
Weekly availability
MonAll day
Tue12:00–21:00
WedOff
ThuAll day
FriAll day
Sat09:00–17:00
SunOff
05Staff → a person → Fixed Shifts

Fixed shifts

Lock in what should not move.

If somebody always works a particular shift, say so once rather than expecting the solver to rediscover it every week. Fixed shifts live on the person, in their own tab.

A Role fixed shift says which job they work. An Area fixed shift fixes the hours and lets the rota choose the job. Fixed shifts show up in your demand template so you can see them against everything else the day needs.

RotaBot — Zoe
GeneralBreaksSplittingFixed Shifts

A Role shift says which job they work. An Area shift fixes the hours and lets the rota choose the job.

Day
Sunday
Requirement
Role · Supervisor
Start
09:00
End
18:00
Day
Monday
Requirement
Area · Back of House
Start
07:30
End
12:30
06Templates

What the week needs

Tell RotaBot when you are busy.

Build a normal week as blocks: on each day, from a start time to an end time, how many people you need and what of. A block asks for a role or for an area, with a count.

This is the single most important thing you will set up, because it is what RotaBot is trying to cover. Save it as a template and reuse it whenever the same operating pattern comes round — a summer week, a quiet week, a bank holiday.

RotaBot — Templates
Summer WeekDuplicateSave
Monday
09:00–12:00×2
Front of House
09:00–21:00×1
Supervisor
12:00–21:00×1
Back of HouseArea
+ Add block
Tuesday
09:00–17:00×2
Front of House
09:00–21:00×1
Supervisor
+ Add block
Wednesday
09:00–21:00×1
Supervisor
10:00–18:00×1
Kitchen
+ Add block
07Rota

Solve the week

Check the setup, then press Solve.

Above the rota is a short readiness check: anything still missing, why it matters, and a link straight to the screen that fixes it. Blockers are separated from things merely worth a look. When it says Ready to generate, Solve is enabled.

The solve builds the week from all of it — the demand you built, contracted hours, who is trained for what, availability, fixed shifts, approved leave, shift limits and legal shift construction.

The check exists because the honest failure it replaced was a brand-new account pressing Solve and being told INFEASIBLE.

RotaBot — Rota
2 things to sort out before you can generate
  • No demand saved for this weekTemplates
  • Nobody is trained for KitchenRoles & Areas
Ready to generate
08Rota → Publish

Review, then publish

Nothing reaches your staff until you say so.

You get the week, its coverage, and everybody's assigned hours against their contract. Move a shift, swap two people, add one RotaBot did not think of — it is your rota and nothing is locked.

Publishing is what makes the week visible to staff. Until then only you can see it, so you can solve, change your mind and solve again without anybody watching.

RotaBot — Rota
DraftPublishedPublish

Until you publish, only you can see the week — so you can solve, change your mind and solve again without anybody watching. Publishing is what makes it visible in the staff app.

Staff app · My rota
Mon08:00–16:00
Tue08:00–16:00
If the first solve is short

What happens if RotaBot cannot cover every requirement?

Sometimes there is genuinely nobody who can legally cover a slot. RotaBot returns the week it found, checked against your requirements, and names what it could not fill — the day, the role or area, the times, and how many people short — rather than quietly reporting a number.

You see the gap

The requirement it could not fill, and why — nobody trained, nobody available, already working that day, or at the days-a-week limit or a weekly-hours cap you set.

You fix it your way

Extend a shift instead of splitting the day, move a duty onto somebody already in, bring in a contracted hand when nobody casual is available.

The difference is kept

What RotaBot generated, what you published, and every change between them — recorded change by change.

The fix you keep making becomes a pattern

RotaBot keeps the difference between what it generated and what you published, and a correction it could legally have made itself is kept as a shape rather than a one-off. Make the same one across three published weeks and it is put to you on the Rota page to confirm or dismiss. Confirmed, it informs the next solve — the ordinary weekly generate as well as a repair when a week is short — and it never moves a hard constraint: availability, leave, training and legal shift limits are the boundary, not preferences. It is also too small to trade away required coverage or contracted hours.

How the loop works
The whole thing

How do you make a staff rota in RotaBot?

You set up once: your site, the roles your rota needs, and your people with their contracts, availability and fixed shifts. Then every week you build what each day needs as blocks, check the setup, press Solve, review the week and publish it.

  1. 01
    Your business
    Settings
  2. 02
    Roles and areas
    Roles & Areas
  3. 03
    Your people
    Staff
  4. 04
    Configure each person
    Staff → a person → General
  5. 05
    Fixed shifts
    Staff → a person → Fixed Shifts
  6. 06
    What the week needs
    Templates
  7. 07
    Solve the week
    Rota
  8. 08
    Review, then publish
    Rota → Publish
  9. 09
    Confirm what it learned
    Rota
Asked and answered

The questions that come up on the way.

How do you make a rota in Excel?

The eight steps above, with you doing the checking. One row per person, one column per day, a start and an end time in each cell, and totals both ways — per person for the week, and per day so you can see how many are in. Our free template is laid out exactly like that and does the arithmetic, including a shift that runs past midnight. What a spreadsheet cannot do is see availability, approved leave, training or contracts. Those stay in your head, and that is where rota mistakes come from.

Do you need rota software to make a rota?

No. For a small team on a stable pattern a grid is a perfectly good rota, and we would rather say so than sell you something. Software earns its place when the week itself is the hard part — demand that moves through the day, contracted and casual hours mixed, training deciding who can do what — and when every small change means checking four other things again. Which tool for which week goes through it properly.

How do you make a rota that is fair?

Fair is mostly arithmetic made visible. Total everybody's hours and show them against what they are contracted to, rotate the unpopular shifts rather than letting them land on whoever complains least, and write your rule for who gets the late finish down, so that it is a rule and not a mood. None of that needs software. It needs the totals in front of you, and the same rule applied in week four as in week one.

How do you make a rota that is legal?

That is a question for your own legal advice, not for a software company: a rota tool schedules against the rules it is given and does not determine your obligations as an employer. What we can tell you is which of the legal limits RotaBot holds as hard — rest between one day's shift and the next inside the week it is solving, and the shorter maximum shift for anyone under eighteen. The maximum shift length for adults is a figure you set, because it is a business preference, and we are not going to dress it up as a statutory one.

What do you do when the rota does not cover the week?

Name the stretch. A rota with a known hole in it that you are still working on is manageable; one that looks finished and is not gets discovered on the day. RotaBot returns the best coverage it found inside your rules and lists every stretch it could not fill, with what the solve itself established about why, and says so plainly where the evidence does not settle it — what that looks like.

How often do you have to do all this again?

The setup once, with corrections as the business changes — a new role, somebody's hours moving, a site added. The week itself every week, which is the part that is actually the job. The whole point of writing the eight answers down somewhere other than your head is that week two starts from them rather than from memory.

Ready to build your first rota?