Who this is for
A lodge, a clinic, a supermarket, a restaurant, a small factory, a security company: anywhere between eight and sixty people work shifts, and one manager builds the roster by hand every week. The method below uses a spreadsheet because that is what the manager already has; a rostering app is a later, optional step.
Step 1 — Write the rules down (this is the automation)
The roster is hard because the rules live in the manager’s head. Get them out:
| Rule type | Example | Where it comes from |
|---|---|---|
| Coverage | Front desk: 2 on morning, 2 on afternoon, 1 on night | operations |
| Skills | At least one first-aider per shift; one person who can run the till | operations / licence |
| Rest | Two rest days in seven; no closing shift followed by an opening shift | your NEC agreement |
| Hours | Maximum ordinary hours per week; overtime rules | your NEC agreement |
| Fairness | Weekend shifts rotate; nobody has three consecutive nights | staff |
| Availability | Approved leave, training days, school runs by agreement | leave sheet |
| Power | Kitchen and workshop need fewer people during load-shedding windows | ZESA schedule |
The NEC (National Employment Council) agreement for your industry sets the hours, rest and overtime rules. Encode those, not a template’s. Have a labour practitioner check the rule list before it goes live; that is a one-hour review, and it removes the risk from everything that follows.
Step 2 — Build the sheet
Three tabs.
- People. Name, role, skills (tick boxes), contract hours, weekend rotation group, phone number.
- Inputs. Approved leave (from the leave form), the week’s load-shedding windows pasted from the published schedule, any special events.
- Roster. A grid of people × days × shifts. Conditional formatting turns a cell red when a rule is broken: coverage short, rest-day rule violated, skill missing, a person on leave rostered.
The first version does not “generate” anything: the manager fills the grid and the sheet checks. That alone removes most of the Sunday-night work, because the errors that used to surface on Tuesday now surface immediately.
The second version generates a draft: a simple script (Google Apps Script, or Excel’s Solver) fills the grid from last week’s pattern, applies the availability inputs, and leaves the red cells for the manager. Thirty minutes of exceptions instead of three hours.
Step 3 — Load shedding as an input, not a surprise
ZESA’s stated goal is to end load shedding by December 2026 and it has reported long stretches without it, but a kitchen, a workshop or a cold room still needs a plan for the weeks when it returns. Paste the published windows into the Inputs tab; a rule reduces required coverage in power-dependent areas during those hours and, where you have it, adds a generator-minder shift. Businesses with an inverter for the router and one laptop keep the roster, the WhatsApp inbox and the invoicing running regardless — see the connectivity costs.
Step 4 — Publish and record
Export the roster tab as a PDF and post it to the staff WhatsApp group on the same weekday every week — Wednesday for the following Monday is a good habit, because it lets staff arrange transport and childcare. Mobile internet is how most staff will read it (POTRAZ counts 12.86 million mobile internet subscriptions), so keep the PDF small and the text legible on a phone.
Swaps go through one channel — a message to the manager, who edits the sheet — so the sheet is always the truth. At month-end the roster feeds payroll: ordinary hours, overtime and night allowances by person, exported once.
Measure
Three numbers a week, on the sheet’s summary tab: unfilled shifts, swaps after publication, and rule violations caught (red cells at draft stage). Falling unfilled shifts and swaps are the proof; if swaps stay high, a fairness rule is missing.
What it saves (illustrative)
A lodge with 18 staff: three hours every Sunday plus an hour of mid-week fixes becomes 30 minutes of exceptions — 3.5 hours a week for the manager, and the roster is out five days earlier. The bigger effect is the shift that is no longer unfilled on a Saturday night; count those before and after.
When to buy a rostering app
When the sheet has more than about 40 people, three sites, or staff need to see and swap on their own phones with an audit trail. Check that it exports to your payroll, works offline, and can hold your NEC’s rest rules — not just generic ones. Until then, the sheet is the product.
The checklist
- Rules table written and checked against the NEC agreement.
- People, Inputs and Roster tabs built; red-cell checks working.
- Leave form feeding the Inputs tab.
- Load-shedding windows pasted weekly.
- Roster published on the same weekday for four consecutive weeks.
- Unfilled shifts and swaps counted weekly.
Sources
- NewZimbabwe — 'No more electricity load shedding beyond 2026', says ZESA Group CEO (accessed 2026-09-14)
- Techzim — ZESA load shedding schedule updates (accessed 2026-09-14)
- AnooreHR — Zimbabwe payroll guide 2026 (NSSA, PAYE) (accessed 2026-09-14)
- POTRAZ Q4 2025 Abridged Sector Performance Report, reported by TechnoMag (accessed 2026-09-14)