Cohort Analysis Guide
Quick Start Guide for Cohort Analysis.
Cohort Analysis Workflows
Example: Monthly Customer Retention
Scenario: You're a SaaS company and want to understand how many customers remain active over time, grouped by the month they signed up.
Your Data
You have transaction data in "Periods as Rows" format:
| customer_id | month | revenue |
|---|---|---|
| alice@co.com | 2024-01 | 100 |
| alice@co.com | 2024-02 | 100 |
| alice@co.com | 2024-03 | 100 |
| bob@co.com | 2024-01 | 50 |
| bob@co.com | 2024-02 | 50 |
| carol@co.com | 2024-02 | 200 |
| carol@co.com | 2024-03 | 200 |
| carol@co.com | 2024-04 | 200 |
| dave@co.com | 2024-03 | 75 |
Step-by-Step Setup
- Open Jetti and select your data sheet
- Column mapping:
- Customer ID →
customer_id - Date/Period →
month - Value →
revenue
- Customer ID →
- Settings:
- Report type: Cohort
- Value type: Count (we want to count customers, not sum revenue)
- Interval: Monthly
- Generate Report
Expected Output
| Cohort | Month 0 | Month 1 | Month 2 | Month 3 |
|---|---|---|---|---|
| 2024-01 | 2 | 2 | 1 | 0 |
| 2024-02 | 1 | 1 | 1 | |
| 2024-03 | 1 | 1 |
As percentages:
| Cohort | Month 0 | Month 1 | Month 2 | Month 3 |
|---|---|---|---|---|
| 2024-01 | 100% | 100% | 50% | 0% |
| 2024-02 | 100% | 100% | 100% | |
| 2024-03 | 100% | 100% |
How to Interpret
- 2024-01 cohort: Alice and Bob both signed up in January. Both were active in February (100% retention). Only Alice remained in March (50%). Neither was active in April (0%).
- 2024-02 cohort: Carol signed up in February and stayed active through April (100% retention at Month 2).
- 2024-03 cohort: Dave signed up in March and was still active in April.
Key Insights
- The January cohort shows 50% drop-off at Month 2 - what happened to Bob?
- February and March cohorts show better early retention
- Click on the "50%" cell to drill down and see it was Bob who churned
Example: Revenue Retention by Cohort
Scenario: Same data, but now you want to track how much revenue each cohort retains over time (not just customer count).
Setup Changes
- Keep all settings the same, but change:
- Value type: Sum (sum revenue instead of count customers)
Expected Output
| Cohort | Month 0 | Month 1 | Month 2 | Month 3 |
|---|---|---|---|---|
| 2024-01 | $150 | $150 | $100 | $0 |
| 2024-02 | $200 | $200 | $200 | |
| 2024-03 | $75 | $75 |
As percentages of starting revenue:
| Cohort | Month 0 | Month 1 | Month 2 | Month 3 |
|---|---|---|---|---|
| 2024-01 | 100% | 100% | 67% | 0% |
| 2024-02 | 100% | 100% | 100% | |
| 2024-03 | 100% | 100% |
How to Interpret
- January cohort started with $150 (Alice: $100, Bob: $50)
- By Month 2, only $100 remained (Alice) - 67% revenue retention
- The 2024-02 cohort (Carol at $200) retained 100% through Month 2
Revenue vs Count: When to Use Each
| Use Count when... | Use Sum when... |
|---|---|
| You care about logo retention | You care about dollar retention |
| All customers are roughly equal value | Customers have varying contract sizes |
| You're tracking user engagement | You're tracking revenue/MRR |
How Cohort Calculations Work
Step 1: Determine Each Customer's Cohort
Jetti assigns each customer to their first active period:
| customer_id | First seen | Cohort |
|---|---|---|
| alice@co.com | 2024-01 | 2024-01 |
| bob@co.com | 2024-01 | 2024-01 |
| carol@co.com | 2024-02 | 2024-02 |
| dave@co.com | 2024-03 | 2024-03 |
Step 2: Calculate Cohort Age
For each period a customer is active, calculate how many periods since their cohort:
| customer_id | Cohort | Active Period | Cohort Age |
|---|---|---|---|
| alice@co.com | 2024-01 | 2024-01 | 0 |
| alice@co.com | 2024-01 | 2024-02 | 1 |
| alice@co.com | 2024-01 | 2024-03 | 2 |
| bob@co.com | 2024-01 | 2024-01 | 0 |
| bob@co.com | 2024-01 | 2024-02 | 1 |
| carol@co.com | 2024-02 | 2024-02 | 0 |
| ... | ... | ... | ... |
Step 3: Aggregate by Cohort and Age
Jetti groups customers by their cohort and age, then counts (or sums) the values for each cell in the table.
Step 4: Calculate Retention Percentage
Divide each cell by the Month 0 value for that cohort:
Retention = (Value at Month N) / (Value at Month 0) × 100