Divide customers with 2 or more orders by all customers with at least 1 order, in the same window. Multiply by 100. Measure by first-order cohort, or your Shopify and Klaviyo numbers will disagree.
To calculate repeat purchase rate, divide the customers who placed 2 or more orders by all customers who placed at least 1 order, in the same window. Multiply by 100. Then measure it by first-order cohort, or your Shopify and Klaviyo numbers will disagree.
How to calculate repeat purchase rate: the formula
Repeat purchase rate = customers with 2 or more orders ÷ customers with 1 or more orders × 100
Every page that ranks for this gives the same formula. Count customers, not orders. A customer with 5 orders counts once.
Two small rules keep the inputs clean:
- Leave out people who never bought. Glew calls the bottom of the formula "paying customers." In Klaviyo this matters, since your list holds plenty of subscribers with 0 orders.
- Leave out canceled and fully refunded orders. Kefi Commerce makes this point. An order you gave the money back on is not a sale.
If you have the 2 counts, the repeat purchase rate calculator does the math for a 30, 90 or 365 day window.
The formula is the easy part. The hard part is which customers land in each count. That is where brands get it wrong.
Why do Shopify and Klaviyo give you different numbers?
They count different orders. Here is what each one does with the same window.
Method What counts as a repeat customer Shopify's Returning customers report 2 or more orders in the customer's whole history, even orders outside the dates you picked Klaviyo community manager's method 2 or more orders inside the window. Orders before or after it do not count Klaviyo cohort chart Customers grouped by month, then tracked month by month after that Most blog formulas "Repeat customers in the period." Most never say which orders countShopify's help center says it plainly. Customer reports use "the entire order history" of each customer, "not only the orders that were placed during the selected timeframe." It gives an example. A customer who first buys in November and buys again in December "still displays as a repeat customer" in a November report.
The Klaviyo method works the other way. A Klaviyo community manager gave it as the best answer on the forum. Build one segment of everyone who placed an order at least once in your time frame. Build a second of everyone who placed at least 2 in the same time frame. Divide the second by the first.
So take that November customer. Shopify counts them as a repeat buyer for November. The Klaviyo method, run on November, does not. Same store, same month, 2 answers. Neither tool is broken. They are answering 2 different questions.
What are the 3 ways brands get repeat purchase rate wrong?
1. They count orders, not customers
"Repeat orders ÷ total orders" is a different number. One loyal customer with 10 orders pushes it up on their own. Your rate should tell you how many people came back, so count people.
2. They mix windows
A 30 day rate and a 365 day rate are not the same metric. Omniconvert notes that a longer window gives a higher rate, because customers have more time to come back. Pick one window. State it every time you report the number.
Then match it to how often people buy from you. A brand selling a product that runs out in a month can use 90 days. A brand selling something people buy once a year needs 365.
3. They judge customers who have not had time to come back
This is the one that fools people most. Say you use a 90 day window and you check it today. Customers who bought for the first time last week are in the bottom of your formula. They have had 7 days, not 90. They drag the rate down, and it looks like retention got worse.
It gets worse after a big sale. Growave warns to wait a few months after high-acquisition periods like Black Friday before you judge the rate. A flood of new first orders lands in the bottom of the formula all at once.
How do you calculate repeat purchase rate by cohort?
A cohort is a group of customers who did the same thing in the same period. Here, it means everyone whose first order fell in the same month. This method fixes all 3 mistakes at once.
- Export your orders from Shopify. Keep customer, order date and order status. Drop canceled and fully refunded orders.
- Find each customer's first order date. That date puts them in a cohort. A customer who first bought in March is in the March cohort.
- Pick your window. Use 90 or 365 days, based on how often people buy from you. Do not change it later.
- For each customer, check for a 2nd order inside the window. Count from their own first order date, not from the start of the month.
- Divide. Customers with a 2nd order inside the window, ÷ everyone in the cohort. Multiply by 100.
- Only report cohorts that are old enough. With a 90 day window, the newest cohort you can report is 90 days past the end of its month.
Now every customer gets the same amount of time. No order from before their first one sneaks in. And a March number means the same thing as a June number.
Can you see repeat purchase rate in Klaviyo without a spreadsheet?
Partly. Go to Analytics, then Metrics, then Placed Order, then the Cohorts tab. Klaviyo groups profiles by month and shows the last 12 months as rows. The columns show what each group did 0 to 11 months later. Klaviyo's help center says this report is part of its base marketing app.
It is a fast way to spot a cohort that came back less than the others. But each cell shows one month on its own. A customer who buys in month 1 and again in month 2 shows up in both. So you cannot add the cells together to get a repeat purchase rate. Use the chart to spot trends. Use the export for the number you report.
What should you compare your number to?
Your own last cohort.
Klaviyo's glossary says a good repeat purchase rate is "typically around 20% to 30%." Kefi Commerce says many stores fall between 20% and 40%. Growave puts consumables and beauty at roughly 30% to 50%. None of the 3 names a source. None says which window or which counting method it used.
A number from a different window and a different method is not something you can compare to. A March cohort next to a February cohort, counted the same way, is.
What does the number tell you to fix?
Your repeat purchase rate is mostly decided by what happens after the first order.
The post-purchase flow gets the first product used. The cross-sell email flow offers a second product from your own order data. If your cohorts come back slowly, start there. For the wider list, see how to increase repeat purchases.
For how these pieces fit together, start at the ecommerce customer retention hub.
Get the whole system
Your repeat purchase rate is the score. The flows after the first order are how you move it.
12 flows, 37 emails, one job: repeat purchases. Every trigger, every send delay, every exit condition, written out so you can build them this month.