Skip to content
MarketingAug 26, 202635 min

Ecommerce Loyalty Program Design: What Raises Repeat Purchase Rate

Most ecommerce loyalty program decisions get made in the wrong order. The question on the table is usually which app to install. The question that determines whether the program makes money is which customer behaviors you’re willing to buy, and what those behaviors cost you as a percentage of margin. Only one of those has an answer you can defend to a finance team.

The peer-reviewed literature is blunt about the default outcome. Left alone, an ecommerce loyalty program pays your heaviest buyers a standing discount on purchases they were already going to make, and the profit has to come from somewhere else in the customer base. That isn’t an argument against running one. It’s an argument for treating program design as a margin decision instead of a marketing one.

What an ecommerce loyalty program actually buys

Repeat purchase rate, and why there's no benchmark worth chasing

Shopify defines the two customer types the metric is built from. A first-time customer (opens in new tab) is a customer who placed their first order with your store, and a returning customer is a customer who placed an order and whose order history already includes at least one order. Merchants constantly miss that cohort report data reflects the entire order history of the new customers in the report, not only the orders that were placed during the selected timeframe.

Shopify doesn’t publish a formula for returning customer rate, even though the metric appears in the analytics UI. So define it yourself and write the definition down: repeat customers divided by total customers who have ordered at least once, over a fixed window, with the same window every time you report it. A definition you control beats a benchmark you can’t audit.

There’s no credible published benchmark for repeat purchase rate on Shopify. Klaviyo offers a rule of thumb with no sample size, no date, and no method, and it has also published a different number. Two figures from the same vendor that disagree with each other aren’t a benchmark, so measure your own baseline for the twelve months before launch and compare the program against that.

Is repeat purchase rate the right target metric at all? It’s the right headline, but it’s incomplete without contribution margin per repeat order, because a loyalty program moves both at once and usually in opposite directions. Customer loyalty and retention work is only worth funding when the second number holds while the first one climbs.

The effective discount your ecommerce loyalty program pays

Every points program has an effective discount rate hiding inside it. Divide the cash value of a reward by the spend required to earn it, and you get the percentage of revenue you’re handing back. Brands publish both halves of that equation on their own rewards pages, so the number is computable without a vendor telling you what it is.

The effective discount rates in the table below are calculated from each brand’s published earn and burn rates. They aren’t figures any brand states.

Program Published earn Published burn Effective discount (BLKDG calculation)
The North Face XPLR Pass 1 point per $1 100 points = $10 10.0%, hard-capped
Pura Vida, A-Lister tier 2 Shore Dollars per $1 100 SD = $5 10.0%
Pura Vida, VIP tier 1.5 Shore Dollars per $1 100 SD = $5 7.5%
Chubbies, top rung 1 point per $1 800 points = $50 6.25%
Chubbies, base rungs 1 point per $1 100 points = $5 5.0%
Pura Vida, Insider tier 1 Shore Dollar per $1 100 SD = $5 5.0%
tentree 1 point per $1 250 points = $10 4.0%

None of these programs gives away 10% without buying it back somewhere. The North Face pays 1 point per $1, with a 100-point reward worth $10 (opens in new tab), which is 10.0%, and then caps it: balances convert to rewards three times a year, in March, June and October, and rewards are issued in increments of $10 and up to $50 (or equal to 500 points earned) per reward issuance window. The marginal rate is 10% on the first $500 of spend in a four-month window and nothing above it, which tops out around $150 a year.

Pura Vida’s top tier reaches 10.0%, and it requires $200 in qualifying spend to sit there. A cap and a spend gate do the same job from opposite directions: they keep the headline rate available only where it’s cheapest to grant.

So what should an ecommerce loyalty program pay out? Take your contribution margin per order, decide what share of it you’ll spend to move behavior, and let that number set the earn and burn rates rather than copying a competitor’s ladder. If your contribution margin is 40%, a 5% effective discount is spending an eighth of it, and a 10% rate is spending a quarter. That decision belongs in a spreadsheet before it belongs in an app.

Loyalty program examples: structure, not results

Chubbies’ ladder is deliberately non-linear. The rungs run 100 points for $5, 200 for $10, 400 for $20, 500 for $30 and 800 for $50, which puts the first three rungs at 5.0%, the 500-point rung at 6.0%, and the top rung at 6.25%. Paying a better rate at the top pushes customers to hoard points toward a single larger redemption, which defers the liability and raises the share of points that expire unredeemed.

Pura Vida’s tier multipliers show the same lever pulled the other way. The burn ladder is perfectly linear at 100 Shore Dollars for $5 through 1000 for $50, so the entire change in effective discount comes from the earn side. At 1x you spend $100 to reach 100 Shore Dollars, at 1.5x you spend $66.67, and at 2x you spend $50, which is how a tier multiplier doubles the effective discount from 5.0% to 10.0% without touching a single reward value.

Chubbies also runs the most unusual earn mechanic of these programs. Members can link an Amazon account or a Dick’s Sporting Goods account for 200 points each, then earn 1 point per $1 spent on Chubbies products at those retailers. That’s a first-party program paying for marketplace and wholesale purchases the brand can otherwise only see in aggregate.

Do tiers have to change the earn rate? No: Brooklinen pays 2 points per $1 at every tier (opens in new tab), with Silver, Gold and Platinum differentiated by signup bonuses, early access, extended returns, priority service and input into future launches. Service benefits cost you operationally rather than in margin per order. Brooklinen doesn’t publish its burn rate, so its effective discount can’t be computed.

Tiering basis matters as much as the tier count. Tiering on trailing spend, the way Chubbies does on a rolling 12-month window, keeps status tied to revenue. Tiering on points earned instead would let non-purchase actions buy status, so a customer who writes reviews, links accounts and refers friends could reach a tier a lower-spending path was never meant to reach.

Beardbrand’s Alliance membership (opens in new tab) skips points entirely. It’s a $90 one-time purchase, with a second, earned way in: when you purchase directly from Beardbrand three times or spend $150 on a single order, you receive an email invite to become a member of the Alliance. Benefits are a private community, pre-market product access, product-development testing, exclusive apparel, meetups and free domestic standard shipping. The earned-entry path is a loyalty mechanic that costs nothing per order.

The default outcome of a loyalty program is a subsidy

Consumers who were heavy buyers at the beginning of a loyalty program were most likely to claim their qualified rewards, but the program did not prompt them to change their purchase behavior. In contrast, consumers whose initial patronage levels were low or moderate gradually purchased more and became more loyal to the firm.

That’s the abstract of Yuping Liu’s 2007 study in the Journal of Marketing (opens in new tab), built on longitudinal data from a convenience store franchise. The setting isn’t ecommerce, and the finding is about program mechanics rather than a channel. Heavy buyers redeem and don’t change; light and moderate buyers are where movement happens.

Lal and Bell reached a compatible conclusion in Quantitative Marketing and Economics in 2003 (opens in new tab), studying frequent shopper programs in grocery retailing. They found the programs profitable because incremental sales to casual shoppers offset the subsidies paid to already-loyal customers, and that a program can be unprofitable if it eliminates cherry picking altogether. The reward paid to your best customer is a cost. The program’s return lives in the marginal buyer.

Leenheer, van Heerde, Bijmolt and Smidts published an analysis in the International Journal of Research in Marketing in 2007 (opens in new tab) that models membership as endogenous rather than assuming it away. Members having higher share-of-wallet than non-members doesn’t establish that the program did anything, because loyal customers select themselves into programs in order to benefit from them.

Correcting for that, the authors still found a small positive and statistically significant effect of membership on share-of-wallet, but one seven times smaller than the naive model implies. Their data covered a representative panel of Dutch households across all seven grocery loyalty programs and spending at 20 supermarket chains.

Program complexity has a measured effect too. Bombaij and Dekimpe tested 358 grocery banners across 27 European countries (opens in new tab) and found a positive effect for the basic variant offering direct and immediate rewards, with that effect disappearing under progressive-reward systems and multivendor programs. Impact was lower for discounters and higher in markets where fewer competitors ran a program. The context is European grocery, so treat it as evidence about reward structure rather than a DTC forecast.

Put those four together: pay for behavior at the margin, keep the reward direct and soon, and stop treating the redemption rate of your top decile as a success metric.

Where the famous retention statistics actually come from

Four numbers show up in nearly every conversation about customer loyalty and retention. None of them holds up at its primary source, and the reason is different every time.

The claim that retaining a customer costs a fifth of acquiring one has no locatable origin. Researchers at Ipsos Loyalty documented the trail in their Loyalty Myths work (opens in new tab): “Although it is difficult to determine the exact origins of this platitude, the earliest sources that we can find attribute it to research conducted by the Technical Assistance Research Project (TARP) in Washington, D.C. in the late 1980s.” The authors note that at least three other organizations claimed identical findings as their own, and they write, “We, too, have published prior works repeating this fallacy.”

The wider “five to 25 times” version has a single canonical home. Amy Gallo wrote in Harvard Business Review in 2014 (opens in new tab) that “depending on which study you believe, and what industry you’re in, acquiring a new customer is anywhere from five to 25 times more expensive than retaining an existing one.” She names no study.

The retention-to-profit claim breaks at its source. In 2014, Gallo attributed a 25% to 95% profit lift to Bain research and linked to a Bain brief by Fred Reichheld. Reichheld wrote (opens in new tab), “In financial services, for example, a 5% increase in customer retention produces more than a 25% increase in profit.” The number 95 doesn’t appear in the brief.

The 95 comes from elsewhere. The famous 85% figure was published in Reichheld and Sasser’s 1990 HBR article “Zero Defections” (opens in new tab), where it described the effect in one bank’s branch system rather than a general law. The upper end of the range comes from a 1996 industry-by-industry chart measuring the net present value of a customer base, where the effect ran from roughly 35% for a software company to roughly 95% for an advertising agency. So the range is a spread across unrelated industries in 1990s services, insurance and advertising, and it isn’t a band any single ecommerce business should plan against.

“Repeat customers spend 67% more” comes from a Manta and BIA/Kelsey press release published in April 2014 (opens in new tab). The methodology is two surveys of small business owner members of Manta, n=589 and n=313, fielded in January 2014, asking about habits and perceptions regarding new and existing customers. It’s opinion data from around 900 owners, not transaction data.

There’s also no primary source for a single figure on how much a loyalty program raises repeat purchase rate. What the literature offers instead is a description of who the lift comes from and under what design conditions it shows up. That tells you how to design the program. It won’t give you a single number to justify it with.

The best available statistic on ecommerce loyalty program membership

One number does hold up, and it cuts both ways. In its FY2025 Form 10-K, Savers Value Village reported 6.1 million active members (opens in new tab) at January 3, 2026, counting as active the members who have made a purchase within the last 12 months, compared with 5.9 million a year earlier. Savers also reported that active members drove 72.7% of retail sales during fiscal 2025, compared with 72.4% during fiscal 2024.

Read the first half and the program looks like the business: nearly three-quarters of retail sales run through members. Read the second half and the year-over-year movement is 0.3 percentage points on a membership base that grew by 200,000. Penetration that high and that stable describes a program that has captured the customer base, not one that’s producing step-change growth.

The largest programs disclose the same pattern. In its FY2025 10-K, Ulta reported more than 46 million members (opens in new tab) at Ulta U.S. and approximately 95% of total sales coming from members in fiscal 2025. Bath & Body Works reported a customer loyalty program with 40 million active members (opens in new tab).

Ulta also says its data shows loyalty members spend more per visit than non-members, without quantifying it, and that’s the uncontrolled comparison Leenheer and colleagues modeled around.

Sales penetration isn’t incrementality. When members account for nearly all of your sales, members are effectively your business, and a member-versus-non-member comparison is measuring your customers against whoever is left. Use penetration to size the audience for retention programs, never as proof the program caused the revenue.

Which behaviors an ecommerce loyalty program should pay for

The useful question is which specific behaviors are worth buying, and at what effective discount. Sort every earn rule you’re considering into one of three buckets.

Behaviors worth paying for are the ones that don’t happen without the incentive and that raise the value of the customer when they do. A second purchase inside 60 days from a one-time buyer. A first purchase in a category the customer has never bought from you. A product review, which produces an asset that works on the PDP forever.

A referral is the one mechanism on that list with a defensible value premium behind it.

Behaviors that are pure giveaway are the ones a customer performs on the way to something they were doing regardless. Points for creating an account during a checkout they were completing anyway. Points for following a social account, which produces a follower with no purchase intent attached. Escalating multipliers on your top tier, which is a rate increase applied to your most price-insensitive customers.

Chubbies’ rules show what caps look like in practice: reviews earn 25 points, and you earn points for up to 10 reviews. Chubbies also runs a category-seeding mechanic, awarding 50 points for a first purchase from each of six named collections, which pays for cross-category trial specifically rather than for spend generally. The North Face caps all non-purchase earning at 100 points per calendar year across every action combined, with referrals worth 25 points up to four times a year and an app download worth 10 points once ever, even if the app is deleted and re-installed.

Three program terms separate a program that protects margin from one that leaks it, and Pura Vida sets all three. Shore Dollars are calculated based on the subtotal of a qualifying purchase after any discounts have been applied, gift cards and gift boxes are excluded from earning, and when a product is returned for a refund, Shore Dollars are deducted from the member’s account for the amount of the return, net of taxes, shipping and handling. Earning on the post-discount subtotal, excluding stored-value products, and clawing back on returns are three decisions most programs never make explicitly.

Expiry is the fourth. Chubbies sets a flat rule, that all points expire 12 months from the day they’re earned. Bath & Body Works discloses a two-stage design in its 10-K, where points expire after account inactivity while rewards expire if unused after approximately three months. A short clock on the issued reward drives redemption without touching the earn rate, and Ulta’s points are valid for at least one year.

What a tiered loyalty program changes mechanically

Tiers do two separate jobs, and most programs conflate them. A tier can change the economics, by multiplying the earn rate, or it can change position, by telling a customer where they stand relative to other customers. Only the first one costs margin.

Drèze and Nunes published the experimental work on the second job in the Journal of Consumer Research in 2009 (opens in new tab). Increasing the number of people in the top tier dilutes perceptions of status, while adding a subordinate tier enhances it. Tiers below the second tier don’t affect those at the top, but they can make members of the tier immediately above feel more elite. The value of a tier is positional, so adding a tier underneath your VIPs makes the VIP tier work harder at no cost per order.

That’s the design move a tiered loyalty program usually gets backwards. When the top tier stops feeling special, the reflex is to add a richer benefit at the top, which raises the effective discount on your highest-spending segment. The alternative with research behind it is to add a rung below and leave the rate alone.

Nunes and Drèze also documented the endowed progress effect in the Journal of Consumer Research in 2006 (opens in new tab). They describe “converting a task requiring eight steps into a task requiring 10 steps but with two steps already complete,” which reframes the task as underway rather than unstarted, and which “increases the likelihood of task completion and decreases completion time.” Applied to a program, that means granting signup points so a new member lands partway to a first reward instead of at zero. Chubbies awards 100 points for creating an account against a 100-point first rung, and Brooklinen gives a 100-point signup bonus at Gold and 150 at Platinum.

Chubbies also sets a floor that costs nothing and reads well: “You’ll always be a Chubbies Collective member to us meaning you’ll never drop below a Weekend Amateur once you’ve joined.” Its tiers run on rolling 12-month spend at $0, $150 and $300, and the benefits at each rung are return windows, early access, wear testing and collaborations rather than a better earn rate.

Referral is the adjacent mechanism with the better evidence base

If you want a customer-acquisition mechanic with an identified value estimate behind it, referral has one and points don’t. Schmitt, Skiera and Van den Bulte published the study in the Journal of Marketing in 2011 (opens in new tab), tracking roughly 10,000 customers of a German bank individually: 5,181 acquired through the referral program and a random sample of 4,633 the bank acquired through other methods over the same period, across a 33-month observation window from acquisition in 2006 to September 2008.

Their finding: “The average value of a referred customer is at least 16% higher than that of a nonreferred customer with similar demographics and time of acquisition.” Referred customers had a higher contribution margin, and that difference eroded over time. They also had a higher retention rate, and that difference persisted.

The authors state their own limitation, that the study covers a single research site, and the site is German retail banking rather than DTC ecommerce. They also conclude that the value differential varies across customer segments, so firms “should use a selective approach for their referral programs.”

Practically, that argues for paying more for a referral than for a review and much more than for a social follow, and for scoping who gets asked. Every one of the six major apps includes referrals somewhere in its plan ladder, though the tier varies, so this isn’t a mechanism you need to build.

Loyalty program liability is an audited accounting problem

Points are a liability before they’re a marketing asset. Under ASC 606, a loyalty point is a material right, which makes it a separate performance obligation: you defer a portion of the revenue at issuance and recognize it when the point is redeemed or expires. BDO summarizes the rule (opens in new tab): “A portion of the revenue generated in a sale must be allocated to the loyalty points earned. The amount allocated to the points earned is deferred until the loyalty points are redeemed or expire.”

The standard also obliges you to forecast breakage. ASC 606-10-55-48 (opens in new tab) reads: “If an entity expects to be entitled to a breakage amount in a contract liability, the entity should recognize the expected breakage amount as revenue in proportion to the pattern of rights exercised by the customer.” Only an entity that does not expect to be entitled to breakage recognizes it when the likelihood of exercise becomes remote.

Deloitte is explicit that you can’t default to the remote method (opens in new tab). An entity has to first assess whether it expects to be entitled to breakage, applying the constraint in ASC 606-10-32-11 through 32-13, before it can wait for remoteness. Deloitte also notes breakage isn’t variable consideration, so revising the estimate changes the timing of recognition rather than the transaction price. If you can’t estimate your redemption rate, that’s an accounting gap and not just a reporting inconvenience.

At both Ulta and Bath & Body Works, the auditor flagged this estimate as a Critical Audit Matter in the FY2025 10-K. Ulta’s filing states that “auditing the Company’s estimate of loyalty deferred revenue was complex as the calculation involved management’s assumptions of the standalone selling price and expected redemption rate, which drive the revenue deferral,” and that the estimate “is sensitive to these significant assumptions, which are affected by expectations about future customer behavior.”

Bath & Body Works’ filing describes the same two assumptions in the same terms, and EY is the auditor in both cases. That’s two companies, not a survey, and it’s still the clearest available signal that redemption estimates are judgment-heavy enough to draw auditor attention.

Ulta reports a deferred revenue ending balance of $574.0 million, and Bath & Body Works reports $223 million at January 31, 2026 against $197 million a year earlier, but both figures combine loyalty with gift cards, and Bath & Body Works also folds in undelivered direct shipments. Neither company disaggregates, so neither number is a loyalty liability on its own.

Starbucks discloses the same structural blend (opens in new tab), reporting $200.4 million of breakage revenue in company-operated store revenues in FY2025, with a further $22.0 million in licensed store revenues, across stored value cards and the loyalty program combined. Its Stars generally expire after six to twelve months, depending on the market.

Goić, Montoya and Troncoso published a breakage estimation approach in the International Journal of Research in Marketing in 2025 (opens in new tab), applied to a large regional airline’s customer data, and found that breakage varies substantially across customer segments and markets, and that promoting more frequent redemptions reduced breakage more effectively than offering higher-value rewards did.

Airline context, single firm, so use the mechanism rather than a number. Hoarding raises breakage and defers the liability, and frequent small redemptions do the opposite, which is exactly the choice Chubbies makes when it pays a better rate at the 800-point rung.

Build versus buy: the Shopify loyalty program gate that decides it

Shopify has no native loyalty feature. Its customer tools cover accounts, segmentation, management and store credit with no points capability. Shopify treats loyalty at Shopify POS (opens in new tab) as an app-layer concern, with third-party loyalty apps as the mechanism for adding loyalty programs at checkout.

What you do get natively is three primitives a program can be built on. Store credit is a real balance (opens in new tab), and Shopify names rewards and incentives, such as a loyalty or referral program, among its uses. It’s redeemable at online checkout, at Shopify POS and in the Shop app, and it’s writable by API through the storeCreditAccountCredit mutation (opens in new tab) with an optional expiry date. It doesn’t give you earn rules, tiers, referrals, a member UI or an accrual engine.

Store credit carries a hard prerequisite. The balance is redeemable at checkout only when the owner is authenticated via new customer accounts authentication (opens in new tab), and store credit isn’t available for legacy customer accounts. Legacy customer accounts were deprecated on February 26, 2026 (opens in new tab), with a final sunset date to be announced later in 2026, so this is a migration you’re doing anyway.

The second primitive is discounts. Shopify allows a maximum of 25 active automatic discounts (opens in new tab), and customers can use a maximum of 5 product or order discount codes and 1 shipping discount code on the same order. Discounts don’t combine by default, and each one’s combination settings have to be configured manually. Combining a product discount with another product discount on the same item is Shopify Plus only.

The third primitive is Shopify Functions (opens in new tab). Stores on any plan can use public apps that are distributed through the Shopify App Store and contain functions, but only stores on a Shopify Plus plan can use custom apps that contain Shopify Function APIs. Network access is narrower still: the fetch target (opens in new tab) is limited to custom apps installed on Shopify Plus and Enterprise stores. A discount Function can’t call your external loyalty API for a live balance unless you’re on Plus or Enterprise with network access granted.

Checkout extensibility follows the same line. Checkout UI extensions for the information, shipping, and payment steps are available only to stores on a Shopify Plus plan (opens in new tab), while extensions that appear after a purchase is completed are available to all plans except Shopify Starter (opens in new tab). That single gate is what decides the build-versus-buy question for most merchants, and it applies identically to every vendor in the category.

Can you redeem points inside checkout on Basic or Grow? Not through any of the six major apps, and not through a custom Function of your own. Five of the six explicitly require Shopify Plus for checkout redemption; the sixth, Yotpo, documents its checkout module only for Shopify Plus and three other platforms without stating the requirement outright. Either way the constraint is Shopify’s own gate rather than a vendor upsell.

What you can do on any plan is redeem on the cart page, apply a discount code, or credit a store credit balance that the customer spends at checkout.

Customer loyalty program software: what the six major apps gate

Entry pricing in this category spans 20x for what’s nominally the same product, because the vendors meter different things. Loyalty app pricing moves often enough that every figure is worth re-checking before you sign anything.

Vendor Free tier Cheapest paid plan Where VIP tiers first appear App Store rating
Smile.io 200 orders/month $15/mo Essential $199 Growth 4.9 stars, 4,212 reviews
Rivo 200 orders/month $15/mo Essential $49 Scale 4.8 stars, 1,384 reviews
LoyaltyLion up to 400 orders/month $199/mo Classic add-on on Classic, included on Advanced and Plus 4.6 stars, 475 reviews
Yotpo $0/month plan $199/mo Pro Premium (price not published) 4.8 stars, 890 reviews
Okendo none for Loyalty $99/mo (0 to 200 orders) all plans 4.9 stars, 1,323 reviews
Stamped none $299/mo at 5,000 orders included 4.7 stars, 3,401 reviews

Smile.io runs a five-rung ladder (opens in new tab): free at 200 orders a month, Essential at $15 for 500 orders with one integration, Standard at $79 for 1,000 orders, Growth at $199 for 2,500 orders with $20 per 100 orders in overage, and Plus at $999 billed annually for 7,500 orders with $5 per 100 in overage. The VIP program, points expiry, the Loyalty Hub, the account-page points balance and checkout redemption (opens in new tab) all sit at Growth and above, and checkout redemption additionally requires Shopify Plus. The Smile API is Plus and Enterprise only, and webhooks aren’t available to merchants (opens in new tab).

Rivo sells four tiers through the Shopify App Store (opens in new tab): free up to 200 monthly orders, Essential at $15 for 500 orders, Scale at $49 which adds VIP tiers, points expiry, referrals and advanced branding, and Plus at $499 for 2,500 orders. On its own site, Rivo shows only three tiers (opens in new tab) and omits the free and Essential plans, so compare the two before you budget.

LoyaltyLion prices Classic at $199 per month (opens in new tab) with free access up to 400 monthly orders through the App Store, and it doesn’t publish a per-order overage rate. Instead, exceeding the threshold “by more than 25% over an average of three consecutive months” triggers a conversation about changing plans, which is a renegotiation clause rather than a meter. VIP and conditional tiers are an optional add-on on Classic and included on Advanced and Plus (opens in new tab), so tiers are the feature that moves you off the $199 plan.

Yotpo prices Pro from $199 per month (opens in new tab) with the first 500 monthly orders included, and it publishes the only genuine per-order overage table of the six: $0.20 per order from 501 to 1,000, $0.10 from 1,001 to 3,000, and $0.05 from 3,001 to 10,000. VIP tiers, advanced analytics and a dedicated success manager sit at Premium and above, where prices aren’t published. Its App Store listing lives at the handle swell (opens in new tab), a fossil of the Swell Rewards acquisition that also shows up in the swell_ prefix on its Klaviyo profile properties.

Okendo sells Loyalty as a standalone product (opens in new tab) at $99 a month for 0 to 200 orders, $299 for 201 to 1,500, $699 for 1,501 to 3,500 and $999 for 3,501 to 10,000, with custom pricing above that. There’s no free Loyalty tier: Okendo’s free plan (opens in new tab) belongs to the Reviews product ladder, not Loyalty. All loyalty features are available on all plans.

Stamped removed its free plan entirely (opens in new tab), and at 5,000 monthly orders, Loyalty runs $299 a month, sold separately from Reviews and Lifecycle with a bundle discount. Every loyalty feature is included in the single product: points earning, all reward types, referrals with a custom referral domain, VIP tiers with entry rewards and perks, branding removal, all reports and the Klaviyo integration. One price, nothing gated, priced purely on order volume.

So the market has two shapes. Cheap entry with heavy gating, which is Smile and Rivo, and expensive entry with nothing gated, which is Stamped. Which one is cheaper for you depends almost entirely on whether you need tiers, since tiers are the feature most often sitting behind the next plan up.

POS is where the published limitations cluster

If you run retail, POS limitations should drive vendor selection harder than price does, because they’re specific and they differ by vendor. Yotpo’s variable rewards aren’t available in Shopify POS (opens in new tab), direct rewards such as birthday, anniversary and referral rewards aren’t supported, and free product rewards aren’t supported. LoyaltyLion’s POS integration (opens in new tab) supports percentage and money-off discounts, free product vouchers and checkout redemption, while gift card rewards and free shipping vouchers aren’t supported and refer-a-friend can’t be processed at POS.

Rivo’s POS rewards can’t be combined with other discounts (opens in new tab), points earned during a POS checkout apply to a later purchase rather than the current one, and customers with no email address earn nothing. Okendo publishes no plan restrictions for POS (opens in new tab) and the most detailed in-store staff flow of the six, with one real gap: points and discount coupons used on orders that are later refunded aren’t automatically returned to members. That’s the failure Pura Vida and Chubbies both fix at the program-terms level, which tells you clawback is a merchant design decision rather than an app feature.

Email identity is the recurring in-store failure. Smile’s Klaviyo sync (opens in new tab) matches customers by email address and skips customers without one, including POS guest checkouts, and Rivo has the same root cause. There’s a platform-side gate too: automatic discounts at POS require POS Pro (opens in new tab), which is $89 per month per location billed yearly (opens in new tab), so a Function-backed automatic reward won’t fire on POS Lite. If retail is a real channel for you, our breakdown of Shopify POS and unified commerce covers the wider stack.

Headless narrows which loyalty program software you can use

Going headless costs you the drop-in pieces and keeps the checkout pieces. Customer account UI extensions target Shopify’s hosted account pages, so a vendor’s account widget won’t render in a Hydrogen storefront and has to be rebuilt against the vendor’s API. Shopify-hosted checkout still runs checkout UI extensions for headless storefronts, so in-checkout redemption survives a migration that kills the account widget.

The vendors’ published headless support varies more than their marketing suggests. LoyaltyLion ships a headless API client and maintains a Hydrogen integration guide (opens in new tab), with headless API access included on every plan from $199 Classic up. Rivo’s headless support begins on its Plus plan (opens in new tab) at $499 a month, and its API’s default rate limit (opens in new tab) is 15 requests per second per API key.

Okendo states full compatibility with Shopify’s Hydrogen framework (opens in new tab) with no plan gate published. Yotpo supports headless on all plans (opens in new tab), though Yotpo warns the front end will require extensive dev resources, and multi-currency isn’t supported on a headless implementation.

Smile publishes no Hydrogen integration guidance of any kind, and its only published guidance on headless is to contact the team. Stamped publishes no headless or Hydrogen documentation at all. If headless is on your roadmap, our assessment of when Hydrogen is worth the migration covers the tradeoff in full.

Applying a reward headlessly has a trap in the mutation itself. Shopify’s cartDiscountCodesUpdate mutation (opens in new tab) replaces all existing discount codes with the provided list, so you pass an empty array to remove all codes. A naive implementation that applies a reward code will silently wipe every other code on the cart.

What loyalty program data actually reaches Klaviyo

Klaviyo has no native loyalty product. Its product line (opens in new tab) covers the B2C CRM, marketing, service, analytics, the data platform, Customer Agent, Customer Hub, segmentation and reviews, with no loyalty SKU. What changed in 2026 is that Klaviyo now hosts the loyalty experience without owning the engine.

Smile.io renders inside Klaviyo’s Customer Hub (opens in new tab), where currently only the active points balance, next or best reward, and loyalty tier display in the Customer Hub drawer. Yotpo’s Customer Hub integration (opens in new tab) goes further, letting shoppers view their points, track VIP status, and redeem rewards without leaving your store or interacting with third-party widgets, with Customer Hub making real-time calls to Yotpo’s APIs for redemption options and tier definitions.

What lands on a Klaviyo profile is flat state plus discrete events, and every vendor names the fields differently. Smile syncs Smile Points Balance and Smile VIP Tier Name alongside eight events including Points Earned on Order, Points Expiring and VIP Tier Achieved, with the expiring event defaulting to 30 and 3 days before expiry. Yotpo syncs swell_point_balance and swell_vip_tier_name (opens in new tab) plus both next-tier and maintain-tier thresholds across five currencies of progress, which is what makes a “you’re $40 from Gold” email possible without doing math in the template.

LoyaltyLion splits points three ways (opens in new tab): points_approved for spendable points, points_pending for earned-but-unavailable, and points_total which includes pending. Building a “you have X points” email on the wrong field produces a number the customer can’t spend. LoyaltyLion also doesn’t sync customer point expiry as a profile property even though a points-expiring event exists, so you can trigger off expiry but you can’t segment on it.

Its Klaviyo events sit behind the LoyaltyLion Plus plan or a Klaviyo Events add-on, while the properties sync more broadly.

Two vendors are worth checking field by field before you wire anything. Stamped syncs roughly 31 events (opens in new tab) with inconsistent casing and a typo in its own documentation, accpetedReferral, and it exposes stamped_discounts_ready_to_use, a list of coupon codes the customer has already redeemed for points but hasn’t spent on an order yet. Okendo syncs human-readable property names (opens in new tab) including a points expiry date. Rivo’s base Klaviyo integration runs on all paid plans while its events are Plus-only (opens in new tab).

The flows this data unlocks, and the one that fails silently

Klaviyo can trigger a flow from a third-party custom metric (opens in new tab), and you can segment on any custom profile property once it exists on at least one profile (opens in new tab), with no limit on properties per profile. Events for moments, properties for state.

The distinction that decides whether a loyalty flow works is trigger type. In a segment-triggered flow (opens in new tab), recipients only receive messages if they’re still a member of the connected segment at send time, and manual edits to a segment’s definition don’t trigger flows. So a “you crossed 500 points” email built on a segment trigger silently won’t send if the customer redeems and drops below 500 before the send fires.

The event-triggered equivalent, built on Points Earned, has no such failure mode, which is the concrete reason to prefer metric triggers for loyalty and the reason a vendor gating its events behind a plan upgrade is gating the thing you actually need.

Filter placement matters for the same reason. Klaviyo distinguishes metric-based trigger filters, which are checked only when someone first enters the flow, from profile filters, which are checked at entry and before each action (opens in new tab). Filter on points earned in this specific event with a trigger filter, and filter on current tier with a profile filter. Our comparison of Klaviyo’s basic and advanced triggers works through the same distinction on non-loyalty flows.

Klaviyo’s custom objects (opens in new tab) allow 1 to 5 objects per account, 15 to 30 properties per object, a maximum of 500 records per profile per object and an 8 KB object cap. A custom object is the correct structure for a points ledger, and none of the six vendors uses one, so what you get in Klaviyo is current state and discrete moments rather than a queryable transaction history.

Klaviyo’s predictive analytics carry thresholds (opens in new tab) of at least 500 customers who have placed an order, at least 180 days of order history with orders in the last 30 days, and at least some customers with three or more orders. A brand small enough to be launching its first program is frequently too small for those predictions, so early segmentation has to run on vendor-supplied properties like tier, balance and enrollment date rather than predicted lifetime value.

The flows that make loyalty data worth syncing are the same ones covered in our ranking of Klaviyo flows by what they return, and the underlying data work is in how a properly built Klaviyo setup turns purchase history into repeat revenue.

B2B loyalty programs break on structure, not on mechanics

B2B loyalty programs are a live question for far more merchants than a year ago. Shopify’s B2B features are available on all plans (opens in new tab), and on April 2, 2026 Shopify added up to three active B2B catalogs (opens in new tab), company profiles, payment terms, volume pricing, ACH payments in the US and vaulted credit cards to Basic, Grow and Advanced at no extra charge. Unlimited catalogs, direct catalog assignment to companies and locations, partial payments and deposits remain Plus-exclusive.

The structural problem starts with Shopify’s data model. A Company is the business entity, a CompanyLocation is a branch that carries catalogs, tax exemptions and payment terms, and a CompanyContact is a person that acts on behalf of the company (opens in new tab) and is associated with a retail customer record. Pricing attaches to the organization. The identity a loyalty app can attach a points balance to is the individual’s retail customer record.

That split has a practical edge. Shopify supports up to 10,000 locations and 10,000 customers per company with 50 customers per location (opens in new tab), and a buyer with access to multiple locations is prompted to choose which company location they want to purchase for when logging in to your online store. One human can generate spend against several different paying entities in a single session, and a points balance keyed to that human accumulates all of it in one place.

Net terms break "earn on purchase"

In DTC the order and the payment are the same event, so awarding points at order placement is unambiguous. B2B separates them. Shopify supports Net 7, 15, 30, 45, 60 and 90 terms (opens in new tab), where all terms start from the day the order is placed, and payments aren’t automatically captured when the payment terms expire. Overdue orders display as overdue, and the merchant captures manually.

So a program that awards points at order placement is issuing a liability against revenue it hasn’t collected, and may not collect. A program that awards points at capture depends on a manual merchant action Shopify doesn’t automate. Whoever builds your program has to pick one and write it down.

Contract pricing makes a B2B loyalty program a second discount

Automatic discounts and discount codes apply as additional discounts on top of any price adjustments that you make using catalogs (opens in new tab). They stack with contract pricing rather than replacing it. Catalogs set prices and product availability per company location, with the lowest price shown when catalogs conflict, and volume pricing adds quantity break points (opens in new tab).

Contract pricing is already a negotiated per-company discount applied on every order automatically. A points program layers a second, differently-computed discount on top, so the effective discount is the contract discount compounded with the points rate rather than either one alone. Whether points compute on the pre-discount or post-discount subtotal is a question no B2B loyalty vendor answers publicly, while Pura Vida, a DTC brand selling bracelets, answers it in plain language in its program terms.

There’s a footgun for blended stores. Discounts apply to both B2B and DTC unless you scope them by creating a B2B market and assigning it to the discount’s eligibility settings. A DTC-only loyalty program that skips that step is quietly discounting wholesale orders that already carry contract pricing.

B2B also doesn’t support accelerated checkouts, tipping, subscriptions or legacy customer accounts (opens in new tab), with gift cards at checkout off by default and requiring Shopify Support to enable. Order caps sit at 500 line items per order and 200 per draft order. The replenishment tooling DTC brands lean on isn’t available here, so the retention mechanism has to be something else.

Who owns the points when the company pays

The closest analog to a B2B points program is frequent flyer miles earned on business travel, where the company pays and the individual accumulates a personal-use benefit. In Announcement 2002-18 (opens in new tab), the IRS said it “has not pursued a tax enforcement program with respect to promotional benefits such as frequent flyer miles,” citing unresolved issues including “the timing and valuation of income inclusions” and “the basis for identifying personal use benefits attributable to business (or official) expenditures versus those attributable to personal expenditures.”

The IRS added that “this relief does not apply to travel or other promotional benefits that are converted to cash, to compensation that is paid in the form of travel or other promotional benefits, or in other circumstances where these benefits are used for tax avoidance purposes.” Most loyalty programs redeem to a cash-equivalent discount, which is closer to the excluded category than to the in-kind upgrade the IRS declined to pursue, and the IRS said any future guidance will be applied prospectively.

The design answer follows from Shopify’s own model rather than from law. Since catalogs and payment terms attach to the company location while points would attach to the individual’s customer record, a program that wants the company to own the value has to redeem into something location-scoped: a credit against the location’s account, a better catalog tier, extended terms. Shopify’s store credit API accepts a CompanyLocation as the account owner, so the platform supports it.

None of the six vendors advertises B2B, wholesale or company-account support on its Shopify App Store listing. That isn’t proof none can be configured.

B2B loyalty program examples from the trades

The categories that have run B2B loyalty programs longest tend to denominate them differently. Lowe’s relaunched MyLowe’s Pro Rewards in February 2025 (opens in new tab) with three tiers, Gold Pro, Platinum Pro and Titanium Pro, as a free program that earns points from the first dollar with no minimum volume. The redemption rate is 100 points to $1 of MyLowe’s Money, five times finer than the DTC norm where 100 points buys $5.

Lowe’s volume discounts start on quotes of $1,500 or more, $3,000 in annual qualifying spend unlocks a 20% member paint discount, and cardholders get 5% every day plus a free upgrade to Platinum Pro. A 5% everyday card discount almost certainly dwarfs the points rate, so the card and the terms are the loyalty lever and points sit on top as a secondary mechanic.

Home Depot’s Pro Xtra program (opens in new tab) runs three tiers, Member, Elite and VIP, and the named tier perks are services: an Elite support line, account management, preferred pricing and VIP experiences. In that 2023 announcement, Hector Padilla, then EVP of outside sales and service, said “Pros make up about 10 percent of The Home Depot’s customer base and approximately half of our sales.” That ratio is the case for a B2B retention program, and it explains why the benefits are service rather than currency.

The sharpest counterexample comes from a company that runs a consumer points program and deliberately doesn’t run one for pros. Sherwin-Williams markets PRO+ under the headline “No Points. No Minimums. All Benefits.” (opens in new tab), built on PRO+ pricing, 0% interest credit, business tools, learning and development, and personalized support, with entry requiring you to create a login, provide business info and verify your email.

The gate is verification of a business, not enrollment of a shopper. When a major supplier makes “no points” the selling proposition, the argument that pros want price, credit and a rep is attributable rather than assumed.

If B2B is where your growth is, the platform decision usually comes first, and our piece on the right time to migrate B2B operations to Shopify Plus covers what changes at that threshold.

A loyalty program for small business: what to run under 500 orders a month

Three of the six vendors have a genuinely free tier at low volume. Smile’s free plan covers 200 orders a month, includes points and referrals and full branding control, and it isn’t a trial. Rivo’s free plan covers 200 monthly orders, and LoyaltyLion offers free access up to 400 monthly orders through the App Store.

An ecommerce loyalty program for a small business can therefore launch at zero software cost, and the constraint is what’s gated rather than what’s charged.

What you don’t get at that volume is the four things that make a program feel like one. Tiers, points expiry, a points balance on the account page and checkout redemption all sit further up the ladder for the two cheapest vendors, and checkout redemption additionally requires Shopify Plus on every vendor that publishes a requirement. So the honest starting shape for a small store is a points balance, a cart-page or code-based redemption, and referrals.

That’s not a downgrade. Bombaij and Dekimpe’s cross-country finding was that the basic variant offering direct and immediate rewards showed a positive effect while progressive-reward systems didn’t, so the simple version is the one with evidence behind it. Start with a flat earn rate, a short ladder, a hard expiry, and a referral offer, and add structure only when the volume justifies the plan upgrade.

What should a small store measure before launching? Twelve months of baseline repeat purchase rate and contribution margin per order, since Klaviyo’s predictive models need at least 500 customers with orders, 180 days of history and some customers with three or more orders before they’ll produce anything. Below that threshold, your segmentation runs on tier, balance and enrollment date, which is exactly what the vendor properties give you. Get the baseline recorded before the program launches, because you can’t reconstruct it afterward.

How to tell whether your ecommerce loyalty program is working

Enrollment rate, points issued and redemption rate are operating metrics, and none of them answers the question. The question is whether repeat purchase rate moved in a way that survived the discount you paid to move it.

First, cohort the customers who joined against comparable customers who didn’t, using Shopify’s cohort analysis, which groups customers by the date of their first order. Leenheer and colleagues showed that a raw member-versus-non-member comparison is contaminated by self-selection, so the comparison only means something if you’re looking at behavior change within a customer over time rather than a level difference between two self-selected groups. Second-order buyers who enrolled after order one and then bought a third time are the population that matters.

Second, compute the effective discount you actually paid, not the one on the rewards page. Divide total reward value redeemed in the period by total member revenue in the period. That number includes the effect of breakage, tier mix and any promotional multipliers you ran, and it’s usually higher than the headline rate on programs that run bonus point events.

Third, track deferred liability as a balance, not as an expense. Points outstanding times your estimated redemption rate times the value per point is the number your finance team needs, and the estimated redemption rate is the assumption that drew auditor scrutiny at both Ulta and Bath & Body Works. If you can’t produce that estimate from your own data, the program has a measurement gap before it has a marketing one.

Should you kill a program that isn’t clearing the bar? Usually you restructure it rather than killing it, because the cost is concentrated in the earn rules and those are the cheapest thing to change. Cut the earn rate on behaviors that were happening anyway, cap the non-purchase actions, put a short clock on issued rewards, and move the spend to the behaviors that are genuinely marginal. That’s a configuration change in every one of the six apps, and it doesn’t require a migration.

The decision, stated plainly

An ecommerce loyalty program is a pricing decision wearing a marketing costume. It sets a standing discount, it defers revenue onto your balance sheet, and it pays out disproportionately to the customers who needed the least convincing. Designed carelessly, it’s a subsidy with a dashboard. Designed against the arithmetic, it’s a way to buy specific behaviors at a rate you chose on purpose.

The work is knowable and it’s mostly upstream of the app you pick. Know your baseline repeat purchase rate and contribution margin. Compute your effective discount from your own earn and burn rates.

Decide which behaviors you’re paying for and cap the ones that aren’t marginal. Then choose software against the platform gates, the POS limits and the Klaviyo events you actually need, in that order.

If you want a second set of eyes on the numbers before you commit to a program, a Growth Audit is a no-obligation look at where your repeat revenue is leaking and what it would take to close the gap.

E.J. Ulery

About the author

EJ Ulery

Co-Founder & CTO

EJ Ulery on LinkedIn (opens in new tab)

Not sure where the gap is? That's exactly what the Digital Marketing Growth Audit is for.

A free, no-obligation look at where your site can win more traffic and conversions, with a clear digital marketing roadmap to get there. Just a straight read on where your digital presence stands and where it's headed.