Free resource · use it on this page
Retail Loyalty KPI Dashboard
A one-page monthly template for reporting a wallet loyalty program to an owner or board — the twelve metrics that matter, and the vanity metrics to leave out.
How to use this dashboard
This is a monthly report you fill in on one page. It answers a single question for whoever you report to: is the loyalty program bringing customers back, and is it worth running? Fill it in the same way every month so the trend — not the launch-day total — tells the story.
The metrics are grouped into four blocks: adoption (are passes getting into wallets), behaviour (are holders coming back), value (is it moving money), and health (is the program sustainable and not annoying people). Report all four. A program can look strong on adoption while quietly failing on behaviour, and you only see that if both are on the page.
One metric is marked as the primary metric: repeat visit rate among pass holders. It sits at the top of the report because it is the thing loyalty exists to change, and because it is honestly measurable — unlike 'revenue caused by the program,' which quietly counts customers who would have returned anyway. Lead with the primary metric every month.
Where the numbers come from: adoption and health figures (installs, deletions, sends) come straight from your wallet platform's dashboard, whether that is PushNotice or another. Behaviour and value figures usually require joining pass data to your point-of-sale, so decide early how you will attribute a visit to a holder — and report that method next to the number.
Monthly report header
Fill this in first. It forces the report to open with a decision instead of a wall of numbers.
Reporting month
e.g., March 2026 — one calendar month, always compared to the month before
Locations covered
Which stores this report includes; note any that opened, closed, or ran a promotion mid-month
Prepared by
Who owns these numbers and can answer questions on how they were calculated
Primary metric this month
Repeat visit rate among pass holders — one number, plus its change versus last month
Headline
One sentence: what changed this month and what you are doing about it
Decision this report asks for
The single call to action — more budget, kill a campaign, change the reward — or 'none, staying the course'
Blocks 1 and 2 — Adoption and behaviour
Adoption asks whether passes are getting into wallets and staying there. Behaviour asks whether the people holding them come back. Fill the two right-hand columns each month; the trend column is where the meaning lives.
| Metric | What it answers and how to compute | This month | Last month | Trend + target |
|---|---|---|---|---|
| New passes installed | Passes added to wallets this month, net of same-month deletions where you can measure them. Are new customers still joining? | ______ | ______ | vs target |
| Active installed base | Total passes currently in wallets: all installs minus all deletions. The real, current size of your audience. | ______ | ______ | up / down |
| Install rate | Installs divided by install opportunities — link views, or checkouts where the pass was offered. How well you convert interest into a saved pass. | ______ | ______ | vs target |
| Repeat visit rate among pass holders (PRIMARY METRIC) | Share of active holders with two or more visits in the period. The core question: does holding the pass actually bring people back? | ______ | ______ | vs target |
| Campaign-attributed visits | Visits or redemptions in the window after a lock-screen message went out. Label this 'following a send,' not 'caused by a send.' | ______ | ______ | up / down |
| Reward completions | Loyalty cards completed or rewards earned this month. Proof the mechanic is actually reachable, not just offered. | ______ | ______ | up / down |
Blocks 3 and 4 — Value and health
Value asks whether the program moves money. Health asks whether it is sustainable and whether you are respecting the customer's lock screen. A program that skips the health block tends to burn its audience — and then its results.
| Metric | What it answers and how to compute | This month | Last month | Trend + target |
|---|---|---|---|---|
| Revenue from pass holders | Total spend attributable to holders this period (requires a POS join). Report the attribution method beside the number, every time. | ______ | ______ | up / down |
| Holder vs non-holder lift | Average spend or visit frequency of holders compared with non-holders. The honest case for the program, stated as a gap not a claim. | ______ | ______ | up / down |
| Reward cost | Value of rewards actually redeemed, set against holder revenue. Keeps the program from buying visits at a loss. | ______ | ______ | watch margin |
| Pass retention / deletion rate | Share of passes removed from wallets this period. Always report this beside installs — never report installs on their own. | ______ | ______ | lower is better |
| Opt-out signals | Holders who disabled notifications or deleted the pass after a send. The earliest warning of over-messaging. | ______ | ______ | lower is better |
| Sends per holder | Messages sent per holder this month. Your self-imposed frequency guardrail, and proof to the owner that you are not spamming. | ______ | ______ | hold at or under cap |
Do not report these — the vanity metrics
Naming what to leave out is the harder half of a good report. Each of these looks impressive and only ever goes up, which is exactly why it hides whether the program is working. Cut them, and report the column on the right instead.
| Vanity metric | Why it misleads | Report this instead |
|---|---|---|
| Total passes ever created | Counts long-deleted passes as if they still exist; the number can only rise, so it can never show a problem. | Active installed base (installs minus deletions) |
| Total messages or notifications sent | Measures your activity, not the customer's response. High send counts often mean the opposite of health. | Campaign-attributed visits or redemptions |
| Lock-screen impressions or appearances | A pass sitting quietly in a wallet is not engagement. Presence is not a visit. | Repeat visit rate among pass holders |
| Number of campaigns run | Reports effort, not outcome. Ten weak campaigns beat by one that changed behaviour. | Reward completions or attributed visits |
| 'Total reward value given away' as a headline | Sounds generous and large, but ignores margin and whether those visits were incremental. | Reward cost set against holder revenue (net) |
| Email list or social follower count | A different channel entirely; borrowing it inflates the wallet program's apparent reach. | New passes installed this month |
| Notification open rate as a success metric | Opening a message is not visiting or buying. It stops one step short of what matters. | Visits or redemptions following a send |
Before you present it
A short discipline check. If the report fails any of these, it is measuring your effort instead of the program's results.
Lead with the primary metric
Repeat visit rate among holders goes at the top, as one number with its month-over-month change.
Compare to last month, not to launch
Cumulative totals always look good. The trend against the prior month is what reveals trouble.
Every number names its source
State whether each figure came from the wallet dashboard or from the POS join, so nothing is taken on faith.
Show deletions next to installs
Gross installs on their own are a vanity metric. Retention has to sit beside them.
Separate correlation from cause
Write 'visits following a campaign,' never 'visits caused by a campaign,' unless you ran a real holdout.
Include the send count
Reporting sends-per-holder proves you are protecting the customer's lock screen, not just chasing activity.
Cut any metric you cannot act on
If a number would not change a single decision, it does not belong on the page.
Keep it to one page
If the four blocks do not fit on one page, you are almost certainly reporting vanity metrics.
Mark estimates as estimates
Where a figure is modelled or partial, say so. An honest gap builds more trust than a confident guess.
End with a decision or an ask
A report exists to change something. Close with the one call to action, even if it is 'stay the course.'
From the guide: In-Store Marketing: Wallet Loyalty for Retail Stores
This resource accompanies the full article — worth reading before you commit to a tool.