Let's start with something important: most cashiers are honest. They work long hours, handle hundreds of customers and deal with pressure at the counter every day. But a supermarket till handles a lot of money, often with little supervision, and even a small number of problems can cost a store more than most owners realise. Losses at the counter also include honest mistakes, which good controls catch just as well as dishonesty.
The goal of this guide isn't to treat staff as suspects. It's to set up systems where mistakes are caught, misuse is difficult, and honest staff are protected from suspicion, because the records show exactly what happened.
How money is lost at the counter
Understanding the common patterns helps you put the right controls in place. At a general level, counter losses come from:
- Unauthorised discounts: generous discounts or lowered rates for friends, family or favoured customers.
- Under-billing: billing a cheaper item or a smaller quantity than was actually taken.
- Unrecorded sales: taking payment without completing a bill.
- Cancelled or deleted bills: completing a sale, then cancelling it after the customer has left.
- False returns: recording returns that never happened and taking the refund.
- Cash handling errors: wrong change, mixed-up tills or cash that goes missing between counts.
- Credit misuse: putting sales on a customer's account without their knowledge, or not recording credit at all.
Almost all of these share one weakness: they rely on the system not recording who did what, or on nobody checking.
Control 1: One login per person
This is the foundation. If cashiers share a login, or everyone uses the owner's account, no record in your system can be tied to a person. Discount limits don't work, the audit log is meaningless, and when something goes wrong, every staff member is equally under suspicion.
Give every person their own login and ask them to sign out on shared computers. It costs nothing and changes behaviour immediately, because people act more carefully when their name is attached to every bill.
Control 2: Roles and permissions
Give each person access to what they need and nothing more:
- Cashiers: billing and taking payments, within a discount limit.
- Managers: approvals, returns, purchases and operational reports.
- Owner or admin: settings, users, financial reports, payments out, cancellations and backups.
Pay special attention to money going out: supplier payments and customer refunds. These should be limited to trusted people, separately from the right to take money in.
Control 3: Discount limits with manager approval
Discount misuse is the most common form of counter loss, and the hardest to see, because it doesn't show up as missing cash. It shows up as lower margins, months later.
The fix is a discount limit for each person: the maximum they can sell below the list price. Crucially, the limit should cover both discount percentages and manually typed lower rates, because typing a lower price is the easiest way around a discount-only control. When a bill goes beyond the limit, the system should stop it and ask for a manager's approval. The manager sees exactly what's being approved, approves it for that bill only, and the approval can't be reused on another bill.
This doesn't stop legitimate discounts. It just makes sure someone accountable agrees to each one.
Control 4: Receipts for every customer
A simple, effective habit: every customer gets a receipt. A small notice at the counter asking customers to always take their bill helps. When every sale must produce a receipt, it's much harder to take payment without completing a bill.
Receipts also help with credit. When a customer buys on account, give them a copy of the bill every time, so they can see exactly what was added to their balance. That makes it much harder for anyone to put unauthorised sales on a customer's account, and it builds trust with your credit customers, who can check their statement against the bills they've kept.
Control 5: Cancellations with reasons, never deletions
Bills should never be deleted. If a bill was made wrongly, it should be cancelled with a reason, and the cancelled bill should stay on file, clearly marked. Cancellation rights should be limited to managers or the owner. Review cancellations regularly: a cashier with far more cancellations than others is worth a conversation, whether the cause is a training gap or something else.
Control 6: Returns linked to real invoices
A return should always start from the original invoice. The system should know what was sold, to whom and when, and only allow returns of items that were actually on that bill. Refunds should require the right permission, and a return that isn't refunded should become credit on the customer's account. This makes false returns very difficult.
Control 7: Daily cash counts against the system
At the end of every shift, count the cash and compare it with what the system says should be in the till. When cash, UPI and card payments each post to their own accounts automatically, the expected cash figure is precise. Some stores use a "blind count", where the cashier counts the till before seeing the expected figure, which removes any temptation to make the count fit.
Record every difference, even small ones. A single difference is usually a mistake. A pattern of differences on the same shift or the same counter is a signal to investigate.
Control 8: Lock the past
Records should not change after the fact. Lock the books for each month once GST is filed, so nothing dated in that period can be added, changed or cancelled. Refuse future-dated entries unless there's a genuine reason. These controls protect your GST filings and stop anyone from quietly rewriting history.
Control 9: The audit log
An audit log records who did what and when: every bill created, changed, cancelled or returned, every payment and every setting change. You won't read it every day, but when a cash shortage or stock difference appears, the audit log turns a mystery into a short investigation. Our guide to the reports every supermarket owner should check includes a monthly audit log review.
Control 10: Stock checks on high-value items
Under-billing and theft of goods show up as stock differences. Count a small group of high-value, easy-to-carry items every week, such as premium oils, dry fruits, personal care and branded goods, and compare with the system. Our inventory management guide explains cycle counting in more detail.
Physical and people measures
Software controls work best alongside simple physical practices:
- Assign each till to one cashier per shift, so cash responsibility is clear.
- Place CCTV so it covers the counters, and tell staff it's there.
- Have a manager do occasional spot checks during the day.
- Rotate cashiers between counters and shifts.
- Keep large amounts of cash out of the till by moving it to a safe during the day.
- Pay fairly and on time, and recognise good work. Staff who feel respected are less likely to steal.
How to handle a problem when you find one
If the records point to a problem, stay calm and fair. Check the audit log and cash records carefully, rule out honest mistakes and system issues, and speak to the person privately with the facts in front of you. Often the cause is a training gap, and fixing it is enough. Where there is clear evidence of theft, follow proper procedures and take advice before acting. Good records protect you and your staff throughout.
Controls protect honest staff too
It's worth saying to your team directly: these controls exist to protect them. When every bill is tied to a login, every discount above the limit is approved, and every cash count is recorded, an honest cashier can never be wrongly blamed for a shortage. Framing controls this way makes them easier to introduce and more likely to be followed.
Staff controls in Grocer OS
Grocer OS by Crafts Software builds these controls into everyday work. Every person gets their own login, and users, roles and permissions decide what each can do, with a separate right for payments out. Each user has a maximum discount below list price, covering both discounts and lower rates typed at the counter. Above the limit, the bill is refused with a request for manager approval; the manager approves it from the Approvals screen, and the approval works once, for exactly that bill.
Invoices and bills are never deleted: they're cancelled with a reason and stay on file marked as cancelled, and an invoice with returns against it can't be cancelled. Returns start from the original invoice, correcting stock, balances and GST together, and unrefunded returns become customer credit. Cash, UPI, card and bank payments each post to the right account, so end-of-day cash counts are precise. The books can be locked after GST filing, future-dated entries are refused unless allowed, and a full audit log records who did what and when.
Control Without Micromanaging
Every Bill, Discount and Refund Accounted For
Grocer OS brings POS billing, inventory, GST and accounting together, and its dashboard shows you what needs attention every day. It runs on your own hosting with no monthly subscription, and our team can customize it to the way your store works.
Explore Grocer OS →Conclusion
You can't watch every counter all day, and you shouldn't have to. Give everyone their own login, limit discounts and require approval above the limit, never delete bills, tie returns to real invoices, count cash against the system every shift, lock filed periods and keep an audit log. Add a few simple physical practices and treat your staff with respect. Losses fall, mistakes get caught, and honest staff work with confidence.