Cohort Analysis Tool
Upload a Shopify or WooCommerce orders export and see what share of each month's new customers came back, month by month.
How the cohort table is built
Every customer is grouped into a cohort by the month of their first order. For each cohort, the table shows what share of those customers placed another order 1, 2, 3 (and so on) months after their first purchase. Month 0 is always 100%, since every cohort member bought in their first month by definition.
Example: the sample file (12 orders, 7 customers)
- January cohort
- 4 customers
- Month 1 (February) retention
- 2 of 4 ordered again → 50%
- Month 2 (March) retention
- 2 of 4 ordered again → 50%
Overall, 4 of 7 customers (57.1%) in the sample file placed more than one order.
Upload your own orders export and the table rebuilds automatically, with a downloadable CSV of the full retention matrix.
Getting your export
- 01
Shopify
Orders → Export gives a CSV this tool reads directly. Shopify also has its own built-in Customer cohort analysis report under Analytics → Reports, with a heatmap and retention curve, if you'd rather not export a file.
- 02
WooCommerce
Analytics → Orders, then use the download link in the table header to get a CSV with order date, customer and total.
What can throw off the numbers
- Guest checkouts without a captured email can't be matched to a returning customer, so they're excluded rather than counted as one-time.
- All sales channels are combined. If you sell on Shopify POS and online, cohorts mix both unless you filter the export first.
- Recent cohorts have fewer months to prove themselves. A cohort from last month simply hasn't had time to show month-3 retention yet; that's expected, not a data problem.
Questions people ask
What is cohort analysis?
It groups customers by the month of their first purchase, then tracks what share of each group came back in the following months. It shows retention trends that a single overall repeat rate number hides.
What columns does the file need?
An order number, a customer email, an order date, and a total. The tool auto-detects common column names from Shopify and WooCommerce exports.
Why is a cell blank in my results?
A blank cell means that month hasn't happened yet for that cohort relative to today's date, so there's no data to show. A 0% cell means the month has happened, and nobody in that cohort ordered again.
How is this different from Shopify's built-in cohort report?
Shopify's own Customer cohort analysis report (on eligible plans) adds a heatmap view and spend projections. This tool works from any CSV export, including WooCommerce, and gives you a downloadable table.
Related tools
Last reviewed 30 September 2026.
Sources: Shopify Help Center: Exporting orders · Shopify Help Center: Behaviour reports (Reports and analytics) · WooCommerce docs: WooCommerce Analytics
