"Retention rate is one of the fundamental metrics in product management. We all use it regularly, yet few of us know that there are many different ways to calculate retention rate. And it is very important to know which one to use when you're making decisions based on retention data."
— Source: r/Entrepreneur (3 upvotes)
CAC (customer acquisition cost) is the metric everyone quotes. But on its own it hides the hard question: do those customers come back?
Illustrative example: say each $50 order leaves $20 of contribution after product, fulfillment, and fees. A customer acquired for $8 who buys once and never returns leaves $20 − $8 = $12. A customer acquired for $15 who buys 5 times leaves 5 × $20 − $15 = $85. The second costs nearly twice as much to acquire but is worth about 7x as much.
Cohort analysis is how you see this. It segments customers by the month they joined and tracks how many of them come back, month after month, to make repeat purchases.
What is Cohort Analysis?
The 50-word definition
Cohort analysis segments customers into groups based on shared acquisition period (usually by month) and tracks their behavior over time. A monthly cohort table shows the repeat purchase rate (or other metrics) for each group in Month 0, Month 1, Month 2, and beyond. Cohort analysis reveals whether customer retention is improving or deteriorating.
Cohort analysis is the antidote to vanity metrics. Instead of looking at aggregate "repeat rate" (e.g., 22% of all customers repeat), you see the pattern: do June customers repeat at 22%? Do July customers repeat at 24%? Are you getting better at retaining customers, or worse?
Example cohort table (simplified):
| Cohort | Customers Acquired (M0) | Repeat in M1 | Repeat in M2 | Repeat in M3 |
|---|---|---|---|---|
| July | 1,000 | 24% | 15% | 12% |
| August | 1,100 | 26% | 16% | 13% |
| September | 950 | 28% | 18% | 14% |
Reading this table: The September cohort is retaining customers better (28% M1, 18% M2) than July (24% M1, 15% M2). This suggests improving product-market fit or better customer segmentation.
Key Retention Metrics
Repeat Rate (Month N)
Formula: (Customers who purchased in Month N) / (Total customers in cohort)
Example: June cohort had 1,000 customers. In July (Month 1), 240 of them purchased again. M1 repeat rate = 240 / 1,000 = 24%.
Repeat rate is month-specific. It captures the "reactivation" in that month. High M1 (short-term repeat) suggests strong product experience. High M6, M12 (long-term repeat) suggests habit-forming product or subscription-level engagement.
Cumulative Retention Rate
Formula: (Customers who purchased at least once after initial purchase) / (Total customers in cohort)
Example: June cohort, 1,000 customers. 420 have made at least one repeat purchase within the first year. Cumulative retention = 420 / 1,000 = 42%.
This answers: what percentage of customers ever come back? For DTC brands it is the "second purchase rate", one of the most useful retention numbers. Pair it with the monthly rates, which show when customers come back.
Churn Rate
For subscription products, churn is simple: cancellations in the month ÷ active subscribers at the start of the month. For non-subscription products, a customer who skips a month has not necessarily churned. Define churn as no purchase within a set window, longer than your typical repurchase cycle.
Example: if most repeat buyers reorder within 90 days, count a customer as churned after 120 days with no order. If 600 of a 1,000-customer June cohort have not ordered again within 120 days of their first order, 120-day churn is 600 / 1,000 = 60%.
Compare that same window across cohorts. If June's 120-day churn is 60% and September's is 55%, churn is improving.
Average Repeat Purchase Value (RPV)
Formula: (Total revenue from repeat purchases in Month N) / (Customers who purchased in Month N)
Example: June cohort, M1 repeat purchases = 240 customers, total revenue = $8,400. RPV = $8,400 / 240 = $35/customer.
Tracks not just who repeats, but how much they spend. A cohort with 30% M1 repeat rate but $50 RPV is better than 40% M1 repeat at $20 RPV.
Repeat Purchase Frequency
Formula: (Total purchases from cohort in Month N) / (Total customers in cohort)
Example: June cohort, M1 repeat purchases = 270 transactions (some customers purchased more than once). Frequency = 270 / 1,000 = 0.27 purchases per customer.
Compare the same month across cohorts. If the September cohort makes 0.30 purchases per customer in M1 against 0.27 for June, newer customers are buying more often.
Building a Cohort Table: Step by Step
Structure
A standard monthly cohort table:
- Rows: Customer cohorts, one per acquisition month (e.g., July 2024, August 2024). Show 12-24 months.
- Columns: Month 0 (acquisition), Month 1, Month 2, ..., Month 12 (or beyond). Represents months post-acquisition.
- Cell values: Repeat purchase rate (or count, or revenue) for that cohort in that month.
Example: DTC beauty brand cohort table (repeat rate %)
| Cohort | M0 (Acq) | M1 | M2 | M3 | M4 | M5 | M6 | M7 | M8 | M9 | M10 | M11 | M12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| July | 100% | 24% | 16% | 13% | 11% | 10% | 9% | 8% | 7% | 7% | 6% | 6% | 5% |
| Aug | 100% | 26% | 18% | 14% | 12% | 10% | 9% | 8% | 8% | 7% | 7% | 6% | N/A |
| Sep | 100% | 28% | 19% | 15% | 13% | 11% | 10% | 9% | N/A | N/A | N/A | N/A | N/A |
| Oct | 100% | 25% | 17% | 14% | 12% | 10% | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Interpreting the table
- M1 repeat rates (24-28%): About 1 in 4 customers buy again in the month after their first order.
- Trend down M1-M6: Steep drop from 28% (M1) to 10% (M6) for the September cohort. Most of the repeat activity happens early.
- Stabilization M6+: After 6 months, repeat rate stabilizes around 5-9%. These are loyal, repeat customers.
- September cohort (best M1): 28% M1 repeat rate is higher than July (24%) and August (26%). Product or marketing may have improved.
Building the table in Excel/Sheets
- Column A: Cohort names (July, August, September, etc.)
- Columns B-M: Month 0 through Month 12
- Prepare the order data first: one row per order with customer ID (column A) and order date (column B). In column C, find each customer's first order date: =MINIFS(B:B, A:A, A2). In column D, months since first order: =(YEAR(B2)-YEAR(C2))*12+MONTH(B2)-MONTH(C2).
- Build a pivot table with cohort month (from column C) as rows, months since first order (column D) as columns, and a distinct count of customer IDs as values. Divide each cell by the cohort's Month 0 count to get the repeat rate.
Repeat Rate by Channel and Segment
Consumer brands should build separate cohort tables by channel and customer segment. Repeat rates often differ dramatically:
Illustrative example: DTC vs Amazon cohorts
| Cohort & Channel | M0 | M1 | M2 | M3 | M6 |
|---|---|---|---|---|---|
| July DTC | 100% | 32% | 22% | 17% | 11% |
| July Amazon | 100% | 18% | 12% | 9% | 5% |
| Aug DTC | 100% | 34% | 23% | 18% | 12% |
| Aug Amazon | 100% | 19% | 13% | 10% | 6% |
Reading this table: in this example, DTC customers (reachable through your own email and SMS list) show M1 repeat rates of 32-34%, and Amazon customers show 18-19%. Two caveats. Amazon shares limited customer-level data with brands, so marketplace cohorts are usually less granular than Shopify cohorts. And wholesale is different: your customer is the retailer, so track reorder rates by account rather than consumer cohorts.
Illustrative example: Customer acquisition source comparison
| Cohort & Source | M0 | M1 | M2 | M3 | M6 |
|---|---|---|---|---|---|
| Aug Paid Ads | 100% | 22% | 14% | 10% | 6% |
| Aug Organic/SEO | 100% | 38% | 28% | 22% | 14% |
| Aug Email List | 100% | 45% | 35% | 28% | 18% |
Reading this example: Email list customers (warm audience, brand familiar) show 45% M1 repeat. Organic/SEO customers (discovery via reviews and search) show 38%. Paid ads (cold traffic) show 22%. In this example, email retention outperforms other channels, suggesting higher lifetime value per acquisition dollar.
Worked Example: Monthly Cohort Analysis
Scenario: Apparel brand, DTC + Amazon, Jan-June 2024
- Product: Women's athleisure (leggings, jackets)
- Channels: DTC (Shopify) and Amazon
- Customer acquisition: 500-800 new customers per month
- Data: Transaction history, customer acquisition date, repeat purchases
Step 1: Identify January cohort (500 customers)
- Total customers acquired in January: 500
- Customers who purchased in February (M1): 95 = 95 / 500 = 19% repeat rate
- Customers who purchased in March (M2): 65 = 65 / 500 = 13% repeat rate
- Customers who purchased in April (M3): 48 = 48 / 500 = 9.6% repeat rate
- Customers who purchased in May (M4): 32 = 32 / 500 = 6.4% repeat rate
- Customers who purchased in June (M5): 22 = 22 / 500 = 4.4% repeat rate
Step 2: Repeat for each cohort (Feb-June)
- February cohort (600 customers): M1=22%, M2=15%, M3=11%, M4=7%, M5=5%
- March cohort (550 customers): M1=20%, M2=14%, M3=10%, M4=6%, M5=N/A (future)
- April cohort (700 customers): M1=24%, M2=16%, M3=11%, M4=N/A, M5=N/A
- May cohort (650 customers): M1=26%, M2=17%, M3=N/A, M4=N/A, M5=N/A
- June cohort (800 customers): M1=28%, M2=N/A (future data not yet available)
Step 3: Build the cohort table
| Cohort | Customers | M0 | M1 | M2 | M3 | M4 | M5 |
|---|---|---|---|---|---|---|---|
| January | 500 | 100% | 19% | 13% | 9.6% | 6.4% | 4.4% |
| February | 600 | 100% | 22% | 15% | 11% | 7% | 5% |
| March | 550 | 100% | 20% | 14% | 10% | 6% | N/A |
| April | 700 | 100% | 24% | 16% | 11% | N/A | N/A |
| May | 650 | 100% | 26% | 17% | N/A | N/A | N/A |
| June | 800 | 100% | 28% | N/A | N/A | N/A | N/A |
Step 4: Analyze the patterns
- M1 repeat (19-28%): Improving trend. January cohort was lowest at 19%; June cohort is highest at 28%. Marketing or product quality may be improving.
- Drop-off: Steep decline M1-M3, for example 24% to 11% for the April cohort. By M3, only about 1 in 9 April customers bought that month.
- Stabilization: After month 4-5, repeat rate stabilizes around 4-7%. These are the loyal repeat customers.
- Cumulative repeat (Jan cohort): Adding the monthly rates (19% + 13% + 9.6% + 6.4% + 4.4% = 52.4%) overstates it, because the same customer can buy in several months. Count unique customers instead: if 180 of the 500 bought again at least once in M1-M5, cumulative repeat is 180 / 500 = 36%.
Step 5: Calculate repeat revenue
Add a second cohort table for repeat revenue:
| Cohort | M1 Revenue | M1 Repeat Customers | M1 Avg per Customer | M2 Revenue | M2 Repeat Customers | M2 Avg per Customer |
|---|---|---|---|---|---|---|
| January | $2,850 | 95 | $30.00 | $1,820 | 65 | $28.00 |
| February | $3,300 | 132 | $25.00 | $2,310 | 90 | $25.67 |
| March | $3,000 | 110 | $27.27 | $1,960 | 77 | $25.45 |
| April | $4,200 | 168 | $25.00 | $2,560 | 112 | $22.86 |
| May | $4,550 | 169 | $26.92 | $2,601 | 111 | $23.43 |
| June | $5,600 | 224 | $25.00 | N/A | N/A | N/A |
Reading: repeat customer counts match the cohort table (for example, 22% of February's 600 = 132 in M1 and 15% = 90 in M2). M1 spend per repeat customer ranges from $25.00 to $30.00 with no upward trend: January was highest at $30.00 and June is $25.00. Repeat rates are improving, but spend per repeat customer is not, so there is no sign of upsell improvement.
Cohort Analysis for Consumer Brands
For DTC, Amazon, and wholesale brands, cohort analysis answers critical questions:
- Are we improving retention? Track M1 repeat rate trend. Is June cohort better than May? If retention is declining, it signals product or marketing quality issues.
- Which channels retain best? Build separate cohort tables by channel, and compare repeat rates alongside each channel's contribution margin. Put retention marketing behind the channels where repeat customers are most profitable.
- Do promotions hurt long-term retention? Compare cohorts acquired during promotions vs regular pricing. Promo cohorts can repeat less (discount-seekers). Compare profitability, not just repeat rate.
- How does repeat rate vary by product? Build cohorts by product category. Replenishment products (supplements, beauty consumables) tend to repeat more than one-time purchases (apparel, home goods).
- Are new customer acquisition costs sustainable? If CAC is $20, each order leaves $20 of contribution, and customers average 1.15 orders over your planning horizon, LTV = $20 × 1.15 = $23, just $3 more than CAC. At 1.40 orders, LTV = $28 and $8 is left after CAC.
The goal: build repeatable, predictable retention. Once you understand your cohort retention by channel and segment, you can forecast LTV, optimize CAC budgets, and model annual unit economics.
From Customer Vanity to Real Retention
Many brands watch "repeat rate" as an aggregate: "22% of all customers repeat." On its own, that hides the trend. What matters is whether retention is improving or deteriorating, and whether it varies by channel and customer segment.
Cohort analysis shows the pattern. In the worked example, January customers repeat at 19% in M1 and June customers at 28%. In the channel example, DTC customers repeat at 32% and Amazon at 18%. Those differences change what each acquisition dollar is worth.
The operational challenge: building and maintaining cohort tables for 50+ SKUs, 3 channels, and monthly cohorts is complex, and a table built once goes stale. The brands that succeed refresh it monthly, track it by channel and product, and feed it into the budget.
Turn repeat rates into the plan.
Niblin's FP&A platform uses repeat behavior by channel as a forecast driver: LTV and CAC payback tied to contribution margin, flowing into the revenue plan and the cash forecast. You see which channels and offers earn back their acquisition cost, and budget marketing accordingly. Live in weeks.
See how Niblin models it
Key Takeaways
- Cohort analysis segments customers by acquisition month and tracks their repeat purchase behavior over time.
- Repeat rate (Month N) = Customers who purchased in Month N / Total customers in cohort.
- Churn: for subscriptions, cancellations ÷ active subscribers; for one-off purchases, no order within a window longer than your repurchase cycle.
- Cumulative repeat = customers who made at least one repeat purchase / total cohort. Count unique customers; adding monthly rates double counts.
- Repeat rates can differ sharply by channel and product, so build cohort tables by channel and compare them with each channel's contribution margin.
- Cohort patterns show product and marketing health: improving M1 repeat = better product or targeting; declining M1 = quality or acquisition slipping.
- Monthly cohort analysis is essential for forecasting LTV and aligning CAC budgets with retention reality.
Frequently Asked Questions
What is cohort analysis?
Cohort analysis groups customers by acquisition month and tracks their repeat purchase rate over subsequent months. A cohort table shows whether customer retention is improving or declining, and how behavior changes over the customer lifetime.
How do I calculate repeat rate?
Repeat rate for Month N = (Customers who purchased in Month N) / (Total customers in cohort). Example: June cohort had 1,000 customers; 280 purchased in July (Month 1). M1 repeat rate = 280 / 1,000 = 28%.
What is a good repeat rate?
There is no universal number. It depends on category, price point, and how quickly the product is used up. Track your trend instead: is M1 repeat improving or declining across cohorts? That matters more than any outside benchmark.
Why do repeat rates differ by channel?
Channels differ in how much of the customer relationship you own. On DTC you have the customer's email and control messaging; on Amazon you have limited customer data and compete on every visit; in wholesale your customer is the retailer, so track reorders by account. Those differences show up as different repeat patterns.
How do I use cohort analysis to make decisions?
Compare cohorts: Are recent cohorts retaining better or worse than prior cohorts? If June repeats better than May, marketing or product improved. If worse, investigate quality or acquisition channel. Use this to decide where to spend CAC budget.
Should I build separate cohort tables for different products or channels?
Yes. Beauty has different repeat patterns than apparel. DTC has different patterns than Amazon. Building separate tables by product and channel reveals which segments are healthy and which need attention. Aggregate tables hide variation.
By