
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.
One note on sourcing before the substance. Every number below links to its primary source in the sentence where it appears, vendor claims are labeled as vendor claims, and all app pricing is a snapshot taken in August 2026 that vendors change often. Where we’ve done our own arithmetic off published rates, we say so in the sentence. Several statistics you’ve probably seen attached to this topic don’t appear anywhere below, and there’s a section explaining what happened when we chased each one to its origin.
What an ecommerce loyalty program actually buys
Repeat purchase rate, and why there's no benchmark worth chasing
Shopify publishes definitions for the two customer types the metric is built from. A first-time customer 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,” per Shopify’s customer reports documentation. That same page notes something merchants miss constantly: 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.”
What Shopify doesn’t publish is 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 is no credible published benchmark for repeat purchase rate on Shopify. Klaviyo’s glossary offers a rule of thumb with no sample size, no date, and no method, and Klaviyo’s own blog content carries 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. That’s the test, and the arithmetic below is how you run it.
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.
We ran that arithmetic across every program in our sample that publishes both an earn rate and a burn rate. The figures below are our calculations off each brand’s published rates, not 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% |
Two independent DTC brands land on exactly 5.0% at their entry tier. Chubbies publishes 1 point per $1 with a 100-point rung worth $5, and Pura Vida’s Shore Club publishes 1 Shore Dollar per $1 at the Insider tier with 100 Shore Dollars worth $5. tentree publishes 1 point per $1 and states plainly that 100 points equals $4, which works out to 4.0% and is the lowest rate in our sample.
Nobody in the sample gives away 10% without buying it back somewhere. The North Face publishes 1 point per $1 and a 100-point reward worth $10, which is 10.0% by our arithmetic, 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% by our calculation, 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’s the conversation, and it belongs in a spreadsheet before it belongs in an app.
Loyalty program examples: structure, not results
Chubbies’ ladder is deliberately non-linear. The published rungs run 100 points for $5, 200 for $10, 400 for $20, 500 for $30 and 800 for $50, and our arithmetic 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 in the sample. 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, and Brooklinen’s program is the counterexample: it publishes 2 points per $1 at every tier, 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 the effective discount can’t be computed from the page at all.
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 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’ll 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, 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, 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.
Which brings up the most common piece of evidence offered for loyalty programs, and the reason it proves far less than it looks like it does. Leenheer, van Heerde, Bijmolt and Smidts published an analysis in the International Journal of Research in Marketing in 2007 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 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 and the design brief writes itself. 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. We chased each to its primary source. None of them survived in usable form, 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: “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 same excerpt notes that at least three other organizations claimed identical findings as their own, and the authors write, “We, too, have published prior works repeating this fallacy.”
The wider “five to 25 times” version has a single canonical home. A 2014 Harvard Business Review article by Amy Gallo states 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.” The hedge is the citation. No study is named in the article.
The retention-to-profit claim breaks in a way you can verify in about four minutes. The same 2014 article attributes a 25% to 95% profit lift to Bain research and links to a Bain brief by Fred Reichheld. That brief says, “In financial services, for example, a 5% increase in customer retention produces more than a 25% increase in profit.” The string “95” does not appear in the document.
The 95 comes from elsewhere. The famous 85% figure was published in Reichheld and Sasser’s 1990 HBR article “Zero Defections”, 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.
The fourth one is the most quotable and the least like what it sounds like. “Repeat customers spend 67% more” comes from a Manta and BIA/Kelsey press release published in April 2014. 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 anywhere for a figure of the form “a loyalty program raises repeat purchase rate by X percent.” We looked specifically, and found none. 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 will not 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’s worth using precisely because it cuts both ways. Savers Value Village’s FY2025 Form 10-K reports 6.1 million active members as of January 3, 2026, defining active inline as members “who have made a purchase within the last 12 months,” compared with 5.9 million a year earlier. The same filing states 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 the same place. Ulta’s FY2025 10-K reports “more than 46 million members” at Ulta U.S. and “approximately 95% of total sales coming from members in fiscal 2025.” Bath & Body Works reports “a customer loyalty program with 40 million active members.” Ulta’s filing 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 is not 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 isn’t whether to run a program. It’s which specific behaviors are worth buying, and at what effective discount. Sort every earn rule you’re considering into one of three buckets and the answer gets obvious fast.
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, and the section below covers why.
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’ published rules show what caps look like in practice: reviews earn 25 points and the page states, “You’ll earn points for up to 10 reviews.” The same page publishes 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 app is deleted and re-installed.”
Three published terms separate a program that protects margin from one that leaks it, and Pura Vida publishes 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 “will be deducted from your 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 publishes 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 filing notes its 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. 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 sourced alternative 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. Their abstract describes “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 publishes a 100-point signup bonus at Gold and 150 at Platinum.
Chubbies also publishes 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, 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.” Selective, not universal, from the people who ran the numbers.
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’s plain-English summary states it directly: “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. PwC’s guidance quotes ASC 606-10-55-48: “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’s roadmap is explicit that you can’t default to the remote method. 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. The same source 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.
Two of the two large retailers we examined had their auditor flag 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, with EY as auditor in both cases. That’s a sample of two companies, not a survey, and it’s still the clearest available signal that redemption estimates are judgment-heavy enough to draw auditor attention.
The disclosed dollar figures come with a caveat that matters. 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, 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, and noting that Stars “generally expire after six to twelve months, depending on the market.”
There’s one research finding on breakage with a stated method. Goić, Montoya and Troncoso published a breakage estimation approach in the International Journal of Research in Marketing in 2025, 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. The Customers manual covers accounts, segmentation, management and store credit with no points capability, and the POS Lite versus POS Pro comparison mentions loyalty in neither tier. Shopify’s own POS documentation treats it as an app-layer concern, describing 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, and Shopify names loyalty explicitly among its uses, “as a reward or incentive, such as a loyalty or referral program.” It’s redeemable at online checkout, at Shopify POS and in the Shop app, and it’s writable by API through the storeCreditAccountCredit mutation with an optional expiry date. What it doesn’t give you is earn rules, tiers, referrals, a member UI or an accrual engine.
Store credit carries a hard prerequisite. Shopify’s documentation states the balance is “redeemable at checkout only when the owner is authenticated via new customer accounts authentication”, and the help page states plainly that store credit isn’t available for legacy customer accounts. Legacy customer accounts were deprecated on February 26, 2026, 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, 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, and this is where the build path meets a wall. Shopify’s Functions documentation states that “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 “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. Shopify’s checkout UI extension documentation states that “checkout UI extensions for the information, shipping, and payment steps are available only to stores on a Shopify Plus plan”, while extensions that appear after a purchase is completed are “available to all plans except Shopify Starter”. 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 publish an explicit Shopify Plus requirement 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 documented 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. All figures below come from each vendor’s own pricing page, docs or Shopify App Store listing, captured in August 2026, and loyalty app pricing moves often enough that they’re 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 publishes a five-rung ladder: 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. Smile’s own feature comparison puts the VIP program, points expiry, the Loyalty Hub, the account-page points balance and checkout redemption all at Growth and above, and checkout redemption additionally requires Shopify Plus. The Smile API is Plus and Enterprise only, and Smile’s docs state that webhooks aren’t available to merchants.
Rivo’s App Store listing publishes four tiers: 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. Rivo’s vendor pricing page shows only three tiers and omits the free and Essential plans, which is a good argument for reading the App Store listing and the pricing page side by side before you budget.
LoyaltyLion prices Classic at $199 per month 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. Its features table lists VIP and conditional tiers as an optional add-on on Classic and includes them on Advanced and Plus, so tiers are the feature that moves you off the $199 plan.
Yotpo prices Pro from $199 per month 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, a fossil of the Swell Rewards acquisition that also shows up in the swell_ prefix on its Klaviyo profile properties.
Okendo publishes Loyalty as a standalone product 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: the free plan on Okendo’s App Store listing belongs to the Reviews product ladder, not Loyalty. Okendo states that all loyalty features are available on all plans.
Stamped removed its free plan entirely, and at the default 5,000-monthly-orders view of its pricing page, Loyalty runs $299 a month, sold separately from Reviews and Lifecycle with a bundle discount. Its published Loyalty feature table marks every loyalty feature as 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, the published POS limitations should drive vendor selection harder than price does, because they’re specific and they differ by vendor. Yotpo’s POS documentation states that “variable rewards are not available in Shopify POS,” that direct rewards such as birthday, anniversary and referral rewards aren’t supported, and that free product rewards aren’t supported. LoyaltyLion’s POS article documents support for 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 documents that POS rewards can’t be combined with other discounts, that points earned during a POS checkout apply to a later purchase rather than the current one, and that customers with no email address earn nothing. Okendo publishes no plan restrictions for POS 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 documentation matches customers by email address and skips customers without one, calling out POS guest checkouts specifically, and Rivo documents the same root cause. There’s a platform-side gate too: automatic discounts at POS require POS Pro, which is $89 per month per location billed yearly, 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.
What the vendors publish varies more than their marketing suggests. LoyaltyLion ships a headless API client and maintains a Hydrogen integration guide, with headless API access included on every plan from $199 Classic up. Rivo publishes a Hydrogen guide that states headless support begins on its Plus plan at $499 a month, and its API reference puts the default rate limit at 15 requests per second per API key.
Okendo states full compatibility with Shopify’s Hydrogen framework with no plan gate published. Yotpo documents headless on all plans while stating the front end “will require extensive dev resources” and that multi-currency isn’t supported on a headless implementation.
Smile’s only current published statement is a single FAQ line inviting you to contact the team, and Smile publishes no Hydrogen integration guidance of any kind. Stamped publishes no headless or Hydrogen documentation at all, and its platform-limitations article enumerates Shopify, BigCommerce and WooCommerce without addressing custom storefronts. 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 documented trap in the mutation itself. Shopify’s cartDiscountCodesUpdate mutation “replaces all existing discount codes with the provided list, so 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 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, where the documentation states that “currently, only active points balance, next or best reward, and loyalty tier display in the Customer Hub drawer.” Yotpo’s Customer Hub integration 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 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: 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. Its documentation also notes that customer point expiry isn’t synced as a profile property even though a points-expiring event exists, so you can trigger off expiry but you can’t segment on it, and it’s the only one of the six that documents not syncing expiry as a property.
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 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 including a points expiry date. Rivo’s base Klaviyo integration runs on all paid plans while its events are Plus-only.
The flows this data unlocks, and the one that fails silently
Klaviyo can trigger a flow from a third-party custom metric, and you can segment on any custom profile property once it exists on at least one profile, with no limit on properties per profile. That’s the whole toolkit: events for moments, properties for state.
The distinction that decides whether a loyalty flow works is trigger type. Klaviyo’s documentation on segment-triggered flows states that “Recipients will only receive messages within a flow if they are still a member of the connected segment at send time,” and that 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. 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.
There’s a ceiling on this that no vendor discusses. Klaviyo’s custom objects 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 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, and a changelog dated April 2, 2026 added up to three active B2B catalogs, 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, which the docs describe precisely. 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” that 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, 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, where “all terms start from the day the order is placed,” and states that “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. Neither Shopify nor any of the six loyalty vendors documents a resolution, which means whoever builds your program has to pick one and write it down.
Contract pricing makes a B2B loyalty program a second discount
Shopify documents that automatic discounts and discount codes “apply as additional discounts on top of any price adjustments that you make using catalogs”. 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.
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 real number is the contract discount compounded with the points rate rather than either one alone. And 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 in that same documentation. 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.
Shopify also documents that B2B doesn’t support accelerated checkouts, tipping, subscriptions or legacy customer accounts, 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 documented 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. IRS Announcement 2002-18 states that the agency “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 same announcement states 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 announcement states that 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, and no loyalty vendor documents building against it.
That absence is broader than one feature. We scanned all six vendors’ Shopify App Store listings for B2B, wholesale and company-account support, and none of them advertises it. That’s an absence of published capability on the vendors’ own listings rather than proof none can be configured, and it’s still the answer to “which app handles B2B.”
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 with three tiers, Gold Pro, Platinum Pro and Titanium Pro, described in the release as a free program, earning points from the first dollar with no minimum volume. Lowe’s Pro benefits pages put the redemption rate at 100 points to $1 of MyLowe’s Money, five times finer than the DTC norm where 100 points buys $5.
The rest of that announcement shows where the real leverage sits. 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 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. The same 2023 announcement quotes Hector Padilla, then EVP of outside sales and service, saying “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 in one sentence, 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.”, 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 Smile’s documentation states 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. Three measurements get you there.
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 retailers we looked at. 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. No assumptions. No selling you on work you don’t need.
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.


