Skip to main content
NeoLoyal home
Menu

Designing a loyalty program that changes what people do

The design decisions that separate a loyalty program which changes visit frequency from one that discounts visits you already had.

By NeoLoyalPublished

In brief

Five parameters decide whether a program changes behavior or subsidizes it: the qualifying event, the threshold, the starting balance, whether the count is visible, and the expiry. All five are set before any software is bought.

The short answer

A loyalty program changes behavior when the reward is close enough to aim at, the balance is visible between visits, and the qualifying event is something a customer can repeat on purpose. Miss those three and the program pays a discount to people who were already coming. Five parameters decide it: the qualifying event, the threshold, the starting balance, whether the count is visible, and the expiry.

None of this needs psychology. It needs one piece of arithmetic: how often your customers already come in.

What a program can actually buy

Two things, and only one of them is new.

The first is a discount on behavior you already have. A customer who comes in every week and finishes a ten-stamp card in ten weeks was going to come in every week. You have paid for loyalty you already had. That is not worthless, because a discount paid in arrears is cheaper than a standing price cut, for the reasons in how loyalty programs work. It just does not move anything.

The second is a visit that would not otherwise have happened, and it comes from one specific place: the last two stamps. A customer sitting at eight of ten has a reason to pick you over the place across the road on a day they would have gone either way. Every decision below is about getting more customers to eight of ten, more often.

Start the card partly complete

A card that starts at two of twelve asks for exactly the same ten visits as a card that starts at zero of ten. The distance is identical. The framing is not.

This is a well-known design pattern, usually called the endowed progress effect. I am describing it so you can reason about it, not citing a study for it. If you want evidence from your own counter, print two batches and compare them over a month.

The reasoning is that giving up on something already started feels like losing it, while never starting costs nothing. It also changes the sentence a member of staff says: “you’re two in already” is easier to say, and better to hear, than “here’s an empty card”.

Two practical constraints. The head start has to be handed over at the join, in front of the customer, or it is just a smaller number printed on a card. And your software has to let you set a starting balance, which not every tool does. Check that before you pay for anything.

Set the threshold from visit frequency, not from tradition

Divide. Threshold divided by visits per week gives you weeks to the reward. Aim to land between six and ten weeks at the customer’s current rate, not the rate you would like.

Three cases make the point:

  • Daily customer, five visits a week. A ten-stamp card completes in a fortnight. The reward arrives before anything has changed, so you have built a standing discount with a stamp on it.
  • Weekly customer. Ten stamps is ten weeks, which is the outer edge of what a person will keep track of.
  • Customer every six weeks. Ten stamps is sixty weeks. Nobody finishes. The card is decoration.

Too close is as much a design failure as too far. A reward reachable in three visits is a discount with extra admin.

A visible balance beats a hidden one

The decision to come back is not made at your counter. It is made at home, at a desk, or on a pavement between two options. A balance the customer can only see once they are already standing in your shop arrives after the decision it was supposed to influence.

That is the case against keeping the count in your system under a phone number. It is a perfectly good ledger and a useless nudge.

Paper solves visibility and loses to a wash cycle. A card on the phone does both. Whichever you use, show the number remaining rather than the number collected. “Two to go” is a plan. “Ten collected” is a receipt.

Streaks break on the first miss

A streak counts consecutive periods: four weeks in a row, five days in a row. It sets a pace better than a plain count does, and it is a bad fit for a small business.

The failure mode is built in. One missed week and the balance is zero. The customer who missed a week is precisely the customer you needed back, and the streak has just told them the previous nine weeks are gone. Illness, a holiday, a fortnight of working from home: the mechanic reads all of them as failure and punishes them identically.

The fix is a window instead of a run. “Any four visits in a calendar month” keeps the pace and forgives the gap. Simpler still is a balance that only ever goes up.

Variable rewards need volume you do not have

Random rewards, where one visit in ten wins something, are common in large consumer apps. They are wrong at this size, and the arithmetic shows why.

With a one-in-ten chance per visit, a customer’s chance of winning nothing across ten visits is 0.9 multiplied by itself ten times, which is about 35%. Roughly a third of your regulars will have won nothing after ten visits.

At national scale those people never meet. In a shop with forty regulars they stand next to each other in the queue, and the person explaining the odds is whoever happens to be on the till. Randomness also removes the one property that makes a card work: a customer at eight of ten knows exactly what the next two visits buy. Keep the certainty. It is the mechanism.

Expiry is a design choice with a real cost

Expiry buys two things: a bounded liability, and some pressure to return sooner.

It costs one thing. The customer who arrives at stamp eight and finds zero. That single interaction turns a regular into someone with a story about you.

Run the check before you set it. Threshold divided by visit rate has to be comfortably shorter than the expiry window. A salon customer on a six-week rhythm needs thirty-six weeks to finish a six-visit card, so a six-month expiry of twenty-six weeks makes that card mathematically impossible to finish. Nobody sets out to sell that, and plenty of programs do.

Two safer shapes: expire on inactivity rather than on a fixed date, so a customer who keeps coming never loses anything, and warn before it happens, in the same place the balance lives.

Three templates with real parameters

Three visit rhythms, worked through. The only input that matters is how often your customers already come, so substitute yours. There is a longer version of this exercise in planning a visit-based program.

The daily cafe

Customers come four or five times a week. Twelve stamps, two given at the join, so ten visits to the reward, which is about two and a half weeks.

One stamp per customer per day regardless of what they buy. That is deliberate: the £2.20 filter and the £4.60 oat latte both count, because you are buying frequency, not basket size. Twelve rather than ten because at four visits a week a ten-stamp card completes every fortnight, and that is a permanent price cut.

The customer pays for ten drinks and receives eleven, a 9.1% discount on the drink.

The weekly lunch spot

Customers come once a week. Eight stamps, one given at the join, so seven visits, which is seven weeks. That sits inside the six to ten week window without needing anyone to change their habits first.

The customer pays for seven meals and receives eight, a 12.5% discount. If that is too much for your margin, the answer is ten stamps rather than a cheaper reward: paying for nine and receiving ten is 10%.

The salon at six-week intervals

Six weeks between appointments breaks the rule above, and no threshold fixes it. Four appointments, one credited at the first booking, leaves three to go, which is eighteen weeks. That is four months, and it is the shortest honest answer.

The compensations are the other four parameters. The reward is an add-on treatment you already perform rather than money off the cut. The balance is visible so nobody has to remember it. Expiry is twelve months of inactivity, never a fixed date. An add-on that costs you £3 in product and ten minutes, given once every four appointments at £28 each, is 2.7% of the revenue those appointments bring in.

Parameter Daily cafe Weekly lunch Six-weekly salon
Visit rhythm 4-5 a week Weekly Every 6 weeks
Qualifying event One per customer per day One per customer per day One per appointment
Threshold 12 8 4
Given at join 2 1 1
Visits to reward 10 7 3
Time at current rate ~2.5 weeks 7 weeks 18 weeks
Reward Any drink A lunch main One add-on treatment
Cost of the reward 9.1% of drink price 12.5% of meal price 2.7% of appointment revenue
Expiry 6 months inactive 12 months inactive 12 months inactive

The first two figures on the cost row are retail discounts, which is what the customer receives. What the reward costs you is lower, and that arithmetic is in what a loyalty program actually costs. The salon row is already at cost of goods because the reward is an add-on rather than a free appointment.

The number that tells you the design is wrong

Thirty days after launch, pull two counts. How many cards have at least one stamp on them, and how many have reached the last two.

If the first number is low, the problem is the join, not the design. If the first is healthy and the second is near zero, the threshold is too far away. No poster, no reminder and no extra promotion fixes that. Cut the number, convert every existing balance upward rather than down, and tell everyone holding a card that they just got closer.

Run the program these posts are about.

A digital stamp card your staff control, your customers keep in the browser, and you can read from your own dashboard.