Skip to content
accs-net.com

Press Esc to close

Cohort Analysis

Cohort analysis groups users by a shared starting characteristic β€” usually their first session, signup, or purchase date β€” then tracks how each group behaves over time. In Google Analytics 4, you build it inside Cohort Exploration, an Explorations template that produces a retention heatmap with cohort rows and time-bucket columns. This guide covers what cohort analysis really measures, how to set it up in GA4, how to read the heatmap, when daily versus weekly versus monthly granularity makes sense, and the GA4-specific limitations that catch people out.

What Is Cohort Analysis?

A cohort is a fixed group of users tied to a starting moment in time. Cohort analysis follows that group forward β€” measuring retention, repeat activity, or revenue at week 1, week 2, week 3, and so on. The output is almost always a triangular heatmap: rows are cohorts ordered top-to-bottom by start date, columns are periods since the start, and cells show the metric value for that intersection.

The point is comparability. A simple “active users this week” chart cannot tell you whether August signups behave differently from July signups. A cohort table can. It isolates the effect of when someone arrived from everything else and lets you compare apples to apples β€” week-2 retention for the August cohort against week-2 retention for the July cohort, with no contamination from new arrivals.

Cohort vs Segment β€” The Distinction That Trips People Up

Cohorts and segments both narrow the audience, but they do it on opposite axes. A cohort is a closed group anchored to a moment; a segment is a filter applied to whoever qualifies right now. The pool of users in a segment refreshes every period. The pool in a cohort only ever shrinks.

Cohort vs segment in GA4 β€” cohort is a fixed user group anchored to August signup date and tracked forward in time, segment is a filter like mobile-paid that applies across any time window
Cohort = fixed group, anchored in time. Segment = filter, applied to any time window. The two answer different questions.
Aspect Cohort Segment
Membership rule Defined by a starting event in a fixed window Defined by a condition that can match any time
Group size over time Only decays Refreshes each period
Best question Did this group’s behavior change as it aged? How does this slice perform right now?
Where in GA4 Cohort Exploration template Segment builder, applied to any report

Treat them as complements, not alternatives. You can apply a segment inside a cohort exploration β€” for example, build the August signup cohort and then split it into mobile vs desktop segments to see which acquisition device produced the stickier users.

Types of Cohorts β€” Acquisition, Behavioral, Demographic

Three cohort types cover almost every analytics question. Pick by the question, not by the tool:

  • Acquisition cohorts. Grouped by the date or channel of first arrival. Best for measuring channel quality over time, comparing onboarding flows, and answering “are recent visitors better or worse than older ones?”. This is the default in GA4 Cohort Exploration.
  • Behavioral cohorts. Grouped by a specific action β€” first GA4 event like add_to_cart, first purchase, or completing onboarding. Best for measuring how a single behavior predicts later activity, and for testing feature-launch impact.
  • Demographic cohorts. Grouped by an attribute the user did not choose by acting β€” country, device class, age range. Useful as an overlay, but rarely the primary axis. The behavior-over-time signal is weaker because the group composition is broad.

Building a Cohort Exploration in GA4 β€” Step-by-Step

Setup takes about three minutes. Open GA4 and follow these seven steps:

  1. Open Explore. Left nav, click Explore. Pick the Cohort exploration template from the gallery. Default settings produce a weekly acquisition cohort with retention as the metric.
  2. Set the inclusion criterion. Top of the variables panel: pick what defines the cohort. First touch is acquisition; Any event means any session; pick a specific event for behavioral cohorts.
  3. Set the return criterion. Just below: this is what counts as “active” in subsequent buckets. Default is Any event, but for retention that matters, switch to a meaningful action β€” session_start, view_item, or your conversion event.
  4. Choose granularity. Cohort granularity dropdown: Daily, Weekly, Monthly. This decides both the cohort window and the time bucket. See the granularity guidance below.
  5. Pick the metric. Default is Active users. Switch to Total users, Event count, Transactions, or revenue depending on the question. Per cohort user in the calculation dropdown gives you per-user averages instead of raw totals.
  6. Apply a breakdown (optional). Drag a dimension (Device category, Country, First user source / medium) into the Breakdown field to split each cohort row into sub-rows.
  7. Read or export. The heatmap renders inline. Top-right of the canvas: click the share icon to copy a link, or right-click any cell to drill in.

Google’s official walkthrough is here: Cohort exploration documentation. The variables you can set are documented at the GA4 Data API Exploration overview.

Reading a Cohort Retention Heatmap

The retention heatmap is the default output and the one you will read most often. Rows represent cohorts in order of start date. Columns represent weeks (or days, or months) since that start. The Week 0 column is always 100% by construction β€” every user in the cohort was active on day zero.

GA4 cohort retention heatmap example showing weekly acquisition cohorts with retention percentages decaying from 100 percent at week zero down to 15 percent at week seven, color-coded from dark blue to pale
A weekly retention heatmap. Compare cells in the same column to see how cohort quality changed week-over-week. The Aug 18 cohort retains noticeably better β€” that is the cell to investigate first.

Three reading patterns get you most of the value:

  • Compare down a column. Same week-since-start, different cohorts. This is the headline question: are recent cohorts retaining better, worse, or the same as older ones? A column trending up is a healthy product. Trending down is a leak.
  • Compare across a row. Same cohort, retention decay over time. The shape of the curve tells you whether you have a habit-forming product (curve flattens) or a leaky one (curve keeps falling).
  • Spot the diagonal. The lower-left triangle is empty by definition β€” those cohorts haven’t aged that far yet. The latest data sits along the diagonal edge. Anything inside the triangle is final; anything on the edge is partial.

If your week-1 retention is 30% and week-4 is 28%, your product is sticky. If week-1 is 60% and week-4 is 5%, you have a leak in onboarding, not an acquisition problem.

Daily, Weekly, Monthly β€” When to Use Each Granularity

Granularity is the most consequential setting in a cohort exploration. Pick it based on the natural rhythm of user behavior, not the calendar.

Granularity Best for Sample size needed Typical retention shape
Daily High-frequency apps (news, fitness, games, messaging) Hundreds of users per cohort minimum Steep drop after day 1, slow flatten by day 7
Weekly Most B2C and SaaS products, e-commerce repeat-buyers Around 100 users per cohort Sharp week-1 drop, gradual decay over 4–8 weeks
Monthly Low-frequency products (B2B SaaS, subscription, real estate, insurance) Smaller cohorts tolerable, but need 12+ months for trend Slower decay, plateau forms by month 3–6

The default in GA4 is weekly, and it suits most websites. Switch to daily only when natural usage is daily β€” otherwise the heatmap is dominated by noise. Switch to monthly when usage is naturally monthly or longer; weekly granularity will hide the signal in column-2 to column-5 fluctuations that have no underlying meaning.

Common Cohort Analysis Use Cases

Five questions cohort analysis answers better than any other report:

  • Channel quality over time. Build acquisition cohorts split by First user source / medium. Compare retention curves by channel. A paid channel with high day-1 retention but week-4 collapse is buying low-quality traffic.
  • Onboarding A/B impact. Cohorts before and after a flow change. If post-change retention is higher in week 2, the change worked. Hold the comparison for at least 8 weeks before declaring victory.
  • Feature launch effect. Behavioral cohort grouped by first use of the feature. Compare retention vs the rest. If feature users retain better, the feature is sticky β€” invest in driving more first-uses.
  • Pricing or plan changes. Cohorts by signup month, with revenue per cohort user as the metric. The slope of cumulative revenue tells you payback period and LTV by vintage.
  • Seasonality and noise control. Holiday spikes muddy aggregate metrics. Cohort analysis isolates whether the spike was a one-time bump or shifted the long-term curve. Cohorts answer “did the seasonal traffic stick?”.

Pair cohort analysis with user flow exploration to find the upstream cause when retention drops. Cohorts tell you something changed; flows tell you what.

Limitations in GA4 β€” Sampling, Lookback, and Metric Constraints

GA4 Cohort Exploration is solid but has real limits worth knowing before you build a strategy on top of it:

  • Data retention cap. Standard GA4 properties retain user-level data for 2 or 14 months (configurable). Cohorts older than the retention window stop returning data. If you need long-tail cohort history, export to BigQuery from day one.
  • Sampling on large queries. Explorations sample when they exceed quota thresholds β€” 10M events for standard properties, 1B for 360. The exploration shows a yellow icon when sampled. Narrower date ranges or removing breakdowns usually clears it.
  • Cardinality limits. Breakdown dimensions with more than 500 unique values get bucketed into “(other)”. For high-cardinality dimensions like page path, use a custom dimension that pre-buckets the values.
  • No custom cohort window. Cohorts must be aligned to whole days, weeks, or months β€” you cannot define a 3-day or 10-day window. Work around this with custom dimensions or BigQuery.
  • User identity drift. If users sign in on a new device without User-ID, GA4 may treat them as a new user, splitting their behavior across cohorts. Implement User-ID and Google signals to reduce this.

For metrics that matter most, also confirm your engaged sessions and conversion definitions are consistent across the time window. Definitional drift will show up as a fake retention drop. For an end-to-end view of how on-site engagement signals connect to retention, see our pillar on reader engagement.

Frequently Asked Questions

What is cohort analysis in simple terms?

Cohort analysis groups users by a shared starting moment β€” like the week they first visited β€” and tracks how each group’s behavior changes over time. The output is a heatmap where you compare retention or revenue across cohorts and across weeks since start, isolating the effect of when someone arrived from everything else.

How do you read a cohort analysis heatmap?

Three patterns. Read down a column to compare the same week-since-start across different cohorts β€” that shows whether new cohorts retain better than old ones. Read across a row to see one cohort’s retention decay over time. Watch the diagonal β€” anything along the latest-data edge is partial; anything inside the triangle is final.

What’s the difference between a cohort and a segment?

A cohort is a fixed group of users defined by a starting event in a fixed time window β€” membership never refreshes, the group only decays. A segment is a filter applied to whoever matches right now β€” the qualifying users change every period. Cohorts answer “did this group change?”; segments answer “how does this slice perform now?”.

What cohort metrics actually matter?

For most products, week-1 retention (does the first session lead to a second?), week-4 retention (does engagement stabilize?), and per-cohort revenue or conversions (does the group monetize?). For high-frequency apps, day-1, day-7, and day-30 retention. Pick metrics tied to the meaningful action β€” session_start alone is too cheap to be useful.

How do I do cohort analysis in GA4?

Open Explore, pick the Cohort exploration template, set the inclusion criterion (what defines the cohort β€” first touch is the default), the return criterion (what counts as active in later buckets), the granularity (daily / weekly / monthly), and the metric (Active users by default). Optionally apply a breakdown dimension to split each cohort row.

Why is my GA4 cohort exploration sampled?

GA4 Explorations sample when the underlying query exceeds the property’s quota β€” typically 10 million events for standard properties, 1 billion for GA4 360. A yellow shield icon appears at the top. Narrow the date range, remove breakdowns, or simplify the metric to drop below the threshold and clear sampling.

How long is cohort data kept in GA4?

Standard GA4 properties keep user-level data for 2 months by default, configurable up to 14 months. Cohorts that started earlier than the retention window stop returning rows. For longer history β€” multi-year LTV analysis, for example β€” export raw events to BigQuery from the day the property goes live, before the retention limit becomes a problem.

  • Cohort β€” the fixed user group at the heart of every cohort analysis
  • Session β€” the time window inside which the first touch is recorded
  • Engaged sessions β€” quality filter for the return criterion
  • GA4 events β€” the building blocks for behavioral cohort definitions
  • Conversion β€” the most meaningful return event for revenue cohorts
  • User flow β€” pair with cohorts to find why retention drops

Tom Martin
Written by

Tom Martin

Web analytics specialist with deep expertise in Google Analytics, Tag Manager, and e-commerce tracking. Helping businesses understand their data without the noise β€” practical guides, honest reviews, and real-world implementation experience.