← Back to Insights

Newmark Concepts Insights

Restaurant Labor Cost: What "Good" Actually Looks Like

A labor percentage is only useful when it comes from the way your restaurant is staffed and the volume it serves. The target should be the result, not the starting point.

Tyler Broucek

June 22, 2026

Restaurant manager reviewing staffing and scheduling during a busy restaurant service period.

The percentage is a result, not a strategy

Ask ten restaurant owners for their labor target and you will get ten confident answers, usually something clean like 28% or 30%. Ask why that exact number fits their restaurant and the conversation gets less certain. Industry benchmarks are useful as guardrails, but they are a poor substitute for understanding how many people your operation needs and when it needs them.

A high-volume counter-service concept with a tight menu can run leaner than a full-service restaurant built around hospitality. A restaurant doing the same annual sales in two different labor markets can have very different wage pressure. A bar-heavy concept can generate a lot of revenue through a small number of highly productive employees. There is no honest labor target without the operating model underneath it.

Build the staffing plan from the floor up

Before we talk percentage, we want to know what the restaurant has to cover.

  • Covers by daypart - What volume do you expect on a Tuesday lunch, Friday dinner, and Sunday afternoon?
  • Front-of-house coverage - How many servers, bartenders, hosts, support staff, and managers does that volume require?
  • Kitchen coverage - What is the minimum crew at a slow period, and what changes when the board fills up?
  • Management coverage - Who needs to be in the building, and are salaried managers spending their time managing or filling hourly gaps?
  • Training and ramp-up - New hires are slower, need more supervision, and create an expense before they become fully productive

Once that is mapped hour by hour and position by position, the labor percentage means something. It is connected to the restaurant instead of borrowed from an industry report about somebody else.

A monthly labor number can hide a bad weekly schedule

This is one of the most common disconnects we see. The monthly P&L looks acceptable, but the schedule is still being built from habit: three servers because Tuesday has always had three servers, two bartenders because that is what last season required, or the same kitchen start times regardless of what sales are doing by hour.

That kind of scheduling can survive inside an acceptable monthly percentage because busy periods cover for slow ones. It does not mean the schedule is efficient. The better practice is to build against sales history by hour and daypart, then revisit the model as seasonality, promotions, leagues, events, or local demand change.

Where labor quietly gets away from you

Overtime that is visible too late

If the first time anyone notices overtime is when payroll is processed, the week is already over. Managers need to see who is approaching 40 hours before the final shifts are worked so they can make a deliberate decision instead of discovering the premium after the fact.

Clock-in and clock-out creep

Five minutes early does not look like a labor problem. Neither does ten extra minutes while somebody finishes side work. Multiply it across a team, across two shifts a day, across a month, and it becomes a real line item. The goal is not to police every minute; it is to know whether scheduled hours and paid hours are drifting apart.

Scheduling a permanent cushion for occasional call-offs

We understand why managers do it. One call-off on a busy night can hurt service, so the next schedule gets padded. The problem is when a backup plan quietly becomes the normal schedule. A reliable call-in or on-call process is usually less expensive than paying for extra coverage every shift just in case.

Using salaried managers to hide an hourly staffing problem

A GM working 60 or 65 hours a week because the floor or kitchen is routinely short is not cheap labor. It is a staffing problem being absorbed by the person you most need to lead the operation. Eventually the cost shows up somewhere else: burnout, turnover, weaker management, or all three.

What "good" can look like by concept type

These are broad planning ranges. They are useful for comparison, not as universal rules:

  • Quick-service / counter-service - Often 22-28% of sales, supported by menu simplicity and high throughput
  • Fast-casual - Commonly 25-30%, balancing speed with more guest interaction
  • Full-service casual - Commonly 28-34%, with more labor required per cover
  • Upscale / fine dining - Often 32-38%+, where labor intensity is part of the product guests are paying for
  • Bar-forward concepts - Highly variable because bartender productivity and beverage margins can change the economics quickly

A 34% labor cost can be healthy if the team is producing the service, speed, consistency, and sales the concept requires. A 26% labor cost can be expensive if it comes from chronic understaffing, poor guest experience, and constant turnover.

The better question is what the labor is producing

Labor is not something to minimize at all costs. It is one of the biggest investments the restaurant makes every week. The job is to make sure the hours are in the right positions at the right times and that the business is getting a return through throughput, hospitality, consistency, and sales.

If labor has been creeping up, we would not look at that percentage in isolation. We would look at the schedule, sales by hour, wage rates, menu complexity, operating hours, overtime, management coverage, and the revenue being produced by each daypart. That is usually where the answer is.

More Insights

Continue exploring restaurant and hospitality strategy

Not sure your labor model fits the business?

We review staffing, scheduling, sales patterns, and margins together so the labor target is built around the restaurant you are running.

Optimize Your Profitability
This is some text inside of a div block.