Skip to content
Pub, bar & restaurant rota software

A rota that knows Friday night is not Tuesday lunch.

A pub's week is not a number of shifts. It is a lunch trade, a quiet afternoon, an evening that fills from five, two nights that pay for the other five, and a close-down after last orders. The rota has to be built around that shape, by somebody who would rather be behind the bar than in front of a spreadsheet. A bar and a restaurant have their own version of the same problem.

RotaBot — Templates
Trading WeekDuplicateSave
Tuesday
12:00–15:00×1
Bar
12:00–14:30×1
Kitchen
17:00–23:00×1
Bar
18:00–22:00×1
FloorArea
+ Add block
Friday
12:00–17:00×1
Bar
12:00–21:00×1
Kitchen
17:00–23:30×2
Bar
20:00–23:30×1
Bar
17:00–23:00×2
FloorArea
+ Add block
Saturday
11:00–23:30×2
Bar
18:00–23:30×1
Bar
12:00–21:00×1
Kitchen
12:00–22:00×1
FloorArea
+ Add block
Sunday
12:00–22:00×1
Bar
11:00–17:00×2
Kitchen
12:00–17:00×1
FloorArea
+ Add block
The shape of a trading day

Headcount that changes by the hour, not by the day.

A Tuesday needs one on the bar and one in the kitchen for lunch, nobody much between three and five, then one on the bar and one on the floor for the evening. A Friday needs the same lunch, then two on the bar from five and a third from eight, and the kitchen until nine.

That is what RotaBot is given: requirements as blocks inside the trading day — from when, until when, how many, doing what. It is what the week is generated against, and what coverage is measured against afterwards. Not a feeling that Friday is busy; a Friday that is busy from five.

What a pub week has

The things a generated rota has to get right before you would put it on the wall.

Each of these is a rule or an input RotaBot holds, and the week is built around all of them at once.

Friday and Saturday decide the week

One on the bar at lunch, two from five, a third from eight. Requirements are blocks inside the day, so the rota has to be strongest at nine on a Friday and is measured against exactly that — not against a headcount for the day.

Shifts that run past midnight

A Saturday that trades until half past midnight is drawn that way: one block from six until 00:30. A shift from six until half past midnight is one shift, not two halves on two days; it belongs to the night it starts on, and its hours and cost are its real length. Rest is measured across midnight as well — eleven hours for an adult, twelve under 18 — so the rota will not put whoever locks up at half past twelve back on the bar at nine.

Bar, floor, kitchen, cellar

Ask for a role when it has to be that job — somebody trained on the bar — or an area when you need a body on the floor and the solver can choose. Not trained on the bar? Not a candidate for the bar, whatever the rota says.

The core team and the Saturday crowd

Contracted staff whose hours have to add up, and zero-hours staff who are only ever put on where somebody has recorded that they can work. Both on the same week; each held to their own rules.

Match days and live music

A different day needs a different pattern. Save it once as its own demand and apply it to the date; the ordinary week comes back the week after without you rebuilding anything.

The fix you make every week

When Saturday is short you keep extending the closer rather than bringing a fourth person in. RotaBot notices the shape of that, asks you to confirm it, and — confirmed — lets it inform the next solve. Within the rules, never around them.

Bar staff and the people who run it

Trained on the bar, or not on the bar.

Each person carries what the rota needs to know: the roles they are trained for, contracted hours or zero, a weekly cap, a maximum shift length, the days and windows they can work, and the shift that never moves — the Sunday opener, the standing Friday closer.

Availability is held on that record too: contractual for a contracted person, and for a casual person only the times somebody has recorded they can work. Once you publish, the team read the week in a browser. Nobody is put on the bar who is not trained on the bar, and nobody is put on at all on a day they are not available.

RotaBot — Zoe
GeneralBreaksSplittingFixed Shifts
Name
Zoe
Email
Optional
Roles
Bar, Floor
Areas
Cellar
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
Bars and restaurants

When the kitchen and the bar are two different businesses in one room.

A bar and a restaurant are not a pub with the nouns changed. What differs is where the trained people have to be, and when each part of the room stops needing them.

Kitchen and front of house are two requirements

A restaurant's twelve o'clock is not a headcount for the restaurant. It is two in the kitchen and two on the floor. Ask for each as its own block — from when, until when, how many, doing what — and the week is generated against both. Coverage comes back the same way: the kitchen at one o'clock, not the restaurant at one o'clock.

A chef is not a bartender

Chef, bartender, waiter, supervisor — separate roles, and nobody is ever put on a role they do not hold. Ask for front of house as an area instead and anyone trained for one of the jobs inside it, and allowed to work that area, can fill it. Where that area has to hold a particular mix, a supervisor and two waiters, the mix is enforced on the finished rota once the area is staffed to the level the mix requires.

Two sittings, and no split shift

A lunch and a dinner service with a dead hour between them is two blocks, not one long day. Nobody is given more than one shift in a day, so RotaBot will not send somebody home at three and bring them back at six. It puts two different people on — one for the lunch block, one for the dinner block.

A bar still serving after the kitchen has closed is two blocks ending at two different times, not one shift stretched — the kitchen until nine, the bar until close, each measured against what it asked for. And every shift respects a minimum and a maximum length, so a block short enough to be an hour of cover is not one RotaBot will staff: it leaves it as a gap, and it does not name that as the reason.

The result

Seven days, checked before the team sees them.

Coverage against the blocks you set — so a Friday at nine with two on the bar instead of three shows as a Friday at nine, not as a percentage — and everybody's hours against their contract, on the same screen as the week.

RotaBot — Rota
Mon 8 — Sun 14 Sep
Coverage100%
Mon
Felix
08:00–16:00
Nora
09:00–17:00
Tue
Kai
08:00–16:00
Rory
10:00–18:00
Wed
Felix
12:00–20:00
Nora
08:00–16:00
Thu
Kai
08:00–16:00
Nora
11:00–19:00
Fri
Felix
12:00–20:00
Nora
09:00–17:00
Sat
Felix
08:00–16:00
Kai
12:00–20:00
Sun
Felix
10:00–18:00
Kai
12:00–20:00

When a week genuinely cannot be covered with the people you have, RotaBot says which hour and why — nobody trained, nobody available, already working that day, or at the days-a-week limit or a weekly-hours cap you set — and you decide: extend the closer, move somebody across from the floor, or accept the gap. Nothing reaches staff until you publish.

Worth knowing before you ask

What this page is, and is not.

The panels here are illustrations

They are hand-built representations of the current RotaBot interface, drawn with fictional data and a pub's vocabulary — not screenshots, and not a roadmap. What they show is what the product does today.

It does the rota, not the till

No EPOS or till integration, no booking system, no sales forecast and no wage-percentage target. It builds a legal, covered week from what you tell it the week needs. The trade forecast stays yours.

It is sold through a demonstration

There is no self-service sign-up. Tell us how your pub, bar or restaurant trades and we will show you the same week solved against it.

See it build your Friday.

Tell us your opening hours, how the bar staffs up through the evening and when the kitchen stops, and we will show you the week solved.