Skip to content
Retention

Repeat purchase rate on Shopify: how to measure it and what moves it

What repeat purchase rate is, the formula, how to read it from Shopify's own reports, why benchmarks mislead, and the five levers that reliably move it.

AhmadShopify Architect

Published 6 min read

Repeat purchase rate is the retention metric most Shopify merchants look at first, and the one most often misread. The number itself is simple. The decisions around it, which customers, which window, which denominator, are where stores go wrong. This article covers the definition, the calculation, where to find it in Shopify, why benchmarks mislead, and what actually moves it.

What repeat purchase rate is

Repeat purchase rate is the percentage of customers who have placed more than one order. Written out:

repeat purchase rate = customers with 2+ orders / all customers with 1+ orders × 100

That is the whole formula. The variables are in the words “customers” and “orders”, because both depend on a time window and on how you count people.

Three choices change the number materially:

  • The window. All-time repeat rate is a different metric from twelve-month repeat rate, which is different again from “customers acquired in Q1 who reordered within 90 days”. Longer windows always look better, because customers have had more time.
  • The denominator. “All customers” includes people who bought once three years ago. A cohort denominator, customers who placed their first order in a given month, is the one you can act on.
  • Identity. Guest checkouts, a second email address and a phone-only POS sale can all turn one person into three customers. Every split inflates the denominator and deflates the rate.

Repeat purchase rate versus returning customer rate

Shopify’s own reporting uses the phrase returning customer rate. In Shopify’s definition, a returning customer is one who placed an order in the period and had placed at least one order before it. That makes returning customer rate the share of orders in a period that came from existing customers, which is not the same as the share of customers who ever reordered.

Both are useful. Returning customer rate tells you how much of this month’s business came from people you already had. Repeat purchase rate tells you how good you are at turning first orders into second ones. Mixing them up is the most common reason two people at the same company quote different numbers for “retention”. Shopify documents its customer reports in the Help Center.

How to read it from Shopify

You do not need an app to get a first number. Shopify Analytics exposes the returning customer rate directly, and the customer reports let you rebuild a cohort view by hand.

  1. Open Analytics. In the Shopify admin, go to Analytics. The overview shows Returning customer rate for the selected date range, with a comparison to the previous period.
  2. Set a sensible range. Pick a full month or quarter. A seven-day range will swing wildly with a single campaign.
  3. Open Reports, then Customers. The Customers over time report splits new and returning customers by day, week or month. This is the series to chart.
  4. Build a cohort. Use the First-time vs returning customer sales report, or export orders with the customer ID and first order date, and group customers by the month of their first order. For each cohort, count how many placed a second order within 30, 60 and 90 days.
  5. Segment by first product. Group the same cohort by the product in the first order. The spread between products is usually larger than any month-to-month change in the headline number.

The export step is tedious, which is why most stores stop at the headline number. It is also where the useful information is.

Why benchmarks mislead

Every retention article offers a benchmark, and almost none of them agree, because they are measuring different things. A benchmark built on all-time repeat rate across every store on a platform will be higher than a 90-day cohort benchmark for a single category. A consumables brand with a monthly replenishment cycle and a furniture brand with a seven-year one are not comparable on any window, and a blended industry average tells neither of them anything.

Rather than quote a number here that would be wrong for your store, a more reliable approach:

  • Compare the store to itself. Trend the same cohort metric month over month. A change in your own number under a fixed definition is real; a gap to someone else’s average may not be.
  • Compare products to products. The first product a customer buys predicts repeat behavior more than almost anything else you can measure early. Rank your entry products by 90-day repeat rate.
  • Compare channels to channels. Customers acquired through referrals, subscriptions and organic search often repeat at different rates from paid social. Keep the window fixed and the comparison becomes meaningful.

If you want external context, use sources that publish their definition alongside the figure, and check that the definition matches yours before you compare.

Five things that move it

These are the levers we have seen move repeat rate consistently across the stores we have worked on. None of them is a trick, and each one is more effective when it reads the same customer record as the others.

1. Follow up on delivery, not on order

Most post-purchase flows fire on a timer from the order date. The customer’s experience starts when the parcel arrives. A review request or a “how is it going” message timed from the delivery event lands when the product is in hand, and it is suppressed automatically if there is an open support ticket. Timing from fulfillment events is one of the simplest changes with a visible effect on second orders.

2. Give the customer a reason to come back before they need one

Points, store credit and tier progress are reasons to return that exist before the product runs out. The important part is that the reason is visible: in the account, at checkout and in the follow-up message, with the same balance everywhere. A loyalty balance the customer cannot see does not change behavior.

3. Make the second-order offer specific

A blanket 10% off for everyone is easy to run and easy to ignore. An offer that references what the customer bought, what they wishlisted, or what sold out and is now back is noticeably different. The information to do that exists in most stores already; it is just spread across apps.

4. Time replenishment to the product

For consumables, repeat rate is mostly a timing problem. If a product lasts about six weeks, the reminder should arrive in week five, not week two and not week ten. Subscriptions solve this structurally; for everything else, a replenishment flow keyed to the product’s actual cycle does most of the work.

5. Remove the friction you cannot see

A customer who has to re-enter an address, hunt for their order status, or email support to use a reward is a customer who will consider buying elsewhere. The account hub, order tracking and reward redemption at checkout are retention features even though none of them looks like a campaign.

How Ayra reports it

Ayra’s Retention Analytics module reports repeat purchase rate and returning customer rate side by side, with the definitions printed on the report, so the two are never confused. Cohorts are built automatically by first-order month and by first product, with 30, 60 and 90-day windows, and revenue from each repeat order is attributed to at most one module or flow, so loyalty, flows and reviews cannot each claim the same second order. The same profile that powers the report powers the actions above, which is the point: the metric and the levers read the same customer.

If you want to see your own numbers under these definitions, join the waitlist. If you are weighing a loyalty app that ships its own retention reporting, our comparison with LoyaltyLion covers where it still wins.

All articles

Private beta

Join the waitlist.

We're onboarding Shopify merchants in small batches. Leave your email and store, and we'll reach out when your spot opens.

One email when your spot opens. Unsubscribe any time.