Restaurant comps, voids, and discounts: the controls that stop quiet losses

Nobody steals a whole shift of sales at once. It leaves in two-dollar pieces — a comped app here, a void there. Here is how to see it and stop it.

August 14, 2026

Almost nobody loses a restaurant to one dramatic theft. It goes out in small, boring pieces: a comped appetizer that never got approved, a void rung after the food already left the pass, a fifteen percent friends-and-family discount applied to a table that contains neither. Each one is defensible on its own. Added up over a year, a couple of points of your sales walk out the back door, and because every line of it looks like ordinary service recovery, nothing on the P&L points at it. This is one of the few margin problems where the fix is mostly configuration — the register already has the tools, they are just switched off or wide open. Here is how to set them properly and what to look at once a week.

Comp, void, discount, refund: four different holes

Operators use these words interchangeably and then wonder why the reports do not add up. They are not the same event, and a POS that treats them the same is hiding information from you. The distinction that matters is simple: did the food get made, and did money change hands?

ActionWhat happenedCost to youShould require
VoidItem removed before it was fired to the kitchenNothing, if it is truly pre-fireServer can do it pre-fire; manager after
CompItem was made and served, guest is not chargedFull food cost plus the labor to make itManager PIN and a reason, always
DiscountGuest pays a reduced priceThe discounted amount, straight off gross profitNamed discount types only, no open percentage
RefundMoney already captured is returnedCash out the door, plus processing on both legsManager PIN, reason, and a receipt trail

The dangerous one is the post-fire void. If a system lets someone remove an item from the check after the kitchen has already cooked it, you have a hole that produces food with no sales record at all — inventory disappears and the sales report never knew the item existed. That is the single most common mechanism behind unexplained variance between what you bought and what you sold. When the register and the kitchen display system are the same system, a fired item can only leave the check as a comp with a reason attached, which is exactly the behavior you want.

Where the money actually goes

Set aside intent for a moment, because most of this is not theft. In a typical week the comp log is a mix of four things: genuine service recovery (the steak went out wrong), training gaps (a new server rings the wrong modifier and comps the fix instead of correcting the check), habit (a bartender who buys back every third round because that is what the last place did), and a small amount of deliberate abuse (a discount applied after the guest already paid full price, with the difference taken from the drawer). The controls below are useful precisely because they cost the honest majority almost nothing while making the last category obvious.

The number to watch is the ratio, not the dollars. Comps as a percentage of gross sales, tracked by employee and by daypart, is one of the few metrics where the outliers tell you everything and the average tells you nothing. One server at four times the house rate is a conversation. The whole Tuesday night crew running high is a kitchen problem, not a people problem. Add it to the short list of numbers you already review with your other restaurant KPIs.

Reason codes do the real work

A comp without a reason is unauditable, and "manager discretion" as a catch-all reason is the same as no reason. Build a short list — six to eight codes, no more — that maps to decisions you would actually make differently. Something like: wrong item fired, quality issue, long ticket time, guest recovery, staff meal, marketing or influencer, manager buyback. Force one on every comp and discount, with the approving manager captured automatically.

The payoff shows up within a month. When "long ticket time" is eleven percent of comps and all of it lands between 7 and 8 on Friday and Saturday, you do not have a comp problem, you have a staffing or expo problem, and the comps were just the invoice for it. When "quality issue" clusters on two menu items, that is a recipe or a station, not a server. Reason codes turn a loss column into a diagnostic. Without them you are left with a total that goes up and down for reasons nobody can name.

The permission set that actually holds

The weekly ten minutes

This does not need a new report-building project. Once a week, pull four views and read them in this order. First, comps as a percent of sales for the week against the last eight weeks — you are looking for a trend line, and anything above roughly one to two percent of sales deserves an explanation rather than an alarm. Second, the same number by employee, sorted descending. Third, comps by reason code, which tells you whether the cause is service, kitchen, or policy. Fourth, voids after fire, which should be a very short list and ideally an empty one.

Then close the loop with inventory. Comps and post-fire voids are the bridge between your food cost variance and your sales report — if theoretical usage says you should have sold ninety portions and you sold eighty-two, the comp log should account for most of the gap. When it does not, keep pulling that thread. This is the same reconciliation that makes a food cost percentage trustworthy instead of merely calculated.

Do not turn your managers into cops

The failure mode of tightening this up is a floor that stops fixing guest problems because the approval is a hassle. That costs more than the comps did. Two things keep it healthy. Tell the team the numbers exist and what the house rate is — visibility alone moves behavior more than any policy memo, and it removes the sense that someone is being singled out. And make approval fast: a manager PIN on a handheld at the table takes four seconds, while walking to a terminal takes ninety and teaches everyone to work around the rule. Controls that are slower than the workaround do not survive a busy Saturday.

One more note for anyone running promotions. Discounts you chose — a published lunch deal, a loyalty reward, a first-order code on your own online ordering — should be tracked separately from discounts the floor applied. They are marketing spend with a return you can measure, not leakage. Mixing them into one bucket is how operators end up either killing a promotion that worked or tolerating a discount habit that did not.

What to ask a vendor before you sign

Every POS claims permissions. The differences show up in the specifics, so ask for a demo of these exact flows rather than a feature list: remove an item after it has been fired and show me where that lands in reporting; apply a discount and show me the audit trail with the approving manager; show me comps by employee and by reason for a date range without exporting to a spreadsheet; show me what the owner sees remotely at 11pm. If any of that requires an add-on module or a report the vendor has to build for you, factor it into the real monthly cost — see how Novaryq prices the platform as per-location software pricing rather than a base fee plus a reporting tier.

Frequently asked questions

What is a normal comp percentage for a restaurant?

Most full-service operators watch for comps landing somewhere around one to two percent of gross sales, with quick service typically lower. Treat any published benchmark as a starting point rather than a target — what matters far more is your own trend over eight to twelve weeks and the spread between employees. A stable two percent with a clear reason-code mix is healthier than a volatile one percent nobody can explain.

What is the difference between a comp and a void?

A void removes an item before the kitchen makes it, so nothing was produced and nothing was lost. A comp means the item was made and served and the guest is not being charged, which costs you the food and the labor. The distinction only holds if your POS blocks post-fire voids and forces them to be recorded as comps instead — otherwise produced food disappears from both the sales report and inventory.

How do I stop servers from applying unauthorized discounts?

Remove open-ended percentage and dollar discount buttons from the terminal entirely and replace them with named discount types that carry fixed rules — staff meal, industry, loyalty reward, published promo. Require a manager PIN entered at the moment of approval, give every employee their own login, and review discounts by employee weekly. Most unauthorized discounting stops once staff know the report exists and is read.

Can comps explain a gap between theoretical and actual food cost?

They should explain most of it. Comped and post-fire-voided items consume inventory without producing sales, so they are the expected bridge between theoretical usage and what actually left the walk-in. Reconcile the two monthly: if the comp log accounts for the variance, your controls are working. If a meaningful gap remains after comps, waste, and staff meals, look at portioning, receiving, and post-fire removals next.