This is an uncomfortable subject and worth being careful with. Most staff are honest, most differences are mistakes, and accusing somebody wrongly costs more than the money. What follows is about seeing patterns, not about suspecting people.
The discount that was never agreed
A small discount given quietly on a large sale is the most common leak, because it looks like good customer service and leaves no obvious trace.
A report of discounts by salesperson, run monthly, makes the pattern visible. One person giving four times the discounts of everybody else is worth a conversation, and it may well be a training conversation rather than an accusation.
The sale that was rung up short
Three items billed as two. The customer pays for two, the money for one goes elsewhere, and the stock quietly runs short.
This is why regular stock counts matter more than any single control. Missing stock with no missing money is the signature.
- Compare counted stock against expected stock
- Watch the small, valuable, easily pocketed lines
- Look at patterns over weeks, not single days
The return that never happened
A refund processed with no goods coming back is money out of the till with paperwork that looks correct.
Requiring a reason on every return, and reviewing returns by salesperson, is usually enough. The point is not to make returns difficult for customers; it is to make them visible.
What actually stops it
Not cameras, and not suspicion. What stops it is everybody knowing that every transaction is recorded against the person who made it, and that somebody looks at the reports.
Most of the effect is preventive. When it is clear that patterns are visible, the patterns stop.
Treat what you find as information rather than as proof. An honest mistake and a habit look identical in a single transaction and completely different over a month.