Introduction
Analytics are more than dashboardsโthey help you make the right decisions and prioritize what to build. For early-stage indie hackers, understanding cohorts and retention is the best way to measure product-market fit and estimate long-term value.
Many founders operate on intuition alone, but data-driven decisions compound over time. By tracking the right metrics, you can identify what’s working, diagnose churn, and validate that your changes actually improve user behavior.
Core Concepts & Definitions
Before diving in, here are the essential terms you’ll encounter:
- Cohort: A group of users who share a common characteristic or experience within a defined time period. Most commonly, users acquired in the same week or month.
- Retention: The percentage of users who remain active after a specific time period (e.g., 7 days, 30 days).
- Churn: The opposite of retentionโthe percentage of users who stop using your product. If 30-day retention is 60%, your 30-day churn is 40%.
- LTV (Lifetime Value): The total revenue a customer is expected to generate over their entire relationship with your product.
- ARPU (Average Revenue Per User): The average amount of revenue each user generates per month or year.
- DAU/MAU: Daily Active Users / Monthly Active Users. Core metrics for measuring engagement.
- Activation: The moment a user performs a key action that indicates they understand your product’s value (e.g., completing onboarding, uploading their first file).
Cohort Analysis Basics
What is Cohort Analysis?
Cohort analysis groups users by a shared attribute or behavior and tracks them over time. This isolates the impact of specific changes and removes noise from your metrics.
Why it matters: If you look at overall retention, you can’t tell if a new onboarding flow actually helped. Cohort analysis lets you compare users who went through the old flow vs. the new flow, all else being equal.
How to Define Cohorts
By acquisition date (most common):
- Week 1 of December: All users who signed up Dec 1-7
- This isolates external factors (marketing campaigns, seasonality)
By behavior or property:
- Users who completed onboarding vs. those who didn’t
- Users acquired via organic vs. paid channels
- Users on the free plan vs. paid plans
Example: Cohort Retention Table
A typical cohort retention table shows retention by week:
| Cohort | Week 0 | Week 1 | Week 2 | Week 4 | Week 8 |
|---|---|---|---|---|---|
| Nov 1-7 | 100% | 65% | 48% | 32% | 22% |
| Nov 8-14 | 100% | 72% | 54% | 38% | 25% |
| Nov 15-21 | 100% | 68% | 51% | 35% | 24% |
| Nov 22-28 | 100% | 75% | 58% | 42% | 29% |
What this tells you: The Nov 22-28 cohort has better retention than earlier cohorts. You shipped an onboarding change on Nov 22โthis table proves it worked.
Setting Up Cohorts in PostHog
# PostHog automatically creates cohorts based on properties
# You can filter by:
# - signup_date (for time-based cohorts)
# - source (organic, paid, referral)
# - plan (free, pro, enterprise)
# - onboarding_completed (true/false)
# Example: Create a cohort of users who signed up in November 2025
{
"name": "November 2025 Signups",
"filters": {
"date_from": "2025-11-01",
"date_to": "2025-11-30",
"property": "created_at"
}
}
Tools for cohort analysis:
- PostHog: Open-source, self-hosted or cloud. Free tier available. posthog.com
- Amplitude: Advanced cohort builder, powerful retention charts. Free tier with limitations. amplitude.com
- Mixpanel: Similar to Amplitude, strong in behavioral analytics. mixpanel.com
Retention Curves
Understanding Retention Patterns
A retention curve shows what percentage of a cohort remains active over time. The shape of this curve tells a story:
- Steep drop-off in first 7 days: Users aren’t finding value (activation problem)
- Gradual decline after day 7: Normal pattern; stabilizes after 30 days as power users remain
- Cliff at day 30: Likely a trial period or subscription renewal issue
- Flat or increasing: Rare, but indicates strong product-market fit or viral growth
The “Aha Moment” and Time-to-Value
Your retention curve depends heavily on how quickly users experience value. This is called time-to-value (TTV).
Examples:
- Slack: Aha moment = first message sent to a channel (usually within minutes)
- Notion: Aha moment = creating first database or page (usually within 10 minutes)
- Stripe: Aha moment = first API call or payment processed (can take hours or days)
Action: Identify your product’s aha moment and track it in your analytics. Users who hit this moment in their first session have much higher 7-day retention.
Diagnosing a Steep Drop-Off
If 50% of users churn in the first 3 days:
- Check activation rate: What % complete your onboarding flow?
- Find the drop-off point: Where do users leave? (track each step)
- A/B test the onboarding: Shorter flow vs. detailed tour vs. blank slate
- Measure time-to-value: Are users hitting the aha moment?
Example experiment:
- Control group: 5-step onboarding (45% activation)
- Test group: 2-step onboarding (62% activation)
- Result: Ship the 2-step version
Calculating LTV
The Basic Formula
LTV = ARPU / Monthly Churn Rate
Example:
- ARPU = $10/month (average revenue per user)
- Monthly churn = 10% (lose 10% of users each month)
- LTV = $10 / 0.10 = **$100 total revenue per customer**
Why This Matters
LTV determines your unit economics:
- If LTV = $100 and customer acquisition cost (CAC) = $20, you have a 5:1 ratio (healthy)
- If LTV = $30 and CAC = $20, your ratio is 1.5:1 (unsustainable)
More Accurate LTV Calculations
The simple formula ignores gross margin. A better version:
LTV = (ARPU ร Gross Margin) / Monthly Churn Rate
Example:
- ARPU = $10/month
- Gross margin = 80% (you keep $8 after payment processing, infrastructure)
- Monthly churn = 10%
- LTV = ($10 ร 0.80) / 0.10 = **$80**
LTV by Cohort and Channel
This is where cohort analysis + LTV combine for powerful insights:
| Channel | First Month Revenue | 3-Month LTV | 12-Month LTV |
|---|---|---|---|
| Organic | $2.50 | $18 | $65 |
| Paid Search | $4.00 | $22 | $58 |
| Referral | $3.50 | $28 | $92 |
Insight: Referral users have highest LTV despite lower first-month revenue. Double down on referral incentives.
Payback Period
How long until you recover your CAC?
Payback Period = CAC / (ARPU ร Gross Margin)
Example:
- CAC = $25
- ARPU = $10
- Gross margin = 80%
- Payback = $25 / ($10 ร 0.80) = 3.1 months
You need at least 12-month LTV > 3 ร CAC for sustainable growth.
Tools and Implementation
PostHog (Recommended for Indies)
Pros:
- Open-source, can self-host for free
- Event tracking, cohorts, retention all built-in
- Generous free tier (1M events/month)
- No data sampled on free tier
Getting started:
// Install PostHog snippet in your app
posthog.capture('user_signup', {
plan: 'free',
source: 'google_ads'
});
posthog.capture('key_action_completed', {
feature: 'dashboard_view'
});
Resources: PostHog Docs | Event Tracking Guide
Amplitude
Pros:
- Powerful cohort builder
- Retention and funnels built-in
- Good dashboard UI
Cons:
- Limited free tier (10M events/month, then sampled)
- Steeper learning curve
Resources: Amplitude Analytics
Mixpanel
Pros:
- Strong in behavioral analytics
- Good retention visualization
Cons:
- Similar pricing/limitations to Amplitude
Lightweight Alternatives
If you want simple traffic analytics (not event tracking):
- Plausible: Privacy-focused, $10-20/month, no cookies
- Fathom: Similar to Plausible
- Google Analytics 4: Free, but steeper learning curve for cohort analysis
Common Metrics to Track
The Essential Dashboard
Build your first dashboard with these five metrics:
-
Activation Rate
- Definition: % of signups who complete your aha moment in their first session
- Target: >40% is good, >60% is excellent
- Formula: (Users who completed aha / Total signups) ร 100
-
7-Day Retention
- Definition: % of users active 7 days after signup
- Target: >30% is decent, >50% is strong
- Use: Quick feedback loop on product changes
-
30-Day Retention
- Definition: % of users active 30 days after signup
- Target: >20% is decent, >40% is strong
- Use: Better predictor of LTV than 7-day
-
90-Day Retention
- Definition: % of users active 90 days after signup
- Target: >10% is decent, >20% is strong
- Use: Indicates true product-market fit
-
Churn Rate by Plan
- Definition: % of users who cancel each month, segmented by plan
- Target: <5% for annual plans, <8% for monthly plans
- Use: Identify which plans are underperforming
Secondary Metrics
- DAU/MAU Ratio: (Daily Active Users / Monthly Active Users). Higher is better. >30% indicates strong engagement.
- Payback Period: Months to recover CAC
- Revenue per Cohort: Total LTV by acquisition source
- Feature Adoption: % using each feature (helps identify what drives retention)
Common Pitfalls & How to Avoid Them
Pitfall 1: Not Defining “Active”
Problem: You think retention is 60%, but you haven’t defined what “active” means.
Solution: Define it explicitly.
- Option A: Logged in at least once
- Option B: Completed a key action (message sent, file uploaded)
- Option C: Used the product for >5 minutes
Most important: be consistent.
Pitfall 2: Ignoring Small Cohorts
Problem: You launch a small experiment and see 80% retention on Day 1 (2 users).
Solution: Only trust cohorts with >30 users. Smaller sample sizes have high variance.
Pitfall 3: Comparing Apples to Oranges
Problem: Your November cohort has 40% 30-day retention, December has 45%. You assume December onboarding is better, but December includes holiday users.
Solution: Compare cohorts of similar size and seasonality. Or A/B test within the same time period.
Example Use Cases
Use Case 1: Your Onboarding Sucks
Signal: 7-day retention is 25%, 30-day retention is 15%
Action:
- Track each step of onboarding in analytics
- Identify where users drop off (step 2? step 4?)
- Test a shorter onboarding flow on 50% of new users
- Compare 7-day retention of test vs. control
- If test wins, ship it to everyone
Expected outcome: 7-day retention increases to 35%+
Use Case 2: One Channel Has Higher LTV
Signal: Organic users have 45% 30-day retention, paid search users have 30%
Action:
- Organic users are higher quality (or your messaging attracts better-fit users)
- Increase organic marketing budget (SEO, content, referrals)
- Pause or reduce paid search until messaging improves
- Calculate LTV by channel; allocate budget proportionally
Expected outcome: CAC decreases, LTV increases
Use Case 3: Payback Period is Too Long
Signal: CAC = $50, 30-day retention = 30%, ARPU = $8/month, payback period = 7+ months
Action:
- Increase ARPU: upgrade users to paid plans, add premium features
- Improve retention: better onboarding, reduce churn
- Reduce CAC: find cheaper acquisition channels
- Target earlier, more specific audience
Expected outcome: Payback period decreases to 3-4 months
Use Case 4: Revenue Isn’t Growing (But User Count Is)
Signal: DAU up 20%, but revenue flat
Action:
- Check if new users are on free plan (expected)
- Track conversion rate from free to paid by cohort
- Analyze: are old cohorts converting at higher rates?
- Test pricing or premium feature positioning
Expected outcome: Conversion rate increases, revenue catches up to DAU growth
Setting Up Your First Analytics Stack
Step 1: Choose Your Tool (Week 1)
Pick one: PostHog (self-hosted), Amplitude, or Mixpanel. Don’t overthink it.
Recommendation: Start with PostHog. Free tier is generous, no data sampling, you own your data.
Step 2: Define Core Events (Week 1-2)
Create a spreadsheet of events to track:
| Event | When | Why |
|---|---|---|
user_signup |
User completes signup | Cohort baseline |
onboarding_started |
User starts onboarding | Measure drop-off |
first_key_action |
User [completes your aha moment] | Measure activation |
feature_used |
User uses a core feature | Measure adoption |
subscription_created |
User upgrades to paid | Measure conversion |
subscription_cancelled |
User cancels | Measure churn |
Step 3: Instrument Your Product (Week 2-3)
Add tracking code to your app:
// JavaScript example with PostHog
import posthog from 'posthog-js'
posthog.init('your-api-key', { api_host: 'https://app.posthog.com' })
// Track signup
posthog.capture('user_signup', {
plan: 'free',
source: 'organic'
})
// Track key action
posthog.capture('first_key_action', {
feature: 'dashboard_view',
time_to_activation: 120 // seconds
})
// Track upgrade
posthog.capture('subscription_created', {
plan: 'pro',
price: 29
})
Step 4: Build Your Dashboard (Week 3)
Create a simple dashboard with:
- 7-day retention curve
- 30-day retention curve
- Activation rate
- Churn by plan
Step 5: Review Weekly (Ongoing)
Every Monday:
- Check retention on last week’s cohort
- Look for trends (improving or declining?)
- If you shipped a change, did it help?
- Update your backlog based on data
Final Thoughts
Analytics is a feedback loop: track the right things, run experiments, iterate. Cohorts and retention analysis are the most powerful tools for indie hackers because they:
- Isolate cause and effect: You can prove that a change actually helped
- Scale efficiently: You know which channels and cohorts are most valuable
- Prevent false positives: You won’t optimize for vanity metrics
Start simple. Don’t aim for perfect analytics on day one. Pick 5 core events, build one dashboard, and review it weekly.
Your Action Plan
- This week: Set up PostHog and add 5 core events to your product
- Next week: Build a retention dashboard, view your first cohort
- Month 1: Run one A/B test on onboarding based on your retention data
- Month 2: Identify your highest-LTV channel, double down on it
Resources & Further Reading
PostHog:
Analytics Concepts:
Tools:
A/B Testing:
Comments