Customer state
PostHog subscription_status outcomes
By channel
acquisition source
By product
plan product line
Lead score
enrichment tier distribution
Signup quality by week
all signups from PostHog, stacked by lead score tier
HotWarmCoolCold
Trial quality by week
trial starts only, stacked by lead score tier
HotWarmCoolCold
Signup volume
signups per month
Top customers by LTV
total collected revenue
MRR at risk
stuck trial plan value (never charged)
All signups
Glossary (click to toggle)
Subscription outcomes
retained_paid — committed sub (active/trialing/past_due) with plan > 0 AND at least one paid invoice. Counted in MRR (matches ChartMogul's Subscribed MRR rule).
trialing — trialing status, trial_end in future, no paid invoice yet. Pipeline.
trialing_stuck — trialing status BUT trial_end is in the past. Needs attention.
activation_pending — active/past_due sub with plan but no paid invoice yet. Either awaiting first charge (fresh sub, sync lag) or a stale/ghost sub in the Stripe warehouse.
zombie_free — active in PostHog but mrr=0. Never paid, on a free plan.
downgraded_free — has paid invoices in past but now on free. Churn risk.
churned_post_pay — paid us, then canceled. True churn.
churned_pre_pay — never paid, canceled or incomplete_expired. Lost trial.
excluded — real sub but deliberately excluded from MRR (test accounts, insider side-businesses). Managed via
MRR_EXCLUDED_EMAILS in sync-users.Lead score tiers
Hot (70+) — high-fit industry (home services, healthcare, legal, real estate, etc.) with verified business signals.
Warm (50-69) — medium-fit industry or strong identity but unverified industry.
Cool (30-49) — limited identity signals or low-fit industry.
Cold (<30) — disposable email, no business signals, or no fit.
Revenue fields
plan_usd (MRR) — PostHog person.mrr (app-computed, ChartMogul-aligned). 0 unless retained_paid.
has_stripe_sub — true if outcome = retained_paid.
total_collected — lifetime revenue from stripe_invoice (sum of paid invoices).
stripe_status — raw PostHog
subscription_status: active / past_due / trialing / canceled / incomplete_expired.Identity / dates
first_seen_at — min timestamp of signup events (Reception_Signup / Chats_Signup / EA_Signup / Sequences_Signup and their legacy equivalents), falling back to converted_at / stripe start for users without event history.
has_started_trial — true if user fired any trial-start event (Reception_Trial_Started and legacy equivalents), or if PostHog person.trial_started_at is set.
is_business_email — custom domain (not gmail/outlook/etc.).
industry — populated from app onboarding via PostHog.
channel — derived from initial UTM source/medium.
meta includes untagged organic.