16 August 2026
Staff Shifts & Rosters: Booking Capacity That Follows Who's Actually On Shift
A spa with four therapists, but only two rostered in the morning — the other two start after lunch. The owner set Parallel Capacity to 4, since that's the total headcount. At 10 a.m. the system happily accepted four bookings at once, because a fixed number has no way of knowing only two therapists are actually in that morning. Two customers turn up and have to wait, and one therapist ends up running two treatments at the same time.
A car workshop with three mechanics. On Mondays, Wednesdays and Fridays, one mechanic leaves early for an on-site job at a customer's house. To play it safe, the owner sets Parallel Capacity to 2 across the board. The problem is that on Tuesdays and Thursdays all three mechanics are actually in — but the system still only accepts two bookings at once, so a bay that could have taken a third customer sits empty every week.
A tuition centre with three tutors running one-to-one sessions. One tutor takes a week off for a family matter. The owner tries to remember to block that tutor's calendar by hand, misses the second day of leave, and a student gets booked into a slot with a tutor who isn't actually in that day.
Why this keeps happening
First: a single fixed capacity number cannot know who is actually in the shop at a given hour. It's one number — the same for morning and afternoon, the same for a normal day and a day someone is off.
Second: staff schedules change week to week — split shifts, part-timers, family matters — but the capacity setting stays whatever it was last set to, until the owner remembers to go and change it.
Third: approved leave doesn't automatically lower capacity. The booking system and the staff leave system live as two separate things — one knows who's on leave, the other has no idea.
Fourth: when an owner tries to play it safe by setting a lower number, they end up turning bookings away on the very days everyone is actually in and the shop could have taken more.
What owners try instead
A separate roster board or whiteboard behind the counter — clear enough for staff to read, but the online booking system has no idea what's written on it. It keeps accepting bookings against the fixed capacity number regardless of what the actual roster says that day.
Manually blocking dates or times when a staff member is off. Works fine for the occasional gap, but doesn't scale once there are several staff or shifts change often — a day gets missed sooner or later, exactly like the tuition centre above.
Asking in a WhatsApp group before confirming a slot — "is anyone free this afternoon?" Slow, and when two staff reply at the same moment with different answers, the customer ends up with the wrong information.
How staff-aware capacity should work
First principle: link each staff member to their login account. Under Settings → Staff, every staff row has a Staff Account column — pick that person's login from the dropdown. Without this link, the system has no shift to count for that staff member, even though their name is sitting right there on the list.
Second principle: turn on the HR module. Under Menu → Account & Settings → Settings → Business Info → Add-on Modules, the "Enable HR / Staff module" switch opens up the Staff Portal menu and the HR tab — that's where real shifts get entered.
Third principle: enter the real shifts. On the HR & Staff page, the Work Schedule section lets you pick a staff member, a date, a start and end time, then hit Assign Shift. Staff can see their own schedule in the Staff Portal.
Fourth principle: switch on "Booking capacity follows the staff roster" under Menu → Account & Settings → Settings → Business Info → Booking Settings. This switch only shows up for Appointment-mode businesses — it does nothing in Grid / Fixed-Slot mode.
Fifth principle: understand the math. Concurrent bookings at any time equal the number of staff rostered — on shift — right then. Two therapists in the morning means two bookings accepted at once at 10 a.m. Four in the afternoon means four. Approved full-day leave is subtracted from that count automatically.
Sixth principle: a day with no shifts entered never blocks every booking. It falls straight back to the ordinary Parallel Capacity number instead. That's not incidental behaviour — it's a deliberate product decision, so an owner who hasn't gotten around to next week's roster doesn't suddenly lose every slot on that day.
Seventh principle: if you let customers pick their own staff member when booking, the system checks a second time that the person is genuinely rostered for that exact window — not just when the customer starts booking, but again right before the booking is confirmed. If that staff member's shift gets changed or removed partway through, the booking is refused with a clear reason instead of being accepted by mistake.
When it helps most
Most worthwhile for Appointment-mode businesses with several staff whose shifts genuinely differ — fewer people in the morning, more in the afternoon, or part-timers who only come in on certain days. That's exactly where one fixed capacity number ends up either too loose (overbooked) or too tight (empty slots going to waste), depending on which day you're looking at.
It also matters where staff leave changes often — a service centre with rotating staff, or a clinic with more than one practitioner taking leave in different weeks.
If your business runs in Grid / Fixed-Slot mode, this feature doesn't apply yet — stick with Parallel Capacity and update it by hand as the roster changes. And if you only have one or two staff working the same hours every day, a correctly-set Parallel Capacity number is already enough — there's no need to switch on an HR module and a roster for a problem you don't actually have.
In short
A fixed capacity number works fine for a business where the number of staff on duty doesn't change from day to day. The moment shifts start to genuinely differ — fewer in the morning, more in the afternoon, leave taken here and there — a fixed number becomes either too loose or too tight, and which one happens depends entirely on which day you're looking at.
Roster-driven capacity in TempahKu counts how many staff are actually on shift at every moment automatically, subtracts approved full-day leave, and falls back to your ordinary Parallel Capacity number on any day with no roster entered — so capacity always matches who's really there, not a number someone set once and forgot about.