RESEARCH · CASE STUDY
Inside 7 active loyalty programmes
What 140 customers who collected a stamp did at 7 independent shops running a Wallet Loyalty card, 30 April 2026 to 3 October 2026. A shop counts once at least 5 different customers have collected a stamp there. This is a small, real sample, and every number says how many shops it rests on.
7 shops · 140 customers · 271 visits · 620 claim-page visits
KEY NUMBERS
What the active shops show.
- of claim-page visits ended with the card handed to Apple or Google Wallet
- 39%
620 claim-page visits across the 7 active shops
- of cards issued went to an iPhone
- 62%
243 cards issued across the 7 active shops
- stamps on the typical active shop's card
- 8
Median shop · middle half 6 to 10 · across 7 shops
- customers at the typical active shop
- 20
Median shop · middle half 9 to 30 · across 7 shops
GETTING THE CARD
From claim page to wallet.
Everyone who sends the form gets a card and is sent on to their wallet. The drop is between opening the page and sending the form.
Claim-page figures start on 20 August 2026, when we began recording them.
| Step | Claim-page visits | Of the step before |
|---|---|---|
| Opened the claim page | 620 | 620 claim-page visits across the 7 active shops |
| Sent the form | 243 | 39% of 620 claim-page visits across the 7 active shops |
| Card issued | 243 | 100% of 243 forms sent across the 7 active shops |
| Sent on to Apple or Google Wallet | 240 | 99% of 243 cards issued across the 7 active shops |
Handing the card to the wallet is the last step we can see. We cannot see whether the wallet opened or the customer pressed save.
- of claim-page visits ended with the card handed to the wallet, at the typical shop
- 38%
Median shop · middle half 35% to 51% · across 6 shops
- Which phone the card was issued to
- 62% iPhone
- 34% Android
- 4% Other or not known
243 cards issued across the 7 active shops
COMING BACK
How often customers return.
- of a shop's customers came back at least once
- 33%
Median shop · middle half 21% to 46% · across 7 shops
- came back within 30 days of their first visit
- 40%
Median shop · middle half 33% to 42% · across 5 shops
- days between visits, at the typical shop
- 2
Median shop · middle half 2 to 13 · across 6 shops
WHEN THEY VISIT
Visits by day of the week.
| Day | Share of visits |
|---|---|
| Monday | 7% |
| Tuesday | 18% |
| Wednesday | 14% |
| Thursday | 18% |
| Friday | 24% |
| Saturday | 10% |
| Sunday | 9% |
271 visits across the 7 active shops
Days are counted in each shop's own timezone where set; 4 of the 7 shops have none, so their days follow UTC.
THE CARD
How the shops set up their card.
Half of the active shops ask for 8 stamps or fewer before the reward; the middle half ask for 6 to 10.
Median shop · middle half 6 to 10 · across 7 shops
METHOD AND LIMITS
How we counted.
Data from Wallet Loyalty's own database, read once on 4 October 2026 with read-only queries; only totals left the server, never a customer's details. Demo, internal and deleted accounts are excluded. A shop counts as active once 5 different customers have collected at least one stamp there; 7 shops met that bar out of 43 with any activity. Shops chosen this way are, by definition, the ones customers use, so their figures may not match every shop's (repeat visits especially may read higher). A visit is one customer collecting at least one stamp on one card on one day. Claim-page figures start on 20 August 2026, when we began recording them. Ranges show the middle half of shops (25th to 75th percentile). The shops did not record a business type we could use, so we describe them only as independent shops.
What we left out
- Time of day: most of these shops have no timezone set, so visit hours would be wrong.
- Head starts (free first stamps): none of the active shops uses one yet.
The queries we ran
merchants
SELECT m.id, m.timezone, p.business_type FROM merchants m LEFT JOIN merchant_profile p ON p.merchant_id = m.id WHERE m.deleted_at IS NULL AND m.is_demo = 0 AND COALESCE(m.admin_billing_override, '') <> 'demo_internal'
cards
SELECT id, merchant_id, type, reward_mode, stamps_required, head_start, deleted_at FROM card_templates
stamps
SELECT s.merchant_id, s.customer_id, s.card_template_id, s.count, s.source, s.created_at FROM stamps s JOIN customers c ON c.id = s.customer_id WHERE c.deleted_at IS NULL AND s.created_at < ?
redemptions
SELECT r.merchant_id, r.customer_id, r.card_template_id, r.resets_cycle, r.threshold_snapshot, r.created_at FROM redemptions r JOIN customers c ON c.id = r.customer_id WHERE c.deleted_at IS NULL AND r.created_at < ?
claims
SELECT merchant_id, session_id, name, platform, created_at FROM tracking_events WHERE source = 'claim' AND name LIKE 'claim.%' AND created_at < ?
We will re-run this study as more shops go live.
Found a figure we got wrong? Write to [email protected] and we will fix it and date the change.
CITE THIS STUDY
To cite this study:
Wallet Loyalty (2026). Loyalty case study 2026. https://walletloyaltycard.com/research/loyalty-case-study-2026
Five minutes to set up. Money back for 30 days after you subscribe.
€19 a month per location, with 500 customers included. Twelve languages. Cancel whenever you like.