Loyalty program ROI: Formula, worked example and holdout test

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.

Pipeline diagram of four ordered holdout test steps: Randomize before invitations, size the holdout, Tie duration to the purchase cycle, and Convert uplift to profit.

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. Low enrollment rate: the offer or sign-up flow is the problem. Fix friction and the headline reward before touching anything else.
  2. Healthy enrollment, flat time between purchases: members joined but are not changing behavior. Revisit tier thresholds and point values.
  3. Repeat purchase rate up, average order value down: members are buying on discounts. Check incremental profit before celebrating.
  4. 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:

  1. Comparing members with non-members. Members self-select, so this is self-selection bias. Use holdout group testing.
  2. Counting all member revenue as incremental. Only the lift over the holdout counts.
  3. Ignoring cannibalised full-price sales. Discounts redeemed on purchases that would have happened at full price reduce incremental profit.
  4. Measuring revenue, not contribution margin.
  5. Leaving out total program costs. Platform fees, reward cost, support, and engineering time all belong in the denominator.
  6. Booking points at face value. Redemption liability and breakage assumptions change the cost line.
  7. 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?

Loyalty program ROI equals incremental profit minus total program costs, divided by total program costs. Incremental profit is the contribution margin gap between members and a randomized holdout group, net of the change in redemption liability. Comparing members with non-members overstates the result because of self-selection bias.

How do you improve loyalty program ROI?

Improve loyalty program ROI by fixing the weakest input first: enrollment at checkout, reward tiers that lift purchase frequency, or point expiry rules that raise breakage. Cutting reward costs rarely helps if uplift is flat. Test one change at a time against the holdout group, since breakage gains can raise short-term ROI while eroding member trust. For ideas on how to boost customer loyalty beyond reward mechanics, see this guide to advanced loyalty programs.

What is a good ROI for a loyalty program?

A good loyalty program ROI is positive after total program costs and redemption liability, measured against a holdout group; no independent benchmark applies across industries. Vendor-published figures from providers such as Yotpo or LoyaltyLion reflect their own customers and selection effects. Set your target from your payback period and cost of capital. If you are still choosing a vendor, compare customer loyalty solutions on pricing and reporting depth, since the platform you pick determines how cleanly you can run a holdout test.

What is the average redemption rate for loyalty programs?

Redemption rates vary widely by industry and program design, so no single average applies to every program. Global loyalty program rewards redemption rate totaled 49.8% in 2023 across all program types (LoyaltyLion, 2023). Use your own cohort redemption history to estimate breakage, since an optimistic rate understates redemption liability.

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.

We're Netguru

At Netguru we specialize in designing, building, shipping and scaling beautiful, usable products with blazing-fast efficiency.

Let's talk business