Skip to content
Regulars.

How to stop loyalty-card fraud without wiring into your till

6 min readOperations

Staff stamping their friends is the quiet problem nobody wants to name. You can make it visible without a POS integration and without accusing anyone.

Every shop owner who has run a stamp card has had the thought, and almost none of them have said it out loud: what stops a member of staff stamping their friend's card ten times in a row?

With a paper card and a rubber stamp, the answer is nothing at all. With most digital systems, the answer is "a POS integration", which is expensive, vendor-specific, and a project. There is a middle path that costs nothing and works well enough for a shop.

Name the actual risk

It helps to be precise, because the word "fraud" is doing a lot of work here and mostly the reality is smaller and more human:

  • Generosity. A staff member gives a mate two stamps for one purchase. They do not think of it as theft.
  • Double scans. A card gets stamped twice because the first one did not obviously register.
  • Self-stamping. Someone gets hold of the staff device or a code and stamps their own card.
  • Actual collusion. Rare, deliberate, and the only one that deserves the word fraud.

The first two are much more common than the last two, and they are also the two that are trivially fixable.

Four controls that need no till integration

1. Make every stamp attributable

Give each staff member their own PIN on the shared device. Not because you expect the worst, but because a stamp with a name on it changes behaviour on its own. Once every action is attributable, the generosity problem largely evaporates without a single conversation.

2. Cap the rate per customer

One stamp per customer per five minutes kills the double-scan problem completely, and it makes rapid-fire stamping of one card physically slow. There is no legitimate case where the same person buys twice in five minutes and needs both stamped.

3. Use single-use codes with a short life

If your fallback path is a code the customer types in, make it one-use, short-lived and attempt-limited. A four-character code from a 32-character alphabet is over a million combinations; single use, a three-minute life and a three-attempt lockout mean guessing one is not a strategy. Crucially, a code cannot be reused on a second card or shared in a group chat.

4. Look at stamps per staff member once a month

This is the control that does the heavy lifting, and it takes about fifteen seconds. If four people work similar shifts and one of them has given out three times as many stamps as the others, that is worth understanding. Usually the explanation is innocent: they work the Saturday rush, or they are the one who actually remembers to ask.

The point of the chart is not to catch someone. It is to make the pattern visible, so that on the rare occasion it is not innocent, you find out in a month rather than a year.

What a POS integration adds

Being fair to the expensive option: reconciling stamps against till transactions is genuinely stronger. It turns "this looks odd" into "there were 14 stamps in a period with 9 sales". If you are a multi-site operation where the value at risk is real money, it is worth the integration project.

For a single shop giving away a £1 cone every ten visits, the maths does not support it. The exposure from the worst plausible abuse is a few pounds a month. The integration will cost more than that in setup alone.

The thing not to do

Do not respond to this worry by making the scheme harder to use. Requiring a receipt number, or a manager override, or a second confirmation, will cost you far more in sign-ups and staff goodwill than it saves. The queue is real and the fraud is mostly hypothetical.

Put the four controls above in place, glance at the staff chart once a month, and get on with running the shop. The one-screen dashboard covers what else is worth watching.

Read next

Published by Regulars. Something we got wrong? Tell us

Try it on your next busy Saturday

Thirty days free, everything switched on. Nothing charged until day 30, and one button to stop.