Skip to content

Roster — overview

The roster is where the venue plans who works when, and reviews who actually showed up. It lives at /admin/roster in the admin app, accessible from the Settings hub under “Roster”.

What problem it solves

Most venues already have two things: a paper rota or WhatsApp message saying “Marco lunedì sera, Sara martedì mattina”, and a separate clock-in/clock-out system at the till. The two never meet. So when the manager wants to know “did Sara arrive on time on Tuesday?” or “are we under-staffed for Friday dinner?”, the answer is a phone call.

The roster brings the two together. The manager plans the week — for each staff member, which days, which hours, which department (kitchen, dining room, bar, dishwashing). The system already has clock-in/clock-out from the till. A single screen then compares plan with reality: who came in late, who left early, who didn’t show, who clocked in without being scheduled.

It also answers the coverage question: at any given moment of any given day, how many people are working in each department? “How many in the kitchen at 11 PM tonight?” used to mean opening the rota, scanning, and counting. Now it’s one cell on a coloured grid.

The five tabs in one screen

When you open /admin/roster, you land on a page with five tabs across the top. The order is roughly: plan → review.

  1. Week — a planning grid: one row per staff member, one column per day. Tap an empty cell to schedule a shift, tap an existing one to change it. This is the day-to-day surface for the manager. → Weekly schedule
  2. Coverage — a different view of the same shifts: how many people are present per department per hour (Day view) or per day (Week heatmap). The fastest way to spot under- or over-staffing. → Coverage view
  3. Templates — recurring weekly patterns. “Marco does kitchen Mon-Fri 6 PM to 11 PM, every week, until further notice.” Set once, the system fills in every future Monday-to-Friday. → Recurring shifts
  4. Departments — the catalog of work areas at this venue: Kitchen, Dining Room, Bar, etc. You define them once; every shift then carries one or more of them. → Departments
  5. Reconciliation — the planned-vs-actual comparison report. One row per scheduled shift (and per unscheduled clock-in), showing minutes-late / minutes-early, with a colour-coded status badge. → Comparing plan with reality

How a typical week flows

A manager starting from scratch:

  1. Set up departments once. Open the Departments tab, add Kitchen / Dining Room / Bar (or whatever applies). Pick a colour for each — you’ll see it again on the planning grid and the coverage view.
  2. Define recurring patterns. For each staff member who works the same days every week, open the Templates tab, add a recurring shift: which day, which hours, which departments. The Week grid will then show those shifts on every future occurrence automatically — without you re-entering them.
  3. Plan one-off and exception weeks. On the Week tab, schedule the irregular shifts (cover for sick days, special events). Drag-or-tap-to-create on empty cells. To change just one occurrence of a recurring pattern (e.g. Marco swaps Tuesday for Wednesday this week), tap the recurring shift’s cell — the system will save your edit as a one-time exception, leaving the pattern itself untouched.
  4. Mid-shift, check coverage. During service, glance at the Coverage tab to confirm the kitchen has enough people at peak hour, or the bar isn’t running short.
  5. End of week, review reality. Open Reconciliation. See who was on time, who slipped, who was absent. Export to a spreadsheet if you need to share with payroll or the accountant.

Who can do what

The roster is manager-and-up only, by default. Owner, manager, and any custom role you’ve explicitly granted the roster permissions can plan shifts and edit departments. Other staff can see their own upcoming shifts on their staff profile page, but don’t have access to the roster planning screens.

You can fine-tune this on the Settings → Roles page: there are four roster-related permissions you can grant or revoke per role:

  • view — see the roster page at all
  • edit — create, change, or cancel shifts and templates
  • manageDepartments — add, rename, or archive departments
  • viewReconciliation — see the planned-vs-actual report

If a staff member has a login but not the right role, opening /admin/roster will simply not work for them.

What’s not here yet

The roster intentionally launched as a planning tool — not a full HR system. The following adjacent features have shipped since the initial release:

  • My shifts — staff-facing read-only schedule page. See My shifts.
  • CSV export and browser-native PDF for the weekly roster. See Weekly schedule.
  • Shift swap requests — three-actor flow with auto-execution on approval. See Shift swap requests.
  • Configurable late / early thresholds per venue. See Comparing plan with reality.
  • Automatic no-show alerts — every 5 minutes the system checks for planned shifts with no matching clock-in and raises an amber banner on the Roster page.

Still in the backlog for future updates:

  • Line / WhatsApp / email delivery of the weekly roster (browser-native PDF and CSV cover most of the need today, but a “send to staff group” button would close the loop).
  • Time-off and vacation requests — formal pre-approval flow (today, time-off lives in the swap workflow as a workaround, or in venue communications).

If any of these become urgent, mention it — the schema is already in shape to support them.

Pages in this area

  • Time clock at the till — the clock-in / clock-out punches that the roster compares against. Staff already use this to start and end shifts via PIN. The roster doesn’t change that flow; it just adds a layer on top.
  • Staff & roles — where you define which staff member works at this venue, what their PIN is, and which permissions their role carries (including the four roster permissions above).