Guide

A funnel is an ordered sequence of events for the same actor within a time window. Conversion between steps is users_reaching_i+1 / users_reaching_i. Overall conversion is the product of step rates — or simply users_at_last / users_at_first for unordered "ever did" funnels with a window.

Funnels assume an ordered checklist. Real products are messy: users skip steps, repeat steps or take side doors. Use funnels for declared critical paths; use path analysis when you do not know the path yet. Cap path reports — unbounded "next 5 events" charts drown in noise.

The big idea

Time windows change the answer. A 1-day signup→activate window measures onboarding UX. A 30-day window mixes onboarding with returning motivation and email drips. Pick the window that matches the product question, then hold it fixed when comparing weeks.

Drop-off analysis asks why people leave a step: usability, intent mismatch, missing trust signals or bugs. Segment the funnel by platform, channel and new vs returning before declaring a "broken" step. See activation for aha-moment design.

A cohort is a set of users who share a starting event in a time bucket. Always lock the denominator to the cohort size. Calendar "users active this week / users who ever signed up" is a different (and often misleading) number. Deep dive: retention.

Walking through it

50,000 weekly visits → 11,000 signups → 4,950 activated → 594 paid.

visit → signup     = 11,000 / 50,000 = 22.0%
signup → activated = 4,950 / 11,000  = 45.0%
activated → paid   = 594 / 4,950     = 12.0%

visit → paid = 594 / 50,000 = 1.188%
Check: 0.22 × 0.45 × 0.12 = 0.01188 → 1.188%

Suppose you can raise one step by a relative +20%:

LeverNew rateNew paidAbsolute gain
Visit→signup 22% → 26.4%keep 45%, 12%50k × 0.264 × 0.45 × 0.12 = 712.8+118.8
Signup→activated 45% → 54%keep 22%, 12%50k × 0.22 × 0.54 × 0.12 = 712.8+118.8
Activated→paid 12% → 14.4%keep 22%, 45%50k × 0.22 × 0.45 × 0.144 = 712.8+118.8

Equal relative lifts produce equal paid users because the funnel is a product. In practice, a +20% relative lift on a 12% step (to 14.4%) is often easier than turning 22% visit→signup into 26.4% — and harder if paywall friction is structural. Use the math to size opportunity; use research to pick feasibility.

Window sensitivity. 10,000 signups. Activated within 1 day: 2,500 (25%). Within 7 days: 4,500 (45%). Within 30 days: 5,200 (52%). Most of the gain is days 2–7 (4,500 − 2,500 = 2,000 users, +20 points). Days 8–30 add only 700 (+7 points). If onboarding work targets day-0 friction, the 1-day or 7-day metric is the right scoreboard.

Common mistakes

  • Open-ended "ever converted" funnels for recent cohorts. They overstate conversion.
  • Declaring a step broken without segmenting platform, channel and new vs returning.
  • Using a 30-day window to judge a day-0 onboarding change.

Check yourself

  1. Why does a +20% relative lift on each step add the same 118.8 paid users here?

The funnel is a product of rates. Equal relative changes to any one factor yield the same product.

  1. 10,000 signups: 25% activate in 1 day, 45% in 7 days, 52% in 30. Which window for day-0 onboarding work?

1-day or 7-day. Days 8–30 only add 7 points and hide early regressions.

Key takeaways

  • Funnels multiply step rates; size opportunities with arithmetic before debating features.
  • Lock the time window to the product question and hold it fixed week to week.
  • Cohort retention locks the denominator; calendar ratios do not.

Further learning

PostHog documentation: Product analyticsProduct analytics helps you understand how people use your product. Use the events you capture to explore adoption, conversion, and retention with…posthog.com

Next: why aggregates lie, in Simpson's paradox.