Of the four cost lines that decide whether a restaurant P&L is fixable in a quarter, unbilled comps are the trickiest to see. Labor variance shows up on the payroll register. Food cost shows up in cost of goods sold. Repair drift shows up in the R&M line. Unbilled comps show up nowhere, because by definition they never posted.
What you see on the P&L when comps are being hidden as voids is a mysteriously low ticket average, a mysteriously high food cost line, and a mysteriously high staff frustration level. Nobody in the building can explain any of the three. And they all trace back to the same source: a manager comp policy that lives verbally instead of in the point-of-sale system.
The mechanism, in detail
Here is exactly how it happens. Same story, every restaurant, every format.
A four-top comes in. Dessert takes 14 minutes because the pastry cook was pulled to plate a party of eight in the private room. The guest complains politely. The server flags the shift manager. The shift manager walks over, apologizes, and says "let me take care of that dessert for you tonight." She then walks back and tells the server "comp their dessert, on me."
The server does not know how to enter a comp in the POS. Comps require a manager code and the manager is now in the walk-in dealing with a delivery. The server rings the dessert normally, the pastry cook makes it, the runner delivers it, the table finishes it. When the ticket comes back to the POS at end of shift, the server flags the dessert line and asks the closing manager to void it. The closing manager voids it. The ticket closes short of the food that actually left the kitchen.
On the P&L, three things happen. Revenue does not post for the dessert. Cost of goods sold posts for the dessert. Neither event is coded as a comp because voids are their own reason code. The result is that food cost goes up by exactly the cost of the dessert, revenue goes down by exactly the price of the dessert, and no manager anywhere sees a comp line move.
Fig. 1 · Same event, two accounting paths.
Why voids are the preferred workaround
Servers reach for voids instead of comps for one very human reason: voids do not require a manager code at most POS setups. A manager code takes 15 seconds to punch in and requires the manager to walk over. A void takes two taps and can be done by the server at end of shift. When the manager already told the server verbally to take care of it, and the manager is now on the phone with a vendor, the void is the path of least resistance.
Every verbal comp is a future void. That is the whole mechanism. The system was not designed to hide the money. The people using it just chose the path of least friction.
Multiply this by 40 tickets a week per location and five locations, and you have a hundred voids a week that should have been comps. On an average $15 comp value, that is $1,500 a week per group, or $78,000 a year of contribution that never showed on any P&L line where a general manager would have seen it.
The audit that surfaces the pattern
Every POS system stores voids. Toast, Square, Micros, Aloha, all of them. The first move when you suspect unbilled comps is a 30-day void audit. Four cuts.
- Voids by manager. Which manager is authorizing the voids? Is one manager doing 50 percent of the voids?
- Voids by time of day. Are voids clustering at end of shift, which is the classic pattern for verbal comps being cleaned up on close?
- Voids by day of week. Weekends have more legitimate comps because volume is higher and things go wrong. Weekday voids concentrated at one location signal something else.
- Voids by dollar amount. Voids that cluster around specific dollar values, say $12 or $15 or $28, are usually the same menu items over and over, which is the signature of comp behavior masquerading as voids.
On the first group I ran this audit for, I found that a single shift manager was authorizing 62 percent of all voids across a five-location group. All at end of shift. All between $10 and $25. She was not stealing. She was doing what she thought was right, which was fixing service problems in the moment and cleaning up the tickets at close because she did not want the comps to make her shift numbers look bad.
The policy that stops it
Once the audit surfaces the pattern, the policy fix is simple. Three rules.
Rule one: every comp requires a reason code before ticket close
Not at end of shift. At ticket close. The manager walks over, punches in the manager code, picks the reason from a dropdown, and the comp posts to the P&L. Reason codes should be short and useful: service delay, food quality, guest complaint, VIP, staff meal, marketing gesture. Six codes is enough. More than eight is too many and people default to "other" for everything, which defeats the purpose.
Rule two: voids over $5 require a manager code and a note
Small voids for ringing errors are fine. Anything over $5 requires the manager to walk over and enter the void with a one-sentence explanation. This closes the workaround. When voids are as much friction as comps, servers stop preferring them.
Rule three: weekly public visibility
Every Monday, every general manager in the group sees a report with comp percentage and void percentage for every location. Not private. Public. General managers compare their numbers against their peers. Peer visibility does the compliance work you cannot do alone.
Fig. 2 · Behavior changes inside a week. Full stabilization by week four.
The five-minute conversation
The last piece is the conversation, and it is the piece most operators skip.
Any manager whose weekly combined comp and void percentage exceeds 2.5 percent gets a five-minute one-on-one with the area director that week. Not punitive. Diagnostic. The script is short. "Your combined comp and void ran 3.2 percent last week. Walk me through what happened. What was the biggest single event?"
Nine times out of ten, the manager explains a legitimate service issue and the conversation ends. That is fine. The conversation was not looking for a villain. It was looking to make comp behavior visible to the person doing it. Once managers know the numbers are watched every week and get asked about, the numbers start living in their heads. That is the entire mechanism.
The point of the weekly conversation is not to catch anyone. It is to make comp behavior visible to the manager doing it. Watched behavior changes on its own.
What the recovery looks like in dollars
On a $10M unit running combined comps and voids at 5 percent when the healthy benchmark is 2 percent, the gap is 3 points, which is $300,000 a year. On the last five-location group I audited, the pre-fix combined rate averaged 4.8 percent across the group. Post-fix, three months in, it averaged 1.9 percent. The recovery across five units was $1.4M in annual contribution.
The technology cost of this fix is zero. Every POS system already supports reason codes and manager approvals. The change is entirely policy and habit.
Training the servers, not just the managers
The reason-code policy fails if only the managers know about it. Servers are the ones ringing the comps and hitting the voids, so servers need to understand why the policy exists, not just what the policy is.
The training I run is fifteen minutes at a pre-shift meeting. Three points.
One, every comp needs a reason code so the restaurant can tell whether comps are happening because of legitimate service issues or something else. Without the code, managers cannot fix the underlying problem, and the underlying problem keeps generating more comps.
Two, voids are for ring errors and only ring errors. A comped item is not a ring error. If a guest is being taken care of, that is a comp, not a void, and the manager needs to code it before ticket close.
Three, the void policy is not about catching servers doing anything wrong. It is about catching a pattern where the P&L cannot tell what happened. Servers should feel free to ring exactly what the guest ordered and let the manager decide how to treat the check.
The training lands better when framed as "the P&L cannot read verbal comps" rather than "we do not trust you." The first framing puts everyone on the same team trying to solve a data problem. The second framing puts servers on defense and produces the exact behavior you were trying to eliminate.
The developmental angle for shift managers
The other unexpected benefit of the comp policy fix is what it does for shift manager development. When shift managers are required to walk over, punch in a code, pick a reason, and own the comp in the P&L, they become more thoughtful about when to comp in the first place.
Under a verbal-comp policy, shift managers hand out comps casually because the friction is zero. Under a reason-code policy, they think twice, and the thinking-twice is the whole developmental gain. They start asking: is this really a service failure or is the guest just being difficult? Is a comp the right response or is a sincere apology enough? What is the pattern I need to fix so this stops happening?
Those are exactly the questions that turn a shift manager into an assistant general manager. And the questions do not get asked when comps are frictionless. A little bit of policy friction is a developmental tool disguised as a control mechanism.
The comp policy is a control mechanism that doubles as a leadership development curriculum. Every reason code entered is a small decision made thoughtfully instead of casually.
The mistake I made the first time
I ran this playbook the first time at Hana Group and I made one clean mistake. I published the weekly comp and void numbers in a spreadsheet emailed to all general managers. It worked, but not well. The response rate was low and the general managers who cared already cared, and the general managers who did not, did not open the email.
The fix I use now is to make the numbers part of the standing weekly operating call. Every Monday, first ten minutes, comp and void rates by location on the screen. Nowhere to hide, no email to ignore, everyone hears every number at the same time. The compliance jumps immediately because there is no way to be the one general manager in the room whose number is red.
The point
Unbilled comps are the silent line because they never post to the P&L. The verbal comp becomes a void at close, and the void looks like a normal accounting event, and the pattern grows quarter over quarter until an audit forces it visible.
The fix is not technology and it is not policy severity. It is three rules and a weekly conversation. Reason codes on every comp before ticket close. Manager approval on every void over $5. Public weekly visibility of comp and void percentages. Five-minute one-on-ones at threshold. Two to three points of margin recovered in 30 days. The whole cost is discipline.