Scheduling Guide By , Founder & CEO of XShift AI Published September 10, 2026

Restaurant Labor Cost Percentage:
How to Reduce It and Stay Under Budget

Every other scheduling tool shows you the labor number after the week is over. XShift AI refuses the shift that would break your budget.

Restaurant labor cost is the money you pay your staff. Restaurant labor cost percentage is that money divided by your sales for the same period, times 100. Most restaurants run between 25 and 35 percent. XShift AI is how you hold that number: you turn the percentage into a weekly dollar amount, write it as one sentence, and it refuses any shift that would push you past it.

How do you calculate restaurant labor cost percentage?

Here is how to calculate restaurant labor cost percentage. Divide total labor by total sales for the same period, then multiply by 100. Both halves have to cover the same days, because a week of labor against a month of sales gives you a number that means nothing.

Total labor ÷ Total sales × 100 = labor cost percentage

That is the restaurant labor cost formula, and it is the same labor cost percentage formula your accountant runs on the year, pointed at a single week instead.

The top half is where most operators get it wrong. Total labor is not only the hourly wages on the schedule. It is hourly wages, salaried pay, overtime, payroll taxes, workers’ compensation, health benefits, paid time off and anything else it costs you to keep a person on the payroll. Run the schedule’s wages against your sales and call it your labor cost and you are reading a number several points under the real one, which is how a restaurant believes it is at 25 percent while the accountant is looking at 34. That full figure is the one your accountant uses. Your schedule moves the first three. Keep both numbers and always know which one you are looking at.

Here is the restaurant this whole guide uses. It forecasts $150,000 in sales for next week. It wants scheduled hourly wages to come in at 25 percent.

25% of $150,000.

$37,500 of labor for the week.

Check it against real hours before you trust it. The Bureau of Labor Statistics puts average hourly earnings across food services and drinking places at $21.89 in July 2026, and average weekly hours at 25.1 (BLS, NAICS 722). At that rate $37,500 buys about 1,713 hours of scheduled labor, which spread over 25.1 hours each is roughly 68 people on the roster. If your figure comes out at an amount of labor you could never fill or could never spend, the forecast is wrong, not the target.

What is a good restaurant labor cost percentage?

A good restaurant labor cost percentage depends almost entirely on how much of the work your guest does for themselves, which is why the average restaurant labor cost percentage is published as a range and never as a number. In a quick service restaurant the guest orders at a counter, carries their own food and clears their own table, so the payroll covers a kitchen and a till and very little else, and the number sits at the low end. In a fast casual restaurant somebody runs the food out and resets the tables, so it climbs a little. In a full service restaurant a person takes the order, runs the food, refills the water, clears the plates and reads the room, and every one of those jobs is an hour on the schedule. Fine dining climbs further still, because the ratio of staff to guests is the product being sold. The National Restaurant Association puts real figures on that gap: among the full service operators it surveyed, salaries and wages including benefits were a median of 36.5 percent of sales in 2024, against 31.7 percent among limited service operators, and both readings were up from roughly 33 percent and 28 percent in its earlier editions, so the bar every restaurant is measured against has moved three and a half points against you in a decade. That is the real distance between a quick service restaurant labor cost and a full service restaurant labor cost, and some operators call the same figure restaurant payroll percentage of sales, which is the same number under a different name.

That spread between segments is the part everybody already knows, and it is not the part that decides your number. Inside a single segment the thing that moves the percentage is not the wage, it is the hours. Two full service restaurants on the same street, paying the same rates off the same local market, will finish the year five points apart because one of them staffs to what Saturday actually sold and the other staffs to what Saturday felt like. At the $21.89 average, every extra hour on the schedule is another $21.89 charged against your sales whether the room was busy or not. Seven people staying an hour past what the floor needed, every day for a week, is 49 hours and $1,073, which on $150,000 of sales is seven tenths of a percentage point that nobody decided to spend.

One last thing, and it is the reason the number on your profit and loss never matches the number in your scheduling software. Every figure above includes payroll taxes and benefits. A schedule does not. What a schedule controls is scheduled hourly wages, and that is the smaller number, which is why a 25 percent target on the schedule can sit comfortably underneath a thirty-something percent line on the P&L. Set your restaurant labor cost target against the number your schedule can actually move, or you spend the year chasing a figure that no shift you cancel will ever change. To find yours, take last quarter’s payroll report, strip out payroll taxes, benefits and salaried management pay, and run what is left against the same quarter’s sales. That is the number a schedule holds, and it is the one to set your target against.

How to reduce restaurant labor costs in six steps

Every step below runs on the same restaurant, the same forecast and the same $37,500. Nothing here asks you to cut a shift, cut a person or send anybody home early.

1. Turn your percentage into a dollar amount for the week

A percentage is not something a schedule can obey. A schedule is built out of people, hours and dollars, and none of those are percentages. So a restaurant labor budget is written in dollars: before you build anything, convert the target into one weekly labor budget and work against that instead.

The restaurant forecasts $150,000 and targets 25 percent, so the week is allowed to hold $37,500 of labor. In Autopilot you write that as a sentence in your own words:

What you type

“Keep labor under $37,500 a week at Riverside.”

What it does from then on

Every shift anyone tries to save at Riverside is priced and added to that week’s running total before it is allowed to exist.

2. Make the budget refuse a shift, not report one

There is a difference between a number that reports and a number that stops, and the whole difference is when the check runs. A report runs after the hours are worked, when the money is spent and the only decision left is how to explain it. A stop runs while somebody is still saving the shift, when changing it costs nothing.

Older scheduling software and the spreadsheet both count after the fact. That is how a restaurant finishes four points over target and finds out on the payroll run, two weeks after the shift that caused it.

XShift AI is the scheduling software that enforces a labor budget instead of reporting one. When somebody saves a shift, it prices that exact shift for that exact person: the hours that still fit under their overtime threshold at their normal rate, and every hour past it at time and a half. It adds that figure to what the restaurant has already committed for the week and compares the total to your number. That is what restaurant labor cost control actually means, a check that runs before the money is committed rather than a report that arrives after it.

Riverside is at $37,280 committed with a $220 gap left. A manager adds a 10-hour Saturday shift for a line cook on $22 an hour. Here is the same shift handed to two different cooks.

The same 10-hour Saturday shiftCook already at 36 hoursCook already at 20 hours
Hours at the normal rate4 at $22 = $8810 at $22 = $220
Hours at time and a half6 at $33 = $198none
What the shift costs$286$220
The week after it is saved$37,566$37,500
Your budget$37,500$37,500
What XShift AI doesRefuses it. $66 over.Saves it. Exactly on budget.

The same ten hours. The same station covered. The same guests served. The only thing that changed is whose name is on the shift, and it came in $66 cheaper, because $66 is exactly what six overtime hours cost you at $11 of premium each.

The refusal is not a message you read on Monday. It happens on the screen, to the person trying to save the shift, with the numbers that caused it. And it runs in every place a shift can be created: when XShift AI generates a whole week for you, when it auto-assigns your open shifts, when a manager places one by hand, when somebody is added to a shift that already exists, when a repeating shift lays itself down, and when a call-off is covered. On the paths that run with nobody watching, there is no one there to confirm an override, so a warning turns the person away exactly like a refusal does. Book a demo and watch a shift get refused live.

3. Cap the slow days so the busy days have room

A weekly figure can be spent by Thursday. Nothing inside a weekly number stops you putting two thirds of it into the four days that sell the least, and then Saturday, the day that pays for the week, runs short-staffed to cover a Tuesday nobody was in. So work out what each day of the week actually sells, and give the slow days their own daily labor cost cap.

Monday through Thursday at Riverside sell about a quarter of the week. Cap those four days at $4,000 of labor each and they can spend $16,000 between them. That leaves $21,500 for Friday, Saturday and Sunday, which is where the other three quarters of the $150,000 comes from.

What you type

“Do not go over $4,000 a day at Riverside on Mondays through Thursdays.”

What it does from then on

It carries two checks in one sentence, the day of the week and that day’s running labor total, and both have to be true before it turns a shift away. Friday arrives with the money still in it.

4. Get the overtime hours out of your percentage

An overtime hour buys you nothing extra. The same person works the same station at the same speed, and you pay half as much again for it. On a $22 wage that is $11 an hour going out of the door in exchange for absolutely nothing. That makes restaurant overtime cost the first thing to pull out of your labor cost percentage, because it is the only part of the number you can cut without cutting a single hour of coverage.

XShift AI stops it with nine separate checks, each one written as a plain sentence in your own words and each one enforced at the moment a shift is saved. You do not configure them and you do not maintain them. You say the limit once and it holds on every shift after that.

Every check that runs before a shift is allowed to save

9 checks

A weekly hour ceiling for each person

It adds this shift’s hours to everything that person already holds that week and turns the shift away if the total crosses your number.

A weekly ceiling on shifts, counted separately from hours

For the closer who works five short nights and never looks busy on an hours report.

A cap on how long any single shift can run

The twelve hour Saturday that starts as a ten hour Saturday never gets saved in the first place.

A straight overtime check that reads your own threshold

It does not assume 40. A restaurant that starts overtime at 38 gets 38 enforced.

The weekly labor dollar limit from step one

It prices the shift at time and a half for every hour past the threshold, then compares the week’s new total to your budget.

The daily labor dollar limit from step three

The same pricing, one calendar day at a time, so Tuesday cannot quietly spend Saturday’s money.

A minimum number of hours off between two shifts

This is the one that stops the close followed by the open, which is where a tired eleventh hour turns into a premium one.

A cap on days worked in a row

Counted across every restaurant you run, not just the one the shift is at.

A stop on the same people working every single weekend

Your four most reliable names stop absorbing every Saturday and every Sunday until they are permanently in overtime.

Nine checks, on every shift, every time, with nobody remembering to run them.

Any of the nine can be set to turn the shift away outright, or to stop the save and let a manager push it through with their name on the record. On the paths that run without a manager watching, generating a schedule, auto-assigning open shifts and covering a call-off, both settings do the same thing and the person is skipped.

Workforce Insights gives you the number afterwards: hours per person for the period, how many people ran past 40 hours in any single week, and what the overtime premium added to the bill. That is where you find out who to build the rule around.

Go back to the block in step two. That one refusal saved $66. Now run it across the roster. Twenty people at Riverside running six overtime hours a week each is 120 premium hours you are buying and not using, and at $11 of premium on a $22 wage that is:

$1,320 a week.

$68,640 a year, at one restaurant.

Nearly nine tenths of a percentage point of labor cost, bought back without cancelling one shift.

Overtime is a big enough piece of a restaurant’s labor cost to deserve its own guide, and it has one. Read how to prevent restaurant overtime permanently for where the premium enters a restaurant week, what it costs at every roster size, and what happens when a call-out lands on Saturday at four.

5. Hold the budget when somebody calls out

Coverage is where a labor budget usually breaks, and the reason is who answers the phone. You ring the three people you always ring, and the three people you always ring are the ones already closest to overtime, so the shift you just filled costs half as much again as the one you lost.

The practice that fixes it is to work the list in two groups. Everybody who can do the job and would not go into overtime goes first. Everybody who would go into overtime goes second. You empty the first group before you touch the second, every time, even when it takes more calls. XShift AI works that list for you, in a fixed order, and stops at the first person who passes all of it:

  • Is this person attached to this restaurant
  • Can they do the job, counting their second role if you use second roles
  • Is this a day of the week they never work
  • Do the hours they blocked off overlap this shift
  • Does the shift break any rule you wrote, including your labor budget and your hour limit
  • Are they already on something else at that time, and does this push them into overtime
  • Are they on approved time off

The Saturday call-off at Riverside lands with $220 left in the week. Handed to somebody in the first group, the ten hours cost $220 flat and the week closes at exactly $37,500. Handed to somebody in the second group, the same ten hours cost $286 and your own budget refuses it. The order the list is worked in is the entire reason the week survives the call-off. Nobody had to be phoned, and nobody had to remember who was near their limit.

6. Set a separate budget for every restaurant

Multi location restaurant labor cost is reported as one number and it should never be managed as one. A restaurant group labor cost figure is an average, and an average hides the restaurant that is bleeding. Five restaurants running at 25 percent and one running at 31 report as a group at 25.9, which reads like a good year and is not. So the target belongs to the group and the dollar figure belongs to each restaurant.

Every restaurant forecasts its own week and gets its own number out of the same percentage. Riverside forecasts $150,000 and gets $37,500. The airport restaurant forecasts $90,000 and gets $22,500. Same 25 percent, two different amounts of labor, because a quarter of a smaller week is a smaller number of hours. Each one is written as its own sentence naming its own restaurant, and each one is measured only against the shifts at that restaurant.

Then size what holding the line is worth. Two points of drift on a $150,000 week is $3,000 gone, and two points is what a single busy weekend of nobody counting looks like. Held instead of spent, that is $156,000 a year at one restaurant.

$3,000 a week, per restaurant.

$156,000 a year, per restaurant.

$936,000 a year across six.

One thing crosses the boundary between restaurants on purpose. When XShift AI counts how many days somebody has worked in a row, it counts every day they worked anywhere in the group. Somebody who picked up Tuesday at the airport is on day two downtown on Wednesday, and your limit knows it. That is the check most groups cannot do at all, because their hours live in one file per restaurant and nobody adds the files together until payroll.

If the overtime premium is the part of the group number you want first, the restaurant overtime prevention guide runs the same group arithmetic on the premium alone, across one restaurant, five and ten.

What you get back

You open the schedule on a Tuesday and the labor number for next week is already inside your target, because the shifts that would have broken it were never created. Nobody sent anybody home. Nobody cut a Saturday. The hours moved to the people who had room for them, and the room stayed covered.

Then payroll runs and there is nothing in it you have not already seen. That is the part you would miss most if it went away: the month you spend not explaining a labor number to anybody, because the number never got away from you in the first place.

  • One restaurant, two points of drift held: about $156,000 a year.
  • Six restaurants: about $936,000 a year.
  • The overtime premium on twenty people: $68,640 a year, per restaurant.
  • The Sunday you spent building next week by hand: back, because it builds itself and the budget holds while it does.

XShift AI is $29 a month plus $1 per active user. Six restaurants with 408 people between them pay about $5,232 a year to hold a $936,000 line. That is roughly 178 to 1, and it pays for itself in about two days of the drift it stops. See the full pricing.

Switching is the part people put off, so here is the honest version. You set it up by talking to the AI Copilot in plain English, in under ten minutes. You bring your roster in from a spreadsheet. There is no implementation project and nobody comes to your restaurant. You can leave your current tool running while you watch a week build itself. The trial is 21 days, a card is required to start it and you are not charged during it, and you can cancel before it ends with no charge at all. Every week you wait is another $3,000 of drift per restaurant that nobody decided to spend.

Skip all of this if

You like finding out your labor percentage three weeks after the last shift that moved it. You enjoy paying $33 an hour for work you had already bought at $22. You would rather your best four people carried every extra hour until they quit. And you look forward to explaining a number to your accountant on the one day of the month when it can no longer be changed. Otherwise, write one sentence and let it hold the line for you.

Frequently asked questions

How do I calculate my restaurant’s labor cost percentage?

Divide your total labor for a period by your total sales for the same period and multiply by 100. Total labor means hourly wages, salaried pay, overtime, payroll taxes and benefits, not only the wages sitting on the schedule. If you spent $37,500 on labor in a week that sold $150,000, that is 25 percent. XShift AI handles the forward half of this for you: you give it the dollar figure the week is allowed to hold, and it prices every shift against that figure before the shift is allowed to be saved.

What is a good labor cost percentage for a restaurant?

Most restaurants target 25 to 35 percent, and where you land inside that depends on your segment. The National Restaurant Association reported that salaries and wages including benefits ran to a median of 36.5 percent of sales among the full service operators it surveyed in 2024, against 31.7 percent among limited service operators. Scheduled hourly wages on their own sit lower than both of those, because both figures include payroll taxes and benefits your schedule never touches. Set the target against the number your schedule can actually move, and let XShift AI hold it.

What is a good labor cost percentage for a quick service restaurant?

Lower than a full service restaurant, because a quick service guest does part of the work themselves. They order at a counter, carry their own food and clear their own table, so the payroll covers a kitchen and a till rather than a kitchen, a till and a floor of servers. The National Restaurant Association reported a median of 31.7 percent of sales among limited service operators in 2024, including payroll taxes and benefits, so the scheduled wages on their own come in under that. Whatever number you pick, XShift AI is what turns it into a weekly dollar limit the schedule cannot cross.

How to lower restaurant labor cost without cutting staff

Take the overtime out first, because an overtime hour delivers the same work as a regular hour and costs half again as much. Move those hours from the people who are past their limit to the people who still have room, and the coverage stays identical while the bill drops. XShift AI does this at the moment a shift is saved: it prices the shift for that specific person, at time and a half for every hour past their overtime threshold, and refuses it when the total breaks your weekly figure. Nobody loses a shift. The hours land on a different name.

What software stops a restaurant going over its labor budget?

XShift AI. You write the limit as a plain sentence, such as keep labor under $37,500 a week at Riverside, and it refuses any shift that would push that restaurant’s committed labor past it. Most scheduling software reports the labor number after the week is finished, which tells you what happened and changes nothing. XShift AI runs the check while the shift is still being saved, on every path a shift can be created, including the schedule it generates for you and the coverage it finds when somebody calls out.

How do I set a weekly labor budget for my restaurant?

Forecast next week’s sales, multiply by the percentage you are targeting, and use the answer as a dollar figure rather than a percentage. A $150,000 forecast at 25 percent gives you $37,500 for the week. A percentage is not something a schedule can obey, because a schedule is made of people, hours and dollars. In XShift AI that dollar figure becomes one sentence, and every shift at that restaurant is priced and added to the week’s running total before it is allowed to exist.

Can scheduling software block a shift that breaks my labor budget?

Yes, as long as it checks at the moment the shift is saved instead of at the end of the week. XShift AI prices the exact shift for the exact person, splitting the hours into the ones that fit under their overtime threshold at their normal rate and the ones past it at time and a half, adds the result to what the restaurant has already committed, and refuses the shift when the total goes over your figure. The refusal appears on the screen of whoever tried to save it, with the numbers that caused it.

How much does restaurant overtime add to labor cost?

Half of the hourly rate for every hour past the overtime threshold. At $22 an hour, overtime pays $33, so each overtime hour costs you $11 you did not have to spend. Twenty people running six overtime hours a week each is 120 premium hours, which is $1,320 a week and $68,640 a year at one restaurant. Against a $150,000 weekly forecast, that $1,320 is nearly nine tenths of a percentage point of labor cost, and XShift AI removes it by refusing the assignment that creates it.

How do restaurant groups control labor cost across locations?

By setting the percentage once for the group and the dollar figure separately for every restaurant, because 25 percent of a $150,000 week and 25 percent of a $90,000 week are two different amounts of labor. A group average hides the one restaurant that is running over. In XShift AI each restaurant gets its own sentence naming its own restaurant, and each limit is checked only against the shifts at that restaurant. The one thing that crosses the boundary on purpose is the count of days worked in a row, which counts every day somebody worked anywhere in the group.

What is included in restaurant labor cost?

Hourly wages, salaried pay, overtime premium, payroll taxes, workers’ compensation, health benefits, paid time off and anything else it costs to keep a person on the payroll. Your accountant’s number includes all of it. Your schedule only moves the first three, which is why the percentage on your profit and loss will always sit above the percentage your scheduling software is holding. XShift AI holds the scheduled part, so set that target knowing it is the smaller of the two numbers.

Put your labor budget in writing once

One sentence, and every shift that would break it is refused before it exists. See it happen on your own roster.

Set up in under 10 minutes Bring your roster in from a spreadsheet Cancel before the trial ends with no charge

How to Control Restaurant Labor Cost Permanently