Insights / Resources

Your Labor Percentage Is Probably Lying to You

Labor percentage is the number owners panic about most, and it’s the one most likely to be wrong. Not slightly wrong. Wrong enough to make you cut staff you need.

Here’s a real week from one restaurant. The reported labor figure was 29.82%, against a 28% target. Over budget, red on the dashboard, and the obvious response is to cut hours.

The real number was 24.8%. The restaurant was comfortably under target.

Nothing about the staffing had changed. The number was manufactured by two problems that are almost universal.

Problem one: hours that no human worked

That restaurant had a shared terminal used for lunch service. It wasn’t a person. It was a station that somebody signed into around 2:30 in the afternoon and nobody ever signed out of.

The system’s automatic clock-out ran at 8:00 the next morning. So a five-hour lunch shift got recorded as roughly seventeen hours. Six nights out of seven.

There were also owner and family accounts on the clock with no wage attached. Real work, genuinely performed — but not hourly payroll, and not a labor cost in the sense the percentage is trying to measure.

Look at what that does across nine weeks:

WeekTotal hours recordedActually paid hours
Aug 10463.3316.5
Aug 3426.7343.7
Jul 27414.4325.8
Jul 20365.9316.0
Jul 13415.4342.1

The week that triggered the alarm, August 10, showed the biggest total hours of the entire stretch. But the paid hours that week were 316.5 — slightly below the nine-week average.

Real staffing was flat. The entire spike was phantom.

Problem two: the trap in how the rate was calculated

This is the part that catches careful people, so it’s worth slowing down for.

That restaurant calculated its burdened labor rate the sensible way: take real payroll dollars, divide by total recorded hours. That produced $16.73 an hour, and it was accurate — for the two weeks it was calculated in.

The problem is that the phantom hours were baked into that rate. Dividing real dollars by inflated hours produces an artificially low rate, which then gets multiplied back by inflated hours. The errors cancel out.

But only while the ratio of phantom hours stays constant.

In the calibration weeks, phantom hours were 17.8% of the total. The week the alarm went off, they were 31.7%. The moment that share moved, the cancellation broke and the number lied.

Recalculated properly — real payroll divided by paid hours only — the rate was $20.35 an hour. Applied to actual paid hours, labor came out at 24.8%.

There’s a warning inside this. If you strip out the phantom hours without also recalculating your rate, you’ll produce a number that’s too low, because your rate assumed those hours existed. Fix both or neither.

Problem three: salaried people break scheduling software

One more, because it’s nearly universal and it runs the opposite direction.

That restaurant’s scheduling software reported weekly labor of $5,455. The true all-in figure was $6,323. Understated by $868, about 16%.

Three reasons, all structural:

  • Salaried staff can’t be modeled. Two managers were on fixed weekly salaries. The scheduler priced them hourly anyway, and invented several hundred dollars of overtime for a person whose pay does not change with hours.
  • Owner hours were free. One owner was scheduled thirty-nine hours across eight shifts, priced at zero. That’s 12% of the week’s coverage, invisible in every labor report.
  • Missing wages default to a placeholder. Anyone the system doesn’t have a rate for gets an assumed rate. Sometimes that’s close. Sometimes it isn’t.

Scheduling software is built to help you build schedules. It is not an accounting system, and its cost estimates should never be the number you make decisions on.

How to get a number you can trust

  1. Separate paid hours from recorded hours. Exclude anyone with no wage — owners, family, shared terminals, test accounts.
  2. Find your phantom clock-outs. Look for shifts longer than about twelve hours. Anything auto-closed by the system overnight is a data artifact, not labor.
  3. Recalculate your burdened rate against paid hours only. Real payroll dollars divided by real paid hours.
  4. Price salaried people at their salary, not at an implied hourly rate.
  5. Decide explicitly whether owner labor counts, and be consistent. Both answers are defensible. Switching between them is not.
  6. Fix the operational cause too. Sign the terminal out at close, or move your system’s auto-clock-out to just after closing instead of the next morning.

Why this matters more when you’re struggling

When cash is tight, labor is the first lever everyone reaches for, because it’s the one you can move this week. That makes it the most dangerous number to get wrong.

The restaurant in this chapter was about to cut hours it didn’t need to cut, in response to a spike that never happened, on a week when it was already under budget. Cutting would have hurt service, hurt the staff who were already there, and done nothing for the underlying problem — because there wasn’t one.

Get the number right before you act on it.

If you want help separating your real labor cost from what your reports are showing, book a time.

← What your POS is hiding Reading your P&L →