Skip to content

Sales per labour hour: match your staff to your busy hours

4 min read
Finance for owners

Sales per labour hour shows whether your rosters match demand. How to work it out per outlet and per hour, and why not to cut staff at your peaks.

What sales per labour hour means

Sales per labour hour is your sales divided by the total hours your staff worked to make them. It answers one question: for every hour of staff time you paid for, how much did you sell?

It matters because wages are one of the biggest costs an outlet carries, and unlike rent, you can change them every week through the roster.

How to work it out per outlet

Add up the hours worked by everyone on the floor, in the kitchen and in the store room: full-timers, part-timers, and the manager if they work shifts. Use hours actually worked, from attendance records, not hours planned. Then divide the outlet sales for the same period by those hours.

Here is a made-up example. In one week, Outlet A sells RM 42,000 with 600 staff hours. That is RM 70 per labour hour. Outlet B sells RM 36,000 with 400 staff hours, which is RM 90 per labour hour.

Outlet A sells more in total, but each staff hour there brings in RM 20 less. Before deciding anything, ask why: a bigger floor, longer opening hours, or simply more people on shift than the customers need.

Use sales after discounts and before tax, and keep the same rule every week. Changing the rule moves the number without anything real changing.

Then look at it hour by hour

A weekly figure hides the shape of the day. Split sales by hour of day, and count how many staff were on shift in each of those hours.

Continuing the made-up example, here is one Saturday at Outlet A. From 12pm to 1pm, sales are RM 1,500 with 5 staff on shift, which is RM 300 per labour hour. From 3pm to 4pm, sales are RM 160 with the same 5 staff, which is RM 32 per labour hour. From 7pm to 8pm, sales are RM 1,200 with 4 staff, which is RM 300 per labour hour.

The roster is flat; the demand is not. Five people stand through the quiet afternoon, and the evening rush, which sells almost as much as lunch, has one person fewer.

Match the roster to demand

The fix is usually to move hours, not to cut them. In the example, one staff member could work 6pm to 10pm instead of 2pm to 6pm. The afternoon then runs with 4 people, which is RM 40 per labour hour from 3pm to 4pm, and the evening with 5, which is RM 240 from 7pm to 8pm. Total hours, and the wage bill, stay the same.

Split shifts, part-timers for the lunch and dinner peaks, and doing prep, cleaning and stock counts in the quiet hours all help the roster follow the sales.

Look at at least four of the same weekday before changing a roster. One quiet Saturday can be the weather; four in a row is a pattern.

Do not cut service at the peaks

A very high number is not always good news. If sales per labour hour at lunch is far above the rest of the day, your staff may be stretched: long queues, slow tables, customers who walk away. Those lost sales never appear in your data, because they never became a bill.

So treat a very high peak number as a warning too. Read it next to the bill count and the average bill. If bills stop rising at the peak while the queue keeps growing, one more person may pay for themselves.

And a target is not a rule. Some hours need a minimum number of people for safety, for cash handling, or simply to run the outlet properly, whatever the sales.

Turn it into a cost check

If you know your average cost per staff hour, including allowances and contributions, you can turn the figure into a share of sales. In the made-up example, if each staff hour costs RM 12, Outlet A spends RM 12 for every RM 70 of sales, which is 17.1% (rounded to 1 decimal). Outlet B spends RM 12 for every RM 90, which is 13.3% (rounded).

Track that share for each outlet every month. When it climbs, the roster has drifted away from the sales.

Ask it in plain words

This is a question you can ask iSenang, your AI data analyst, in plain words: for example, how sales compare across outlets last month, or how they spread across the day. iSenang reads your sales and payroll records; if a question needs staff hours that are not covered by your data yet, it says so instead of guessing a number.

Keep reading