7 min read

What Is Churn Rate in Amplitude

Churn rate is the percentage of users who stop using your product in a given time period—and it's the metric that determines whether you're actually growing. If you're shipping features but losing customers faster than you're gaining them, Amplitude makes it obvious why.

Defining Churn Rate for Your Product

Churn isn't a standard metric—you define what 'churned' means based on your business model.

Identify your churn trigger

For SaaS, it's a subscription cancellation. For a mobile game, it's 30 days without a session. For a marketplace, it's an account going inactive. The trigger determines everything downstream. Once you know it, instrument it in your code as an event that Amplitude tracks.

Track churn as an explicit event

Send a clear event when a user churns. Include context: cancellation reason, how long they were active, what they paid, which features they used. This gives you material to analyze later instead of just a number.

javascript
// Track explicit churn event
amplitude.track('Subscription Cancelled', {
  'subscription_id': 'sub_abc123',
  'revenue_monthly': 99.99,
  'reason': 'too_expensive',
  'months_active': 14,
  'features_used': ['reports', 'exports']
});
Include context so you can answer 'why' later, not just 'who'.

Set a time window for measurement

Churn rate is always over a specific period. Monthly churn (MRR churn) is standard for SaaS. Weekly churn for engagement-driven products. Amplitude's Retention feature lets you measure drop-off over any time window you define.

Tracking Churn in Amplitude

To measure churn reliably, you need consistent, well-structured event tracking.

Mark users as churned with user properties

Beyond the event, set a user property that flags them as churned. This makes segmentation easy. Later, when you want to analyze 'what did churned users do differently?', you can filter by this property in Segmentation.

javascript
// Set user property when churn is detected
amplitude.setUserProperties({
  'is_churned': true,
  'churn_date': new Date().toISOString(),
  'churn_type': 'voluntary'
});
User properties persist and make it easy to segment users later.

Also track inactivity as a warning signal

Explicit churn events (cancellations) are clear. But inactivity often precedes churn. Track days_since_last_event or last_active_date as user properties. Users with 30+ days of inactivity are at risk even if they haven't explicitly cancelled.

javascript
// Update user properties on each session
amplitude.setUserProperties({
  'last_active': new Date().toISOString(),
  'days_since_active': 0,
  'session_count': userSessionCount
});
Inactivity is often a leading indicator of churn.

Track across all platforms consistently

If you have users on web, iOS, and Android, instrument churn identically on each. Amplitude syncs these to a single user profile, so you measure net churn across your entire product—not just web or mobile in isolation.

Analyzing Churn in Amplitude

Once events flow in, Amplitude gives you multiple lenses to see churn patterns.

Use Retention to see drop-off over time

Navigate to Analytics > Retention. Pick your activation event (e.g., First Sign-up) and your churn event (e.g., Subscription Cancelled). Amplitude plots the percentage of users from each cohort that remain active. A steep cliff early means onboarding is broken. A slow fade means long-term users are leaving.

javascript
// Ensure events are properly tied to users for retention analysis
amplitude.track('User Signed Up', {
  'signup_source': 'google_ad',
  'plan': 'free'
});

// Later, track churn
amplitude.track('Subscription Cancelled', {
  'plan': 'free',  // same attribute for grouping
  'downgrade_reason': 'not_using'
});
Retention analysis works when your activation and churn events are tied to the same user.

Create a churned user cohort for deeper analysis

In Segmentation, build a cohort: is_churned == true AND churn_date within the last 30 days. Save it. Now you can answer: What features did churned users skip? How long was their first session? What was their average revenue? Patterns emerge fast.

Query churn data via HTTP API for reporting automation

For scheduled reports or data warehouse syncs, use Amplitude's HTTP API to export churn events. Filter by event type and date range, then pipe into your BI tool or data pipeline.

javascript
// Export churn events for custom analysis
const apiKey = process.env.AMPLITUDE_API_KEY;
const params = new URLSearchParams({
  'start': '20250301T00:00:00Z',
  'end': '20250331T23:59:59Z',
  'event': 'Subscription Cancelled'
});

const response = await fetch(
  `https://api2.amplitude.com/api/2/events?${params}`,
  {
    headers: {
      'Authorization': `Bearer ${apiKey}`
    }
  }
);

const churnEvents = await response.json();
// Calculate: (churnEvents.data.length / totalUsers) * 100
Automate churn rate calculation and feed it into dashboards.
Watch out: Churn rate can be net (new signups offset losses) or gross (raw lost users). Define it consistently or your team will argue about whether churn went up or down.

Common Pitfalls

  • Setting your inactivity threshold too high. Marking users as churned after 6 months means you miss real churn happening at day 30. Start conservative—30 days inactive is a safe baseline.
  • Not separating voluntary from involuntary churn. Payment failures, legal holds, and account suspensions skew your numbers. Your product team needs to know actual voluntary churn, not payment processing noise.
  • Ignoring seasonal patterns. New Year, post-holidays, and budget cycles all spike churn. Compare year-over-year, not sequential months, or you'll chase phantom trends.
  • Confusing active users with engaged users. Someone might log in but never send an event. Track engagement metrics (feature use, content consumption) alongside login events for a real picture.

Wrapping Up

Churn rate is deceptively simple to define and impossible to ignore once you're tracking it in Amplitude. The metric forces you to ask uncomfortable questions: Why are users leaving? Is it a product problem or a fit problem? What's your actual unit economics if half your users are gone in six months? Once you're measuring churn, you can act on it—and that's where momentum compounds. If you want to track churn automatically across Amplitude, Mixpanel, and PostHog without context-switching, Product Analyst can help.

Track these metrics automatically

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

Try Product Analyst — Free