How to forecast staffing requirements from weekly sales
Your point of sale already knows roughly how busy next Saturday will be. This article turns sales history into a forecast for each day and each hour, sets a sales per labour hour target from your own good weeks, and builds shifts that follow the trade and meet the award, with a worked Saturday for a suburban cafe.
A roster copied from last week assumes next week will trade like last week. Often it does, and the weeks it does not are the ones that cost money: a quiet Tuesday with a full team, or a Saturday market that leaves two people making coffee for a queue out the door. The sales history in your point of sale is the best guide you have to how busy each hour is likely to be, and it takes about half an hour a week to turn it into a staffing forecast.
The method suits any business where sales follow the workload: cafes, restaurants, bakeries, takeaway shops and retail. It works alongside a wage budget rather than replacing it. Building a roster around a weekly wage budget starts from the dollars you can spend. This starts from the work the week is likely to bring, and the two should meet before the roster is published.

What you need before you start
Most point of sale systems can export these reports. If yours cannot, the till total at the end of each hour and a tally of customers will do for a few weeks.
- Sales by day for at least the last four weeks, and for the same weeks last year if you have them.
- Sales by hour for each trading day, so you can see the shape of the day and not just the total.
- Transaction counts by hour, which show how many customers came through, not only what they spent.
- Paid hours from timesheets for the same weeks, including setting up and packing down.
- A diary of anything unusual: public holidays, school holidays, events, roadworks, weather and one-off orders.
Use sales excluding GST throughout, because the GST is not yours to keep, and use the same measure every week. A forecast built on one and a target built on the other will be out by the tax.
Step 1: forecast sales for each day of next week
Start with the average of the same weekday over the last four weeks. Four weeks is recent enough to reflect how the business is trading now and long enough to smooth out one odd day. Leave out any day that was not normal, such as a public holiday or a day you closed early, and average the rest.
Then adjust for anything next week has that the last four weeks did not: a street market, a school holiday week, a large booking. Name the reason for every adjustment. If you cannot point to one, do not adjust. In the example below, Saturday’s $4,500 is the average of $4,300, $4,650, $4,420 and $4,630, and the owner adds 10% for a market in the street.
| Day | Average of the last four weeks | What is different next week | Forecast |
|---|---|---|---|
| Monday | $2,100 | Nothing | $2,100 |
| Tuesday | $2,250 | Nothing | $2,250 |
| Wednesday | $2,400 | Nothing | $2,400 |
| Thursday | $2,550 | Nothing | $2,550 |
| Friday | $3,300 | Nothing | $3,300 |
| Saturday | $4,500 | Street market, add 10% | $4,950 |
| Sunday | $3,900 | Nothing | $3,900 |
| Week | $21,000 | $21,450 |
For a business with strong seasons, four recent weeks can mislead: the four weeks before Christmas say little about the first week of January. In that case, start from the same week last year and scale it by how the business is trading now:
forecast = same week last year × (last four weeks ÷ same four weeks last year)If the last four weeks took $84,000 and the same four weeks last year took $80,000, trade is running 5% up, so a week that took $18,000 last year forecasts at $18,900. Public holidays need their own treatment, because trade and wage costs both change on the day. The public holidays page lists the dates for each state.
Step 2: spread each day across its trading hours
A day’s total does not tell you when to have people on. Take the hourly sales report for the same four weekdays, work out each hour’s share of the day’s sales, and average the shares. Shares are steadier than dollar amounts, because a busier Saturday is usually busier all day, in roughly the same shape. Multiply each share by the day’s forecast. For the cafe’s Saturday, open from 7:00 to 15:00:
| Hour | Share of the day’s sales | Forecast sales |
|---|---|---|
| 7:00 to 8:00 | 8% | $396.00 |
| 8:00 to 9:00 | 14% | $693.00 |
| 9:00 to 10:00 | 16% | $792.00 |
| 10:00 to 11:00 | 15% | $742.50 |
| 11:00 to 12:00 | 14% | $693.00 |
| 12:00 to 13:00 | 15% | $742.50 |
| 13:00 to 14:00 | 11% | $544.50 |
| 14:00 to 15:00 | 7% | $346.50 |
| Day | 100% | $4,950.00 |
If your prices vary a lot, look at the transaction counts as well. A $400 catering order is one transaction and an hour of work in the kitchen, while forty coffees are forty transactions and a queue. Where the two reports disagree about how busy an hour was, trust the one closer to the work.
Step 3: set a sales per labour hour target from your own good weeks
Sales per labour hour is how much the business sells for every hour of paid work. It is the link between a sales forecast and a number of hours.
sales per labour hour = sales ÷ paid hours workedThere is no standard figure to borrow. It depends on your prices, your menu or range, how much is made on site and how the counter is laid out. Set it from your own history instead. Choose four to six recent weeks when service was good, queues were under control and nobody was standing around, and divide their sales by the paid hours on the timesheets for the same weeks. The cafe’s four good weeks took $84,000 for 560 paid hours, which is $150 per labour hour.
Two cautions. A price rise lifts sales per labour hour without anyone working harder, so revisit the target after one. And if you pick weeks when the team was stretched thin, the target will build that stretch into every roster that follows.
Step 4: turn forecast sales into people on shift
Divide each hour’s forecast sales by the target to get the labour hours that hour supports, then round to whole people. Rounding to the nearest person is a sensible start. Round up where a lost sale is costly, such as the morning coffee rush.
| Hour | Forecast sales | Sales ÷ $150 | People rostered |
|---|---|---|---|
| 7:00 to 8:00 | $396.00 | 2.64 | 3 |
| 8:00 to 9:00 | $693.00 | 4.62 | 5 |
| 9:00 to 10:00 | $792.00 | 5.28 | 5 |
| 10:00 to 11:00 | $742.50 | 4.95 | 5 |
| 11:00 to 12:00 | $693.00 | 4.62 | 5 |
| 12:00 to 13:00 | $742.50 | 4.95 | 5 |
| 13:00 to 14:00 | $544.50 | 3.63 | 4 |
| 14:00 to 15:00 | $346.50 | 2.31 | 2 |
| Day | $4,950.00 | 33.00 | 34 |
Then apply a minimum crew: the fewest people who can run the doors open, whatever the forecast says. For this cafe it is two, one on coffee and one on the counter. Minimum crew is why quiet days miss the target. Monday’s forecast of $2,100 supports 14 hours at $150, but two people across eight trading hours is already 16. That is worth knowing, and it is a decision to make on purpose: accept a lower figure on Mondays, shorten the trading hours, or give the second person the prep that would otherwise land on a busy day.
The staff coverage calculator lays the people needed each half hour against the shifts on your roster, so gaps and overlaps show before anyone sees the roster. Restaurants that plan from bookings rather than till sales can work the same way from covers, as in how many employees a restaurant needs per shift.
Step 5: build shifts that follow the shape
The hourly numbers are an outline, and shifts have to fill it. Start with the people who open and close, since the trading hours fix their shifts, then add shorter shifts over the peak. Add the time sales do not cover, such as setting up before the doors open and packing down after they close.
| Shift | Rostered | Unpaid meal break | Paid hours |
|---|---|---|---|
| Barista, part-time | 6:30 to 14:00 | 30 minutes | 7.0 |
| Cook, full-time | 6:30 to 15:00 | 30 minutes | 8.0 |
| Counter and floor, part-time | 7:00 to 15:30 | 30 minutes | 8.0 |
| Second barista, casual | 8:00 to 14:00 | 30 minutes | 5.5 |
| Counter and floor, casual | 8:00 to 13:00 | 30 minutes | 4.5 |
| Total | 35.5 hours | 2.5 hours | 33.0 |
Count who is rostered in each hour and the shifts give 3, 5, 5, 5, 5, 5, 4 and 2 people, the numbers from step 4. The half hours before opening and after closing add 1.5 hours to those 34 hours, and five unpaid meal breaks take 2.5 hours out, so the roster comes to 33 paid hours: exactly $150 per labour hour on a $4,950 forecast. Stagger the breaks so only one person is off at a time, and where the rules allow, put them in hours that rounded up, such as 8:00 and 11:00 here.
Check every shift against the award
A forecast will happily ask for one extra person between 12:00 and 13:00. The award may not let you roster a one hour shift to provide it. Before you publish, check each shift against the minimum engagement and break rules in the award that covers your business. Many cafes are covered by the Restaurant Industry Award 2020, whose definition of the restaurant industry includes cafes (clause 4.2), but a cafe run by a hotel or club, a takeaway shop or a retail store may fall under a different award. The Fair Work Ombudsman’s Find my award tool confirms which one applies.
| Award | Casual employees | Part-time employees |
|---|---|---|
| Restaurant Industry Award 2020 | At least 2 consecutive hours each time they attend work (clause 11.3) | No fewer than 3 hours in a day (clause 10.7) |
| Hospitality Industry (General) Award 2020 | At least 2 consecutive hours each time they attend work (clause 11.3) | At least 3 ordinary hours on any day, not counting meal breaks (clause 15.2) |
| General Retail Industry Award 2020 | 3 hours, or 1.5 hours for a full-time secondary school student after school in the circumstances in clause 11.3 (clause 11.2) | 3 consecutive hours (clause 10.9) |
| Fast Food Industry Award 2020 | 3 consecutive hours (clause 11.3) | At least 3 consecutive hours on any shift (clause 10.2) |
Breaks shape shifts too. Under the Restaurant Industry Award, an employee who works 5 hours or more and up to 10 hours is entitled to an unpaid meal break of at least 30 minutes, taken after the first hour of work and within the first 6 hours. If that break is rostered later than 5 hours after starting, the employee also gets a 20 minute paid meal break within the first 5 hours (clause 16.2). Other awards set their own break rules. A shift also has to fit the person: under the same award, a part-time employee must not be rostered outside their agreed availability (clause 10.7). The glossary explains minimum engagement if the term is new.

Put a cost on the hours
Sales per labour hour counts hours, not dollars, and hours do not all cost the same. Under the Restaurant Industry Award, casual employees are paid a loading of 25% on top of the minimum hourly rate (clause 11.1), and the award sets penalty rates for work at particular times and on particular days (clause 24). Saturday’s 33 hours will cost more than the same hours on a Tuesday. Once the shifts are placed, cost the week with the roster cost calculator and check current rates on the Restaurant Industry Award pay rates page.
If the costed roster is over the wage budget, you now have a specific choice rather than a vague worry: trim the hours that rounded up, shorten the shifts either side of the peak, or accept a higher labour cost percentage for a week you expect to trade well.
After the week, check the forecast
A forecast only improves if you check it. At the end of each week, put the forecast beside what actually happened, day by day.
| Day | Forecast | Actual | Difference |
|---|---|---|---|
| Monday | $2,100 | $2,040 | $60 under |
| Tuesday | $2,250 | $2,310 | $60 over |
| Wednesday | $2,400 | $2,380 | $20 under |
| Thursday | $2,550 | $2,600 | $50 over |
| Friday | $3,300 | $3,120 | $180 under |
| Saturday | $4,950 | $5,480 | $530 over |
| Sunday | $3,900 | $3,850 | $50 under |
| Week | $21,450 | $21,780 | $330 over |
A week that is close overall can hide days that are not. This week finished $330 over, but Saturday was $530 over and Friday $180 under. The market lifted Saturday well beyond the 10% allowed for, so the adjustment can be larger next time it runs, and Friday is worth watching for another week before changing anything. Write down why each large miss happened. After a couple of months, those notes are the most useful part of the forecast.
Look at the hours as well. If the timesheets show the team stayed well past the roster on the busy day, the forecast was short and it cost you extra hours. If people went home early on a quiet day, remember that a casual under the Restaurant Industry Award must still be paid for at least 2 consecutive hours each time they attend work (clause 11.3), so finishing shifts early saves less than it seems.
Roster Flow takes the forecast from there: availability and leave from staff phones, the roster published to everybody at once, clock ins that become timesheets, and approved hours sent to Xero, MYOB or a CSV file. See how it works for cafes.
A checklist for next week’s forecast
- Sales history excludes GST and covers at least four weeks, by day and by hour
- Unusual days are left out of the averages
- Every adjustment to the forecast has a named reason
- The sales per labour hour target comes from your own good weeks
- Every hour has a minimum crew, whatever the forecast says
- Shifts meet the minimum engagement and break rules in your award
- The roster is costed, with weekend and public holiday hours counted separately
- Last week’s forecast has been checked against actual sales
Questions
What is a good sales per labour hour figure?
There is no official benchmark, and figures quoted for other businesses rarely fit yours. Work it out from four to six of your own recent weeks when service was good, dividing sales by the paid hours on the timesheets for the same weeks.
How many weeks of sales history do I need to forecast staffing?
Four recent weeks of the same weekday is enough to start when trade is steady. For a seasonal business, begin from the same week last year and scale it by how you are trading now.
Should I forecast from sales or from customer numbers?
Sales work well when prices are fairly even. When they are not, check transaction counts too, because a large catering order and a queue of coffees can bring in the same money and need very different staffing.
What should I do when the day is much quieter than the forecast?
Finishing shifts early saves less than it seems, because awards set minimum engagements; under the Restaurant Industry Award a casual is paid for at least 2 consecutive hours each time. Note why the day missed so the next forecast can allow for it.
Does a sales forecast replace a wage budget?
No. The forecast says how many hours the trade needs, and the budget says what you can afford. Build the roster from the forecast, cost it, and adjust where the two disagree.
Can I forecast staffing without a point of sale system?
Yes, for a while. Record the till total and a tally of customers at the end of each hour for four weeks, and use them in place of an hourly sales report.
Sources
- Fair Work Commission: Restaurant Industry Award 2020 [MA000119]
- Fair Work Commission: Hospitality Industry (General) Award 2020 [MA000009]
- Fair Work Commission: General Retail Industry Award 2020 [MA000004]
- Fair Work Commission: Fast Food Industry Award 2020 [MA000003]
- Fair Work Ombudsman: find my award