A cancelled sale in someone else’s payout
A food hall pays its kitchens what their sales took. Ours counted cancelled sales as takings, so one kitchen’s August payable read £470.10 when the month had actually stood at £448.60 — and commission was charged on the difference.
If you run a food hall, the most consequential number your system produces is not turnover. It is the figure on the payout screen — the money that leaves the hall's bank account and lands in a kitchen's. Everything else is information. That one is a transfer.
Ours was wrong, and we found out by running the code that produces it rather than reading it.
Refunded was reversed; voided was not
A sale can end in more than one way. It can be paid. It can be refunded after the fact. It can be voided — cancelled at the till before it ever really stood, because the order was rung up twice, or on the wrong kitchen, or the customer changed their mind while the card was still in their hand.
The routine that builds a kitchen's statement walked the month's orders and took the refunded ones back out. It did not take the voided ones out. They fell through to the ordinary branch and were counted as takings.
On one of our venues, August looked like this: twenty-one sales that stood, worth £448.60. One refund of £5.50, correctly deducted. Two voids worth £21.50, incorrectly included. The payable came to £470.10.
No payout had ever been raised, so no money moved — but the button was there and the number beside it was the number it would have paid.
Commission on a sale that never happened
The second half costs the kitchen rather than the hall. A hall's commission is worked out from the same base, so the voided £21.50 carried the hall's percentage too. A kitchen was being charged for a sale that had been cancelled. Small money; entirely indefensible money.
Everything else already agreed
The uncomfortable detail is that nothing else in our system was confused. The end-of-day summary leaves voids out of the count. The kitchen display treats a voided order as gone. The sales report scores it as zero. Every reader of that status had made the right decision — except the one that pays people.
That is a pattern worth naming, because it is not particular to us. When a piece of information has many readers, the one that breaks is rarely the one you were thinking about when you added it. It is the one written by somebody else, a year later, who had a different question in mind.
What a statement should show you
A kitchen reconciling a payout against its own till roll needs the reversals on the page, not silently removed. If the number simply gets smaller, nobody can check it. So a statement now carries the voided total and the refunded total as separate figures, lists the cancelled sales among the rest with no commission against them, and marks them on the receipt as excluded rather than deducted — because a column where one row was never in the total does not add up, and a receipt that does not add up is worse than no receipt.
One more thing came out of the same fix. The payout preview said "24 orders" beside £448.60, because it was counting every row it had read rather than the sales that stood. Twenty-one sales, twenty-four rows. Two numbers on one screen that disagreed, both produced by the same function, one of them right.