Module Spotlight: Loss Prevention

One void is a mistake. The same cashier, same item, same time of day, week after week, is a pattern worth surfacing.

Module Spotlight: Loss Prevention

The register is the most honest record a grocery operation has of what actually happens on the floor. Voids, refunds, no-sales, price overrides, cancelled transactions — every one of these is legitimate the overwhelming majority of the time. A customer changes their mind, a scan fails, a price needs correcting. None of that is a problem by itself.

The problem shows up in the pattern, not the transaction. And patterns are exactly what a chronological exception list is bad at revealing. A four-hundred-row report sorted by time of day treats every void the same whether it's an isolated event or the twentieth instance of the same cashier voiding the same item category at the same hour for six weeks running.

CounterCtrl's Loss Prevention module is built around that distinction. Rather than producing a longer, better-formatted version of the same list, it analyzes register transactions at the item and cashier level and looks for behavior that deviates from that cashier's own baseline and from their peers doing the same job. A single void doesn't trigger anything — that would be noise, and noise is what makes people stop reading exception reports in the first place. A repeated pattern does.

That distinction matters for how the module gets used day to day. An LP director isn't handed a longer list to review; they're handed a shorter one that's already been filtered down to the things actually worth a conversation. The module doesn't replace judgment about whether a pattern is innocent or not — that's still a human call — but it makes sure the pattern actually reaches a human in the first place, instead of sitting unnoticed in row three hundred of a report nobody had time to open.