Loyalty program ROI: Formula, worked example and holdout test
Contents
Loyalty program ROI is incremental profit minus total program cost, divided by that cost. The formula is easy; the inputs are not.
Incremental profit needs a causal baseline, because members are customers who already buy more, and costs need to include redemption liability, platform setup and integration work. A defensible number for finance rests on a holdout test, explicit breakage assumptions and a stated time horizon.
How much of this you need depends on program size: a small cashback scheme can use a simple pre/post comparison, while a tiered or paid program needs a controlled test.
Loyalty program ROI: The short answer
Reported loyalty ROI figures often overstate the numerator, because they credit the program with spend that members would have made anyway.
Holdout group testing estimates incremental profit by comparing members against a randomly withheld control.
Netguru builds loyalty platforms, customer data integrations and composable commerce systems for retail and consumer brands, and we recommend designing the holdout before launch, because member IDs and random assignment are hard to add afterward.
The method needs member identification at the till, and a first-year result often reads negative since platform setup costs arrive before the uplift does.
What loyalty program ROI measures and why it is hard to isolate
Loyalty program ROI measures incremental profit against total program costs, and it is hard to isolate because customers choose whether to join. That selection effect also explains why bad loyalty programs can look healthy on paper while destroying value.
Incremental profit is the contribution margin on spend that would not have happened without the program. It covers purchase frequency uplift, larger baskets, and retention that raises customer lifetime value, net of discounts and points issued.
Three failure modes distort the measurement, each with an early sign you can check:
- Members vs. non-members comparison. Engaged customers enroll first, so members already buy more often, spend more per order, and churn less before any reward is issued. The comparison credits the program with that head start, which pushes ROI upward. Early sign: members' pre-launch spend already exceeds non-members'.
- Vendor-style lifetime value claims. A common claim is that highly engaged loyalty customers are worth up to 10x their first purchase. That describes engaged customers, and engagement is what the program is being credited with causing. Early sign: the figure comes with no pre-enrollment baseline.
- Identity matching gaps. Customers you cannot match across channels drop out of both groups, so results describe only the matched population. Early sign: match rates differ sharply by channel. We recommend fixing identity resolution before building any member comparison.
A worked example shows the size of the first error. Assume, for illustration only, that members spend $600 a year after launch and non-members spend $400. The naive uplift is $200 per member.
Now assume eventual members spent $540 a year before launch. Under that assumption, the program can explain at most $60 of the gap, and the naive figure overstates the effect by more than three times.
To estimate the gap for your own program, pull pre-launch purchase history for eventual members and compare it with non-members over the same period. Subtract that gap before you calculate incremental profit.
How to calculate loyalty program ROI with a worked example
Loyalty program ROI is incremental profit minus total program costs, divided by total program costs, where incremental profit comes from the uplift a holdout group lets you measure.
The formula, on a contribution-margin basis:
Incremental profit = members × (orders × (1 + frequency uplift) × AOV × (1 + AOV uplift) − orders × AOV) × contribution margin + change in expected future profit
ROI = (incremental profit − total program costs) ÷ total program costs
The inputs below are illustrative assumptions, not benchmarks:
- Baseline member: 3.0 orders a year at a $60 average order value, with a 35% contribution margin after COGS, fulfillment, and payment fees.
- Holdout-measured uplift: purchase frequency +15% (3.45 orders) and average order value +5% ($63). Revenue per member rises from $180 to $217.35, which is $13.07 of incremental contribution margin.
- Reward cost: 3% of member revenue, net of breakage, or $6.52 per member.
- Active members: 15,000, then 30,000, then 40,000 as enrollment ramps.
- Fixed costs: $250,000 build in year 1, then $60,000 a year for platform and operations.
The three-year result:
| Year 1 | Year 2 | Year 3 | |
|---|---|---|---|
| Incremental contribution margin | $196,088 | $392,175 | $522,900 |
| Reward cost | $97,808 | $195,615 | $260,820 |
| Build, platform, and operations | $310,000 | $60,000 | $60,000 |
| Total program costs | $407,808 | $255,615 | $320,820 |
| Net incremental profit | −$211,720 | $136,560 | $202,080 |
| ROI | −51.9% | 53.4% | 63.0% |
Year 1 is negative because the build cost lands before membership scales. Cumulative profit reaches −$75,160 after year 2 and turns positive about 4.5 months into year 3, a payback period of roughly 28 months. Over three years, cumulative profit is $126,920 on $984,243 of total program costs, a 12.9% ROI.
The example leaves out retention. If the holdout runs long enough to observe it, add the discounted expected future profit of retained members as a separate line, and keep it apart from the first-year margin so finance can challenge each part.
Sensitivity matters more than the headline. At half the uplift (7.5% frequency, 2.5% AOV), annual profit stays negative through year 3 on these costs, because reward cost falls only slightly while margin halves.
The 3% reward cost is an accrual figure. Under ASC 606 and IFRS 15, issued points are deferred revenue, so redemption liability and breakage assumptions change when the cost hits the P&L (KYROS loyalty program liability guide).
The uplift inputs are the weak point. Take them from a randomized holdout group, not a member versus non-member comparison, which carries self-selection bias.
Loyalty program ROI spreadsheet template: The layout to build
A loyalty program ROI spreadsheet needs five tabs (inputs, cost ledger, uplift, liability, scenarios), and every cell should be labeled measured or assumed so finance can see which numbers carry the risk.
| Tab | Measured cells | Assumed cells |
|---|---|---|
| Inputs | Member count, baseline orders, AOV, contribution margin, pulled from the CDP's unified customer profiles and finance | Customer lifespan assumption (years), discount rate |
| Cost ledger | Total program costs: platform fees, integration build, reward spend, support, campaign spend, by month | Share of engineering time allocated to the program |
| Uplift | Purchase frequency and AOV difference between members and the holdout group, with a confidence interval | Extrapolation past the test window |
| Liability | Points issued, redeemed and expired; deferred revenue balance | Breakage rate, until a full expiry cycle has passed |
| Scenarios | None | Low, base and high values for uplift, lifespan and breakage; output is ROI and payback period |
Keep customer lifespan and breakage rate as single named cells that the scenarios tab overwrites. Neither can be measured until members age out of the program, and they drive the expected-future-profit term and the redemption liability.
Feed the uplift tab from the holdout only. A member versus non-member comparison imports self-selection bias.
Which costs belong in the ROI denominator
Total program costs include platform fees, POS and system integration, reward cost measured as redemption liability, and the staff time to run the program. The cost model differs sharply between buying SaaS and building in-house.
Reward cost is the line most often misstated. Under IFRS 15 and ASC 606, points are generally treated as a material right, so part of each sale is deferred until redemption or expiry.
Under ASC 606-10-55-42 (IFRS 15 B40), a customer option creates a performance obligation only if it gives a material right the customer wouldn't otherwise receive (IFRS Foundation / FASB TRG Agenda Paper 6, Customer options). Redemption liability is points issued, times expected redemption, times cost per point.
The breakage rate you assume sets that liability, so an optimistic breakage figure understates cost.
The cost lines side by side:
| Cost line | Type | SaaS platform | In-house build |
|---|---|---|---|
| Platform | Direct | Recurring subscription, often tiered by member count | One-off build, then recurring maintenance and hosting |
| POS changes | Direct | One-off plug-in or SDK rollout per store; connector fees may recur | One-off custom integration per POS vendor; recurring rework on POS updates |
| IT integration (API gateway, event pipeline) | Direct | One-off connector setup; recurring API overage | One-off event-driven architecture and gateway; recurring on-call and upgrades |
| CDP and OMS connections | Direct | One-off field mapping; recurring sync fees | One-off schema design; recurring pipeline upkeep |
| Reward redemption | Direct | Recurring, accrued at expected redemption | Same |
| Program operations, support, fraud review | Indirect | Recurring staff time | Recurring staff time, plus engineers diverted from the roadmap |
CDP and OMS connections deserve their own line. A unified customer profile is what makes personalized offers and holdout measurement possible, and it is a recurring maintenance cost, not a one-time task.
We recommend amortizing one-off costs over the expected program life, with 36 months as an illustrative assumption to replace with your finance team's figure. Keep recurring costs in the period they occur. Discounts given to customers who would have bought anyway belong in the incremental profit calculation, not the denominator, or you count them twice.
How to isolate incremental profit with a holdout group
A holdout group isolates incremental profit by withholding the program from a random slice of eligible customers and comparing their margin against invited customers.

Comparing members with non-members overstates the result because of self-selection bias: people who enroll already buy more often. Holdout group testing removes that bias on your own customer base.
- Randomize before invitations go out. Assign each customer ID to an arm across the whole eligible base, before any enrollment email or checkout prompt. A CDP-backed unified profile keeps one person in one arm across web, app, and store. Analyze by assignment, then divide the lift by the enrollment rate to estimate the effect on enrollees.
- Size the holdout from the effect you need to detect. Assume a 20% baseline quarterly purchase rate and a target purchase frequency uplift of 2 percentage points, at 80% power and 5% significance. The rule of thumb 16 × p(1-p) / d² gives about 6,400 customers per arm. These are illustrative assumptions, not benchmarks. A 10% holdout clears that on a 100,000-customer base. On 30,000 customers it does not, so lengthen the window or accept a larger minimum detectable lift.
- Tie duration to the purchase cycle. Our suggestion is at least two median inter-purchase intervals, which means roughly eight weeks for weekly grocery shoppers and a year or more for apparel buyers who purchase twice annually.
- Convert uplift to profit. Multiply the purchase frequency uplift by contribution margin per order, then subtract reward cost measured as redemption liability. The result is the incremental profit that goes into the ROI numerator.
When marketing vetoes withholding, the fallbacks trade rigor for acceptability:
| Design | How it works | Weakness |
|---|---|---|
| Delayed-entry holdout | Hold out 3-5% for one purchase cycle, then invite them | Short window misses slow-cycle categories |
| Staggered rollout | Launch by region or store group in a randomized order; early markets are the treatment, late markets the control | Needs enough markets, and seasonality can differ |
| Matched cohorts | Pair members with non-members on pre-period recency, frequency, and spend | Matching cannot remove unobserved self-selection bias |
We recommend the delayed-entry holdout first. Nobody is denied the program permanently, and the cost to marketing is a few weeks of deferred enrollment for a small share of the base. Report matched-cohort results to finance as an upper bound.
How breakage and redemption assumptions change the ROI
The breakage rate decides whether a loyalty program's ROI is positive, because it sets how much of the redemption liability turns into real cost. A 10-point shift in breakage can move ROI from positive to negative.
The example below uses assumed figures, not benchmarks. A holdout test shows 10,000 enrolled members generating $300,000 of incremental contribution margin per year. Issued points carry $250,000 of fulfillment cost if every one is redeemed. Platform and operations cost $90,000 per year.
Total program costs are the $90,000 fixed cost plus reward cost on points redeemed. Redeemed cost is $250,000 times (1 minus breakage rate).
| Breakage rate | Reward cost | Total program costs | Net return | ROI |
|---|---|---|---|---|
| 10% | $225,000 | $315,000 | -$15,000 | -4.8% |
| 20% | $200,000 | $290,000 | +$10,000 | 3.4% |
| 30% | $175,000 | $265,000 | +$35,000 | 13.2% |
| 40% | $150,000 | $240,000 | +$60,000 | 25.0% |
Every 10 points of breakage moves net return by $25,000 here, which is 8% of incremental margin. The fixed cost barely changes, so redemption behavior drives the swing. Programs with generous, easy-to-claim rewards sit near the top of the redemption range, and the 10% row is where they land.
Finance will also ask about the accounting. Under IFRS 15 and ASC 606, points are a separate performance obligation: part of each sale is deferred as a redemption liability and released as points are redeemed or expire. Expected breakage is recognized in proportion to the redemption pattern (Deloitte DART, Roadmap: Revenue Recognition, 8.8, 2024).
If redemption runs above the estimate, you book a liability catch-up and the margin hit lands in a single period. We recommend presenting ROI as a range across at least three breakage rates, anchored on your own redemption data after two full earn-and-burn cycles.
Loyalty program metrics to track beyond ROI
Track customer lifetime value (CLV), repeat purchase rate, average order value, enrollment rate, and average time between purchases alongside ROI. Each one points to a different problem when ROI moves, so reading them together shows where to intervene.
Start with net CLV, because gross CLV hides the cost side. Illustrative assumptions: a customer spends $10,000 a year for five years and costs $15,000 to serve over that period. Revenue is $50,000, so net CLV is $50,000 less $15,000, or $35,000.
That calculation uses revenue, and finance will want it on contribution margin. Agree up front what sits inside cost to serve (support, fulfillment, reward redemption) so nothing is counted twice.
Now add a holdout group. Suppose, again as an illustration, comparable non-members reach a net CLV of $30,000. The program's effect is $5,000 per customer, and that is the figure to weigh against per-member program cost. The $35,000 on its own would overstate the result, since members self-select.
Programs that run through a customer rewards marketplace have one more lever, since partner redemptions can extend customer lifetime without the full cost sitting on your own margin.
The table separates metrics that move early from those that confirm results late:
| Metric | Type | What it signals |
|---|---|---|
| Enrollment rate | Leading | Whether the offer and sign-up friction work |
| Average time between purchases | Leading | Purchase frequency shifting before revenue does |
| Average order value | Leading | Whether rewards lift basket size or just discount it |
| Repeat purchase rate | Lagging (90-180 day window) | Whether behavior change holds |
| Customer lifetime value | Lagging | Whether the program pays back net of cost to serve |
A decision rule we suggest for reading them together, with the early sign that tells you which case you are in:
- Low enrollment rate: the offer or sign-up flow is the problem. Fix friction and the headline reward before touching anything else.
- Healthy enrollment, flat time between purchases: members joined but are not changing behavior. Revisit tier thresholds and point values.
- Repeat purchase rate up, average order value down: members are buying on discounts. Check incremental profit before celebrating.
- Everything improves, net CLV stays flat: cost to serve or redemption liability is absorbing the gain. Audit reward costs per redemption first.
Compute every metric for members and for the holdout. The gap between the two is the number to put in front of finance.
How to track loyalty program ROI over time
Track loyalty program ROI as incremental profit against a holdout group, recalculated monthly on a baseline frozen before launch, and only after POS, ecommerce, CRM and warehouse data share one member ID. Brands that run frequent discounts alongside the program should also see how to combine promotions with loyalty rewards, because overlapping campaigns can blur which sales the program caused.
The warehouse holds the ledger: orders from every channel keyed on member ID, points issued and redeemed, and program costs. Three pieces feed it.
A composable commerce engine handles cross-channel transactions, an event-driven architecture streams purchases and redemptions as they happen, and an API gateway lets the till and app look up members.
A CDP builds the unified profile, and the OMS ties returns and fulfillment back to the member.
Unidentified checkouts break the measurement first. Members who skip the scan at the till show up as guests, so member spend is understated and the non-member comparison group absorbs member behavior. Track the unidentified share of revenue by channel as its own metric, next to enrollment rate.
A reporting cadence that works:
| Cadence | What to report | Why |
|---|---|---|
| Monthly | Enrollment rate, unidentified revenue share, points issued vs. redeemed | Catches data-join and till-capture problems early |
| Quarterly | Incremental profit vs. holdout, cohort retention | Gives finance a number that survives self-selection bias |
| Annually | Full ROI with total program costs, breakage rate and redemption liability re-estimated | Matches accounting true-ups |
Assign the holdout randomly among eligible customers before launch, and freeze the pre-launch baseline so later cohorts have something fixed to compare against. Expect early periods to look weak, since costs are front-loaded and repeat purchases take months to show.
This setup assumes you control the checkout. Franchise or marketplace sales may need a lighter version, and withholding rewards from top-tier customers can be a business decision, not just a statistical one.
What ROI to expect: Benchmarks by program type and their conditions
Loyalty program ROI benchmarks depend on program type: points-based, tiered, paid, and cashback programs differ in cost structure, redemption liability, and payback period.
A benchmark is only usable if you know which of these it measured.
| Program type | Main cost | Redemption liability | Typical payback period | Condition to check in any benchmark |
|---|---|---|---|---|
| Points-based | Cost of rewards, driven by breakage rate | Deferred revenue under IFRS 15 and ASC 606 | Medium: rewards are earned before they are redeemed | Whether breakage was assumed or measured |
| Tiered | Status benefits for top members | Lower per point, with a cost for retaining top members | Longest: lift comes from moving members up tiers | Whether top spenders would have bought anyway |
| Paid | Benefits delivered to fee-paying members | Benefits owed over the membership term | Shortest: fee revenue arrives up front | Self-selection bias: heavy buyers are the ones who pay |
| Cashback | Margin given away on every order | Stored cash balances | Immediate cost, lift is purchase frequency uplift | Contribution margin after the cashback rate |
Acquisition costs are the usual argument for these programs. Customer acquisition costs have risen by as much as 60% over five years, by industry estimates, driven by iOS privacy changes, third-party cookie restrictions, and rising ad costs (SimplicityDX, 2024).
Retention spend has to beat that rising baseline, and it does so only as incremental profit measured against a holdout group. At the same time, shrinking loyalty budgets mean every retention dollar now faces closer scrutiny.
Treat vendor-published ROI figures from Yotpo, Okendo, or LoyaltyLion as vendor claims. Each comes from the vendor's own customer base, often compares members with non-members, and rarely states a holdout design, which means the comparison overstates lift because members self-select.
AI uplift needs its own test cell. Run members who get AI-driven offers against members who get rule-based offers inside the same program, with the holdout group untouched. Without that third cell, the lift the program already produced gets credited to the model.
NPS measures customer health, not financial return. Bain & Company reads scores above 0 as good, above 20 as favorable, above 50 as excellent, and above 80 as exceptional. Use it to check whether retention is plausible, then let the holdout supply the dollar number.
How to improve loyalty program ROI
Improving loyalty program ROI starts with finding which input is weak: enrollment rate, purchase frequency uplift, breakage rate, or cost per member. Each symptom has a different fix, and the table below is our suggested diagnostic order.
| Symptom | Likely cause | Fix |
|---|---|---|
| Low enrollment rate | Sign-up sits after checkout; the first reward is unclear | Offer enrollment at checkout with one field, and show the first reward at sign-up |
| Flat purchase frequency uplift | Rewards are too far away, or members were already frequent buyers | Add an early milestone reward and re-test against a holdout group |
| High redemption liability | Generous earn rates, no expiry policy | Rebalance earn rates, set expiry where local law allows, and re-forecast breakage rate |
| High total program costs | Discounts go to customers who would have bought anyway | Target offers by segment; connecting the loyalty platform to a CDP gives unified profiles to target from |
Breakage rate has a limit as a lever. Pushing it up flatters the ROI figure while eroding member trust, so we recommend treating it as an input to the liability forecast and not as a target.
Once the fix is in place, check that the number is not distorted by these errors:
- Comparing members with non-members. Members self-select, so this is self-selection bias. Use holdout group testing.
- Counting all member revenue as incremental. Only the lift over the holdout counts.
- Ignoring cannibalised full-price sales. Discounts redeemed on purchases that would have happened at full price reduce incremental profit.
- Measuring revenue, not contribution margin.
- Leaving out total program costs. Platform fees, reward cost, support, and engineering time all belong in the denominator.
- Booking points at face value. Redemption liability and breakage assumptions change the cost line.
- Projecting customer lifetime value from a short window. Early pull-forward purchases inflate it. Use cohorts that run past the first redemption cycle.
FAQ: Loyalty program ROI
How to calculate loyalty program ROI?
How do you improve loyalty program ROI?
What is a good ROI for a loyalty program?
What is the average redemption rate for loyalty programs?
Build a loyalty ROI case finance will accept
A loyalty ROI case finance will accept rests on incremental profit measured through holdout group testing, with redemption liability and total program costs booked against it. Agree the holdout size, test window, and contribution margin definition with finance before launch, so the method is settled before the result arrives.
That measurement has to exist in the data layer from day one, with members and holdout customers tagged at enrollment. Our loyalty, personalization and experience optimization work covers the platform and integrations, and our AI, data and engagement team builds the analytics. To scope a build with measurement included, estimate your loyalty project.
