October 16, 2026

Customer Retention Rate: The Formula Needs a Loss No Store Records

Rahul Talari
Writer Image
Rahul Talari
Founder & CEO, Relvino

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.

The formula as the guides state it

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.

The ecommerce adaptation

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)”.

What the adapted formula actually counts

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:

  • S: 10,000 customers bought in 2024.
  • Repeat buyers: 2,500 of those 10,000 bought again in 2025.
  • Reactivated buyers: 800 customers whose last order was in 2022 or 2023 also came back in 2025.
  • N: 4,000 first-time buyers in 2025, so E is 7,300.

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.

How Shopify and Klaviyo calculate it instead

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: a metric inside the cohort grid

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: two segments and a division

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.

  • Textbook CRR, (E−N)/S · What it counts: Customers kept, from a start count, an end count and new customers · The event it needs: A recorded loss, such as a cancellation · Where a Shopify store gets it: Not available: a store records no departures
  • Adapted ecommerce CRR · What it counts: Non-new buyers in a period over buyers in an earlier period · The event it needs: Orders only; mixes repeat and reactivated buyers · Where a Shopify store gets it: Hand-calculated from order exports
  • Cohort retention rate · What it counts: Share of a first-order cohort ordering in each later period · The event it needs: Orders, tied to named customers · Where a Shopify store gets it: Shopify Customer cohort analysis
  • Segment retention rate · What it counts: Share of last year’s buyers who bought again recently · The event it needs: Orders, tied to named customers · Where a Shopify store gets it: Two Klaviyo segments
  • Churn risk · What it counts: Per-customer probability of not ordering again · The event it needs: None; it is a prediction · Where a Shopify store gets it: Klaviyo predictive analytics

How to calculate customer retention rate on store data

The fix is to name the customers before counting them. Four steps work in Shopify, in Klaviyo, or in a spreadsheet of order exports:

  1. Freeze the starting group. Export the customer IDs of everyone who ordered in the base period. That list is S, and it does not change afterwards.
  2. Look only at those IDs in the later period. Count how many of them placed at least one order. That count is the numerator; anyone not on the frozen list is ignored, however recently they bought.
  3. Divide and label the window. Repeat buyers over S, times 100, reported with both periods named, because a stated window is what lets two numbers be compared. A store selling a product bought once a year needs a longer later period than a store selling coffee, the point LoyaltyLion makes with laptops.
  4. Report reactivation on its own line. Customers who returned after skipping the base period are worth counting, as a win-back figure. Kept separate, each number means one thing.

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.

What is a good customer retention rate

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.

Rates that travel with retention rate

Three related numbers answer narrower questions, and each is clearer when its population is stated.

  • Repeat purchase rate. Customers with two or more orders over all customers. Shopify’s Returning customers report lists exactly that group. It has no starting cohort, so it rises slowly with the age of the store and says more about history than about this year.
  • Churn rate. In a subscription business, cancellations over the starting base. In a store it can only be the complement of a cohort retention rate (the share of a cohort that did not order in the window) or a per-customer probability like Klaviyo’s.
  • Customer lifetime value. Spend per customer over time. Shopify’s cohort analysis can show amount spent per customer by cohort, which turns a retention curve into revenue.

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.

Where Relvino fits

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.

Three checks on any retention number

  • Is everyone in the numerator also in the denominator? If the calculation subtracts new customers from a period’s buyers, it is not, and reactivated customers are inflating it.
  • Where did the “lost” count come from? A store cannot observe a departure. If a formula uses one, someone chose a cut-off and called it a fact.
  • Could it exceed 100%? A properly built retention rate cannot. If the method allows it, the number is a ratio of two crowds, not the share of one crowd that came back.

Frequently asked questions

What does customer retention mean?

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.

What is a reasonable retention rate?

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.

How does the 80/20 rule apply to customer retention?

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.

What is the difference between customer retention rate and repeat purchase rate?

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.

How is churn rate calculated for an online store?

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.

How long does it take to migrate to Relvino?

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.

More blogs.

Get up to 10x revenue uplift in 90 days.