A void, a comp, a discount and a refund are four different events. Most restaurants treat them as one thing with four names, usually whichever button is nearest, and then wonder why their food cost keeps drifting up while the kitchen swears nothing is going out the back door. Getting the distinction right costs nothing and fixes a surprising amount, because these four buttons are the only sanctioned ways money leaves a check. Which means your restaurant POS is either recording who removed what and why, or it is quietly laundering the evidence into a single line called adjustments.
This is a control article, not an accusation. Most of what these buttons cost you is error and sloppy definition rather than theft, and the error is more expensive because it is constant. Misclassify enough delivered food as voided and your reported food cost climbs for reasons that have nothing to do with portioning, at which point your stock management numbers stop being usable and the head chef gets a conversation they do not deserve.
Four buttons, four meanings
A void cancels something that never reached the guest. Wrong item rung, order keyed to the wrong table, guest changed their mind before the kitchen fired it. Nothing was produced, nothing was consumed, and the sale should never have existed. Gross sales are reduced because there was no sale.
A comp removes the charge for something that was produced and delivered. The steak arrived overcooked and you took it off the bill. A regular got a round on the house. The food or drink is gone from your inventory either way. The sale happened, you chose not to collect for it, and that choice is a cost of doing business rather than a reversal.
A discount reduces the price of something delivered and paid for: a set-lunch price, a staff rate, twenty percent off for the theatre crowd, a voucher. Revenue is lower by design, at a level you set in advance.
A refund returns money already taken. Payment was captured and settled, then reversed. Refunds deserve their own controls because they move real money outward rather than adjusting a figure on an open check, and because a refund to a different card from the one that paid is a fraud pattern rather than a service recovery.
Two tests settle almost every real case. Did it physically leave the kitchen or the bar? If yes, it cannot be a void. Has the payment already been captured? If yes, it cannot be a comp, it is a refund. Staff who know those two questions will classify correctly without memorising a policy document.
How mixing them up wrecks your food cost
Here is the mechanism, and it is the reason this article exists rather than living as a paragraph in a training manual.
A server voids a burger that the guest already ate and complained about. Cleanest-looking option on the screen: the line disappears, the bill is right, the guest leaves happy. But the burger was made. The mince, the bun and the cheese left your shelves and are not coming back. Because the sale was voided, gross food sales are lower by the price of that burger, while cost of goods is unchanged.
Do that forty times a month in a venue running thirty percent food cost and you have manufactured a variance out of nothing. Product left the building with no sale attached to it, which is arithmetically identical to waste or theft. Your food cost percentage rises, your theoretical usage stops matching actual usage, and every diagnostic points at the kitchen. The head chef tightens portions on a problem that was created at the till.
Comp it instead and the numbers tell the truth. The sale is recorded at full value, so gross sales and cost of goods stay in proportion and food cost percentage is undisturbed. The giveaway shows up where it belongs, as a comp against that shift, that server and that reason. Same guest outcome, same money, completely different information.
The reverse error is subtler and just as common. If your system records the sale net of the discount, a fifty percent off promotion effectively doubles the cost percentage of every dish sold on it, because you have booked full cost against half revenue. Run a Tuesday deal for a quarter, look at your food cost percentage afterwards, and you will conclude the kitchen collapsed in March. It did not. You changed the denominator.
So the rule is simple and worth putting on a wall. Gross sales at menu price, always. Reductions recorded separately as what they were. Anything else and you are making decisions on numbers your own process corrupted.

Where each one lands in the accounts
Voids should be invisible in your reporting apart from a count. There was no sale, so nothing hits revenue. The count still matters, because void volume is a control metric even when every one of them is legitimate.
Comps belong below gross sales as a deduction, not netted into revenue and not hidden in cost of sales. Kept visible, comps answer a management question every month: what did hospitality recovery cost, and was it worth it? Buried, they answer nothing and quietly depress your margin.
Discounts sit in the same place with a different story attached. They are a pricing decision, so the number you want is the discount rate against gross sales, trended. A discount rate creeping from two percent to five over two quarters is a menu pricing conversation, or a promotion nobody switched off, and it will not appear in any other report you read.
Refunds need to reconcile to your processor rather than only to your till, because the money left through the card network. A refund total that your POS agrees with tells you nothing about whether the funds actually moved, which is a point covered in more depth in our guide to payment processing.
One consequence people miss: all four of these distort average check and covers if they are handled carelessly. Void a whole table's order in error and you have lost the covers as well as the sale, which quietly flatters your average spend and misleads the labour model that reads it.
Who should be allowed to do what
Permissions are where this becomes a control rather than a policy nobody follows. The design principle: the person who benefits from an adjustment should not be able to make it alone, and the size of the adjustment should decide how much authority it needs.
A workable structure for most independents. Servers may void an item they have rung but not yet sent to the kitchen, since that is just correcting a keystroke. Once an item has fired, removing it requires a supervisor, because now something physical exists. Comps above a set value, whole-check comps and anything on alcohol need a manager. Refunds need a manager without exception, and refunds after the shift has closed need the general manager. Discounts that are configured promotions can be open to everybody, because the amount is fixed in advance and the risk is a promotion applied on the wrong day rather than an arbitrary number.
Three details do most of the work. Approval has to happen at the moment of the action, with the approver's own PIN, not a manager who logs in at the start of service and leaves the till authorised for six hours. Every member of staff needs their own login, since a shared code makes every subsequent report meaningless. And the person who approves must be recorded separately from the person who requested, because the pairing is the audit trail.
Where operators go wrong is in the direction of theatre. Requiring a manager for every void in a busy bar produces a manager standing at a till all night, and within a week the workaround is a manager PIN that everyone knows. Set the thresholds where they will actually be honoured.
Reason codes that mean something
Free text is where audit trails go to die. Given a blank field at 9pm on a Saturday, staff type "error", "mistake" or a single full stop, and you have collected a timestamp and nothing else.
A short, closed list works far better, because it forces a real classification and makes the data countable. Eight to ten codes covers a restaurant: keyed in error, wrong item ordered, kitchen error, guest dissatisfied, spill or breakage, staff meal, manager hospitality, promotion, training, and out of stock after ordering. That last one is more useful than it looks, since a rising count tells you your stock levels are failing the floor rather than your servers being careless.
Ban the catch-all. No "other", no "misc", no free text as the default option. If a case genuinely does not fit, that is a conversation worth having, and a code you may need to add.
Then close the loop, which is the step almost everyone skips. Reason codes are only worth collecting if somebody reads them. Kitchen error running at four times its usual rate for a fortnight is a prep or a staffing problem with a receipt attached. Guest dissatisfied clustering on one dish is a recipe problem. If nobody ever pulls that report, the codes are just friction you added to your own service.
The patterns worth knowing about
Loss prevention in restaurants is not about suspicion, it is about knowing which shapes in the data are worth a second look. Most of these have an innocent explanation available, and that is exactly why they work as cover.
Voids after payment. The single most common cash-skimming method. Take the guest's cash, void the item or the check afterwards, keep the difference. The drawer still balances, because it balances against a total that no longer includes what was removed. Any system that cannot distinguish a void before payment from a void after it is missing the one distinction that matters here.
Voids on drinks specifically. Drinks never go to the kitchen, so no ticket, no expo, nobody physically contradicts the paperwork. A drifting average number of drinks per check, in a venue where drink attachment is normally stable, is a genuine signal.
Voids after the item fired. Food was produced. Whatever the reason, this should be a comp, so a pattern here is either a training gap or a deliberate choice of the button that leaves less trace.
Clustering in the last hour. Adjustments concentrated in the final thirty to sixty minutes of a shift, when the manager is doing the close and attention is elsewhere.
Approvals from absent managers. A manager PIN authorising adjustments on shifts that manager did not work. This one is unambiguous and it is found by cross-referencing the approval log against the rota, which takes about two minutes.
The wagon wheel. One check reused for multiple tables: the guest pays cash, the check is kept open and presented again, and the difference stays in a pocket. Long-lived checks with unusual item combinations are the tell.
Volume of no-sale drawer opens. Legitimate individually, indefensible at forty in a shift.
Two calibration points from the loss prevention field, offered with the caveat that both are industry estimates rather than audited research. A figure attributed to the National Restaurant Association and repeated widely across the sector puts employee theft at around four percent of sales and roughly three quarters of inventory shortages. Advisory firms working with independents put total leakage from theft, shrinkage and comp abuse at three to six percent of revenue for venues with weak controls, against well under two percent where procedures are tight. Hold the four percent figure against the median full-service profit margin the NRA reported at 2.8% and the point makes itself: on those numbers the leak is bigger than the profit. Your own venue is not the average, which is the argument for measuring rather than worrying.

Exception reporting without becoming a detective
You cannot read every check. Exception reporting means setting a threshold for what is normal, then only looking at what breaches it, which turns an impossible review into a short list.
Start deliberately loose. Ten percent of a check's value removed through voids, comps and discounts is a common starting threshold, and it will feel high. That is the point: set it at zero and every server in the building appears on the list, which is how these programmes get abandoned in week two. Run it for a month, see who sits consistently above the pack, then tighten.
Compare people against each other rather than against an absolute, because your own venue is the only fair benchmark. Ten servers working the same sections and the same menu should have void and comp rates within a band of each other. The useful question is never "is two percent too high" but "why is Marco at seven when the section average is two". Adjust for role and station, since a bartender and a lunch server face different volumes of correction.
Look at counts alongside values. Twenty small voids is a different problem from one large one: the first is usually training or a menu button in the wrong place, the second is a decision somebody made.
And when something does surface, resist the confrontation instinct. Pull the pattern over a longer window first, check the approval log against the rota, then have a calm and specific conversation. Most outliers turn out to be a genuine training gap, a badly laid out menu screen, or one guest who complains every Thursday. Treating the first outlier as theft is how you lose a good server.
Give the giveaway a budget
Here is the counterintuitive part. The venues with the tightest control over comps are usually the ones that hand out the most freely, because they have made it explicit rather than furtive.
Set a hospitality budget per shift. A number your duty manager can spend on making things right without asking anybody: a round for a table that waited too long, a dessert for a birthday nobody flagged, a bottle for the regulars who brought four friends. Track it, review it monthly, and treat spending it as doing the job rather than a failure.
Two things happen. Recovery gets faster, because nobody is weighing whether the problem is big enough to justify finding a manager. And the numbers become honest, because a comp inside a budget has no reason to be disguised as a void.
The comp report then tells you something real. Comps clustered on a single dish is a recipe or a ticket-time problem. Comps clustered on one shift is a staffing problem. Comps spread evenly at a low level is functioning hospitality, and cutting it to zero would be a false economy that costs you goodwill worth many times the line item.
What a hospitality budget is not: a loyalty programme. Recovering a bad experience and rewarding a good customer are different jobs, and treating comps as informal loyalty means your best guests are rewarded at the discretion of whoever is on that night. Proper loyalty programs do that job with a rule and a record.
Teach the difference in five minutes
Nobody applies a policy they were handed as a document. This particular distinction is easy to teach because it comes down to two questions, and it sticks because it makes obvious sense once someone explains why.
Tell new starters the reason, not just the rule. "If you void food the guest ate, the chef gets blamed for stealing it" lands considerably better than "use the correct button". People follow procedures they understand the point of.
Then walk four cases on the actual till during training, not on a handout. Guest changes their mind before the order is sent, which is a void. Wrong dish delivered and rejected, which is a comp with a kitchen error code. Regular gets a round, which is a comp with a hospitality code and a manager approval. Card already charged and the guest disputes the bill, which is a refund and needs a manager. Four cases, five minutes, and it covers ninety percent of what happens in a year.
Worth adding to your staff training plan as a specific item rather than assuming it transfers from a previous job, because the last place they worked probably called all four of these a void.
What your POS should enforce
All of this should be structural rather than dependent on everybody remembering. The specifics to demand:
Individual logins for every person who touches a till, with no shared codes, since without this nothing else in this article is measurable. Voids and comps as genuinely separate transaction types rather than two labels on one function. Permission gating by role and by value, with approval taken at the moment of action against the approver's own PIN. A closed list of reason codes you can configure, with no free-text fallback. An immutable audit trail recording who requested, who approved, what the reason was and when, that nobody can edit afterwards. Void counts and comp values printed on the shift close, which is where the daily glance happens, as covered in our piece on Z reports and the daily close. Reporting by employee, by reason code and by shift, with the ability to sort by outlier rather than reading everything. And the distinction between a void before payment and a void after it, flagged separately, because that single line is the highest-value control in the list.
One that gets forgotten: when a fired item is removed, the kitchen needs to know. A comp applied at the till while the pass is still cooking the replacement wastes the food twice. A kitchen display system that reflects the change in real time turns an accounting event into an operational one.
When you evaluate systems, ask for the void report and the audit trail in the demo rather than the sales dashboard. Every POS demos its dashboard beautifully. Far fewer can show you, six weeks later, exactly who took eleven dollars off table nine and which manager approved it.
The ten minute weekly review
Pull the exception report for the week. Not every check, just the breaches of your threshold, sorted by employee. Three minutes.
Ask three questions of it. Who is consistently outside the pack, and is there a reason that is about their station rather than them? Which reason codes moved this week, and does the movement point at the kitchen, the menu or the stock levels? And did any adjustment get approved by somebody who was not working? Four minutes.
Then check the shape rather than the total. Voids after payment, voids after firing, and adjustments in the last hour of a shift. If any of those three grew, that is worth a look before it becomes a habit. Two minutes.
Last minute: write down one thing you will change. A button moved on the menu screen, a threshold tightened, one conversation, or a comp budget handed to a supervisor who currently has to come and find you. A review that ends in nothing changing teaches your team that the report is decorative.
Do this for a month and you will know something most operators never find out: whether your adjustment volume is a control problem, a training problem, or simply the ordinary cost of looking after guests. All three are fixable. Guessing between them is not.
Start by pulling last week's void report and checking one thing: can you tell which voids happened after payment? If the answer is no, that is the gap, and it is a system question rather than a staff one.
Read next: Z reports and the daily close, the KPIs worth tracking, and prime cost explained.




