Skip to main content
NeoLoyal home
Menu

The six loyalty program metrics worth tracking

Six loyalty program KPIs with their formulas, four vanity metrics to ignore, and why a published benchmark cannot tell you whether your number is good.

By NeoLoyalPublished

In brief

Six numbers describe a loyalty program honestly and four popular ones describe nothing. The most useful early signal is not how many people joined, it is how many of them came back for a second stamp.

The short answer

Six numbers tell you whether a loyalty program is working: enrolment rate, activation rate, completion rate, redemption rate, breakage, and incremental visit rate. Each one is a ratio, and the denominator you pick decides whether the ratio means anything. Total members, points issued, rewards given and email opens are not results, whatever the reporting screen calls them.

None of the six can be judged against a published industry figure. The only valid comparison is your own number last month, and the reason is in the last section.

The six numbers

1. Enrolment rate

Joins ÷ transactions, in a stated period.

Not joins divided by footfall. Footfall is a guess in most local businesses, and it counts people who bought nothing, which makes the ratio move when the weather changes. Transactions is a number your till already knows exactly, and it matches the moment the ask happens.

Take 2,000 transactions in a month with 40 joins and you have 2%. Whether 2% is good is not knowable from outside your shop, but it is entirely knowable whether it went up after you moved the poster.

This is a counter metric rather than a program metric. A bad number here means the sentence is not being said or the code is somewhere nobody stops. Split it by shift and it usually stops being a mystery.

2. Activation rate

Cards reaching a second stamp ÷ cards created, for one join cohort.

This is the honest early signal, and it is the one almost nobody reports. Joining costs the customer ten seconds while somebody friendly watches, so joins measure your counter. Coming back and asking for stamp two is the first moment the customer has done anything the program was built for.

Read it on a lag. Group cards by the week they were created and give each cohort at least twice your normal visit gap before judging it. For a café that is a fortnight; for a barber, ten weeks. Judging a cohort early makes every program look broken.

3. Completion rate

Cards reaching the threshold ÷ cards created, again by cohort.

Cohorting is not a refinement here, it is the difference between a number and a lie. Divide all completions this month by all cards ever created and the result falls every month your enrolment succeeds, because the denominator fills with cards that have not had time. Programs get cancelled on the strength of that arithmetic.

A genuinely low completion rate on a mature cohort means the threshold is too far away for how often people actually come. That is a design problem rather than an interest problem, and planning around the real visit gap is the fix.

4. Redemption rate

Rewards claimed ÷ rewards earned.

The denominator is earned rewards, not cards created and not members. Mixing completion into this ratio produces a single number that cannot tell you which half is broken.

Low redemption is almost always operational. The customer does not know the card is finished, or the reward needs someone senior, or it is awkward to ask for. Every one of those is fixable in a week, and none of them is fixed by messaging people more.

5. Breakage

Rewards earned and never claimed, which is one minus the redemption rate.

Breakage is often described as free money, and for the accounts it is: a reward nobody collects costs nothing. As a customer signal it is the opposite. Every point of breakage is somebody who made nine visits, earned the thing, and got nothing for it. That person is not neutral about your program, and they are the one who tells a friend it is pointless.

Track it, do not plan around it. Budgeting a program on the assumption that a share of rewards will go unclaimed means budgeting for the program to disappoint people.

6. Incremental visit rate

Visits per enrolled customer per month after joining, minus the same figure before joining, for the same people.

This is the only one of the six that answers “is this working”, and it is the one you cannot measure cleanly. Three problems, all real. The people who join are already your most frequent customers, so their after-figure would look good with no program at all. Seasonality moves visit counts on its own. And without a group of comparable customers you deliberately did not enrol, there is nothing to compare against.

Most businesses will not hold back a control group, and that is a reasonable choice. So read this number as directional, over a long enough window to cross a season, and pair it with the break-even visit count from your own cost model rather than with anyone else’s figure.

The table

Metric Formula What a bad number means
Enrolment rate Joins ÷ transactions Nobody is asking, or the poster is in the wrong place
Activation rate Cards at 2+ stamps ÷ cards created, by cohort People join to be polite and never engage again
Completion rate Cards reaching threshold ÷ cards created, by cohort The threshold is too far for the real visit gap
Redemption rate Rewards claimed ÷ rewards earned Customers do not know, or staff cannot honour it alone
Breakage 1 − redemption rate Same as above, counted from the other side
Incremental visit rate Visits per member after joining − before The program is paying for behaviour you already had

Four numbers that look like results

Total members. It only goes up. A member is someone who once scanned a code, and the count includes every person who joined eighteen months ago and has not been back since. Replace it with active cards, meaning cards with a stamp inside your normal visit gap, and the number starts being able to fall, which is what makes it worth reading.

Points or stamps issued. A measure of how much you gave away, presented as achievement. It is an input, and in a points program it is also a liability going up. “We issued forty thousand points this quarter” describes your own generosity and nothing about anybody’s behaviour. The same trap is why points programs need more careful reporting than stamp cards do.

Total rewards given. A cost line wearing a results badge. It belongs in the budget next to the cost of goods, and it tells you nothing on its own because it rises with success and with over-generosity in exactly the same way.

Email open rate. An open is usually recorded when a tracking image loads, and mail apps that pre-load images on the recipient’s behalf record opens that no human performed. Even measured perfectly it would only tell you about a subject line. Replace it with visits inside the two weeks after a send, which is the thing you actually wanted, and which the win-back guide treats as the only measure worth using.

Why someone else’s benchmark cannot help you

The instinct is to look up an average redemption rate and see where you land. It is a waste of an afternoon, for five reasons that stack.

The definitions differ. “Redemption rate” is published with at least three different denominators: rewards earned, cards created, and members enrolled. The same program produces wildly different percentages under each, and most published figures do not say which one they used.

The populations differ. A figure averaged across supermarkets, airlines and coffee shops describes a visit frequency nobody in that average has.

Program age is baked in. Completion rate on a three-month-old program is structurally low because most cards have not had time, regardless of how good it is. A benchmark that does not state cohort age is comparing your youth with someone’s maturity.

Thresholds are not comparable. A five-stamp card and a twenty-stamp card cannot be compared on completion rate even if both programs are excellent, and the published number never tells you the threshold behind it.

The source has an interest. Figures published by vendors describe the customers who stayed with the vendor.

Your valid comparisons are internal: this month against last month, this site against that site, Tuesday’s shift against Saturday’s, the cohort before you moved the poster against the cohort after. Those comparisons hold the definitions constant, which is the only thing that made the comparison meaningful in the first place.

What to read at 30, 60 and 90 days

Day 30: enrolment rate, and nothing else. Nothing downstream has had time to mean anything. If joins per transaction are near zero, every other number this quarter is noise about a program nobody is in.

Day 60: activation on the first cohort, plus the enrolment trend. This is where you find out whether people who joined ever came back for stamp two. It is also early enough that fixing it costs a conversation rather than a relaunch.

Day 90: completion and redemption on the earliest cohort, plus a first look at visits per enrolled customer. Not incrementality yet, and be honest that it is not.

Multiply the calendar by your visit gap. A café can read this schedule literally. A salon with a six-week rebooking cycle should treat day 30 as month two, or it will judge a cohort that has had one chance to return.

The two columns that make all of this possible

Before any of it, check that the join date and the individual stamp events come out of your tool per customer. Without those two columns you cannot build a cohort, and without cohorts you are reading totals, which is how a growing program comes to look like a failing one. That is the first thing to check on an owner dashboard, ahead of any chart on the marketing page.

Then keep one spreadsheet row per month with six columns in it. At day 90, write two lines under it: the enrolment and activation rates, and one sentence naming what you changed that month. Twelve rows later you will have the only benchmark that was ever going to work for your shop.

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.