6 min read

How to Visualize Churn Rate in PostHog

Churn is one of the fastest killers of growth. You can't fix what you don't see. PostHog's Retention insight lets you measure what percentage of users return after their first action—the inverse of churn. Whether you're tracking subscription cancellations or inactive users, you need the right events flowing in and the right view set up to actually see it.

Capture Churn-Related Events

Churn starts with the right data. You need to track when users take actions that indicate they might be leaving.

Identify What Signals Churn in Your Product

Start by deciding what "churn" means for you. Is it a subscription cancellation? A user who stops logging in? A downgrade? Pick a concrete action and create an event for it. In PostHog, you'll track this with posthog.capture().

Send Churn Events from Your Application

Use the PostHog JavaScript SDK to capture churn signals. When a user cancels their subscription, stops using your product, or downgrades, fire an event. Important: Always identify the user first with posthog.identify() so PostHog knows which user the event belongs to.

javascript
// When a user cancels their subscription
posthog.identify(
  userId, // e.g., "user_123"
  {
    email: userEmail,
    plan: 'pro'
  }
);

posthog.capture('subscription_cancelled', {
  reason: 'too_expensive',
  plan_type: 'pro',
  months_active: 6
});
Track subscription cancellations with context about why they left

Add Properties to Slice Churn Later

Include properties on your churn events—plan type, cancellation reason, customer segment. This lets you answer questions like "What's churn for free users vs. paid?" when you build retention insights.

Watch out: If you send events before identifying the user, PostHog treats them as anonymous events. Always call posthog.identify() before posthog.capture() in your auth flow.

Build a Retention Insight to Measure Churn

Once your events are flowing, PostHog's Retention view is the simplest way to see churn. It shows: of users who took Action A on Day 1, how many came back and took Action B on Day 7, 14, 30?

Create a New Retention Insight

Go to Insights in the left sidebar and click + New insight. Select Retention as the insight type. This view is specifically built for cohort analysis and churn measurement.

Define Your Returning Action

In the Retention view, set up what action defines an "active" user. Pick an action like page_view or product_used. PostHog will show you what % of users who did this action on Day 1 returned on Day 7, 14, 30, etc. This percentage is 1 - churn_rate.

javascript
// In PostHog UI, configure:
// - Starting event: "signup" or "first_login"
// - Returning event: "page_view"

// From your app, send the events:
posthog.capture('page_view', {
  page_name: 'dashboard',
  plan_type: user.planType
});

// PostHog calculates retention % automatically
PostHog calculates retention automatically—you just send the events

Filter by Cohorts or Properties

Use the Filter button in the Retention view to segment your data. Filter by plan_type == 'pro' or by a specific user cohort. This tells you whether churn is uniform or concentrated in certain segments.

Read the Retention Table

The table shows % of users retained on each day. Day 1 is always 100%. If Day 7 is 65%, that means 35% churned in the first week. Look for sharp drops—they often indicate a product issue, seasonal pattern, or feature gap. Compare across segments to find where you're bleeding users.

Tip: If PostHog's Retention view doesn't fit your definition (e.g., must be active 3+ times per week), use a Cohort combined with a Trend insight instead for more control.

Build a Churn Monitoring Dashboard

A one-off insight is useful, but you need to track churn week over week. Create a dashboard widget so you're always watching the numbers.

Pin Your Retention Insight to a Dashboard

Once your Retention insight is configured, click the three-dot menu and Add to dashboard (or create a new one). Name it something clear like "Churn by Segment" or "Weekly User Retention."

Add a Trends Chart for Churn Volume

Create a second insight: Go to Insights > + New > Trends. Select your churn event (e.g., subscription_cancelled). Set time range to Last 90 days and group by date. This shows you raw churn events over time, useful for spotting trends.

javascript
// In PostHog Trends insight:
// Event: subscription_cancelled
// Time period: Last 90 days
// Group by: date
// Filter: plan_type = 'pro'

// Your app sends:
posthog.capture('subscription_cancelled', {
  plan_type: 'pro',
  ltv_before_churn: 1200,
  churn_segment: 'enterprise'
});
Track churn volume over time to spot patterns and correlations

Set Weekly Review Rituals

Pin both insights to a Churn Monitoring dashboard. Review it weekly with your team. Watch for: declining retention %, specific cohorts with high churn, and spikes that correlate with releases or changes.

Watch out: Retention cohorts take a few hours to populate if you have many users. Don't assume zero data means no churn—check back later. Also, retention is calculated in UTC by default, so align your team on timezone.

Common Pitfalls

  • Forgetting to identify users before capturing events—anonymous events won't show up correctly in retention cohorts, breaking your churn analysis.
  • Using vague events like 'user_action' instead of specific ones like 'subscription_cancelled'—PostHog's retention view works best with concrete, intentional events.
  • Not filtering by plan type or segment—overall churn can mask the fact that free users churn at 80% while paying users churn at 5%. Always slice the data.
  • Confusing retention % with churn %—if retention is 65%, churn is 35%. Don't report them backwards to your exec team.

Wrapping Up

You now have a clear path to visibility on churn: capture the right events, build a retention insight, and monitor it weekly. PostHog's Retention view removes the guesswork. If you want to track this automatically across tools and correlate churn with feature usage, session recordings, and support data, Product Analyst can help.

Track these metrics automatically

Product Analyst connects to your stack and surfaces the insights that matter.

Try Product Analyst — Free