NEW RESEARCH79% of shoppers say the same chain is noticeably better or worse store to store.Get the full report, free →

New research: why the same chain wins in one store and leaks in another.Get the report →

Payoff Reads · Loyalty programs

Is our loyalty program paying for itself, or subsidizing likely buyers?

Find out what the program actually adds to the bottom line after its discounts, at every store and for every offer, with each member read vs. a twin built from members who hadn't joined yet.

  • 11 Pays for itself
  • 25 No significant effect
  • 6 Costs money
Heartland Markets is a fictional chain. Every number on this page is made up to show the format.

What your numbers can't show

Members always outspend non-members. That doesn't mean the program caused them to spend more.

  • What you have: a report comparing members to everyone else. Members visit more and spend more, every month.
  • What it can't show: whether the program made that happen. Members were your best customers before they joined, which is why they joined. A study of 7 grocery loyalty programs found the average program's real effect was about 7 times smaller than the simple comparison suggested.
  • What the read shows: what the program adds to the bottom line on top of that, in visits and spend, after the fuel discounts and program fees, store by store.

On the gallons it touches, a typical fuel discount gives away close to the whole fuel margin. In mid-2026, members saved an average of 12.8 cents a gallon (Verifone), and fuel's margin after expenses, what's left of each gallon's price once the fuel and the cost of selling it are paid, runs about 13 cents (NACS). The program has to win extra visits and inside sales to pay for itself.

What lands on your desk

A loyalty program, as Seurat reads it

Heartland Markets launched Heartland Rewards at all 42 stores in March 2025: 10 cents off a gallon, plus app offers inside the store. From March to May, 6,100 members joined. Each was read vs. a twin built from members who shopped the same way before March but joined in September or later.

The answer, in three lines:

  • Inside the store, the program works: +0.8 visits and +$4.10 in margin per member per month, both statistically significant.
  • On fuel, it doesn't: the discount gives back $3.90 per member per month on gallons members were previously buying at full price, and the extra gallons win back $1.20.
  • After the discounts and app fees, the program adds $0.80 per member per month to the bottom line, which isn't statistically significant: across the chain, the program about pays for itself, and no more.

per member, per month, vs. members who hadn't joined yet

What changedResultConfidence bandVerdict
Visits+0.8Confidence band: +0.5 to +1.1Significant lift
Inside-store margin+$4.10Confidence band: +$3.00 to +$5.20Significant lift
Margin on extra gallons+$1.20Confidence band: +$0.70 to +$1.70Significant lift
Fuel discount on gallons they'd have bought without the program−$3.90Cost of the program
App and program fees−$0.60Cost of the program
What the program adds to the bottom line+$0.80Confidence band: −$0.60 to +$2.20No significant effect

store by store (6 of 42)

StoreMembers readProgram adds, per member per monthConfidence bandVerdict
Store 25, Maple Dr190+$4.60Confidence band: +$1.90 to +$7.30Pays for itself
Store 9, Boyson Rd170+$3.80Confidence band: +$1.10 to +$6.50Pays for itself
Store 17, Linn St150+$0.90Confidence band: −$1.90 to +$3.70No significant effect
Store 2, Oak Ave120−$0.40Confidence band: −$3.30 to +$2.50No significant effect
Store 23, Hwy 6 E230−$3.70Confidence band: −$6.20 to −$1.20Costs money
Store 24, Hwy 30 W210−$3.20Confidence band: −$5.80 to −$0.60Costs money
  • By store type: at the 6 fuel-heavy stores, where most members buy gas and don't come inside, the program costs money. At the other 36, it pays for itself.

by store type, per member per month

Store typeProgram addsConfidence bandVerdict
6 fuel-heavy stores−$3.00Confidence band: −$4.90 to −$1.10Costs money
The other 36 stores+$1.85Confidence band: +$0.40 to +$3.30Pays for itself
  • By offer: free coffee with a fill-up added the most inside the store, +$2.20 per member per month. Double-points weekends added nothing: members shifted weekday visits to the weekend.
  • KeepFixWhat to do: keep the program, and fix the fuel discount at the 6 fuel-heavy stores: cap it, or tie it to a purchase inside.

The confidence band shows the 95% confidence interval. When the band spans zero, the result isn't statistically significant. Heartland Markets is a fictional chain. Every number on this page is made up to show the format.

How the read works

A loyalty program usually launches everywhere at once, so there are no untouched stores to use as a comparison. The comparison comes from timing instead: we compare the earliest members to members who joined later.

  • Find each member's visits from before they joined. Many systems can link them. We check whether yours can on the first call.
  • Give each early member a twin: a predicted line of visits and spend, built from later joiners who shopped the same way before the launch. It's the same twin every read uses, built from members instead of stores. Members who joined in March are matched with members who shopped the same way before March but joined in September or later.
  • Compare actual to predicted until the later members join. Until September, the twin shows what the March members would have done had they not joined. The gap in visits, inside spend and gallons isolates what the program added.
  • Put a price on it, and check it. The extra visits and spend are valued at your margins, and the discounts and fees come off. Each twin has to have tracked its member closely before they joined. A placebo test then reruns the read on a made-up join date, months before anyone joined: with no program to find, it should show no effect. If it shows an effect, the read isn't working properly, and we tell you.

Why later joiners rather than non-members?

Non-members include everyone who'd never join. Later joiners are the same kind of customer, caught a few months earlier. Where your system can follow non-members' visits, usually through the reference number on their payment card, we also build a 2nd twin from non-members who shopped the same way, and show you both, so the answer doesn't rest on one comparison.

JanFebMarAprMayJunJulAugSepOctNovDecJoined March to MayJoined in September or laterNever joinedLeft out of the main twin.JanFebMarAprMayJunJulAugSepOctNovDecJoined March to MayJoined in September or laterNever joinedLeft out of the main twin.

The comparison: same kind of customer, one group in the program and one not yet.

Can your program be read?

It depends on how the program launched and what your data keeps, more than on how many stores you run. There are 3 routes, in the order we'd try them.

  1. 1

    Members joined over several months, and their earlier visits can be linked

    How the read works
    Each member vs. a twin built from later joiners who shopped the same way
    What it answers
    What the program adds per member, by store and by offer
  2. 2

    The program launched store by store

    How the read works
    Each launch store vs. a twin built from stores that hadn't launched yet
    What it answers
    What the program adds per store, in sales, visits and gallons
  3. 3

    Everyone joined at once, and earlier visits can't be linked

    How the read works
    Members who got an offer vs. similar members who didn't get it
    What it answers
    Which offers pay. A 6-week pause at a few stores answers "what if we shut it down?"

We check your member counts and join dates on the first call, before you commit to anything.

What we need, and what stays with you

We need:

  • Visits by member (date, store, inside spend and gallons), with member IDs you've scrambled (hashed) yourself
  • Each member's join date
  • Where your system links them, earlier visits by a card reference number you've scrambled the same way, which isn't the card number
  • The weekly cost of fuel discounts and offers, and any app or program fees
  • Your fuel and inside margins, as percentages
  • 1 to 2 years of history

We never ask for:

  • Names, phone numbers, emails or anything else that identifies a member
  • Card numbers or payment data
  • Your chain's totals or your P&L
How we handle your data →

How long it takes

  • About 2 weeks from the day your data lands, then a 60-minute readout with whoever needs to hear it.
  • We scope it to your chain on a short call: which members, which stores, which offers.

Questions buyers ask us

  • Will this tell us whether to shut the program down? It tells you what the program adds after its costs, which is, effectively, the same as what you'd lose by shutting it down. It also shows which stores and offers make it pay, so the choice isn't all or nothing.
  • Our loyalty vendor already reports results. How is this different? Vendors usually compare members to non-members, or test one campaign vs. members who didn't get it. This reads the whole program, vs. members who hadn't joined yet, after its discounts. Because each member's twin simulates what that member would have done without the program, we can isolate the distinct contributions the program provides: the extra visits, the inside spend, the extra gallons and each offer, net of the discounts.
  • What if the read shows the program doesn't pay? A read with no significant lift is a private finding. You see every result first, and nothing goes anywhere without your approval.
  • Do we have to connect any systems? No. One export from your loyalty or back-office system, sent however your IT team prefers.
  • Who does the work? We do. Your team runs the export, shares it with us, and comes back to hear our readout.

After this read

Read several changes in one request, or keep the program measured week by week.

Sources: Leenheer, van Heerde, Bijmolt and Smidts, "Do loyalty programs really enhance behavioral loyalty?" International Journal of Research in Marketing, 2007. Verifone, fuel and loyalty data, June 2026. NACS, fuel margins.