How to Design a Loyalty Scheme That Actually Works
Most loyalty schemes aren’t designed — they’re copied. Someone sees “buy 10 get 1 free” on a card at another café, does the same thing at their own shop, and never actually works out whether the maths makes sense for their menu, their margins, or their customers. Sometimes it works fine by accident. Often it doesn’t, and the owner never finds out why, because nobody was tracking it in the first place.
Here’s how to actually design one, in the order the decisions need to happen.
Start with the margin, not the stamp count
Before you decide how many stamps a card needs, work out what the reward actually costs you — not the retail price, the cost price.
Take a coffee that sells for $5.50. If your ingredient and cup cost is around $1.20, giving one away costs you $1.20, not $5.50. Spread across ten visits, that’s 12 cents of cost per visit — a genuinely small number, and easy to justify if it buys you a customer who comes back a tenth time instead of trying the café across the road.
Now do the same maths for a $14 lunch. If your food cost on that dish is closer to $5, giving it away every tenth visit is a much bigger bite out of margin, and “buy 9 get the 10th free” on a full meal is a different proposition entirely from the same offer on a coffee.
This is the calculation almost nobody does before launching a scheme, and it’s the reason “buy 10 get 1 free” works brilliantly for some businesses and quietly loses money for others. Run the number for your specific product before you commit to a ratio.
Why “buy 10 get 1 free” is often the wrong shape for a café
The classic ten-stamp coffee card is popular because it’s a round number and it’s easy to explain, not because ten is the right number for every business. A few things it gets wrong in practice:
It assumes every visit is worth the same to you. If a customer buys a $3 flat white every visit, the ratio holds. If some visits are a $3 coffee and others are a $12 brunch, a single visit-based stamp treats them identically — which means you’re effectively subsidising your highest-margin customers’ cheapest purchases while doing nothing extra for your best spenders.
It rewards frequency, not spend. A ten-stamp card pays out the same whether someone buys the cheapest item on the menu each time or the most expensive. If your goal is to encourage bigger baskets rather than just more visits, a stamp card tied to a flat visit doesn’t do that — you’d want the reward tied to a dollar threshold instead.
Ten visits is a long horizon for some businesses. A café sees regulars several times a week — ten stamps might complete within a month. A hairdresser sees the same customer every six weeks — ten stamps is over a year away, which is too distant to feel like a real incentive. The stamp count needs to match how often a customer would realistically visit, not a number copied from a different kind of business.
A worked example, to make the maths concrete
Take an illustrative café: a flat white sells for $5.50, costs $1.30 to make. A ten-stamp card, one free coffee at the end, costs $1.30 for every ten visits — 13 cents per visit. If that card genuinely gets a customer to choose this café over the one next door even once a month, it’s paid for itself many times over.
Now change one variable: the same café runs the identical ten-stamp structure on its $16 brunch plate instead, food cost around $6. That’s $6 given away per ten visits, 60 cents a visit — more than four times the cost of the coffee version, for a purchase that happens far less often per customer to begin with. Same stamp count, same “buy 10 get 1 free” structure, a genuinely different cost picture. This is why copying the classic ten-stamp coffee card onto a different part of the menu without re-running the numbers is the single most avoidable mistake in loyalty design.
The reward doesn’t have to be free stuff
A free item is the default because it’s the easiest to cost and explain, but it’s not the only option, and for some businesses it isn’t the best one.
A percentage discount scales with whatever the customer buys, which can work against you on big-basket days — a 10% discount on a $200 order is a much bigger giveaway than the equivalent stamp-card maths was designed around. A fixed-dollar reward (“$10 off your next visit”) is easier to budget than a percentage, because the cost is capped regardless of what they buy.
For service businesses in particular, non-monetary rewards are worth considering: priority booking, first access to a new product, or something that costs the business little in direct dollars but is genuinely valued by a regular customer. The point of a reward is that it’s worth more to the customer than it costs you — a free item is the simplest way to hit that, but it isn’t the only way.
What to actually decide, in order
1. What’s the unit being rewarded? A visit, a specific item, or a dollar amount spent. Visit-based is simplest to run — one scan or stamp, no till integration needed. Spend-based rewards bigger baskets but needs a way to record the amount, which usually means tying it to a purchase at the till rather than a walk-in.
2. What does the reward cost you, in cost price, not retail price? Use the real ingredient/product cost, not the menu price. This is the number that tells you whether a threshold is sustainable.
3. How many units before the reward, based on real visit frequency? A business your customers visit weekly can run a longer card than one they visit every couple of months. Match the stamp count to the natural rhythm of the business, not a number borrowed from somewhere else.
4. What’s the reward — free item, discount, or something else? A free item is the easiest to cost and the easiest for a customer to understand. A percentage discount is harder to cost upfront because it scales with whatever they buy that visit. Some businesses do better with a bonus or upgrade at an earlier milestone (a free upsize at stamp five, say) to keep the card feeling alive before the final reward, rather than one big payout at the end and nothing in between.
The part owners skip: does it actually change behaviour?
A loyalty scheme only earns its cost if it changes what a customer does — makes them choose you over a competitor, or come back sooner than they otherwise would. If a customer was always going to buy ten coffees from you regardless, the free eleventh coffee isn’t earning anything; it’s a discount you’re giving away for free.
The honest way to check this is to watch what happens after someone completes a card. If they show up noticeably more often once they’re on a card than they did before, it’s working. If completion doesn’t change their visiting pattern at all, the scheme is a cost with no return, and it’s worth changing the reward, the threshold, or dropping it and trying something else.
Most small businesses never check this, because doing it by hand — cross-referencing who has a card against how often they actually come in — is more admin than anyone has time for. That’s less an argument against loyalty schemes and more a reason to pick a way of running one that tracks it automatically rather than relying on a stamp sheet and memory.
The short version
Cost the reward properly before you pick a number. Match the stamp count to how often people realistically visit, not to a round number borrowed from another business. Decide whether you’re rewarding visits or spend, because those pull customer behaviour in different directions. And check, at least occasionally, whether the scheme is actually bringing people back more often — because a loyalty card that doesn’t change behaviour is just a discount with extra paperwork.