Loyalty: the three Rs, the spectrum, and designing earn and burn

A loyalty programme is the easiest thing in marketing to declare a success, because everything it hands out can be counted. Members enrolled, points issued, free nights redeemed: all up, all on a slide. What none of those numbers tell you is whether a single extra stay or order happened because of the programme. In this chapter I take apart a stay based hotel programme and my own hamper shop to show what loyalty actually is, a spectrum from inertia to advocacy rather than a flag in a database, what the three Rs of rewards, recognition and relationship each cost and each buy, and how the earn and burn rules decide whether members ever feel the programme at all. Then the maths: incremental margin against a matched control, breakage by cohort, and the points liability valued three ways so nobody panics at the wrong number. The result is a test any owner can apply: does the programme pay for itself, and at what incremental rate would it stop? This is part 17 of 21 of the Marketing Analytics series.

The slide with the big number on it

The marketing lead at Seeblick Hotels had a slide she was proud of. Seeblick Freunde, the group's stay based loyalty card, had 4,200 members after two years, 3.3 million points issued, and 1,200 free nights redeemed. The slide said "programme success" at the top in a friendly green. The owner, who pays for the free nights, looked at it for a while and asked me the only question that matters: how many of those stays would have happened anyway?

Nobody in the room knew, because the programme had been measured the way most programmes are measured, by counting what it hands out rather than what it changes. Points issued, members enrolled, redemptions processed. All activity, none of it results. This chapter is about the difference, about why loyalty is a spectrum rather than a tick box, and about how to set the earn and burn rules so that a programme changes behaviour instead of paying people for behaviour they already had. The numbers throughout are illustrative, though their shape comes from programmes I have taken apart.

Where this sits in the series

We are in part four of the series, media and loyalty, chapters 15 to 19. The previous chapter, Media mix modelling: adstock, saturation and where the next pound goes, was about the acquisition side of the budget. This one turns to the customers you already have. The next chapter, Loyalty with structural equation modelling, treats loyalty as something you cannot observe directly and measures it through the things you can.

Loyalty is a spectrum, not a flag

Most companies store loyalty as a boolean: member, yes or no. Convenient for a database, useless for a decision, because the people behind the flag are in wildly different states.

At one end there is inertia. The guest comes back because looking for another hotel is effort. Inertia produces repeat revenue, so it is loyalty in the accounting sense, but a platform coupon or one bad breakfast ends it. Next along is habit, where the choice has stopped being a choice. Then satisfaction, then preference, where the guest would pick you at equal price. Then attachment, where they will pay a little more to stay with you. And at the far end advocacy, where they bring other people. I covered the mechanics of that last step in growth marketing through retention and referral. The whole point of a loyalty programme, if it has one, is to move people rightwards along this line.

The loyalty spectrum, and where each of the three Rs tends to do its work. Rewards mostly buy habit; recognition and relationship are what move people towards preference and advocacy.

The uncomfortable consequence: a points scheme on its own operates almost entirely at the left end. It makes leaving slightly more expensive; it does not make anyone like you. Fine, as long as you know that is what you bought.

The three Rs

I split what a programme offers into three kinds of currency, because they have completely different cost profiles.

Rewards are economic. Points, free nights, discounts, a hamper upgrade. They scale with volume, so the more successful the programme the more they cost, and any competitor can copy them. Every hotel can give away a night.

Recognition is being known. The room you had last time. The pillow you asked for. A name at check in without a spelling check. Early access to the Advent weekend before the platforms get the inventory. Recognition is almost free once you have the data, and nearly impossible for a booking platform to copy, because the platform knows the guest's card number and nothing else. For a five house group in the Salzkammergut this is where the game is won.

Relationship is two way. The guest tells you things and sees that you acted on them. The survey answer that changed the breakfast. The direct line to the house manager. Relationship costs time rather than money, which is why most programmes skip it and why it produces advocates.

The Seeblick card, when I first looked at it, was all reward and no recognition. The guest data that would have enabled recognition sat unused in the property management system. That was the first finding, and it cost nothing to fix.

Earn and burn: the three dials you actually control

Programme design comes down to three dials. Turn them blind and you get a programme that costs a fortune or one nobody uses.

The first is earn velocity: how quickly a typical member reaches a reward they actually want. Members are not motivated by points but by the distance to the next thing worth having. Too far and the programme is psychologically invisible. The formula is trivial and almost never computed:

T=P∗p⋅fT = \frac{P^{*}}{p \cdot f}

where TT is the expected time to the first reward in years, P∗P^{*} is the points threshold for the reward, pp is the points a member earns per stay, and ff is the member's stay frequency per year. At Seeblick a stay earned one point per euro, about 430 points on an average stay, and the free night cost 1,800 points. That is 4.2 stays, and at 1.84 stays a year the average member needed 2.3 years to reach their first free night. Most members had never seen a burn. For the majority the programme was a card in a wallet.

The second dial is burn attractiveness: the gap between what the reward is worth to the member and what it costs you. The ideal loyalty currency is something you have spare capacity of and the guest values at retail. A midweek night in November costs Seeblick roughly €38 in cleaning, laundry and breakfast, plus a displacement risk when the house would have sold that room anyway. With displacement counted at about 15 percent of redemptions, a free night costs around €63. The guest values it at €165, the published rate. That ratio of 2.6 is why hotels and airlines can run programmes at all, and why a shop that gives away margin in cash discounts usually cannot.

The third dial is breakage: the share of points never redeemed. Finance loves breakage because unredeemed points are cost that never arrives. I want you to distrust it. A programme with 60 percent breakage is a programme most members never use, and a member who never burns is not being changed by the rewards at all. Some breakage is healthy. A lot of it is a symptom.

Around those three dials sit the behavioural choices. A welcome bonus that puts a member a third of the way to the first reward works, because people push harder towards a goal they have already started. People also accelerate as they get close, so a small intermediate reward, say a dinner for two at 700 points, gets far more members across the line than a bigger reward at 1,800 ever will. Surprise rewards, unannounced and variable, do more for attachment than scheduled ones, for the reasons in the hook model and habit loops. Tiers give status, but losing a tier hurts far more than gaining one pleases, so build soft landings. Expiry fixed from the date of issue feels like theft; expiry that resets with every stay feels like a nudge.

The maths of a programme

A programme lives or dies on three numbers, and none of them is points issued.

The first is the incremental margin, the whole test in one line:

ΔΠ=N (sM−sC) m+G−Cburn−Crec−Crun\Delta\Pi = N\,(s_M - s_C)\,m + G - C_{\text{burn}} - C_{\text{rec}} - C_{\text{run}}

Here ΔΠ\Delta\Pi is the incremental margin of the programme over the period, NN the number of members, sMs_M the observed stays per member, sCs_C the stays per member you would have seen without the programme, estimated from a control group, and mm the contribution margin per stay. GG collects other gains, at Seeblick mainly commission saved when a member who used to book through a platform books direct. CburnC_{\text{burn}} is the cost of the rewards you will have to honour, CrecC_{\text{rec}} the recognition perks, and CrunC_{\text{run}} the software, emails and staff time. Notice that the gains depend on the difference sM−sCs_M - s_C but the burn cost depends on all of sMs_M. You pay points on every member stay to obtain only the incremental ones. That asymmetry is the economics of the whole thing.

The second number is the breakage rate, measured per issuance cohort once the cohort has matured:

b=1−RIb = 1 - \frac{R}{I}

where II is the points issued to a cohort in a given quarter and RR is the points from that cohort eventually redeemed. You need the ledger to know which issue each redeemed point came from, usually first in first out, or you cannot compute this honestly.

The third is the points liability, what the outstanding balance will really cost you:

L=O (1−b^) cL = O\,(1 - \hat{b})\,c

with OO the points outstanding at the balance date, b^\hat{b} the expected breakage from matured cohorts, and cc the marginal cost per point, at Seeblick €63 divided by 1,800, about 3.5 cents. Your accountant will compute a different liability for the books, because under IFRS 15 the points are a separate performance obligation valued closer to selling price. Both numbers are right. They answer different questions.

Worked example: Seeblick Freunde after two years

The first job was a control group, and here Seeblick had been lucky. The card launched at three houses first and reached the other two eight months later, so for eight months the late houses had guests identical in every respect except that nobody had offered them a card. Within the launch houses I matched members to non members on first stay year, house, season, length of stay, rate class and country, and compared both groups over the same twelve months. Matching never fully removes selection bias, because people who join a loyalty card already like you more than people who decline, so I treat the matched estimate as an upper bound and the staggered launch as the honest one. They landed close enough to trust.

Bars are members, the line is the matched control. The lift is real in every segment and largest, in relative terms, among solo hikers, the most habit driven guests.

Overall members stayed 1.84 times a year against 1.41 for the control, an incremental 0.43 stays per member, plus or minus about 0.12. Here is what that becomes.

LineValueNote
Members at year end4,200active cards, all five houses
Stays per member1.84observed
Stays per matched control1.41same houses, seasons and rate classes
Incremental stays per member0.43plus or minus 0.12
Incremental stays1,8064,200 × 0.43
Contribution per stay€245€430 revenue minus variable cost
Incremental contribution€442,4701,806 × €245
Commission saved€59,328927 stays moved from platforms to direct, €64 each
Points issued3,323,0407,728 member stays × 430
Expected breakage34%from cohorts older than 30 months
Free nights to honour1,2183,323,040 × 0.66 / 1,800
Cost per free night€63€38 marginal plus displacement
Burn cost€76,7341,218 × €63
Recognition cost€46,368€6 per member stay
Running cost€48,000software, emails, staff time
Incremental margin€330,696about €79 per member per year

Read it from the top. Only the first four lines involve any statistics; everything below is arithmetic. Incremental stays times contribution gives €442,470, the headline gain. Commission saved adds €59,328, because twelve percent of member stays used to arrive through platforms charging around fifteen percent and now arrive direct; a line often forgotten, and at a hotel not small. Then the costs. Points issued is the big scary number from the slide, here doing its proper job as an input. After breakage those points become 1,218 free nights, and at €63 a night the burn is €76,734. Recognition perks at €6 per stay come to €46,368. Running the thing costs €48,000. What is left is €330,696, about €79 per member per year.

Two readings matter more than the headline. First, the cost per incremental stay: the three cost lines add up to €171,102 for 1,806 incremental stays, about €95 per stay bought against €245 contribution earned. A good trade. Second, the break even: costs net of commission saved are €111,774, which divided by €245 is 456 incremental stays, or 0.11 per member. The programme pays for itself if it changes roughly one stay in nine per member per year. The estimate is 0.43 with a lower bound around 0.31, so even at the pessimistic end it is comfortably worth running. Had it been 0.10, I would have told the owner to stop issuing points and keep the recognition, because at that level the programme pays members for stays they were going to make anyway.

Breakage and the liability nobody had booked

The 34 percent breakage came from watching each quarterly issuance cohort until redemptions stopped moving.

Points issued in one quarter and the share redeemed by months since issue. The curve flattens at 66 percent, so the cohort's breakage is 34 percent. Cohorts younger than about 30 months are not finished and must not be used to estimate it.

The curve is slow for the first year, the earn velocity problem: members have not yet reached the threshold. It steepens between months nine and eighteen as the four stay mark arrives, then flattens. Guests who have not redeemed by month 24 mostly never will, because they have lapsed. The shape says members wait too long to feel the programme.

At year end Seeblick had 1,950,000 points outstanding. A naive valuation at the published rate, 1,083 free nights at €165, gives €178,750, the number that made the owner nervous. Applying expected breakage and marginal cost gives the management liability: 1,950,000 × 0.66 × €0.035, or €45,045. The accountant's figure for the books sat between the two, nearer €118,000, because the standard values the obligation closer to selling price. The owner needed all three, and to know that the one to worry about is the marginal one, a quarter of the scary number.

The redesign

The economics were sound and the design was wrong, a common combination. Three changes, none of them costly: a 400 point welcome bonus so a new member starts a fifth of the way there; a dinner for two at 700 points so the first burn arrives after the second stay instead of the fifth; and expiry that resets with every stay rather than counting from issue. I expect breakage to fall towards 25 percent, burn cost to rise by around €20,000, and incremental stays to rise by more than enough to cover it, because a programme members actually use is one that shapes behaviour. That expectation is now a test, with the two late launch houses running the old rules for another six months as the control.

When a programme is not worth it: the hamper shop

Not every business should run one, and my own shop is the example. At The Gift Bow a typical customer places 1.3 orders a year at around £62, with a contribution of about £24 per order, so roughly £31 per customer per year. Most are gift buyers who order in the first two weeks of December and vanish until the next one. A five percent points scheme would cost about £4 per customer per year even after generous breakage, before any running cost. To cover that from incremental margin alone it would need to lift orders from 1.3 to about 1.47 per customer, a 13 percent rise in purchase frequency from points alone, for a product people buy annually. I do not believe that number and would not sign off a programme on the hope of it.

What works there is the other two Rs. Recognition: last year's recipient list, saved, with a reminder in the second week of November and the addresses already filled in. A repeat order made almost effortless, for the cost of one email. Relationship for the corporate buyers, a fifth of customers and half of December revenue: one call in September from a person who remembers what they ordered. No points, no liability, no breakage, and a retention effect I can measure with the same control logic. Why that matters so much for a small shop is in the retention maths.

Running it in practice

You need four tables. Customers or guests with a stable identifier. Transactions with date, value, channel and rate class. A points ledger with one row per event, issued, redeemed, expired or adjusted, each redemption carrying the issue date of the points it consumed. And the membership table with join date and, ideally, who was invited, because a holdout of invitations is the best control you will ever get. If the programme has not launched yet, build the holdout in: invite ninety percent, hold ten percent back for a year, and you will never have to argue about selection bias.

Breakage by cohort is a short query once the ledger is right:

with issued as (
  select date_trunc('quarter', issued_at) as cohort, sum(points) as issued
  from points_ledger where event = 'issued' group by 1
), redeemed as (
  select date_trunc('quarter', origin_issued_at) as cohort, sum(points) as redeemed
  from points_ledger where event = 'redeemed' group by 1
)
select i.cohort, i.issued, coalesce(r.redeemed, 0) as redeemed,
       1 - coalesce(r.redeemed, 0)::numeric / i.issued as breakage
from issued i left join redeemed r using (cohort)
where i.cohort < now() - interval '30 months'
order by 1;

The last filter is the one people forget. A cohort still redeeming has a breakage figure that falls every month, and averaging it in flatters the programme.

The liability is then a few lines:

outstanding = 1_950_000
breakage = 0.34
cost_per_night, points_per_night = 63, 1_800
liability = outstanding * (1 - breakage) * cost_per_night / points_per_night
print(round(liability))  # 45045

With a clean ledger, a first honest read of incremental margin, breakage and liability takes about two weeks. Without one, the first two weeks go on building it from booking records.

Before you trust the result, check four things. That members and controls look alike on everything observable before the join date, in a balance table rather than a sentence. That their stay rates ran parallel in the year before launch; if members were already accelerating, the programme is taking credit for a trend. That the breakage estimate uses only matured cohorts. And that members are not simply paying lower rates than controls, because a programme that shifts guests into a discounted rate class can show more stays and less margin at once.

Pitfalls

Counting activity as results. Points issued, members enrolled and redemptions processed all go up when a programme is expensive. They say nothing about whether behaviour changed. A dashboard with those three at the top and no control group anywhere is a dashboard for the marketing department.

Rewarding inertia. The guests most likely to join a loyalty card are the ones already coming back. Give them five percent of every stay in points and you have bought loyalty you already owned. The control group exists to catch exactly this, and the results are often humbling.

Treating breakage as a profit target. Once finance discovers that unredeemed points are free, there is pressure to make redemption harder: higher thresholds, blackout dates, fixed expiry. Each raises breakage and lowers the behavioural effect. You end up with a programme that is profitable on paper because nobody uses it, which is to say you do not have one.

Changing the rules without modelling the rush. Announce that points will expire and members redeem. I have seen a rule change pull a year of redemptions into six weeks while the houses were full, so the displacement cost per free night tripled. Model the liability under the new rules before the email goes out.

Tiers that punish. Status is a fine reward and losing it is a disproportionate injury. Members who drop from gold to silver do not shrug, they leave. Give a grace period and a soft landing, and measure churn around the demotion date.

How I do this for clients

The deliverable is a decision, not a report. Should the programme exist, in what shape, and what will it cost. To get there I need booking or order history per customer with channel and price, the points ledger if there is one, the membership table with join dates, and any record of who was invited and declined.

The first month starts with the free workshop, half a day where we lay out the programme rules, the data and the question the owner actually wants answered. Then two weeks of real work at my risk: the control group built and balance checked, the incremental stays or orders estimated with an error margin, breakage per cohort, the liability three ways, and a first read on whether the earn and burn dials are set sensibly. Only then do we talk about continuing.

What you get is a one page decision memo with a number and a risk: the incremental margin with its lower bound and the one assumption that would change the answer. The programme economics table above, live, as a dashboard that answers the single question of whether the programme paid for itself last quarter. And where the design is wrong, a redesign with a test plan so the change is measured rather than hoped for. You own the queries, the model and the dashboard. This work sits in my data science practice, and when the answer is that retention rather than acquisition is the growth lever, it usually continues under Growth Hacking Plus, where I can work partly on commission against the incremental margin we have just learnt to measure. How the engagement is priced is set out plainly on the pricing page.

Questions to put to your team or agency

  • What would our members' stay or order rate have been without the programme, and how do we know?
  • Is there a control group, and if not, can we hold back the next round of invitations to build one?
  • How long does an average member take to reach the first reward they would actually want?
  • What is breakage by issuance cohort, using only cohorts that have finished redeeming?
  • What is the outstanding points liability at marginal cost, and what does the accountant book?
  • How much does one incremental stay or order cost us through the programme, all three cost lines included?
  • If we changed the expiry rule tomorrow, what would redemptions do in the following eight weeks?

This series is inspired by Mike Grigsby's Marketing Analytics (Kogan Page). The explanations, examples and numbers here are my own.

If you run a loyalty programme and cannot say how many stays or orders it actually caused, send me the rules, the points ledger and a year of transactions and I will tell you within two weeks whether it is paying for itself, with an error margin and a liability figure you can take to your accountant. If you are about to launch one, talk to me before the first invitation goes out so we can build the control group in. Either way it starts with the free workshop, half a day on your programme and your data, and then two weeks of real work at my risk before you commit to anything.

1%of every invoice goes to a UK charity you pick.

A donation, never sponsorship. You choose the cause at onboarding.

The story behind the pledge →

Stay ahead of your competition.

The latest innovative products and services, straight to your inbox before your competitors hear about them.

Get up to 5% off your first six months: 1% per topic you pick, the full 5% when you take everything. Limited offer · ends 31 December 2026.

New clients only. Terms apply.

* Up to 5% off your first six monthly invoices, new clients only. Full terms.

Questions about pricing, contracts or how we work together?

Read the FAQ