Risk mitigation and churn prevention

If you're actively thinking about churn prevention in response to a customer churn threat or major red flag, it's already way too late.

Churn prevention is best done from early, and often, risk mitigation practices.

We should default to flagging "at risk" accounts using the "Churn Risk" segment in Vitally well before the customer has told you they are exploring alternatives. If you have the slightest inkling that something may look off or something has you feeling a bit uncomfortable, flag it. This could be anything from not taking action on a recommendation you gave them for too long, down-trending volume with no apparent seasonality cause, only one or two core users of the platform, or no Slack activity for an extended period. To name a few.

There are a few risk-mitigation strategies you'll want to incorporate that serve as early detection and proactive mitigation, as well as a process for what to do when an account is actively at risk.


Risk mitigation (proactive)

Risk mitigation is about building habits that surface problems before they become emergencies. If you're doing this well, you'll rarely need the reactive playbook below.

Quarterly account planning

Every AM Managed account should have an Account Plan note created in Vitally once per quarter. You should also review this weekly with your manager. This forces you to step back and evaluate the account holistically rather than just reacting to whatever's in front of you.

Title format: Q[X] Account Plan - [Company Name]

Use the Account Plan template in Vitally, which auto-populates key fields from the account record. The template covers:

Account overview

  • ARR, business description, website, HQ location
  • Business type (B2B SaaS, E-commerce, Marketplace, Developer Tools, Fintech, Healthcare, etc.)
  • Key metrics relevant to their business model
  • Business stage and funding

Business objectives

  • What they're trying to achieve with PostHog (specific goals, not vague "analytics")
  • How PostHog connects to their larger business objectives
  • Whether value aligns with their expectations
  • Obstacles they're facing, both in using PostHog and in their broader goals
  • Upcoming constraints (budget freezes, code freezes, migrations, seasonality)
  • Future needs over 6-18 months

Stakeholders and users

  • Admin emails and total user count
  • Percentage of active users (30 days)
  • Key contacts with their priorities, goals, and preferred communication
  • Multithreading status: do we have two-way dialogue with technical stakeholders, budget holders, and end-users?
  • Record of multithreading attempts and progress

Current usage and cross-sell

  • Products adopted (Product Analytics, Feature Flags, Group Analytics, Error Tracking, Session Replay, Surveys, Data Warehouse)
  • Usage notes on how they're actually using each product
  • Cross-sell opportunities with specific use cases, next steps, and relevant content to share
  • Optimization opportunities for existing products (underused features, configuration improvements)

Risks

  • Document each risk with: the challenge, what's at stake, plan of action, and next key date

Action items

  • Multithreading: who, why, progress, anyone at PostHog who can help
  • Finding new opportunity: what are you doing to find new revenue?
  • Mitigating risk: what are you doing to uncover and mitigate risk?

If you can't fill out most of this template, that's a signal you need to dig deeper into the account. An incomplete account plan usually means incomplete understanding of the customer.

Early warning signals

These aren't emergencies yet, but they should make you pay closer attention. Many of these are also tracked automatically as risk indicators in Vitally.

SignalWhy it matters
Recommendation not actioned for 2+ weeksThey're not engaging with your guidance
Down-trending event volume (no seasonality)Usage decline is a leading indicator of churn
Only 1-2 active usersSingle point of failure, low organizational buy-in
No Slack activity for 14+ daysRelationship is going cold
Billing page visits without contextThey're evaluating costs, possibly shopping around
Champion changed roles or leftYour internal advocate is gone
Support tickets spikingSomething is broken or frustrating
Single product usageLow switching cost, easy to replace
Data exported to external warehouse onlyPostHog becomes a pipe, not a destination

When you notice any of these, don't wait. Reach out, dig in, and address it before it compounds.

Drive adoption of behavioral products

Not all PostHog products carry the same switching cost. Customers who primarily use PostHog as a data pipe to an external warehouse are structurally riskier. If their analysts query Snowflake or BigQuery, PostHog becomes invisible and replaceable.

Behavioral products create stickiness because they're used directly in PostHog's UI and embed into day-to-day workflows:

ProductWhy it's sticky
SurveysActive feedback collection tied to user segments. Hard to replicate externally.
CohortsSaved user segments used across insights, feature flags, and experiments. Accumulated investment.
WorkflowsAutomated actions triggered by product events. Operational dependency.
Feature flags & experimentsEngineering teams build release processes around them. Deep integration.
Session replayQualitative context that doesn't exist in a data warehouse. Unique value.

When you see a customer heavily reliant on data pipelines and external analytics, proactively introduce behavioral products. Frame it as expanding what they can do, not replacing their warehouse workflow. The goal is to make PostHog the place where decisions get made, not just where data passes through.

Practical moves:

  • Show them how cohorts can power targeted surveys or experiments
  • Demo how session replay answers "why" questions that SQL can't
  • Introduce workflows for automated follow-ups based on product events
  • Help them build dashboards they actually use inside PostHog

If they're doing all their analysis in Looker or Mode, ask why. Sometimes it's habit, sometimes it's a gap we can fill. See communication templates for new feature adoption for outreach examples.

Implementation health

A lot of customers self-serve without ever talking to a PostHog human. This means they can implement PostHog in ways that cause problems down the road: inflated bills, inaccurate data, or features that don't work as expected. Left unchecked, these issues lead to avoidable churn.

Proactively check for common implementation issues, especially for newer accounts or accounts that haven't had a technical review. See checking the health of a customer's deployment for the full checklist.

Billing waste:

  • Group Analytics enabled but not implemented. We have a Vitally risk indicator for this. If they're B2B and could benefit, help them implement it. If not, tell them to remove the add-on.
  • Autocapture noise. If >50% of events are autocapture and they haven't defined any autocapture actions, they're likely paying for events they don't use. Help them tune or disable it.
  • Session replay capturing everything. Default settings capture all sessions. At minimum, recommend setting minimum duration to 2+ seconds to filter out low-value recordings.

Tracking issues that erode trust:

  • Calling identify() on every page. Inflates event volume dramatically. They only need to call it once per session.
  • Calling group() on every page. Same problem. Once per group per session is enough, or when the group changes.
  • Calling posthog.reset() before identify. Creates unlinked anonymous users. Common culprit when web-to-app tracking seems broken. See guidance in the JavaScript library features guide.
  • No reverse proxy. Best practice is to use PostHog's managed reverse proxy or configure their own. Events from their own domain improve reliability and ad-blocker resistance.

Feature flag resilience:

  • No fallback code. If flags fail to load, the app should still work. Check that they're falling back to working code when flags return unexpected values.
  • No local evaluation (server-side). Server-side local evaluation ensures flags work regardless of network status. Important for reliability.

When you find implementation issues, don't just tell them what's wrong. Help them fix it. A customer who had a billing problem you solved is more loyal than one who never had a problem at all.

De-risking common churn scenarios

Most churn follows predictable patterns. See common churn reasons for the full list. Here's how to de-risk the scenarios we have some control over:

Churn scenarioDe-risking strategy
Champion leavesMulti-thread relationships across teams. The more users actively in PostHog, the less one departure matters.
Champion isn't the decision makerIdentify and build relationships with actual decision makers. Your champion can help with introductions.
Customer builds internally or switches to competitorDrive multi-product adoption. Harder to replace five products than one.
Poor customer experienceStay on top of open issues proactively. Circle back before they have to follow up. Rebuild trust through responsiveness.
Customer can't extract valueOffer workshops, training, or hands-on help building specific insights. Don't wait for them to ask.
Missing critical featureLoop in the relevant PM and engineering team. Be transparent about what we can and can't do. Make sure the request is also tracked in Vitally
PostHog isn't trusted as source of truthDig into data discrepancies. Often an implementation issue. If they're exporting everything to another tool, they're one step from leaving.
Privacy/compliance concernsHelp them understand data controls, masking, privacy controls, cookieless tracking, and data deletion options. Often they assume they can't use features when they actually can.

For scenarios outside our control (acquisition, company shuts down, not ICP fit), document what happened and share learnings with the team. There's usually something we can learn even when we couldn't have changed the outcome.


Churn prevention (reactive)

When an account is actively at risk (they've told you they're evaluating alternatives, usage has cratered, or you've lost a champion) you need to move fast and follow a clear process.

When to flag an account as at risk

Add the account to the Churn Risk segment in Vitally if any of the following are true:

  • Customer explicitly mentions evaluating alternatives or considering churning
  • Usage has dropped 30%+ with no seasonal explanation
  • Key champion has left and no replacement relationship exists
  • Payment has failed and they're unresponsive
  • They've asked for a full data export
  • Health score has been "Poor" for 4+ consecutive weeks
  • Contract is up for renewal in <90 days with negative engagement signals
  • They're not using PostHog as source of truth (all analysis happens externally)

When in doubt, flag it. It's easier to remove a flag than to explain why we didn't see a churn coming.

Internal process

1. Post in #customer-churn

When you flag an account as at risk, post in the #customer-churn Slack channel with:

  • Account name and ARR
  • What triggered the risk flag
  • What you know about the situation
  • What help you need (if any)

This keeps the team informed and surfaces accounts that might need additional support or visibility.

2. Weekly at-risk account review

We hold a weekly team meeting to review all accounts in the Churn Risk segment in Vitally. Come prepared to:

  • Give a 60-second status update on each at-risk account you own
  • Share what you've tried and what's working or not
  • Ask for help or ideas from the team

The objective is accountability and support. If an account has been at-risk for 4+ weeks with no improvement, we need to either escalate for additional support or accept the loss and document learnings.

3. Escalation

Escalation means getting support at a higher level, not handing off the account. You remain the owner and primary contact. Use your best judgment on when to pull in additional resources:

  • Engineering involvement: If there's a technical issue, bug, or feature gap that's driving the churn risk, loop in the relevant engineering team directly. Tag them in Slack, share context, and ask for their help.
  • Product involvement: If the customer needs a feature we don't have or is struggling with product limitations, bring in the relevant PM. They may want to join a call to understand the use case.
  • Leadership involvement: For strategic accounts or situations that need executive attention (pricing negotiations, product commitments, relationship rescue at the exec level), loop in your team lead. For accounts >$50k ARR at serious risk, involve Charles or Simon to get their perspective and support.

The goal of escalation is to get the right people involved to help you save the account, not to pass the problem to someone else. You're still driving the relationship and the recovery plan.

Recovery playbook

Once flagged, your job is to diagnose and act:

Diagnose the root cause. Is this price, product, relationship, implementation, or business change? You can't fix what you don't understand. Use the churn scenarios above as a checklist.

Get on a call. Don't try to save accounts over email. Get face-to-face (or video) time to have a real conversation.

Listen more than pitch. Understand their perspective fully before proposing solutions.

Be honest about gaps. If we can't do something they need, say so. Credibility matters more than closing a save. This aligns with our sales principles: we don't care about losing deals if we'd have to compromise on our principles.

Create a recovery plan. Document specific actions with dates and owners. Share it with the customer so they know you're taking this seriously.

Follow up relentlessly. A save isn't done until the risk is resolved and usage is stable. Check in weekly until you're confident.

When churn happens

Not every at-risk account can be saved. When a customer churns, write a retro and share it in #customer-churn as soon as possible while the details are fresh. See learn from churn for the template and guidance.


Summary

ActivityCadence
Account Plan note in VitallyQuarterly
Implementation health checkAt onboarding + annually
Early warning signal monitoringOngoing
Behavioral product adoption pushOngoing (especially for warehouse-heavy accounts)
#customer-churn postsAs needed when flagging risk
At-risk account review meetingWeekly
Recovery calls with at-risk accountsWithin 48 hours of flagging
Churn retros in #customer-churnWithin 1 week of churn

The best churn prevention is never needing to prevent churn. Build the habits, check implementation health, drive behavioral product adoption, and catch problems early.

Community questions

Was this page useful?

Questions about this page? or post a community question.