Customer retention rate is the share of customers from a starting period who buy again in a later one. Shopify’s reports and Klaviyo’s help center both calculate it with the same named customers on both sides of the ratio, while the textbook formula, (E−N)/S, needs a count of lost customers that an online store never records.
That gap matters more than it looks. The textbook formula fits businesses where a customer leaves by doing something, such as cancelling a plan or closing an account. A store has no such event: a shopper who will never return and a shopper who is between orders look identical in the order history. So the guides that adapt the formula for ecommerce quietly change what its letters mean, and the adapted version counts people its denominator never counted. This guide reads the formula as the ranking pages state it, then Shopify’s and Klaviyo’s own help centers as served on October 12, 2026. It is published by Relvino, which decides per shopper across email, SMS and pop-ups and sells to the brands that track this number, so read it as informed but interested.
MoEngage’s page on average retention rates by industry writes it as “CRR= [E-N/S] x 100”, where “E stands for customers at the end of the chosen period”, N is customers acquired during the period and S is customers at the beginning. Its worked example is the giveaway: “If there are 1000 customers during the beginning of four months, 200 customers are lost, and 500 new customers are gained” over the period. The end count is 1,000 minus 200 plus 500, so 1,300, and the rate comes out at 80%.
Read the example again and the input it depends on is “200 customers are lost”. In a subscription business that number is a report: someone pressed cancel 200 times. In a Shopify store nobody presses anything. The customer record stays, the email address stays, and the only evidence of loss is an absence of orders, which never becomes final. The end-of-period customer count therefore has no natural definition in a store, because no customer ever leaves the count.
Ecommerce guides solve this by redefining the letters. LoyaltyLion’s guide, last updated in March 2025, keeps the same formula but defines E as “the total number of customers who made a purchase in a time period”, N as the first-time buyers within that period, and S as “the number of customers who had made a purchase during a comparative period”. That is a workable fix: nobody needs to be “lost”, because E now counts buyers rather than accounts. The same page is candid about the strain, noting that “many ecommerce owners focus their attention on other loyalty metrics, such as repeat purchase rate and average customer lifetime value (CLV)”.
Under the adapted definitions, E minus N is every buyer in the period who is not new. Shopify’s help center gives the platform’s own word for that group: “A returning customer is a customer who placed an order, and whose order history already includes at least one order.” Any earlier order qualifies. A customer whose last purchase was three years ago and who comes back this year is a returning customer, but that customer did not buy in the comparative period, so they are not in S.
The numerator and the denominator are therefore different populations. The numerator contains everyone in S who bought again, plus every lapsed customer from before S who came back. A worked case shows the size of the effect:
The adapted formula gives (7,300 − 4,000) / 10,000, or 33%. The share of 2024 buyers who actually came back is 25%. The eight points of difference are win-back, which is a real result but a different one, credited to the wrong line. Nothing in the arithmetic stops the ratio passing 100%: a store with a quiet base year and a large dormant list that reactivates in a sale year can report more “retained” customers than it started with. A rate that can exceed 100% is not a rate of anything.
The error also moves in a direction that flatters. Reactivation tends to rise in years with heavy promotion, so the adapted formula reports better retention in exactly the years when a store spent most on bringing old buyers back, and the cost of that spend never touches the number.
Neither Shopify nor Klaviyo uses (E−N)/S. Shopify’s cohort report computes, and Klaviyo’s help article describes, a ratio in which every customer in the numerator is also in the denominator.
Shopify’s customer reports include a Customer cohort analysis, and in its default form “customers are grouped into cohorts based on the date that they placed their first order.” The report’s Metric menu lists “number of customers, customer retention rate, gross sales, net sales, or average order value”, and its visualizations include a retention curve. The retention rate lives inside a cohort: each row is a fixed set of named customers, and each later column asks how many of them ordered in that week, month or quarter. Reactivated customers from an older cohort show up in their own row, not in someone else’s. The page’s other customer reports count first-time and returning customers, and one lists every customer whose order history includes two or more orders; none of them is built on a count of lost customers.
Klaviyo’s help article on calculating retention rate uses two segments. The first is customers “who purchased last year AND within the last 6 months”; the second is customers “who purchased from your store last year”. Its example segments define last year as 365 to 730 days ago and the recent window as the last 182 days, so both are rolling windows rather than calendar years. The formula, shown as an image, divides the first by the second and multiplies by 100. Its own example: a first segment of 2,500 profiles against 10,000 profiles who purchased last year, which the article’s example image works out to 25%. Because the first segment is defined as a subset of the second, the result cannot exceed 100%, and a reactivated customer who skipped last year never enters either side.
The same platform does not pretend to know who has left. Its predictive analytics article describes churn as a forecast, not a record: “The probability of a customer churning is based on their number and frequency of orders.” That is the honest form of the missing input. The loss count that the textbook formula takes as given is, in a store, a probability attached to each profile that rises as time passes since the last order.
The fix is to name the customers before counting them. Four steps work in Shopify, in Klaviyo, or in a spreadsheet of order exports:
Shopify’s cohort analysis performs the first three steps automatically for every first-order month at once, which is why it is the better default view than a single annual percentage. A cohort grid also shows the shape of the curve: whether most second orders arrive within the first months or trickle in over a year, which is the detail a single rate throws away and the one that tells a team when a post-purchase email has a buyer still in the market.
There is no sourced industry average for ecommerce that states its formula, and that is the most useful thing to know before comparing against one. The figures that circulate come with little method attached. MoEngage’s industry table, for example, lists “E-Commerce: 38%” under an image credited “Image Source: Factors Affecting Customer Retention, SemRush”, with no sample, no period and no indication of which version of E was used. Given the arithmetic above, the same store can produce 25% or 33% from one year of orders depending on that choice, so a benchmark that does not say which formula it used cannot be compared against.
A defensible benchmark comes from the store’s own data. Compare cohorts at the same age: the share of last spring’s first-time buyers who had ordered again within six months, against the same figure for this spring’s. A rising line means the store is getting better at the second order; a falling one means acquisition is bringing in buyers who do not return, whatever the headline rate says. The retention marketing guide covers what moves that line.
Three related numbers answer narrower questions, and each is clearer when its population is stated.
Segmenting by how recently and how often customers buy is the next step after measuring retention, and the RFM segmentation guide explains how those scores are built and where they mislead.
Relvino does not report a better retention rate; it acts on the input the formula is missing. For every shopper it decides, in under 80ms, whether to send an email, a text or a pop-up, or nothing, using that shopper’s own order history, inside guardrails the brand sets. A cohort grid is the right way to judge whether that works, because it counts the same named customers before and after. Brands that move from Klaviyo complete the technical cutover in about 30 minutes, then measure revenue in a 14-day pilot. The wider program is described in the lifecycle marketing guide, and the DTC marketing guide places retention among the channels a direct brand owns.
Customer retention means keeping existing customers buying from the brand rather than replacing them with new ones. In a store it can only be observed as further orders, because there is no contract to renew. One detail in Shopify’s reports affects how it reads: the customer reports use each customer’s entire order history, so a customer who first bought in November and again in December shows as a repeat customer even in a November-only report.
A reasonable rate is one that is rising against the store’s own earlier cohorts at the same age, not one that matches a published average. Consumables that run out in weeks should see second orders inside a few months; durable goods may take a year or more, so a short window will make a healthy furniture brand look weak. Pick the window from the store’s typical gap between first and second orders, then hold it fixed so cohorts can be compared.
The 80/20 rule, or Pareto principle, is the observation that a minority of customers often accounts for most of the revenue. It is a pattern to check, not a fixed ratio. A store can test it by sorting customers by total spend and seeing what share of revenue the top fifth produced; Shopify lists RFM groups among its customer data, which is a quick way to see that top group. If the split is steep, losing a handful of those customers moves revenue far more than the retention rate suggests.
Retention rate follows a fixed group from a starting period and asks how many came back in a later one. Repeat purchase rate asks what share of all customers ever acquired have two or more orders. In Shopify both parts of that ratio are ready-made: the Returning customers report lists everyone with two or more orders and the One-time customers report lists everyone with exactly one, so repeat rate is the first count over the sum of both; retention rate by cohort shows whether this year’s buyers are coming back more or less often than last year’s.
Without cancellations, churn in a store has to be defined. The usual method is the complement of a cohort retention rate: the share of a starting group that placed no order within a chosen window. The other is a per-customer forecast, which is how Klaviyo treats it, and not every store gets one: Klaviyo shows predictive analytics only once at least 500 customers have placed an order, the account has at least 180 days of order history with orders in the last 30 days, and some customers have placed 3 or more orders. A forecast is useful for deciding whom to contact; the cohort complement is the one to report.
About 30 minutes for the technical cutover: connect the Shopify store, point the sending domain, connect SMS, and order history ingests automatically. Existing cohort reports in Shopify keep working, because they read the store’s orders rather than the messaging platform. Revenue is then measured in a 14-day pilot beside the existing setup.