Tools · Order analyzer

How many of your customers come back?

Drop the orders export from your Shopify admin. Your browser works out the repeat purchase rate, the time to a second order, monthly cohorts and a rough lifetime value. The file never leaves your computer.

  • 1 CSV export
  • 0 uploads
  • No sign-up
Analyzer

Your orders, read on your computer.

Drop the orders CSV from Shopify. The results appear in a second or two.

Your file stays here

Your browser reads the file and does the maths on this device. Nothing is uploaded, stored or sent, so we never see your customers or your numbers. Close the tab and it’s gone.

Your orders export

Drag your orders CSV here

or

The orders export from Shopify, as CSV. One row per product line is fine.

Made-up orders from fake customers on example.com. Download the sample CSV

How to export your orders from Shopify
  1. In your Shopify admin, open Orders and click Export.
  2. Pick which orders: all of them, or Orders by date going back as far as you can.
  3. Under Export as, pick a CSV format and click Export orders.
  4. Up to 50 orders download straight away. Bigger exports arrive by email.

Showing the fake sample data. Orders: 298. Customers: 174. Repeat purchase rate: 36.2%.

Example: fake sample data2 Jul 2025 to 30 Sept 2026
Repeat purchase rate36.2%63 of 174 customers ordered more than once.
  • Second order within 90 days40.5%Of 131 customers with at least 90 days of data.Put your 90-day number in the retention calculator →
  • Median days to a second order43 daysFrom first to second order.
  • Median days between later orders46 daysSecond to third order, and onwards.
  • Orders per customer1.7Orders counted ÷ customers.
  • Average order value€36.33Total, with tax and shipping.
  • Orders from returning customers41.6%Share of all orders that weren’t a first order.
  • Revenue per customer so far€62.23Revenue ÷ customers. A rough historical lifetime value.
  • Revenue per customer, first 12 months€65.70Of 33 customers with a full year of data.
Customers by number of orders
  • 1 order111
  • 2 orders35
  • 3 orders8
  • 4 or more20
Came back within 30, 60 and 90 days, by month of first order
First orderCustomers30 days60 days90 days
Jul 20251414.3%28.6%28.6%
Aug 2025110%27.3%36.4%
Sept 202580%12.5%25%
Oct 20251315.4%30.8%30.8%
Nov 2025119.1%36.4%54.5%
Dec 2025119.1%18.2%18.2%
Jan 20261010%40%40%
Feb 202680%37.5%50%
Mar 2026137.7%38.5%46.2%
Apr 20261225%33.3%50%
May 2026110%27.3%45.5%
Jun 2026911.1%55.6%66.7%
Jul 20261010%30%too early
Aug 2026195.3%too earlytoo early
Sept 202614too earlytoo earlytoo early

“Too early” means that month plus the window isn’t fully in your data yet.

What we counted
Period
2 Jul 2025 to 30 Sept 2026
Orders counted
298
Customers (unique email addresses)
174
Left out: refunded
7
Left out: voided
5
Left out: cancelled
0
Left out: no email address
0
Left out: date or total unreadable
0

Historical numbers from your own export, with the rules described below. Not a forecast.

Waitlist · in development

Want more of them to come back?

Oftenflow is an AI agent for Shopify stores, still in development. It learns when each customer is likely to reorder and proposes a reminder at that moment.

You approve, your own email tool sends. You’d see the effect in the same numbers as on this page.

See how it works →

Planned: 30% off for the first 100 stores. One email when your invite is ready, no newsletter.

How we calculate this

Plain counting, in plain sight.

The analyzer reads four columns from your Shopify orders export: Name, Email, Created at and Total. It uses Financial Status and Canceled at to leave out orders that didn’t stick.

The definitions
repeat purchase rate
= customers with 2 or more orders ÷ all customers
second order within 90 days
= customers who ordered again within 90 days ÷ customers whose first order is at least 90 days before your last order
median days to a second order
= the middle value of the days from first to second order
orders per customer
= orders ÷ customers
average order value
= sum of Total ÷ orders
revenue per customer so far
= sum of Total ÷ customers
cohort cell
= customers from that month with a second order inside the window ÷ all customers from that month

Step by step

  1. Shopify puts every product on its own row. We group the rows by order number (the Name column) and take the date, Total and status from that order’s rows.
  2. Orders marked refunded or voided, and orders with a date in Canceled at, are left out. Partially refunded orders stay in, at their full Total.
  3. Each email address, in lower case, is one customer. Orders without an email address are skipped and counted, so you can see how many.
  4. A customer’s first order in the file counts as their first order. Export as far back as you can, or older customers will look new.
  5. Windows of 30, 60 and 90 days and 12 months only include customers who have had the whole window, up to the last order in your file.
  6. Days come from the timestamps in Created at, including the time zone Shopify writes next to them.

What this leaves out

  • Margin. Multiply revenue per customer by your gross margin for a profit view.
  • Refunds on partially refunded orders. Total is used as exported, with tax and shipping.
  • Customers who changed email address. They count as two people.
  • Anything outside your export. Revenue per customer so far grows with the length of the export, so compare like with like.
  • Small cohorts swing a lot. With ten customers, each one is worth 10 points.
  • Seasonality. A December cohort and a June cohort can behave differently for reasons that have nothing to do with you.
Questions

Questions about the analyzer

Is my file uploaded anywhere?

No. The page reads the file with your browser’s own file reader and does the maths on your computer. Nothing is uploaded, stored or sent to us or anyone else, and the results disappear when you close the tab.

Which Shopify export do I need?

The orders export: in your Shopify admin, open Orders and click Export, then pick a CSV format. A customers or products export won’t work, and the page tells you when you picked one of those.

What is a good repeat purchase rate?

It depends on what you sell and how long your export covers. Coffee and pet food get reordered; a sofa rarely does. The most useful comparison is your own earlier cohorts. The 90-day number is the fairest one to track, because it doesn’t grow just because your export covers more years.

Why does this differ from other reports?

Reports differ in what they count: the period, whether refunded orders count and how a customer is recognised. This page uses the email address and the period in your file, and leaves out refunded, voided and cancelled orders. The method on this page lists every rule.

Does it work with an export from another platform?

Often, yes. The file needs an order number, an email address, an order date and a total per row. Common column names such as Order ID, Customer Email, Order Date and Total Price are recognised.

Waitlist · in development

Get an invite when we open the doors.

Planned: 30% off for the first 100 stores. One email when your invite is ready, no newsletter.

  • Plans from €29 a month, never per contact
  • Works with the email tool you already use
  • No card, no commitment
Example from the Oftenflow app: overnight the agent read new orders, updated buying rhythms and wrote drafts.
Join the waitlist