cohort analysis for SaaS founders: free tools and step-by-step
every SaaS founder I know has stared at a churn number and felt vaguely sick. “9% monthly churn” sounds bad on its own, but it tells you almost nothing about whether your product is getting better or worse, whether new customers retain better than old ones, or whether the last marketing push attracted the right kind of buyer. churn is an average. averages hide the most important truth in your business.
cohort analysis is the fix. it groups your customers by when they signed up and tracks each group separately over time. that single change in framing turns a flat aggregate number into a clear picture of product-market fit, retention drift, and the actual long-term value of every marketing channel. and it is far less work than founders think. you do not need Mixpanel, you do not need a data team, and you do not need a degree in statistics. you need a spreadsheet, three columns of data, and one afternoon.
this guide walks SaaS founders, solopreneurs, and small business owners through the full cohort analysis workflow with free tools, real numbers, and the patterns that matter most. by the end, you will have a working cohort table for your own product.
what cohort analysis is and why it matters
a cohort is a group of customers who share a starting point. usually that is signup month, but it can be first-purchase week, channel of acquisition, or any other event. cohort analysis tracks each group’s behavior over time, separately from every other group.
cohort analysis is the practice of grouping customers by when they joined and tracking each group’s retention, revenue, and behavior separately over time. for SaaS founders, the standard view is a monthly retention cohort table where rows are signup months and columns are months-since-signup. this surfaces whether your product is improving, whether retention is drifting, and which acquisition channels produce the best long-term customers — work that flat churn averages hide.
what a cohort table looks like
| signup month | M0 | M1 | M2 | M3 | M4 | M5 |
|---|---|---|---|---|---|---|
| jan 2026 | 100% | 78% | 65% | 58% | 53% | 50% |
| feb 2026 | 100% | 82% | 70% | 62% | 56% | |
| mar 2026 | 100% | 85% | 72% | 65% | ||
| apr 2026 | 100% | 87% | 75% |
reading down each column shows whether retention is improving for newer cohorts. reading across each row shows the lifetime curve for that signup month.
what cohort analysis answers that aggregate metrics cannot
- is my product getting stickier over time?
- when does churn actually happen (week 1, month 3, year 1)?
- do paid customers retain better than free converted customers?
- did the change I shipped last month help or hurt retention?
- what is the real LTV by acquisition channel?
aggregate churn cannot answer any of these honestly.
the data you need
cohort analysis requires three columns:
- customer ID (or email)
- signup date (or first conversion date)
- event date (any interaction you want to track: login, purchase, active session)
for a paid-subscription SaaS, the event you usually care about is “still subscribed at month N.” for a usage-based product, “had at least one active session in month N.” for ecommerce, “placed an order in month N.”
where to pull the data
| source | what you get |
|---|---|
| Stripe | subscriptions, customers, invoices, dates |
| Postgres / Supabase | events, logins, sessions |
| Google Analytics 4 | sessions, conversions, signups |
| your CRM | customer dates, status changes |
| product analytics tool | feature events, retention signals |
most founders already have all the data. the gap is the analysis, not the instrumentation.
building a retention cohort in Google Sheets
this is the hands-on part. assume you have a CSV with three columns: customer_id, signup_date, last_active_date.
step 1: derive signup month and active months
add two columns:
signup_month==TEXT(signup_date, "YYYY-MM")active_months= list of months between signup and last_active
for the active_months column, the easiest path is to expand each customer to one row per month they were active. Sheets and Excel can handle this with a helper column and SEQUENCE(). for larger datasets, this is where ChatGPT Advanced Data Analysis or our pandas tutorial for beginners earn their keep.
step 2: count active customers per cohort × month-since-signup
build a pivot table:
- rows: signup_month
- columns: months_since_signup (0, 1, 2, 3, …)
- values: count of unique customer_id
this gives you the raw count cohort table.
step 3: convert counts to percentages
divide every cell by the M0 value of its row. that is your retention cohort table.
=cell / row_M0_cell does the math. format as percentage.
step 4: heat-map the table
select the table → Format → Conditional formatting → Color scale. green-to-red gradient makes patterns visible at a glance. lighter cells lower in the table mean retention is dropping.
we walk the broader Sheets analysis pattern in our google sheets pivot table tutorial. cohort tables are pivot tables with two extra steps.
reading the cohort table: what to look for
the floor
every retention curve eventually flattens. if your floor is 30%, you have a 30% long-term retention base. if it is 5%, you do not yet have a sticky product.
the slope from M0 to M1
biggest single number in your business. M0 to M1 retention separates “engaged” customers from “tried it once.” if M1 retention is below 50%, your onboarding is the problem before anything else.
improvement across cohorts
read down any column. if M3 retention was 50% for jan 2026 cohort and 65% for apr 2026 cohort, your product is actually getting better. if it is the opposite, you are degrading.
the seasonal effect
some cohorts retain worse simply because of when they signed up (a december rush of casual signups, a black friday discount cohort). compare like-for-like.
advanced cohort patterns
revenue cohorts
instead of tracking “still subscribed,” track “MRR contribution per signup month.” this gives you the real revenue picture, including expansion and contraction. especially important for usage-based pricing.
channel cohorts
split each signup month by acquisition channel. a “july 2025, organic search” cohort can have very different retention from a “july 2025, paid Facebook ads” cohort. this is where customer acquisition cost (CAC) actually justifies itself, and it is one of the most underused analyses in SaaS.
feature cohorts
split by which features the customer used in week 1. customers who used feature X in their first 7 days retain at Y% by month 3. customers who did not retain at Z%. if Y is much higher than Z, X is your activation event. drive everyone toward it.
we cover the activation logic in customer segmentation methods for solopreneurs.
free and low-cost cohort analysis tools
| tool | best for | cost |
|---|---|---|
| Google Sheets | small lists, manual cohort tables | free |
| Mixpanel | behavioral cohorts, free up to 1M events/mo | free tier |
| Amplitude | similar to Mixpanel, free up to 50k MTUs | free tier |
| Stripe Sigma | subscription cohorts, ad-hoc SQL | $0.05/query |
| Metabase (self-hosted) | full BI on your own DB | free open source |
| ChartMogul | SaaS-specific cohort views, MRR cohorts | $129/mo and up |
| ProfitWell | free retention metrics for Stripe / Recurly | free |
for solopreneur-stage SaaS, ProfitWell + Sheets is plenty. you only need a paid tool when your data volume or team size justifies it.
we go deeper on the broader BI tooling in best data visualization tools for solopreneurs in 2026 and the upcoming Metabase review for solopreneurs.
using AI to run cohort analysis
ChatGPT Advanced Data Analysis or Claude can run a complete retention cohort from a CSV in minutes.
prompt template:
i have a CSV with columns customer_id, signup_date, last_active_date. build a monthly retention cohort table where rows are signup months and columns are months-since-signup. show counts and percentages. heat-map the result.
upload, prompt, get a table back. the underlying math is unchanged. the work is just faster. our chatgpt code interpreter tutorial covers the workflow in detail.
common cohort analysis mistakes
mistake 1: too few cohorts
you need at least 6-8 cohorts to see patterns. if you only have 3 months of data, wait or use weekly cohorts instead.
mistake 2: ignoring the M0 size
a cohort of 12 customers is statistically meaningless. drop or merge tiny cohorts before drawing conclusions.
mistake 3: confusing logo retention with revenue retention
10 customers paying $50 and 1 customer paying $5,000. if the $5,000 customer churns, logo retention is 91% but revenue retention is 9%. always run both.
mistake 4: looking only at the last cohort
the latest cohort always looks best because it has not had time to churn. compare like time periods (M3 vs M3) across cohorts, not raw numbers.
the cohort metrics every solopreneur should track
beyond the simple retention table, four derived metrics make cohort analysis directly actionable.
M0 to M1 retention (the activation metric)
the single most important number in your business. if first-month retention is below 50%, fix that before anything else. onboarding is almost always the highest-leverage place to invest.
the floor (long-term retention rate)
eventually each cohort flattens at a stable retention rate. that floor is your best estimate of long-term viability. floor above 30% is decent for most B2C subscription products. floor above 60% is exceptional and usually implies real product-market fit.
LTV per cohort
multiply average revenue per user by the integral of the retention curve. this is your honest LTV by signup month. comparing across cohorts shows whether the financial value of newer customers is improving or degrading.
CAC payback period by cohort
how many months until the cumulative revenue from a cohort exceeds its acquisition cost. shorter is better. tracking by cohort surfaces which acquisition channels and time periods are sustainable. our SaaS metrics every founder must track guide walks the full unit economics framework.
three worked cohort analysis examples
example 1: the SaaS founder who saw their product getting better
a solopreneur SaaS with 18 monthly cohorts ran a retention table. M3 retention by signup month: jan 45%, feb 47%, mar 51%, apr 53%, may 58%, jun 61%, jul 64%.
reading down the M3 column told a clear story: the product was genuinely improving. each cohort retained better than the last at the same lifecycle stage. the founder mapped the inflection points to specific shipped features (mar = onboarding redesign, may = Slack integration, jul = team plan launch).
that single chart became the most-shared internal asset in the business. every product decision afterwards was justified or rejected based on whether it would lift M3 retention.
example 2: the channel cohort surprise
an ecommerce solopreneur split each monthly cohort by acquisition channel. organic search M6 retention: 52%. paid social M6 retention: 18%. referral M6 retention: 71%.
paid social was the largest channel by volume but had the worst retention. when the founder ran the math on lifetime value adjusted for retention, paid social was barely break-even on customer acquisition cost. they cut paid social budget by 40% and reinvested in referral incentives. quarterly cash flow improved within two cycles.
without the channel cohort split, paid social looked fine in aggregate metrics. the cohort lens revealed the truth.
example 3: the activation event that changed onboarding
a SaaS founder split each cohort by whether the customer used a specific feature in their first 7 days. M3 retention for users who used the feature: 68%. M3 retention for users who did not: 22%.
the founder did not assume causation (that would be a correlation vs causation trap). they ran an a/b test where new users were nudged to use the feature in onboarding. retention lifted from the base rate to nearly the “used feature” rate, confirming the feature was causal, not just correlated.
the same workflow could have been run as a behavioral segmentation, but cohorts surfaced the question first.
frequently asked questions
how many cohorts do I need before patterns are reliable?
at least 6, ideally 8-12. with fewer, the noise from any single cohort dominates the picture.
should I use weekly or monthly cohorts?
monthly for SaaS subscriptions and most ecommerce. weekly when your decision cycle is fast, your data is dense, and you have more than 16 weeks of history.
what is more important, logo retention or revenue retention?
both, for different reasons. logo retention tells you about product fit. revenue retention tells you about commercial health (especially for SaaS with expansion). track both, optimize both.
how do AI tools fit into cohort analysis?
ChatGPT or Claude can build cohort tables in minutes from a CSV. our chatgpt code interpreter tutorial walks the prompt patterns. AI accelerates the math; the interpretation work is still human.
what do I do if my latest cohort looks bad?
wait. the latest cohort always has the highest variance because it is youngest. compare like time periods (M3 vs M3) across cohorts, not raw current numbers across cohorts of different ages.
conclusion: build your first cohort this week
if you run a SaaS, a course, a subscription product, or anything with repeat customers, cohort analysis is not optional. it is the only way to tell whether your product is improving, whether retention is real, and whether your acquisition channels are paying off in the long run. and the entry cost is low: a Sheets pivot table, three columns of data, an afternoon of work.
start this week. pull a CSV with customer ID, signup date, and last active date. build the cohort table. read down the columns to see whether newer cohorts retain better than older ones. then, once a month, refresh the table and write three sentences about what changed. that single habit, kept for a year, will outperform any analytics dashboard you could buy.
if you want the supporting context, our statistical analysis for non-statisticians guide covers the underlying math, and our a/b testing without a data team guide shows how to validate the changes you make based on what cohorts reveal.