How to build a loyalty program for your Shopify store
When a loyalty program is worth running, how to set the exchange rate and the rewards, and what changes once your customers are not American.
Most stores start a loyalty program for the wrong reason: a competitor launched one, or an app was on sale. The right reason is narrower. You paid to acquire a customer once, they bought once, and nothing in your store gives them a reason to come back before the next ad reaches them.
This guide covers the whole decision: whether a program makes sense for your store at all, how to size the reward so it pays for itself, which mechanic fits which problem, and the part almost nobody writes about, which is what changes once your customers are not American.
What the evidence actually says
Two numbers get quoted in every loyalty pitch. One of them is not real.
"Acquiring a customer costs five times more than retaining one" has no study behind it. The claim traces back to the Technical Assistance Research Project in Washington in the late 1980s, and the researchers who went looking for the original data could not find it. Keiningham and colleagues devote a chapter of Loyalty Myths to taking it apart, and their conclusion is blunt: building a retention strategy on that number is a recipe for financial disappointment.
The real finding is more useful anyway. Reichheld and Sasser, writing in Harvard Business Review in 1990, found that cutting the customer defection rate by 5% raised profits by 25% to 85% depending on the industry. That is the number worth remembering, and it is about keeping customers rather than about what acquisition costs.
Loyalty programs do work, but less dramatically than vendors imply. The most careful study of this corrected for the obvious problem, which is that loyal customers join programs rather than programs creating loyal customers. After accounting for that self-selection, Leenheer and colleagues found a positive and statistically significant effect of membership on share of wallet, but roughly seven times smaller than a naive analysis suggests. Plan for a real effect that has to be earned through design, not a transformation that arrives with the app install.
First, decide whether you need one
A loyalty program is not free. It costs the software, the margin you give away, and the attention you spend maintaining it. Three questions decide whether that trade is worth making.
Can your customer realistically buy again soon? A coffee roaster sells to the same person every three weeks. A mattress store sells to the same person once a decade. Between those two extremes there is a threshold: if your median time to second purchase is longer than about a year, a points program will feel dead to the customer long before it pays you back. Work out where your store sits before you shop for software. Our repeat-purchase curve guide shows how to plot this from a plain Shopify order export.
Do you have the margin to fund a reward? The rule of thumb that works: a program costs you between three and seven percent of the revenue that passes through it, depending on how generous you set it. If your contribution margin is thin enough that five percent is the difference between profit and loss, fix pricing first.
Do you have enough repeat traffic for the program to be seen? A program needs customers who come back to the site to notice it. If nearly all your traffic is cold paid acquisition landing on one product page, the program will sit unused. Email and organic traffic are what make it visible. The prize for getting this right is large: Adobe's analysis of 33 billion visits across 180 retail sites found that returning and repeat purchasers generated 40% of revenue while making up only 8% of visitors.
If all three answers are yes, keep reading. If the repurchase cycle is the problem, a loyalty program is the wrong tool and a subscription or a replenishment reminder is the right one.
The math to do before you launch
Here is the only calculation that matters, and it takes five minutes.
Decide what a point is worth in money. Say you award 1 point per €1 spent, and 100 points redeem for €5. That is a 5% reward rate on redeemed points. Now apply your redemption rate, because you only pay out on points people actually spend. If 25% of issued points get redeemed, your real cost is 5% × 25%, which is 1.25% of revenue.
Then ask what lift covers it. At 1.25% cost, you need repeat revenue to rise by more than 1.25% for the program to break even. In practice programs that get set up properly move repeat rates by considerably more than that, which is why the economics usually work. But run your own version of this before you launch, because the two numbers that break it are a reward rate set too high and a redemption rate you never measured.
If you would rather not do this on paper, our loyalty calculator runs the same model interactively for all five mechanics, shows the full monthly ledger including the app fee, and tells you the break-even for your numbers. We wrote the full version of the exchange-rate decision in points per dollar: the math, and the benchmark ranges for redemption in loyalty redemption rates.
Match the mechanic to the problem
"Loyalty program" is not one thing. Five mechanics solve five different problems, and picking the wrong one is the most common design mistake we see.
| The problem | The mechanic | Why it fits |
|---|---|---|
| Customers buy once and vanish | Points | Gives an unfinished balance, which is a reason to return before the discount email arrives |
| Purchases are frequent but small | Punch cards | "Buy 5, get 1" is legible in a way point balances are not, and it drives streaks |
| Your best 20% could drift to a competitor | VIP tiers | Status is worth protecting, so the top of the file stops shopping around |
| Acquisition costs too much | Referrals | Buys new customers with margin instead of ad spend |
| Every month resets to zero | Memberships | Prepaid benefits make the next order the default rather than a decision |
Most stores should start with one, not five. Points plus a referral program is the usual right answer for a first launch. Tiers earn their place once you have enough repeat customers for the top tier to feel exclusive, which is roughly when your best decile places four or more orders a year. Our tier ladder guide covers how to size the thresholds.
Design rewards people actually want
The reward is the product. A badly chosen one kills a program that is otherwise set up correctly.
Store credit beats a percentage discount. "100 points = €5 off" reads as money. "100 points = 5% off" reads as a coupon, and shoppers have learned that coupons are worth ignoring. The cost to you can be identical. The perceived value is not.
There is a deeper reason to be careful with discounts as your loyalty currency. Michael Lewis, studying a newspaper and an online grocer, found that customers acquired with a 35% discount were worth roughly half as much over their lifetime as customers acquired without one, and that discount depth was negatively related to repeat-buying rates. Anderson and Simester found the same split from the other direction across three field experiments: deeper discounts increased future purchases among first-time customers but reduced them among established ones. A loyalty program that is really just a recurring discount teaches your best customers to wait for the next one.
Free shipping is the cheapest high-value reward you have. It is the single most requested unlock in every program we see, and in most stores it costs less to fund than the equivalent discount.
Make the first redemption reachable on the third order. This is the rule that fixes most dead programs. If a customer needs twelve orders to redeem anything, they will quit around order three, which is exactly when they are deciding whether your brand is worth a habit. Set the first tier so that two orders' worth of points buys something real.
Reward things other than spending. Points for a product review, for creating an account, for a birthday, for following you somewhere useful. These cost you almost nothing and they give a new customer a balance before they have spent a second euro, which is what makes the program feel worth joining.
Make it visible or skip it
An invisible loyalty program is a line item on your app bill. The programs that stall almost always shipped the floating widget and nothing else.
Visibility is not a nice-to-have, because your customer is not short of programs to forget about. Upside's 2026 research puts the average consumer at 17.4 loyalty memberships while active participation has crept up to only 8.4 of them. Membership across Europe is high and uneven, averaging 63.3% of consumers across 24 markets in Mando-Connect and YouGov's survey, from 88.7% in Finland down to 23.8% in Turkey. You are not competing for a slot in an empty wallet. You are competing for one of the eight or so programs a person actually uses.
The surfaces that matter, roughly in order of impact:
- The customer account — balance, tier progress, and reward history in one place people already visit to check an order
- A dedicated program page — the page you link from the menu, the footer, and every email, where a guest can see what joining is worth
- Product pages — "earn 42 points with this order" turns an abstract program into a number attached to the thing they are already looking at
- Lifecycle emails — the balance reminder, the points-expiring nudge, the you-just-unlocked-a-tier note
- Checkout and thank-you — where the balance either gets spent or gets earned, and the moment the program feels real
- The counter, if you sell in person — POS redemption keeps in-store regulars on the same balance as online
What changes when your customers are not American
Nearly every loyalty app was designed in English for an American shopper and translated afterwards. If you sell in Central Europe, in the Nordics, in Poland or in the German-speaking market, a translated program is not a localized one. These are the differences that customers actually notice.
Names change form in inflected languages. In English you write "Hi, Eliška" and you are done. In Czech, Polish, Slovak and other Slavic languages the correct greeting is "Ahoj, Eliško", because a name takes a different ending depending on its role in the sentence. Getting this wrong is roughly as jarring as writing "Hi, Eliška's" in English, and most apps get it wrong every single time because their templates were written in English first. We built name personalization specifically for this, and wrote up the grammar in greeting customers by name.
Formal and informal address is a positioning decision, not a translation setting. German has Sie and du. Czech, Slovak, Polish and French all draw the same line. Picking the wrong one makes a young streetwear brand sound like a bank, or a pharmacy sound like it is being overly familiar with an eighty-year-old customer. The choice has to be per store, and it has to run consistently through every email, widget and reward name. We covered the decision in formal or informal address.
Name days are a second birthday, and they are free. In the Czech Republic, Slovakia, Poland, Hungary, Greece and Austria, people celebrate the day associated with their first name. It matters commercially for a reason that has nothing to do with sentiment: a birthday campaign needs a date of birth, which most customers never give you, while a name-day campaign needs only a first name, which you already have on every order. That turns a campaign with a twenty-percent coverage rate into one with near-total coverage. Almost nobody in ecommerce does this. The playbook is in name-day marketing.
Local review platforms are the earning action that matters. In the US you would award points for a Yotpo or Okendo review. In the Czech Republic and Slovakia the review that moves purchase decisions sits on Heureka, in Poland on Ceneo, in Germany on Trusted Shops. A loyalty program that can only reward the reviews of US-market apps is missing the one that counts locally.
One store often sells into several languages at once. A Czech store selling into Slovakia, an Austrian store selling into Germany, a Polish store selling into the Czech Republic. The program has to follow the shopper's own locale rather than the store's default, or half your members read their rewards in a language they did not choose.
The five mistakes that kill programs
- Thresholds set so high that nobody reaches them. Fix by making the first reward reachable on order three.
- A program only the widget knows about. Fix by shipping the account page, the emails and the product-page points display.
- A percentage discount as the headline reward. Fix by switching to store credit at a favorable-looking conversion.
- Points that expire aggressively and silently. Expiry is a legitimate tool for capping liability, but it has to be announced twice before it happens or it reads as a broken promise.
- Launching all five mechanics at once. Fix by launching points and referrals, then adding tiers when the data says the top decile exists.
How to choose an app
The category is crowded and the listings all claim the same things. Four criteria actually separate them.
How it renders. Apps that inject a large third-party script and an iframe widget cost you page speed on every page, not just the ones with loyalty on them. Apps built as native Shopify theme blocks and checkout extensions render with your theme. This is a Core Web Vitals question, and it compounds across every page view you pay for.
How the price scales. Some pricing is designed so that the better your store does, the worse your deal gets: per-order overage, features held back for higher tiers, an API you cannot touch below a four-figure plan. Read the pricing page for what happens at three times your current volume, not at today's.
Which features are actually included. VIP tiers, referrals and API access are billed as add-ons by several vendors, so the advertised entry price is not the price of a working program. Add up what your intended program actually needs.
Whether it speaks your customers' language properly. Not "how many languages does it list" but whether it handles the grammar, the address form, and the local platforms described above. This is where translated-from-English apps quietly fail.
Charm was built as the answer we wanted for the last three points: every feature in every plan, no per-order overage, and localization that treats Central European grammar as a first-class requirement rather than a string file. If you want to see the shape of it, the features overview is the fastest tour and pricing is free up to 250 orders a month.
Start smaller than you think
The best first version of a loyalty program is one mechanic, one reward that people want, and every surface turned on. Launch it, watch the redemption rate for a quarter, then adjust the exchange rate once you know how your customers actually behave rather than how a benchmark says they should.
Sources
- Reichheld & Sasser, "Zero Defections: Quality Comes to Services", Harvard Business Review, 1990 — a 5% cut in the defection rate raises profits 25% to 85%
- Keiningham, Vavra, Aksoy & Wallard, Loyalty Myths, Wiley, 2005 — traces the "5x cheaper to retain" claim to unpublished late-1980s TARP work and takes it apart
- Leenheer, van Heerde, Bijmolt & Smidts, "Do loyalty programs really enhance behavioral loyalty?", International Journal of Research in Marketing 24(1), 2007 — positive effect on share of wallet, about seven times smaller once self-selection is corrected for
- Adobe Digital Index, The ROI from Marketing to Existing Online Customers, 2012 — 40% of revenue from 8% of visitors, across 33 billion visits and 180 retail sites
- Michael Lewis, "Customer Acquisition Promotions and Customer Asset Value", Journal of Marketing Research 43(2), 2006 — a 35% acquisition discount roughly halves long-term customer value
- Anderson & Simester, "Long-Run Effects of Promotion Depth on New Versus Established Customers", Marketing Science 23(1), 2004 — deeper discounts help with new customers and hurt with established ones
- Upside, Escaping the Loyalty Plateau, 2026 — 17.4 memberships per consumer, active in 8.4
- Mando-Connect & YouGov, Understanding Loyalty in Europe 4.0, 2026 — 63.3% average programme membership across 24 European markets