See how many users from each signup cohort keep coming back. Paste raw user and activity dates, or type in cohort sizes and active counts, and get a color-coded retention triangle by day, week or month, a weighted average row and retention curves you can export as CSV or PNG.
Last updated:
Or open a file
Retention curves
Advertisement
Advertisement
How to use the Cohort Retention Table Generator
Choose your input. Use Cohort counts if you already have totals, or Raw signup & activity data for event rows.
Paste or open your data. Counts: label, cohort size, then active users per period. Raw: user_id and activity date, optionally with a signup date column.
Pick the period (day, week or month) and click Generate table.
Read the heatmap. Each row is a cohort, each column the number of periods since signup; darker cells mean higher retention.
Export the table as CSV or PNG, or copy it straight into a spreadsheet.
How to read a cohort retention heatmap
Rows are cohorts: users who signed up in the same day, week or month. Columns are the number of periods since signup. Each cell answers: "Of the people who joined in this cohort, what percentage were active again n periods later?"
Read down a column to compare cohorts at the same age. If month 1 retention rises from 44% to 51% for newer cohorts, recent product or onboarding changes are working.
Read across a row to see the decay curve. Most products lose the most users between period 0 and period 1, then flatten out.
Look for the plateau. Where the curve flattens shows the share of users who found lasting value; a curve that keeps falling toward zero points to a retention problem.
Formulas used
Measure
Formula
Example
Cohort retention, period n
active users in period n / cohort size x 100
528 / 1,200 = 44.0%
Churn to period n
100% - retention in period n
100% - 44.0% = 56.0%
Weighted average, period n
sum of active users in period n / sum of sizes of cohorts that reached period n
(528 + 621) / (1,200 + 1,350) = 45.1%
Period index (monthly)
(activity year - signup year) x 12 + (activity month - signup month)
Jan 20 to Mar 2 = month 2
Tips for a useful cohort analysis
Define "active" clearly, for example a login, a purchase or a key action, and use the same definition for every cohort.
Match the period to usage. Daily cohorts suit apps used every day; monthly cohorts suit subscriptions and ecommerce.
Watch small cohorts. A cohort of 20 users can swing wildly; the tooltips show the raw counts behind every percentage.
Export only what you need. Two columns (user id and date) are enough, which keeps files small and avoids sharing personal data.
Frequently asked questions
What is a cohort retention table?
It groups users by when they signed up (the cohort) and shows what share of each group was still active 1, 2, 3 or more periods later. Reading down a column compares cohorts at the same age; reading across a row shows how one cohort decays over time.
How is retention calculated for each cell?
Retention for period n = users from the cohort who were active in period n / users in the cohort x 100. Period 0 is the signup period and is always 100%. A user counts once per period no matter how many events they have.
Why is the table a triangle?
Newer cohorts have not existed long enough to have later periods. A cohort that signed up last month can only have month 1 data, so later cells are left blank instead of showing a misleading 0%.
How is the average row calculated?
It is weighted by cohort size: for each period, the active users from every cohort that has reached that period are added up and divided by the total size of those cohorts. Large cohorts therefore count more than small ones, and cohorts that have not reached a period are left out.
What data format does the raw mode accept?
One row per activity: user_id, activity_date, or user_id, signup_date, activity_date. Commas, tabs or semicolons work, and a header row is skipped. Dates can be YYYY-MM-DD, YYYY/MM/DD, US-style MM/DD/YYYY or Unix timestamps. Activity before the signup date is ignored.
How are weeks and months counted?
Monthly cohorts use calendar months, so a user who signs up on January 31 and returns on February 1 is active in month 1. Weekly cohorts use Monday-to-Sunday weeks. Daily cohorts count calendar days since the signup day.
Is my data uploaded anywhere?
No. Files and pasted data are processed entirely in your browser, which makes the tool safe for customer exports; nothing is sent to a server.
Are all the tools on FreeToolCabin tested for quality and accuracy?
Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.