# Cohort Analysis: Complete Guide 2026 | Enrich Labs

> Build cohort analysis in 2026: acquisition vs behavioral tables, N-day vs unbounded retention, M12/M3 rebase, GA4 Standard/Rolling/Cumulative, and a six-step SaaS and DTC workflow.

_Source: https://www.enrichlabs.ai/blog/cohort-analysis-complete-guide-2026_

---

#TLDR

A blended retention rate hides the truth. Cohort analysis groups customers by a shared start event, then tracks each group month by month so you can see whether newer users stick, pay back, and expand.

-   Acquisition cohorts answer "did this month of signups get better or worse?" Behavioral cohorts answer "did this action predict stay?"
-   Read the curve shape, not a single percentage: perpetual decline, flatten-and-hold, or a smile.
-   For self-serve and AI products, rebase M12 against M3 so tourist signups do not wreck the baseline. [Andreessen Horowitz](https://a16z.com/ai-retention-benchmarks/)
-   Pair user tables with revenue tables. Private SaaS still sits near 90% gross retention and net retention above 100% in the 2025 KeyBanc / Sapphire survey. [PR Newswire](https://www.prnewswire.com/news-releases/private-saas-company-survey-reveals-ai-driven-transformation-and-sustained-operational-excellence-302615030.html)
-   GA4 Cohort exploration uses inclusion, return, and Standard / Rolling / Cumulative math. Do not mix those modes when you compare periods. [Google Analytics Help](https://support.google.com/analytics/answer/9670133?hl=en)

Helena at [Enrich Labs](https://www.enrichlabs.ai/) can keep paid acquisition tagged by campaign so later cohorts stay comparable. A pretty table on mixed traffic still lies.

* * *

## What is cohort analysis?

**Cohort analysis** groups people who share a start condition, then measures a return condition over later periods. Google defines a cohort as users who share a characteristic identified by a dimension, for example the same acquisition date. [Google Analytics Help](https://support.google.com/analytics/answer/9670133?hl=en)

The start condition is the **inclusion** event: first visit, signup, first paid invoice, first purchase. The later condition is the **return** event: any session, a key product event, a transaction, or a renewal.

A single company-wide retention number mixes old customers who already survived onboarding with new customers who just arrived. Mixpanel's 2026 guide is blunt: the overall retention rate is an average, and averages sometimes lie. [Mixpanel](https://mixpanel.com/blog/cohort-analysis/)

This method is different from a [churn rate](https://www.enrichlabs.ai/blog/churn-rate-complete-guide-2026) snapshot. Churn answers what left this month. A cohort table answers, of the people who started in March, how many still return in month 6.

It also sits next to [net revenue retention](https://www.enrichlabs.ai/blog/net-revenue-retention-complete-guide-2026). NRR is a revenue identity. Cohort tables are the time-boxed view that shows which vintage of customers actually produces that NRR. Pair both with [customer lifetime value](https://www.enrichlabs.ai/blog/customer-lifetime-value-complete-guide-2026) so payback math uses the same vintages.

* * *

## Why blended retention fails marketers

SaaS Capital's 2025 private-company work puts median net revenue retention at 101%, which means expansion barely covers gross churn for the typical firm. [SaaS Capital](https://www.saas-capital.com/blog-posts/what-is-a-good-retention-rate-for-a-private-saas-company/) Userpilot notes the same blended NRR can hide 130% expansion in one slice and 70% contraction in another. [Userpilot](https://userpilot.com/blog/cohort-retention-analysis/)

Userpilot also cites its own product benchmark: average SaaS user retention of roughly 46.9% after one month. Two products can share that Month-1 number while one has a growing core and the other has a tourist wave. [Userpilot](https://userpilot.com/blog/cohort-retention-analysis/)

Paid media makes the problem worse. A week of cheap traffic can inflate signups, crush early retention, and still look like growth in a blended dashboard. Split by acquisition date and channel before you raise budget on [Google Ads](https://www.enrichlabs.ai/blog/google-ads-conversion-tracking-setup-2026), [LinkedIn Ads](https://www.enrichlabs.ai/blog/linkedin-ads-complete-guide-2026), or [YouTube Ads](https://www.enrichlabs.ai/blog/youtube-ads-complete-guide-2026).

Treat this as a [marketing funnel](https://www.enrichlabs.ai/blog/marketing-funnel-complete-guide) problem: later stages inherit the mix you bought at the top. [Audience segmentation](https://www.enrichlabs.ai/blog/audience-segmentation-complete-guide) without a vintage axis still averages unlike groups together.

* * *

## Acquisition vs behavioral vs predictive cohorts

Userpilot's 2026 retention piece splits three types. [Userpilot](https://userpilot.com/blog/cohort-retention-analysis/)

**Acquisition cohorts.** Group by join date (or first paid date). Use these to judge product, pricing, and marketing changes over calendar time. If cohorts after a new onboarding flow retain better at day 60, that is a real signal. They will not tell you why.

**Behavioral cohorts.** Group by an action in a window: connected an integration in week 1, completed a checklist, reached activation. Amplitude's SaaS write-up treats this as the way to answer business questions about how those groups behave. [Amplitude](https://amplitude.com/blog/saas-cohort-analysis)

**Predictive cohorts.** Score users who look like past churners before the curve turns. The value is the intervention window, not the model vanity metric.

For marketing teams, start with acquisition (channel x month), then overlay one behavioral split (activated vs not). Predictive scoring comes after those two tables are trustworthy. This is the same discipline as [product-led growth](https://www.enrichlabs.ai/blog/product-led-growth-complete-guide-2026): activation events belong on the table, not in a slide footnote.

[Account-based marketing](https://www.enrichlabs.ai/blog/account-based-marketing-complete-guide-2026) programs should still use acquisition vintages. A named-account wave in Q1 is one cohort, not a forever segment.

* * *

## How to read a cohort table

Rows are vintages. Columns are periods after the start (D0, D1, or M0, M1). Each cell is the share (or count, or revenue) of that row that met the return rule in that period.

Olga Berezovsky's Lenny's Newsletter guide is the cleanest language for **N-day vs unbounded**:

-   **N-day (or X-day) retention:** returned on that exact day or in that exact bucket. Default in Amplitude and Mixpanel. Good for onboarding and campaign windows.
-   **Unbounded retention:** returned on that day or any later day. Softer, useful for products with irregular usage. [Lenny's Newsletter](https://www.lennysnewsletter.com/p/measuring-cohort-retention)

GA4 adds a third axis: **calculation type**. [Google Analytics Help](https://support.google.com/analytics/answer/9670133?hl=en)

-   **Standard:** met the return rule in that period, ignoring other periods.
-   **Rolling:** met the return rule in that period and every previous period (consecutive return).
-   **Cumulative:** met the return rule in any period up to that cell.

Google's own weekly purchase example: User A buys only in week 5, User B buys every week, User C buys weeks 1-2. Week 5 includes A+B under Standard, only B under Rolling, and A+B+C under Cumulative. [Google Analytics Help](https://support.google.com/analytics/answer/9670133?hl=en)

Label the mode on every screenshot. A drop from Standard to Rolling is not churn. It is a stricter definition. Use [A/B testing](https://www.enrichlabs.ai/blog/what-is-ab-testing) the same way: one change, one definition, one window.

* * *

## Curve shapes: decline, flatten, smile

Userpilot, citing a16z, treats shape as the diagnostic. [Userpilot](https://userpilot.com/blog/cohort-retention-analysis/)

1.  **Perpetual decline.** Steep early drop, still falling after month 3. If every vintage looks the same, you likely lack a foundational cohort. That is a product-market fit problem, not a headline test.
2.  **Flatten-and-hold.** Early drop (expected), then a plateau. That floor is the users who built a workflow.
3.  **Smile.** Dip, flatten, then rise as churned or light users return because the product improved. Rodriguez and Immerman at a16z call ChatGPT the clearest public example. [Andreessen Horowitz](https://a16z.com/ai-retention-benchmarks/)

Do not celebrate a smile until you confirm the return event is the same (paid revenue, not a free reopen). [Growth hacking](https://www.enrichlabs.ai/blog/growth-hacking-complete-guide-2026) that buys reopen events will paint a fake smile.

* * *

## The M0 problem and the M12 / M3 rebase

Self-serve and AI products fill Month 0 with tourists: low-friction signups who leave in weeks two through five. a16z's September 2025 note, _Retention Is All You Need_, is the primary source. [Andreessen Horowitz](https://a16z.com/ai-retention-benchmarks/)

Their split:

-   **M0-M3 (acquisition):** hobbyist drop. Flatten often appears around M3. Timing matters more for CAC efficiency than for long-term dollar retention.
-   **M3-6/9 (retention):** remaining users found a real use case.
-   **M9+ (expansion):** extra workflows, usage pricing, extra seats.

**M12 / M3** is their early predictor: how committed users behave over a full year after tourists leave. In their dataset of AI companies above $1M ARR, strong M12/M3 already pointed toward long-term net dollar retention above 100%. They also track **cost per retained customer at M3**, not cost per signup. [Andreessen Horowitz](https://a16z.com/ai-retention-benchmarks/)

Annual contracts can fake this. High GRR on a 12-month lock is not PMF. Track usage on those accounts separately. Tie the M3 retained cost back to [CAC](https://www.enrichlabs.ai/blog/customer-acquisition-cost-complete-guide-2026) and [unit economics](https://www.enrichlabs.ai/blog/unit-economics-complete-guide-2026).

* * *

## User retention vs revenue retention

Keep two tables.

**User / logo table.** Share of accounts still active. Ties to product habit.

**Revenue table.** MRR or ARR from that vintage still in the book, with expansion. Ties to unit economics and LTV.

KeyBanc Capital Markets and Sapphire Ventures' 16th annual private SaaS survey (Nov 13, 2025) reports:

-   YoY ARR growth expected to accelerate from 15% in 2024 to 20% in 2025.
-   Gross retention expected to approach 90% after 86% in 2023.
-   Net retention stayed above 100% and is expected to improve modestly. [PR Newswire](https://www.prnewswire.com/news-releases/private-saas-company-survey-reveals-ai-driven-transformation-and-sustained-operational-excellence-302615030.html)

Sapphire's summary of the same survey: gross retention near 90%, net retention above 100%. [Sapphire Ventures](https://info.sapphireventures.com/2025-keybanc-capital-markets-sapphire-ventures-saas-survey)

SaaS Capital stresses that NRR and GRR in their survey follow a cohort over time, not a blended monthly churn average, and that ACV bands matter more than industry for peer comparison. [SaaS Capital](https://www.saas-capital.com/blog-posts/what-is-a-good-retention-rate-for-a-private-saas-company/)

Lenny Rachitsky and Casey Winters (June 2020) still set directional **user** bars at six months: consumer SaaS ~40% good / ~70% great; SMB/mid-market SaaS ~60% good / ~80% great. Those are user retention, not NRR. [Lenny's Newsletter](https://www.lennysnewsletter.com/p/what-is-good-retention-issue-29)

[Revenue operations](https://www.enrichlabs.ai/blog/revenue-operations-complete-guide-2026) owns the dollar grid. Marketing owns the channel split that feeds it.

* * *

## Six-step cohort workflow for 2026

**1\. Freeze definitions.** Inclusion event, return event, grain (day / week / month), calculation mode. Write them above the table.

**2\. Build the acquisition grid.** Monthly (SaaS) or weekly (consumer / app) rows. Include cohort size in the first column. Tiny rows (one enterprise logo) are noise. [The SaaS CFO](https://www.thesaascfo.com/how-to-calculate-gross-dollar-retention/) flags this when you close one large account per month.

**3\. Split by channel and offer.** Paid search vs organic vs partner. Trial vs annual. Helena can keep UTM and campaign IDs consistent so this split does not depend on a spreadsheet join. Apply the same hygiene to [lookalike audiences](https://www.enrichlabs.ai/blog/lookalike-audience) and [Meta ads attribution windows](https://www.enrichlabs.ai/blog/meta-ads-attribution-settings-best-practices).

**4\. Add one behavioral overlay.** Activated in 7 days vs not. Compare Month-3 retention. If the gap is large, onboarding is the lever, not more ads. [Content marketing](https://www.enrichlabs.ai/blog/content-marketing-strategy-complete-guide-2026) that drives activated signups beats traffic that never reaches the overlay.

**5\. Add the revenue grid.** Same vintages, dollars instead of users. Compute GRR (no expansion) and NRR (with expansion) on the same rows. A channel with cheap CAC and a collapsing M3 is not cheap.

**6\. Act on the failure mode.**

-   Drop in the first two weeks: onboarding / activation.
-   Slow fade after month 3: missing habit-forming action.
-   Cliff at month 12: renewal motion, not a feature gap. Userpilot describes this as a CS problem visible in engagement before the contract date. [Userpilot](https://userpilot.com/blog/cohort-retention-analysis/)
-   Channel that never flattens: pause scale; fix the offer.

Run a [Google Ads audit](https://www.enrichlabs.ai/blog/google-ads-audit-checklist-2026) on vintages that never flatten before you raise bids.

* * *

## Tools for cohort analysis in 2026

### 1\. **Enrich Labs (Helena)**: keep acquisition vintages comparable

Helena tags paid campaigns, UTMs, and conversion events so later cohort tables match the ad account. Start here if blended dashboards mix brand, conquest, and partner traffic. [Enrich Labs](https://www.enrichlabs.ai/)

-   Campaign taxonomy that survives handoff from ads to product analytics
-   Conversion events aligned with signup and start\_trial, not vanity clicks
-   Works next to GA4, Mixpanel, and a billing warehouse

**Best for:** SaaS, DTC, and agencies that need clean acquisition cohorts before they argue about product retention.

### 2\. **GA4 Cohort exploration**: site and purchase return

Explore, Template gallery, Cohort exploration. Set inclusion, return, daily/weekly/monthly grain, Standard/Rolling/Cumulative, optional breakdown (device). Limits: 60 cohorts max; breakdown shows top 15 values; demographic thresholding can hide small cells; cohorts use device data, not User-ID. [Google Analytics Help](https://support.google.com/analytics/answer/9670133?hl=en)

GA4 is enough for site return and purchase return. It is a weak billing-revenue grid unless you import subscription events cleanly.

### 3\. **Mixpanel / Amplitude**: product N-day retention

Default N-day product retention. Use these for activation events and feature retention. Mixpanel's 2026 article covers chart reading and multi-criteria cohorts. [Mixpanel](https://mixpanel.com/blog/cohort-analysis/)

### 4\. **Billing warehouse or Excel**: MRR by signup month

Christoph Janz's long-running SaaS Excel pattern (and later Point Nine notes) still works for MRR by signup month: rows = start month, columns = age, cells = remaining or expanded MRR. [Point Nine / Christoph Janz](https://medium.com/point-nine-news/the-p9-guide-to-cohort-analysis-in-saas-v0-9-63ce366ab427)

Run product tools for behavior and billing tools for dollars. Do not average them into one retention % for the board.

* * *

## DTC and app notes

Ecom and apps often care about **repeat purchase** or **session return**, not seats.

-   Use first purchase (or first order) as inclusion, second purchase as return, weekly grain for the first 8 weeks.
-   Adjust's mobile handbook stresses that the cohort definition (install vs registration vs first pay) changes the story. [Adjust](https://www.adjust.com/resources/guides/cohort-analysis/)
-   Promo weeks will look like a smile if you count any session. Require a purchase return if you are judging paid social.

Apply the same grain on [Shopify](https://www.enrichlabs.ai/blog/how-to-sell-on-shopify-complete-guide), [TikTok Shop Ads](https://www.enrichlabs.ai/blog/tiktok-shop-ads-complete-guide-2026), and [DTC marketing](https://www.enrichlabs.ai/blog/dtc-marketing-strategy-examples) tests. [Shopify marketing automation](https://www.enrichlabs.ai/blog/shopify-marketing-automation-complete-guide) flows should be scored on repeat-purchase cohorts, not open rate.

[UGC marketing](https://www.enrichlabs.ai/blog/ugc-marketing-complete-guide-2026) that lifts M0 and wrecks M3 is a tourist channel. Pause scale until the purchase-return table flattens.

* * *

## Common mistakes

-   Mixing N-day, unbounded, Standard, Rolling, and Cumulative in one slide.
-   Comparing Month-1 user retention to annual NRR.
-   Scaling ads on M0 signups while M3 retained CAC is unknown. [Andreessen Horowitz](https://a16z.com/ai-retention-benchmarks/)
-   Reading incomplete right-edge cells (the newest row has no month 6 yet) as churn.
-   Forgetting users can sit in multiple GA4 cohorts if inclusion is "any transaction." [Google Analytics Help](https://support.google.com/analytics/answer/9670133?hl=en)
-   Optimizing a tourist-heavy M0 instead of rebasing to M3.
-   Ignoring [GEO](https://www.enrichlabs.ai/blog/generative-engine-optimization-geo-complete-guide-2026) and organic mix when paid vintages look worse than branded search vintages.

* * *

## FAQ

**What is a good cohort retention rate?**
There is no universal number. Directionally, Lenny's 2020 expert roundup puts six-month _user_ retention at ~40% good / ~70% great for consumer SaaS and ~60% / ~80% for SMB SaaS. [Lenny's Newsletter](https://www.lennysnewsletter.com/p/what-is-good-retention-issue-29) For _revenue_, 2025 private SaaS surveys cluster near 90% GRR and NRR above 100%. [PR Newswire](https://www.prnewswire.com/news-releases/private-saas-company-survey-reveals-ai-driven-transformation-and-sustained-operational-excellence-302615030.html) Judge your own flatten point first.

**Cohort analysis vs churn rate?**
Churn is a period rate on the whole base. Cohort analysis follows one vintage so mix shifts do not hide a bad new class.

**How many customers do I need?**
Enough that one logo cannot swing a cell. If you close one enterprise account a month, use quarterly vintages or a revenue table with comments, not a percentage heatmap.

**Should marketers own this?**
Marketers own acquisition-cohort quality (channel, creative, offer). Product owns behavioral overlays. Finance owns the dollar grid. Helena helps the first by keeping campaign taxonomy clean so the tables match the ad account.

**N-day or unbounded?**
Use N-day for onboarding and campaign windows. Use unbounded for irregular-use products. Do not mix them on one slide. [Lenny's Newsletter](https://www.lennysnewsletter.com/p/measuring-cohort-retention)

* * *

## Conclusion

Cohort analysis is a time-boxed method, not a vanity KPI. Fix inclusion and return, pick a calculation mode, split acquisition from behavior, and keep a user table next to a revenue table. Rebase noisy self-serve products to M3. Then spend more only on vintages whose curves flatten.

If paid mix is the mess, start a [Helena](https://www.enrichlabs.ai/) trial and lock campaign naming before you rebuild the spreadsheet.
