What you need
One file: your Shopify orders export. That's it. No apps, no integrations, no Shopify Plus.
Go to your Shopify Admin → Orders → Export. Select "All orders" and choose "CSV for Excel, Numbers, and other spreadsheet programs." Shopify will email you the file or download it directly, depending on how many orders you have.
Export all orders, not just a filtered view. If you export only the last 90 days, you'll miss customers who placed their first order 6 months ago and came back recently — and your repeat rate will be artificially high.
The fast way: use our free tool
Drop the CSV into our free retention report. It reads the file entirely in your browser — nothing is uploaded, nothing leaves your computer. In about 10 seconds you'll see:
- Your repeat purchase rate (customer-level, 12-month)
- Drop-off by order number (where you lose people)
- Cohort retention heatmap (which acquisition months retained best)
- Median days to second order (your reorder window)
- First-product analysis (which products lead to repeats)
If you just want the number and don't care about the manual process, you can stop here.
The manual way: spreadsheet calculation
If you want to understand exactly how the number works, here's how to do it in Google Sheets or Excel.
Open the CSV and find the key columns
You need two columns: Email (to identify unique customers) and Created at (the order date). The email column is the most reliable customer identifier in Shopify exports — the "Name" column can have duplicates and guest orders sometimes lack a customer ID.
Filter to paid orders only
The export includes cancelled, refunded, and pending orders. Filter the Financial Status column to keep only "paid" and "partially_refunded" rows. Remove rows where Email is blank (these are typically POS orders or test orders without customer data).
Count orders per customer
Create a pivot table (or use COUNTIF) to count how many orders each email address placed. In Google Sheets:
Put this in a new column next to each row, where B is your Email column. This gives you each customer's total order count.
Count unique customers
Get the total number of unique email addresses. In a new cell:
Or use a pivot table — the number of rows in the pivot is your unique customer count.
Count repeat customers
Count email addresses that appear more than once:
Or: count unique emails with COUNTIF > 1. This is the number of customers who ordered at least twice.
Calculate the rate
Repeat Purchase Rate = (Repeat customers ÷ Total unique customers) × 100
If you have 1,200 unique customers and 264 of them ordered more than once, your repeat purchase rate is 22%.
Common mistakes that produce wrong numbers
1. Including test orders
If you've placed test orders using your own email, those show up as a "repeat customer." Filter out any orders with the #0 prefix or orders you know are tests before counting.
2. Not deduplicating multi-line orders
Shopify exports one row per line item, not per order. An order with 3 products creates 3 rows. If you count rows as orders, you'll overcount. Deduplicate by the Name column (which holds the order number, like #1042) before counting orders per customer.
An order with 5 items creates 5 rows in the CSV. If you count those as 5 orders for one customer, they look like a repeat buyer when they may have only ordered once. Always deduplicate by order number first.
3. Using the wrong time window
All-time repeat rate and 12-month repeat rate are different metrics. If your store is 3 years old and you use all orders, the rate will be higher because customers had more time to return. For benchmarking purposes, use a rolling 12-month window.
4. Counting by "Customer ID" instead of email
Guest checkouts don't always generate consistent customer IDs in Shopify. The same person checking out as a guest twice may get two different IDs. Email is the most reliable identifier across orders.
5. Including subscription auto-renewals
If you have a subscription product, auto-renewal orders inflate your repeat rate — those customers didn't actively choose to come back. Whether to include them depends on what question you're asking. For "active retention" analysis, consider filtering them out.
Beyond the basic number
The repeat purchase rate alone tells you how many customers came back. It doesn't tell you when they came back, which products brought them back, or where in the customer journey you're losing people.
For that, you need:
- Days-to-second-order distribution — when do repeat buyers typically return?
- Drop-off by order number — is the gap between Order 1 and 2 bigger than between 2 and 3?
- Cohort retention — are customers acquired in recent months more or less likely to return than older ones?
- First-product analysis — which first purchase leads to the highest repeat rate?
Our free tool calculates all of these from the same CSV export. The spreadsheet method works for the basic rate, but these deeper analyses require more complex pivoting — or just drop the file in and let the tool handle it.