Skip to content
@ Retention Marketers
Explainer

What is repeat purchase rate?

Repeat purchase rate is the share of customers who bought more than once. The published formulas disagree about which customers go in the denominator, about whether the window is a month or a lifetime, and about whether one of the metric's own names points at a completely different number. What each version measures, and what to write down beside it.

11 min read Published Updated How this was sourced

Repeat purchase rate is the share of customers who bought from you more than once.

Every guide opens with a version of that sentence. Almost none of them computes the same number.

Three choices sit inside that number: which customers count, how long the window is, and which metric the name is pointing at.

Change any one and the figure moves without a single customer behaving differently.

Repeat purchase rate, as published on 2026-08-27. One formula counts customers who bought twice inside a chosen window. A second counts anyone who has ever bought before, with no window at all. A third divides by orders rather than customers, and never returns a smaller number on the same store. The published benchmarks put the average for one category anywhere from the low twenties to the mid forties, and none prints which customers went into the count. One of the metric’s own synonyms names a dashboard figure that counts sessions, not people.

What is repeat purchase rate?

Repeat purchase rate is the percentage of your customers who bought more than once.

count.co’s metric page states it plainly: “Repeat Purchase Rate measures the percentage of customers who make more than one purchase from your business within a specific time period.”

Hold on to the last four words. The period is a choice, and it is one of the three choices that make two honest stores report different numbers.

Is it the same as retention rate?

No, and two publishers say so directly.

Yespo’s glossary draws the line: “repeat purchase rate is about repeat transactions within a defined period, while retention asks whether customers continue the relationship overall.” Retention is the longer-horizon question. Repeat purchase rate is the near-term one, which is why it shows up on ecommerce dashboards where retention rate does not.

Is it the same as purchase frequency?

No again. Repeat purchase rate is a share of people; purchase frequency is a rate per person.

Yotpo keeps them apart: purchase frequency “measures the average number of times a customer buys within that same period”, while the rate answers what portion of customers came back at all. A shopper on their fifth order lifts frequency five times over and lifts the rate once, exactly like a shopper on their second. That gap between people and orders comes back below, and it is where the denominator first splits.

What is the standard formula?

The version most sources mean divides the customers who bought more than once by all the customers in the period.

count.co writes it as “Repeat Purchase Rate = (Number of Customers with Multiple Purchases / Total Number of Customers) × 100”. Yotpo prints the same shape. Customers over customers, times one hundred.

What number does the formula give?

On its own store, a clean one. On three different stores, three different numbers — because the stores differ, not the method.

count.co’s worked example is “(750 / 2,500) × 100 = 30%”. Yespo’s is “2,200 ÷ 8,000 × 100 = 27.5%”. Yotpo’s is “(1,250 ÷ 5,000) × 100”, which the page puts at 25%. Same formula, three stores, and nothing yet to disagree about. The disagreement starts with what goes in the denominator.

Which customers count as repeat?

Here the formula that looked settled forks.

The standard reading needs two purchases inside the chosen window. But Geckoboard counts a different population: “If someone made their first purchase with your site one year ago and only made their second purchase last week, they still count as a repeat customer.” Under that reading a customer is “repeat” if they ever bought before, whenever that was. Under the window reading, they are not, unless both purchases landed inside the window.

Those are two different groups of people wearing one label.

Picture a shopper who bought once this month and once the year before. Set the window to this month and the standard reading sees a single purchase, so it does not count her. The lifetime reading counts her, because she has bought before at all. Same shopper, two verdicts, and the only thing that changed is where the definition drew its line.

On the same raw data the two readings return different numbers. No source here publishes both counts for one store, so the size of the gap is not knowable from what is on the page — only its direction.

Does the denominator have to be customers at all?

No. One guide divides by orders instead.

CCBill calculates the rate by “dividing the number of purchases from repeat customers by the total number of purchases made during a given period”. That is a different metric with the same name. It answers what share of your order volume comes from customers you already had — a real question, and not the same one as what share of your customers came back.

Does the order-based version give a bigger number?

Yes, on the same store — never smaller, and strictly larger whenever the store has both repeat and one-time customers.

The reason is arithmetic. Repeat customers place two or more orders each; one-time customers place one. So orders from repeat customers, as a share of all orders, is at least the share of repeat customers among all customers. The two rates meet only at the extremes — every customer a repeat, or none at all — and the order-based rate is the larger everywhere in between.

Which one you mean is not a detail. A finance team asking how much revenue rides on customers you already have wants the order-based share. A retention team asking whether buyers come back wants the customer-based one. Report the wrong one against the other’s benchmark and a healthy store can look like it is leaking, or a leaky one can look fine. Neither number is wrong. Only one of them is the metric everyone else is benchmarking.

What about refunds and same-day repeats?

Two more definitional choices hide inside the numerator, and count.co names both.

Refunded orders inflate the count if you leave them in. count.co also rules out the same-day case: “A customer buying twice on the same day shouldn’t count as a repeat purchaser.” Its fix is a floor: “Set minimum time intervals (e.g., 24-48 hours) between qualifying purchases”. Whether two orders an hour apart count as loyalty or as one shopping trip is, again, a decision somebody makes before the ratio is taken.

How long is the window?

The sources split on whether there even is one.

Yespo says to “always define your time window first and apply it consistently.” Geckoboard says the opposite: “Usually, there’s no time limit on what counts as a repeat customer.” One treats the window as a setting you fix and hold. The other treats “repeat” as a status a customer keeps for life.

How much does the window change the number?

Enough that one store can post two entirely different rates with nothing but the window moving.

bloy’s Shopify guide puts one store at 12% measured over thirty days and 42% measured over a year, and says “both numbers can be accurate”. Same store, same customers, same formula.

The thirty-day figure reads recent activity; the year figure reads the loyalty base built up over time. Both are true, and they describe the same store.

The window is not always printed beside the number, and the denominator behind it almost never is — which is what makes two published rates so hard to compare.

Is a cohort the same as a snapshot?

No, and the difference is why a store-wide number can fall while every group inside it holds.

A period snapshot counts everyone who bought in the window. A cohort holds a group fixed from its first purchase — Yespo describes measuring “the repeat purchase rate of customers who first bought in April and check how many of them made an additional purchase by June.” When acquisition surges, the snapshot’s denominator swells with new buyers who have not had time to return, so the blended figure drops “even when absolute repeat purchase volume is growing”. The cohorts did not move. The blend did.

Is “returning customer rate” the same thing?

Usually it is a synonym. Sometimes it is a different metric altogether, and a store can end up comparing the two without noticing the swap.

Yespo lists the names as interchangeable: “The metric appears under different names, including repeat customer rate and returning customer rate, but teams also use repurchase rate as a brief term.” So far, so harmless. The trouble is that one of those names is also a live dashboard metric. Per bloy, “Shopify’s Returning Customer Rate is session-based: it counts the number of store sessions from returning visitors divided by total sessions.” A shopper who visits five times and buys once moves that dashboard number and leaves the true repeat rate flat.

Why does that naming clash matter?

Because it makes an apples-to-oranges comparison look like an apples-to-apples one.

Read your storefront’s built-in “returning customer” figure, then compare it to a published “repeat purchase rate” benchmark, and you have compared a number built from sessions to a number built from customers. They share a name and measure different things. The comparison feels valid and is not.

What is a good repeat purchase rate?

The honest answer is that the published figures are not on one scale.

Klaviyo’s glossary gives a single cross-category band: “A good repeat purchase rate is typically around 20% to 30%.” Yotpo splits it by category instead — consumables “in the 30-40% range”, fashion “between 25-35%”, electronics “between 10-20% might be considered excellent”. Geckoboard publishes a third general band: “most ecommerce businesses have 25-30% percent returning customers.” Three publishers, three shapes of answer.

Why don’t the benchmarks agree with each other?

Because the number under each one was built differently, and none of them shows its work.

Take one category. Fashion’s published “average” runs 20-30% in count.co’s twelve-month table, 25-35% in Yotpo’s bands, and 35-45% in bloy’s 365-day column. Three ranges for one kind of store. Two of those tables, count.co’s and bloy’s, cover roughly the same span — about a year — and still land in different places, so the window is not what separates them. count.co even flags its own table as an “Industry estimate” rather than measured data. And not one of those pages states which denominator it used — customers, returning-customers, or orders — which is the difference that could actually account for the gap. Comparing your figure to any of them is only meaningful if both were built the same way, and you cannot tell whether they were.

Which benchmark can you actually use?

The one that holds the category and the method constant automatically: your own store, cohort over cohort.

An outside band cannot tell you whether the gap between it and your number is a real difference in loyalty or just a different denominator and a different window.

Your own trend can, because the settings stay put from one reading to the next. Hold the formula, the window, and the clean-up rules still, and any movement left over is a movement in customer behaviour rather than in the definition.

That is the only comparison on this page guaranteed to compare like with like.

What should you write down beside the number?

Four things, and they take one line:

  • The denominator. Customers who bought twice in the window, customers who ever bought before, or orders from repeat customers — three different populations.
  • The window. In days, and whether there is one at all. A lifetime rate and a thirty-day rate are not two views of one store.
  • The clean-up rules. Whether refunds are stripped and whether same-day repeats count as one purchase or two.
  • Which metric. A customer-based repeat rate, or a session-based dashboard figure that happens to share the name.

A repeat purchase rate with those four beside it can be compared to last quarter’s. Without them it cannot be compared to anything, including itself.

What does this change about reading a repeat-purchase figure?

Treat a published rate as a number plus four hidden settings, and assume the settings differ from yours until you have read them.

When your dashboard and a benchmark disagree, the gap is more likely a denominator, a window, or a shared name than a fact about your customers. And when your own rate moves, the first question is whether anything in the calculation moved with it — a new acquisition surge, a wider window, a switch from the customer number to the session one. A metric that can double or halve on the same customers is a metric that earns its assumptions being written down.