Loading tutorials…
Loading tutorials…
Funnels are the most-used Mixpanel report and the most-misread. The conversion-window setting alone changes 'we have a 12% signup-to-paid funnel' to '34%' — and most teams never touch it. Here's the build that actually answers the question.
Who this is forFounders and PMs who have Mixpanel installed with clean events and now need to measure conversion through the core product flows: signup → activation, free → paid, trial → renewal. If your funnels show numbers that don't match your dashboards, this is the reset.
What you'll need
Step 1
Before opening Mixpanel, write down: what user behavior are you measuring, over what time window, and what specific decision will the answer drive?
Open a doc. Write the funnel question as a sentence: 'Of users who sign up, what percent activate (complete first key action) within 7 days?'
List the steps in order: (1) signup_completed, (2) first_action_completed. That's a 2-step funnel.
Decide the conversion window: 7 days for activation funnels, 30 days for paid conversion, 24 hours for in-session flows.
Decide the breakdowns you want: by signup source (organic vs paid), by plan tier, by signup date cohort.
Write the decision the answer will drive: 'If activation is <30%, we invest in onboarding. If 30-50%, optimize the activation prompt. If >50%, focus on day-2 retention instead.'
Without these four things written down BEFORE building, you'll build a funnel, look at the number, and not know what to do with it.
Step 2
Reports → Funnels → +New. Add events in sequence. Set conversion window. Set date range. Save and name it.
In Mixpanel left sidebar, click Reports → Funnels (or Insights → +New → Funnel in newer UI). Click +New Funnel.
Step 1: click +Event → pick your first event (e.g., signup_completed). Step 2: click +Event again → pick the next event (e.g., first_action_completed). Add as many steps as needed (most useful funnels are 2-5 steps).
Conversion window: in the top configuration row, find the 'Conversion Window' selector. Default is 30 days. CHANGE THIS. Set it to match your hypothesis (7 days for activation, 30 for paid).
Date range: pick the last 30 days for activation funnels, last 90 days for paid conversion. Don't pick 'all time' — old data with different product behavior pollutes the result.
Click Save (top right). Name it descriptively: 'Activation: Signup → First Action (7d window)'. Add it to a dashboard called 'Core Funnels'.
Step 3
Each step can be filtered by event properties. Use this to scope funnels — e.g., only count organic signups, only count Pro-tier upgrades.
Click a step in your funnel. Click the + next to the event name to add a property filter.
Example: filter signup_completed where source = 'organic_search'. Now your funnel only counts users who came from organic search.
Example: filter purchase_completed where plan_tier = 'pro'. Now you're measuring conversion to the Pro tier specifically.
Combine filters across steps to slice the funnel finely. Step 1: signup where source = 'paid_ads'. Step 2: purchase where price_usd > 49. = 'Paid-acquired users converting to >$49 plans'.
Don't over-filter on the first build. Get the broad funnel working first, then add filters to investigate specific cohorts. Filtering too early hides issues.
Step 4
Breakdown splits the funnel into multiple lines by a property — e.g., conversion rate by signup_source, plan_tier, or country.
In the funnel configuration, find the Breakdown selector (top of the chart configuration). Click it.
Pick a property: source (signup source), plan_tier, country, or any custom property you've instrumented.
The funnel now renders one line per property value. You can immediately see that organic signups convert 40% while paid signups convert 18%.
Limit breakdowns to top 5-10 values. Properties with high cardinality (referrer URL, user-agent) create unreadable charts. Use the 'Show top N' control to cap.
Save versions of the funnel with different breakdowns. 'Activation by Source' and 'Activation by Plan Tier' as separate saved reports.
Step 5
Mixpanel funnels are ORDERED by default — events must fire in sequence. For non-linear flows, switch to unordered or use a different report type.
In the funnel step list, click the gear icon next to the step name. You'll see options for: First Match / Last Match, Hold Constant (for property-matching across steps), and step ordering.
Ordered funnel: events must fire in the listed sequence. If a user fires step 2 BEFORE step 1, they don't count. This is correct for genuine sequences (signup → activation).
Unordered funnel: events can fire in any order. Use when the steps aren't a strict sequence (e.g., 'used 3 features in any order'). Switch via the funnel-level setting in the config panel.
Hold Constant: forces a property to match across steps. E.g., 'signup with source=X then purchase with source=X' — only counts users where source is the SAME across both events. Useful for cohort analysis.
First Match vs Last Match: if a user fires step 1 multiple times, which one anchors the funnel? Default is First Match. For revenue/retention, sometimes Last Match makes more sense.
Step 6
The percentages in a funnel are step-to-step conversion, not absolute. 50% → 50% → 50% means 12.5% end-to-end (0.5 × 0.5 × 0.5).
Each bar in the funnel shows the conversion percentage from the PREVIOUS step. NOT from step 1.
Total conversion (step 1 to last step) is shown at the bottom of the chart. THIS is the metric to compare against your hypothesis.
Drop-off = the inverse: '50% conversion' = '50% drop-off' between those two steps. Focus optimization on the biggest drop-off step.
Hover any step bar to see absolute user counts. Sometimes the percentage looks bad but the absolute count is tiny (12 of 24 users) and the result is statistical noise.
Click any step's count to see Users Who Did/Did Not Convert. This gives you the actual users to investigate (look at their session replays, support tickets, profile properties).
Step 7
Funnels are useless if nobody looks at them. Save to a dashboard, set up subscriptions, and review weekly.
Click Save (top right) → Add to Dashboard → pick or create a dashboard. Name dashboards by stakeholder: 'Product — Weekly', 'Growth — Weekly', 'Exec — Monthly'.
From the dashboard, click Subscribe (top right) → set a weekly Slack or email digest. The whole point is to surface changes without anyone logging into Mixpanel.
Annotate dashboards with major product changes. Mixpanel supports annotations (vertical lines on time-series charts) for releases, marketing campaigns, etc. Use them to explain anomalies.
Review funnels in a recurring weekly meeting. If the activation rate drops 10% week-over-week, the team should know within 7 days, not 30.
Archive funnels that are no longer relevant. Old funnels with stale event names create confusion for new team members.
Common mistakes
Leaving conversion window at the 30-day default
What goes wrong: You're measuring 'activation within 7 days' but the window is 30 days. A user who signs up on Day 1 and activates on Day 28 counts. Your activation number looks like 45% when realistically only 22% activate in the meaningful window. You delay shipping onboarding improvements because the number 'looks fine.'
How to avoid: Always set the conversion window explicitly. Activation: 1-7 days. Paid conversion: 14-30 days. In-session flows: 24 hours. Match the window to the actual business hypothesis.
Building funnels on broken event identification
What goes wrong: Users 'drop off' between steps because anonymous events and identified events live under different distinct_ids. Funnel from anonymous browse → signup → activation shows 8% conversion when reality is 35%+. You over-invest in 'fixing the funnel' that's actually broken instrumentation.
How to avoid: Fix the identify/alias chain first (see user-identification tutorial). Validate by picking a single user, viewing their profile, and confirming pre-signup and post-signup events appear on the SAME profile. Then rebuild funnels.
Ordered funnel when the flow is non-linear
What goes wrong: You build a funnel: pricing_viewed → trial_started → purchase_completed. But many users start a trial first (from in-app prompt) then view pricing during the trial. They never enter your ordered funnel. Conversion looks 12% when reality is 28%.
How to avoid: Use unordered funnels for non-linear flows. Or restructure: use a Cohort (users who fired all three events) instead of a funnel. Funnels measure sequence; cohorts measure completion regardless of order.
Funnel includes test users / internal team
What goes wrong: Engineering team and QA fire test events while building the product. Your activation funnel includes 80 internal users converting at 100% (because they walk through all the steps). True external activation is 22%; reported activation is 35%.
How to avoid: Filter every funnel to exclude internal users. Set a People Profile property `is_internal: true` on team members. Add filter to every funnel: where is_internal != true. Better: maintain a Mixpanel cohort of external users only and apply it project-wide.
Tracking funnels with event names that drift
What goes wrong: Your activation funnel uses 'first_action_completed'. Three months ago someone renamed it to 'first_workspace_action'. Old funnel silently breaks — shows zero events for last 90 days. PM keeps looking at the funnel and sees a vertical drop in mid-March. Spends a week investigating a 'product issue' that's actually a tracking issue.
How to avoid: Lock event names in the spec doc and Mixpanel Lexicon. When deprecating an event, update all dependent funnels/cohorts/dashboards in the same change. Use Mixpanel's Lexicon "downstream usage" view to find what depends on an event before renaming.
Reading the funnel by step-by-step % instead of end-to-end
What goes wrong: Funnel shows 80% → 70% → 60% → 70%. PM reports 'every step is over 60%'. Reality: end-to-end conversion is 80% × 70% × 60% × 70% = 24%. Three-quarters of users drop off through the funnel.
How to avoid: Always read the end-to-end conversion at the bottom of the funnel. Step-by-step percentages help identify WHERE the drop-off is; the end-to-end percentage tells you HOW BIG the problem is.
Recap
Done — what's next
How to set up Mixpanel event tracking the right way
Read the next tutorial
Hand it off
Funnels are where most teams realize their tracking has been silently lying to them. A vetted product analytics specialist can audit your event chain, rebuild the 5-7 core funnels (acquisition → activation → monetization → retention → expansion), and document them on a dashboard your exec team will actually use — 1-2 weeks of work at $14-16/hr, typically $600-1,400 total.
See specialist rates
Most useful funnels are 3-5 steps. Two steps is fine for simple conversion (signup → activation). More than 6 steps usually means you're trying to measure multiple things at once — split into multiple smaller funnels.
A funnel measures predefined sequential steps and outputs a conversion rate. A flow chart (Mixpanel's Pathfinder feature) shows ALL the paths users take through your product — discovery-oriented, not measurement-oriented. Start with funnels for known hypotheses; use Pathfinder when exploring 'what do users do?'
Yes. In Data Management → Events → Create Event, define a derived event (e.g., 'high_value_purchase' = purchase_completed where price_usd > 100). Then use this derived event as a funnel step. Useful for funnels segmented by transaction value.
By default, Mixpanel uses the FIRST occurrence of each step for funnel calculations. So if a user fires signup_completed twice (somehow — usually a bug), only the first counts. You can change to Last Match in the step configuration if your business logic requires it.
Rule of thumb: at least 100 users completing step 1, ideally 1000+, before you trust step-by-step conversion percentages. For breakdowns by segment, 100+ per segment. Under that, you're measuring noise more than signal.
Mixpanel
Mixpanel doesn't fail because events break — it fails because event names drift. Three engineers, three opinions, three versions of 'signup' over a year. Here's how to ship instrumentation that holds up.
Mixpanel
Retention is the single most predictive metric for product-led growth — and the most misread. 'Day-7 retention is 35%' means nothing without knowing the cohort and the return event. Here's the build that makes retention actually decision-grade.
Amplitude
Funnels are the most-used chart type in Amplitude and the most-misused. The defaults assume an attribution window that doesn't match most SaaS sales cycles. Here's how to build funnels that match reality.
Google Analytics 4
GA4 renamed Conversions to Key Events in late 2024. The name change matters less than what most owners get wrong: marking too many things as Key Events, which destroys Smart Bidding and inflates every report.