Most staffing plan templates online are headcount forecasts built for HR and finance. They help a company agree on how many people to employ and what that costs. If you run a cafe, restaurant or shop, your question is different: how many people do I need on the floor from 11:00 to 15:00 on a Saturday? This page gives you a plan that answers it.
Template contents
The plan has one row for each daytime block, and days with the same pattern can share a row. Every row holds the same few fields, so you can scan a whole week in a minute.
- Day and block, for example Saturday 11:00-15:00.
- Minimum: the fewest people who can run that block safely.
- Rush level: the number you want when the block is busy.
- Planned: the number you commit to after checking your budget.
- Role mix, such as 1 barista and 1 counter, or 1 cook and 2 servers.
- Notes for events, deliveries, holidays or a new hire in training.
These columns are a layout suggestion, not an industry standard. Rename the roles to fit your business: a shop might use till, floor and stockroom, and a restaurant might use host, server and line. Zchedule's free schedule templates can be copied, printed or downloaded as a CSV, so you can paste the plan table into a spreadsheet and the sample week further down is available as a CSV download.
Worked example for a small cafe
The table below is an illustration for an imaginary cafe open 7:00 to 19:00, split into three four-hour blocks. The numbers are placeholders chosen to show the method. They are not benchmarks, so replace them with what your own sales tell you.
| Day | Block | Minimum | Rush level | Planned | Role mix | Notes |
|---|---|---|---|---|---|---|
| Mon-Thu | 7:00-11:00 | 1 | 3 | 2 | 1 barista, 1 counter | Quiet start; delivery on Wed |
| Mon-Thu | 11:00-15:00 | 2 | 4 | 3 | 1 barista, 2 counter | Lunch queue |
| Mon-Thu | 15:00-19:00 | 1 | 2 | 2 | 1 barista, 1 counter | Close with two |
| Fri | 7:00-11:00 | 2 | 3 | 2 | 1 barista, 1 counter | |
| Fri | 11:00-15:00 | 3 | 4 | 4 | 2 barista, 2 counter | Busy lunch |
| Fri | 15:00-19:00 | 2 | 3 | 2 | 1 barista, 1 counter | |
| Sat | 7:00-11:00 | 2 | 4 | 3 | 2 barista, 1 counter | Weekend start |
| Sat | 11:00-15:00 | 3 | 5 | 4 | 2 barista, 2 counter | Busiest block |
| Sat | 15:00-19:00 | 2 | 4 | 3 | 1 barista, 2 counter | Taper toward close |
| Sun | 7:00-11:00 | 1 | 3 | 2 | 1 barista, 1 counter | |
| Sun | 11:00-15:00 | 2 | 4 | 3 | 1 barista, 2 counter | |
| Sun | 15:00-19:00 | 1 | 2 | 2 | 1 barista, 1 counter |
Steps to build your own plan
Step 1: set demand for each block
Forecast demand by hour rather than only by day, so your plan shows when to staff as well as how many. If you have past sales or footfall by hour, split each day into blocks and mark the busy and quiet ones. If you have no records yet, count tickets or customers for two weeks and use that.
Step 2: set two levels for every block
Write down a minimum, the level at which the block can still run safely, and a rush level for when it is busy. Having both numbers lets you decide in advance where to hold back and where to add someone, instead of deciding on the day.
Step 3: fill in the table and check the totals
Add up planned people multiplied by block length and compare the result with your labour budget. In the example, a Monday to Thursday day needs 2 + 3 + 2 = 7 people across three four-hour blocks, which is 28 person-hours. Check your local scheduling rules before you finalise the week.
Step 4: assign named people
A plan only says how many people. A schedule says who. Below is an example week for the same imaginary cafe, with illustrative names, built to meet the planned numbers and role mix above. The shifts are 7:00-15:00, 11:00-19:00 and the four-hour 15:00-19:00 close. Download the CSV, change the names and times, and you have a draft week.
| Employee | Role | Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|---|---|
| Maya (example) | Barista, 40 h | 7:00-15:00 | 7:00-15:00 | 7:00-15:00 | 7:00-15:00 | off | 7:00-15:00 | off |
| Devon (example) | Barista, 32 h | 15:00-19:00 | 15:00-19:00 | off | off | 7:00-15:00 | 7:00-15:00 | 7:00-15:00 |
| Ana (example) | Barista, 24 h | off | off | 15:00-19:00 | 15:00-19:00 | 11:00-19:00 | 15:00-19:00 | 15:00-19:00 |
| Priya (example) | Counter, 40 h | 7:00-15:00 | 7:00-15:00 | off | 7:00-15:00 | 11:00-19:00 | 11:00-19:00 | off |
| Sam (example) | Counter, 40 h | 11:00-19:00 | off | 7:00-15:00 | 11:00-19:00 | off | 7:00-15:00 | 7:00-15:00 |
| Lee (example) | Counter, 36 h | off | 11:00-19:00 | 11:00-19:00 | off | 7:00-15:00 | 15:00-19:00 | 11:00-19:00 |
Once names are in, check each person against their availability and their weekly hours. In the example nobody goes over 40 hours. Also check overtime, certifications and seniority where they matter to you, and add them to your own checklist. For more on building the week, see the restaurant employee scheduling guide and the guide to preventing overtime.
Step 5: review every week
At the end of each week, compare what you planned with what happened. Where you were short at a rush, raise that block. Where people stood idle, lower it. Mark holidays and local events in the notes column ahead of time, and flag any block where you could not reach the minimum so you can look for cover early.
Checking coverage against the plan
Lay the named week next to the plan and count people block by block. The table below does that for the example week. Each count matches the planned number, and the role mix matches too.
| Day | 7:00-11:00 | 11:00-15:00 | 15:00-19:00 | Matches plan |
|---|---|---|---|---|
| Monday | 2 | 3 | 2 | Yes |
| Tuesday | 2 | 3 | 2 | Yes |
| Wednesday | 2 | 3 | 2 | Yes |
| Thursday | 2 | 3 | 2 | Yes |
| Friday | 2 | 4 | 2 | Yes |
| Saturday | 3 | 4 | 3 | Yes |
| Sunday | 2 | 3 | 2 | Yes |
A gap is any block with fewer people than the minimum, or a rush block where you planned fewer than the rush level. Fill gaps by asking for volunteers, moving a shift or adjusting the plan, and write down what you chose so next week starts from a better draft.