Skip to content

How to measure loyalty program results: incrementality, cost and ROI

Resources · Guide

Measuring a loyalty program means separating what it sold on top from what the customer would have bought anyway, and putting the cost next to it. It takes three things: a control group, the cost of every reward recorded and the same definition of an active customer before and after.

Updated · 7 min read

In production · October 2026

In production, at the scale of millions of movements.

Qurable manages 18M members today. Each program has its own vault, rules and liability, isolated by organization.

  • 11M+Transactions recordedIn a single production environment
  • 22M+Double-entry movementsEach with its counterpart
  • ~20 msMember history lookupAverage query time
  • 18MMembersIn programs running on Qurable

Key takeaways

  1. Measuring a program means separating what it sold on top from what would have happened anyway.
  2. You need a control group picked at random before launch, not last month.
  3. ROI subtracts the cost of every reward, including points liability, from the incremental margin.

The difference

Measuring against last month or against a control group.

Both give you a number. Only one separates what the program did from what would have happened anyway.

Measuring against the previous period versus measuring against a control group
Against last monthAgainst a control group
What it comparesThis month against last monthMembers who get the campaign against similar members who do not, in the same period
What it credits to the programEverything that went up, including seasonality and pricesOnly the difference between the two groups
CostTotal discounts for the monthThe cost of each reward, per campaign
LiabilityEstimated at month endIn real time, with expected expirations
When it is designedWhen someone asks whether it workedBefore the campaign launches
What decision it supportsKeep going because «it went up»Scale what sells on top and cut what does not

How to calculate it

Five steps to measure a campaign.

They work for a promotion, a game or the whole program.

  • 1. Define the question

    Which behavior the campaign should move (one more visit, a bigger basket) and which metric measures it.

  • 2. Split off the control group

    Before launch, randomly pick members of the same audience who will not get the campaign.

  • 3. Measure the difference

    At close, compare the metric for both groups. That difference is the incremental effect.

  • 4. Subtract the cost

    Multiply the incremental effect by the margin and subtract the cost of every reward given, net of what third parties paid.

  • 5. Decide

    Scale what earns margin, adjust what does not and measure again with the same method.

What to measure

The metrics that matter.

Six groups of metrics, from sales to the balance sheet. Define them before launch and do not change them midway.

MetricHow it is measured
FrequencyPurchases per member in the period, treated versus control.
Basket and spendAverage basket and total spend per member, in both groups.
Rewards givenDiscounts, redeemed coupons, cashback and points issued, valued at cost.
Third-party contributionsWhat brands or partner merchants paid, subtracted from your own cost.
Points issued and not redeemedThe value the program owes its members, with expected expirations.
BreakageThe share expected never to be redeemed, with a fixed method.
Identified salesThe share of sales made by members identified at the register, in the app or online.
Active membersMembers with at least one purchase in the period, always with the same definition.
Repeat purchaseMembers who buy again in the next period, treated versus control.
Formula(Incremental margin − program cost) ÷ program cost.

Example

A visits campaign, step by step.

Illustrative values for a one-month campaign with 10,000 members in each group.

  • Treated

    2.3 visits per member

    Members who got the campaign.

    Example
    10,000 members.
  • Control

    2.0 visits per member

    Members of the same audience, chosen at random, without the campaign.

    Example
    10,000 members.
  • Incremental

    3,000 extra visits

    0.3 visits per member × 10,000 members.

    Example
    USD 4 margin per visit: USD 12,000.
  • Cost

    USD 7,000

    Rewards given to the treated group, at cost, net of brand contributions.

    Example
    Recorded per campaign.
  • Result

    71% ROI

    (USD 12,000 − USD 7,000) ÷ USD 7,000.

    Decision
    Scale it, with the same control.

With Qurable

Every reward with its cost, before and after launch.

In Qurable, every campaign is simulated on the last 7 real days before it goes live, the promotion builder supports A/B tests and every point, cashback or prize is recorded on the ledger with the rule that granted it. Incrementality with a control group is designed with each program, starting in the pilot.

  • Simulation and A/B

    How often it fires and what it grants, on 7 real days, and versions head to head.

    See the promotion engine
  • Cost on the ledger

    Every reward with its rule and cost, and real-time liability with the expiration forecast.

    See the points ledger
  • Data in your warehouse

    Members, ledger movements, tiers and coupons, with a daily export and signed webhooks.

    See the Customer Data Platform
  • A trace of every decision

    Which event arrived, which condition matched and which effect applied.

    See AI Decisioning

Questions

What people ask about measuring a program.

For loyalty, marketing and finance teams that need to defend the program budget.

Compare members who get the program or campaign with a control group that does not, multiply the difference by the margin and subtract the cost of the rewards. The formula is (incremental margin − program cost) ÷ program cost.

It is what the program sold on top of what the customer would have bought anyway. It is measured as the difference between a group that gets the campaign and a similar control group that does not, in the same period.

It is a group of members from the same audience who do not get the campaign. It is picked at random before launch, so the campaign is the only difference between the two groups. It has to be large enough that the difference is not noise.

Because seasonality, prices, competitors and weather change from one month to the next. Comparing with the previous period credits the program with everything that went up; a control group only credits it with the difference.

Frequency, basket and spend per member; reward cost net of what third parties pay; points liability; share of identified sales; active members and repeat purchase. Define them before launch and do not change the definition midway.

An issued point is a future cost: it is valued at redemption cost, minus the share expected never to be redeemed (breakage), with a fixed method. That way the campaign cost does not only show up when the member redeems.

Qurable simulates each campaign on the last 7 real days, supports A/B tests in the promotion builder and records the cost of every reward on the ledger. Incrementality with a control group is designed with each program, starting in the pilot.

Last reviewed

Further reading

The guides that show each part of the cost in detail.

Want to measure your next campaign against a control group?

In a 45-minute demo we show you the simulation, the cost of every reward on the ledger and how we design the control group in the pilot.

Read the documentation