Skip to content
Bach.ai

Designing a Loyalty Program That Lifts Repeat Rate, Not Margin

Most loyalty programs are a quiet margin transfer to the customers least likely to leave. You launch points, repeat rate ticks up, and the deck looks like a win — until someone reconciles redemptions against contribution and notices the “lift” is mostly people who were always going to buy again, now buying again at a discount. That is the trap. A loyalty program without losing margin is not a richer reward; it is a more honest one, paid out of incremental contribution rather than revenue you already had.

For the adjacent growth decisions, compare Repeat-Purchase Rate: Why Your Only Benchmark Is Your Own Cohorts and then use Is Your Loyalty Program Incremental, or Taking Credit? to pressure-test the operating plan.

The subsidy hiding inside “repeat rate”

Every points scheme has two populations earning the same reward: customers who would have repurchased anyway (your baseline), and customers whose next order genuinely hinges on the incentive (the swing). The first group is pure deadweight cost. You are paying them to do what they were already doing.

The math is unforgiving because loyalists are, by definition, the highest-frequency buyers — so they accrue and redeem the most. A program that rewards lifetime spend hands its biggest payouts to the cohort with the highest baseline repeat probability. You have engineered a discount that scales with how little persuasion the customer needed.

Run the back-of-envelope before you defend the program:

  • Incremental orders = orders observed with the program − orders you’d have gotten anyway.
  • Reward cost is paid on all rewarded orders, baseline included.
  • If 70% of rewarded repurchases would have happened regardless, your effective cost-per-incremental-order is roughly 3x the headline reward. A reward that looks like a 5% giveaway is functionally a 15% giveaway against the orders it actually caused.

That ratio — incremental orders to total rewarded orders — is the single number that decides whether your program builds equity or leaks it.

Diagnose the baseline before you design anything

You cannot reward incrementality you haven’t measured. Before launch, pull your repeat-purchase curve by cohort: of customers who placed a first order, what share place a second within 30, 60, 90 days, and at what cadence do your best cohorts re-buy unprompted?

That curve is your counterfactual. The customers sitting at the top — short inter-purchase intervals, high baseline second-order rate — are the ones a generic points program will overpay. The flat middle of the curve, customers who lapse after one or two orders, is where an incentive can actually change behavior. Design for the middle, not the top.

If your baseline second-order rate is already healthy, be honest that the ceiling on incremental lift is small, and price the reward accordingly. A program layered on an already-loyal base has almost no room to move the number and almost unlimited room to bleed margin.

Pay rewards out of margin, not topline

The common structural error is denominating rewards in revenue. “Earn 5% back” sounds modest until you remember it comes off a contribution line that might only be 30-45% of revenue to begin with. A 5% revenue reward on a 40% contribution-margin order eats roughly 12.5% of the margin on that order — and far more once you net out the baseline subsidy.

Reframe every reward against contribution margin, not price:

  1. Cap reward value as a share of contribution margin per order, not as a share of revenue. Decide what fraction of the margin on an incremental order you’re willing to reinvest, then back into the points rate.
  2. Earn on margin-rich SKUs, throttle on thin ones. If you sell a mix of full-margin hero products and near-cost loss leaders, a flat earn rate subsidizes exactly the orders you can least afford. Differentiate the earn rate by product margin band.
  3. Exclude already-discounted orders from earning (or earn at a reduced rate). Stacking points on top of a promo is double-paying for a single conversion.

This is the heart of a loyalty program without losing margin: the reward is a reinvestment of incremental contribution, never a deduction from baseline revenue.

Target the swing customer with tier design

Tiers are in many cases built to flatter the top — bigger perks for bigger spenders. That’s backwards for margin. The customer who already spends enough to hit your top tier needed no nudge; you’re gifting them status they’d have earned anyway.

Better tier logic rewards behavior change, not accumulated spend:

  • Reward the second and third order disproportionately, where lapse risk is highest and one incentive genuinely shifts the decision. Taper the reward as baseline loyalty rises.
  • Trigger benefits on actions that lift contribution — replenishment before a typical churn window, adding a margin-rich item, moving to a subscription cadence — rather than on raw spend thresholds.
  • Use non-discount perks (early access, faster support, bundles, samples) for high-frequency loyalists. They cost little in margin and preserve the brand equity that a permanent discount erodes.

Discounts are the most expensive currency in your toolkit. Spend them only where they change an outcome.

Protect margin with earn/burn mechanics

The mechanics determine whether the modeled cost survives contact with real behavior:

  • Breakage is a feature, not an accident — but model it honestly. A share of points always go unredeemed; that improves effective program cost. Don’t engineer high breakage with hostile expiry, though — that trains distrust and quietly raises churn, which costs more than the points saved.
  • Make burn lift average order value. Redemption thresholds and reward sizes should pull order value up, not just shave price. A reward that only triggers above a sensible basket size converts the incentive into a margin-positive event.
  • Set point liability against contribution, and watch the float. Outstanding points are a real liability. If issuance outruns redemption-driven incremental margin, the program is underwater whether or not it shows up this quarter.

The only honest readout is a holdout

Self-reported program metrics — enrolled members repeat more than non-members — are the most seductive lie in retention. Members repeat more because high-intent customers self-select into membership. Correlation, not lift.

The only defensible measurement is a randomized holdout: withhold the program (or a specific reward tier) from a random, representative slice of eligible customers and compare repeat rate, order value, and contribution margin against the treated group over a full purchase cycle. The gap is your true incremental lift. Everything else is the baseline you were already paying for.

Hold the test long enough to clear at least one full inter-purchase interval, and read contribution margin per customer, not repeat rate alone — because a program can lift repeat rate while destroying margin, which is precisely the failure mode you’re trying to avoid.

This is also where loyalty and acquisition economics meet. Incremental retention margin is reinvestable into acquisition; it widens the contribution that funds spend and improves blended efficiency. A tool like Bach AI, reading your account and unit economics, can surface where a retention incentive is quietly inflating reported repeat rate without moving margin — though, like any honest read, the decision to change the program stays with you. The point is to measure the program against the same margin discipline you’d apply to a paid campaign, not a softer one.

The takeaway

Design backwards from incrementality. Measure your unprompted repeat curve first, denominate every reward against contribution margin rather than revenue, aim the discount at the swing customer instead of the loyalist, and prove the whole thing with a randomized holdout read on margin per customer. Do that and repeat rate rises because you funded behavior that wouldn’t have happened otherwise. Skip it and you’ve built an automated machine for discounting the customers who needed no discount at all.

See what your Meta ads are really costing you.

Connect your account and Bach ranks every revenue leak in minutes — each with the money it costs and a one-tap fix. Free for 7 days, no credit card.

Start Free Audit
Start your free audit