What's a good labor cost percentage? Hourly vs P&L labor
Why the labor figure from your POS reads lower than finance's, and which one to schedule by.
For quick-service restaurants, fully loaded labor on the P&L is often cited in the range of 28–33% of sales, and hourly labor from the POS in the range of 18–25%. Both can be right at the same store, because they measure different things.
Most confusion about labor cost comes from comparing one with the other. A GM reads 22% in the POS and thinks the store is lean. The owner reads 32% on the P&L and thinks it isn't. They're both looking at the same week. This guide explains the two numbers, how to calculate each, and which one to use for what.
The two labor numbers
- Hourly labor = hours worked × hourly rates, for hourly employees. This is what the POS or time clock reports.
- Hourly labor % = hourly labor ÷ net sales × 100.
- Fully loaded labor = hourly wages + salaries + payroll taxes + benefits, and often bonuses and workers' compensation. This is what the P&L reports.
- Fully loaded labor % = fully loaded labor ÷ net sales × 100.
Use net sales in both, after discounts, comps and refunds. Fully loaded labor is also the labor half of prime cost. How to calculate prime cost.
What the POS can't see
Punch data carries hours and hourly rates. It has no payroll taxes, no benefits and no salaries. A salaried manager's hours are counted, but their cost isn't. Compared with a P&L figure, 25.7% hourly labor looks comfortable. Against an hourly benchmark it's tight.
| Net sales | $28,000 |
|---|---|
| Hourly wages from the POS | $6,160 (22.0% hourly labor) |
| Salaried GM and assistant manager | $1,750 |
| Payroll taxes and benefits | $1,190 |
| Fully loaded labor | $9,100 (32.5%) |
| Labor hours, hourly and salaried | 520 |
| Sales per labor hour | $53.85 |
Provo's hourly labor is 22.0%, inside the commonly cited hourly range. Its fully loaded labor is 32.5%, near the top of the P&L range. Neither number is wrong. The 10.5-point gap is salaries, taxes and benefits, which the POS never sees. Sales per labor hour is $28,000 ÷ 520 = $53.85, and it uses all 520 hours, because everyone on the clock belongs in that denominator.
What's a good number?
Ranges are a starting point, not a target. Several things move labor percentage for reasons that have nothing to do with how well a store is run:
- Format: full-service restaurants usually run higher labor than quick-service, and drive-thru-heavy stores often lower.
- Menu: food made from scratch takes more prep labor than food assembled from prepared ingredients.
- Price point: a higher ticket spreads the same crew over more sales.
- Local wages: minimum wage and market rates vary widely by state and city.
- Sales volume: a busy store spreads its minimum crew and salaried managers over more sales, so the same schedule reads as a lower percentage.
The most useful comparisons are the store's own normal range and the median of stores in the same brand and format. A store at 24% hourly labor that usually runs 24% is in control. A store at 21% that usually runs 19% has changed something. How to benchmark franchisee performance.
Which number to schedule by
Hourly labor is the cost a GM moves shift to shift; a salary doesn't change whatever the schedule does. Manage the week by hourly labor and sales per labor hour, and leave fully loaded labor to the monthly P&L. How to reduce labor cost.
Fully loaded labor still matters. It's the number that decides whether the store makes money, and it's the one an owner or lender reads. It's just not the one a GM can change on a Tuesday afternoon. Payroll taxes rise and fall with wages; benefits and salaries are set in advance. Putting a fully loaded target on a GM asks them to manage costs they don't control.
How to estimate fully loaded labor before payroll closes
Payroll and the P&L arrive after the week is over, sometimes weeks after. If you want a weekly fully loaded figure, for prime cost or for an owner's review, build an estimate from what you have:
- Start with hourly wages from the POS for the week.
- Add each salaried manager's weekly pay: annual salary divided by 52.
- Work out a payroll tax and benefit rate from your last three P&Ls: taxes and benefits divided by total wages and salaries.
- Apply that rate to the week's wages and salaries and add it.
- Label the result an estimate, and replace it with the real figure when payroll closes.
At Provo, wages and salaries were $7,910 and taxes and benefits $1,190, a rate of about 15%. Your own rate depends on state taxes, benefits and how many people are enrolled, so take it from your own books rather than a rule of thumb. If the estimate and the real figure keep landing far apart, recheck the rate.
Why labor percentage moves when nothing changed
Labor percentage is a ratio, so it moves when sales move. When sales drop 10% and the schedule stays the same, hourly labor rises by about a tenth of itself: Provo's 22.0% would read about 24.4%. The crew didn't get more expensive. The schedule was built for more sales than came in. Fully loaded labor rises even faster, because salaries don't fall with sales at all.
So check sales and orders before reading a labor jump as a scheduling failure. If sales fell, the fix is a forecast built from current weeks. If sales held and labor rose, look at the hours: overtime, a new hire in training, or a shift that ran long.
Two things that break the number
- An hourly employee entered at $0.00 understates labor. Fix the pay rate in the POS.
- Dividing labor cost by labor hours to get an average wage. Salaried hours are in the hours but not the cost, so the answer comes out too low.
The first one is common and easy to miss. A new hire set up without a rate makes labor look better for as long as they work. If hourly labor drops suddenly with no change in the schedule, check for a missing rate before celebrating. Salaried staff should be flagged as salaried in the POS, not entered with a placeholder rate like $0.00 or $0.01, so the system knows their hours carry no hourly cost.
A labor percentage checklist
- Pull hourly wages and net sales for the week from the POS.
- Confirm every hourly employee has a real pay rate, and every salaried manager is flagged as salaried.
- Calculate hourly labor percentage and sales per labor hour.
- Compare both with the store's last four to eight weeks and with the brand's median for the format.
- If hourly labor rose, check whether sales fell before looking at the schedule.
- Each month, add salaries, payroll taxes and benefits to get fully loaded labor, and compare it with the P&L.
- Label every labor figure you share as hourly or fully loaded.
Common mistakes
- Comparing POS hourly labor with a P&L benchmark, or the reverse.
- Giving a GM a fully loaded labor target. They can't move salaries or benefits.
- Reading a labor jump without checking sales first.
- Missing a $0.00 pay rate, which makes labor look lower than it is.
- Dividing labor cost by labor hours to get an average wage.
- Using a published range as the goal instead of the store's own normal range and its brand's median.
Where Franlever fits
Franlever labels POS labor as hourly labor everywhere, so nobody compares it with a P&L figure by mistake, and says why when a day's labor can't be calculated, such as an hourly employee with no pay rate. It compares each store's hourly labor with its own normal range and the brand's median. When labor moves enough to matter, AI COO carries it as that store's one lever in the morning brief and sends it to the GM. See benchmarks across stores.
Common questions
- What is a good labor cost percentage for a restaurant?
- It depends on whether you mean hourly or fully loaded labor. For quick-service, hourly labor is often in the 18–25% range and fully loaded P&L labor in the 28–33% range. Format, menu, local wages and sales volume all move it, so compare with your brand and format, and with your own store's normal range, rather than a single national figure.
- Why is my POS labor percentage lower than my P&L?
- The POS reports hourly labor: hours times hourly rates. It doesn't include salaried managers, payroll taxes or benefits, which the P&L does. The gap is often around ten points in a quick-service restaurant. Both numbers can be correct for the same week. Label each one clearly so nobody compares a POS figure with a P&L benchmark.
- Should I schedule by labor percentage or sales per labor hour?
- Schedule by sales per labor hour, set from your own best weeks, and track hourly labor percentage as the result. Sales per labor hour doesn't move when wage rates change, so it shows whether the schedule fit the work. Leave fully loaded labor to the monthly P&L, because a GM can't change salaries or benefits.
General information for restaurant and franchise operators, not legal, tax, accounting or financial advice. Figures in examples are illustrations, not predictions or promises of results. Laws and platform policies change and differ by location, so check the current rules and talk to a qualified advisor about your situation.