Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Cohort Retention Analyzer

Retention, churn and revenue by cohort — a heatmap triangle from any CSV or Excel export.

Data No upload Works offline Free, no sign-up

1. Activity or order data

One row per order, login or other activity, with a user or customer ID and a date. A signup date and an amount are optional.

Or paste the table (from Excel, Google Sheets or a CSV)

Next steps

About the Cohort Retention Analyzer

A cohort retention table groups your users or customers by when they started — the week or month of their first order, signup or visit — and shows, for every later period, how many of each group came back. It answers questions a single retention rate hides: do people who joined after the redesign stay longer, does retention level off after the third month, and which months brought customers who kept buying?

Open an export with one row per order, login or event — any file with a user or customer ID and a date — and the analyzer builds the triangle: one row per cohort, one column per period since joining, coloured from low to high. Switch between retention, rolling retention, churn, active users and, with an amount column, revenue, revenue retention and cumulative revenue per user. Download every table as a coloured Excel workbook or as CSV. Everything runs in your browser: the file is not uploaded.

How to use it

  1. Open a CSV or Excel file (or paste the table) with one row per order, login or other activity. It needs a user or customer ID and a date; a signup date and an amount are optional. No file at hand? Try it with made-up sample orders.
  2. Check the columns the analyzer picked: the ID, the activity or order date and, if you have one, the revenue column.
  3. Choose how users get their cohort: their first activity in the data, or a signup or first-order date column.
  4. Pick days, weeks, months or quarters. Dates are recognised in most forms (2026-01-15, 15/01/2026, 01/15/2026, Jan 15, 2026, Unix time, Excel dates); if 03/04 could be read either way, choose the order.
  5. Read the triangle and switch the figure under Show. Then Download Excel (every table, with the colours and the settings), Download CSV, or Copy table to paste into a spreadsheet.

Examples

Monthly retention from four orders
Input
customer_id,order_date
C1,2026-01-05
C1,2026-02-28
C2,2026-01-20
C3,2026-02-01
Result
Cohort     Users  Month 0  Month 1
Jan 2026   2      100.0%   50.0%
Feb 2026   1      100.0%
Average    3      100.0%   50.0%

C1 and C2 joined in January and only C1 ordered again in February, so January’s month-1 retention is 1 of 2 = 50%.

Retention and rolling retention
Input
A customer orders in months 0, 1 and 3, but not in month 2.
Result
Retention, month 2: not counted (no order that month)
Rolling retention, month 2: counted (they came back later)
Revenue retention
Input
The January cohort spends 1,000 in January and 450 in March.
Result
Revenue retention, month 2 = 450 ÷ 1,000 = 45%

Common uses

  • Checking whether customers who joined after a change (a new onboarding, price or product) come back more often than earlier ones.
  • Seeing when retention levels off, to plan win-back e-mails or offers before most people drop away.
  • Repeat-purchase rates of an online shop by month of first order, with the revenue each cohort brings later.
  • Weekly retention of an app or game from an event export (user ID and event time).
  • Monthly cohort tables for an investor update or a board pack, as a coloured Excel sheet.

How the figures are worked out

Each user belongs to one cohort: the period of their first activity in the file, or of their signup or first-order date when you choose that column. Period 0 is the cohort’s own period, period 1 the next one, and so on. A user counts once in a period however many rows they have in it.

  • Retention % = users active in period k ÷ users in the cohort.
  • Rolling retention % = users active in period k or any later period ÷ users in the cohort. It never rises from one period to the next, and it counts people who skip a month and come back.
  • Churned % = users not seen in period k or any later period ÷ users in the cohort — that is, 100% − rolling retention.
  • Active users = the number behind retention.
  • Revenue = the amounts of the cohort’s rows in period k; revenue retention % = revenue in period k ÷ revenue in period 0; cumulative revenue per user = revenue in periods 0 to k ÷ users in the cohort.

The Average row weights each cohort by its number of users (users active ÷ users, over all cohorts that have reached that period), so a small cohort cannot swing it. For counts and revenue the bottom row is the Total.

Incomplete periods

When the data ends partway through its last week, month or quarter, the figures for that period are too low — people who would still come back that month have not yet had the chance. That period is the last cell of every row (the diagonal of the triangle). By default it is left out, together with a newest cohort that falls entirely in it; untick Leave out the last period… to see those cells in italics with an asterisk. Incomplete cells never count in the averages.

Reading the triangle

Each row is a cohort, each column a period since joining, and the colour runs from faint (low) to strong (high), scaled to the largest value after period 0. Read across a row to see one cohort fade; read down a column to compare cohorts at the same age — if month-3 retention rises in newer cohorts, something improved. The cells on one diagonal happened in the same calendar period, so a dark or pale diagonal points to something that happened in that month (a sale, an outage) rather than to the cohorts.

Dates, IDs and amounts

Dates are recognised in ISO form (2026-01-15, with or without a time), numeric day/month/year or month/day/year forms (the data decides when a day is above 12; otherwise your country’s order is used and you can change it), English month names (15 Jan 2026, Jan 15, 2026), Unix time in seconds or milliseconds (whose days are counted in UTC) and Excel serial numbers; date cells in a workbook are read directly. A written date is taken as written: the time and any time zone are ignored. IDs are compared after removing spaces around them and, unless you untick it, ignoring letter case, so an e-mail address in capitals is the same customer. Amounts may be written as 1,250.50, 1.250,50, $25 or (12.50); cells that are not numbers count as nothing and are reported.

Limitations

  • Files up to 100 MB as CSV or 50 MB as a workbook; everything is calculated in your browser’s memory.
  • Only users who appear in the file are counted. To count people who signed up and never came back, the file needs a row for them with their signup date (choose the signup column).
  • Tables show up to 120 periods; daily cohorts over several years are easier to read by week or month.
  • Revenue is added up as given: there is no currency conversion, and refunds lower it only if they are rows with negative amounts.

Privacy

Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.

Frequently asked questions

What is a cohort retention table?

A table with one row per group of users who started in the same period (a cohort) and one column per period after that, showing the share of each group still active. It shows how retention changes with the age of a customer and between groups that joined at different times.

What is the difference between retention and rolling retention?

Retention counts users active in that period. Rolling (or unbounded) retention counts users active in that period or later, so someone who skips a month and comes back still counts. Rolling retention is smoother and never goes up; classic retention shows the rhythm of repeat visits.

How is churn worked out?

A user counts as churned from a period on when they have no activity in that period or any later one in your data — so churned % is 100% minus rolling retention. Someone who returns after a gap is not counted as churned in the gap.

Why are the newest cohort or the last column missing?

Because the data ends partway through that period, and incomplete figures look like a drop. Untick Leave out the last period when the data ends partway through it to show those cells in italics; they still do not count in the averages.

Which exports work?

Any table with one row per activity and a user or customer ID and a date — an orders export from an online shop, payments or subscription records, sign-ins, or app events. Extra columns are ignored. If each row is one customer with a list of dates, unpivot it first in the CSV Transpose & Unpivot tool.

Is my data uploaded?

No. The file is read and the tables are worked out in your browser; nothing is sent to MySmartCoPilot or anyone else.

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.