What is a funnel in product analytics?
A funnel is an ordered sequence of events that defines a journey you want users to complete. Each event is a step. For each step, you measure how many users who reached the previous step also reached this one. The output is a stacked bar chart that narrows from left to right — the visual that gave the technique its name.
A typical SaaS activation funnel might look like:
signup → email_verified → first_action → invited_teammate → upgraded
Funnel analysis answers two questions:
- What percentage of users who entered this journey reached the goal?
- Where in the journey did the rest fall out?
How is funnel analysis different from cohort analysis?
The two are often confused because both group users and measure conversions over time.
| Funnel analysis | Cohort analysis | |
|---|---|---|
| Unit of grouping | Step in a sequence | Time bucket users joined in |
| Question answered | Where do users drop off in the flow? | How does retention or behavior change over time for similar groups? |
| Time dimension | Within a single session or short window | Over days, weeks, or months |
| Output | Step-by-step conversion bars | Triangle or heatmap of retention curves |
A funnel tells you the shape of a journey. A cohort tells you the durability of a behavior. You usually need both: a funnel shows that 70% of new signups reach activation, and a cohort shows that the activated cohort still uses the product 30 days later at 45%.
What is the "within N seconds" constraint?
Real funnel definitions almost always need a time window. Without one, a user who completed step 1 in January and step 2 in March would count as a successful conversion, which is rarely what you want.
The constraint is usually expressed as "complete the funnel within N hours / days." Common defaults:
- Checkout funnels: within 30 minutes (a single shopping session)
- Signup funnels: within 24 hours
- Activation funnels: within 7 days
- Lifecycle funnels: within 30 days
The window should match the natural rhythm of the journey. Too short and you undercount real conversions; too long and you overcount unrelated repeat visits.
Closed vs open funnels
There are two structural variants, and the choice changes every number downstream.
Closed funnel: a user must complete every step in order. Skipping step 2 to land on step 3 disqualifies them. This produces clean, conservative numbers that match a designed flow.
Open funnel: a user can enter at any step. Step entries are counted independently, and a user who lands on step 3 via a deep link still counts toward step 3's denominator. This is more representative of organic traffic but harder to interpret as a sequence.
A reasonable rule of thumb: use closed funnels when you control the entry point (in-app onboarding, paid traffic to a landing page), use open funnels when you don't (organic search, deep-linked emails).
Worked example with real numbers
A four-step activation funnel for a SaaS product:
| Step | Users | Step conversion | Cumulative |
|---|---|---|---|
| 1. Signup | 1,000 | 100% | 100% |
| 2. Email verified | 720 | 72% | 72% |
| 3. First action | 430 | 60% | 43% |
| 4. Paid upgrade | 65 | 15% | 6.5% |
Reading the funnel:
- Email verification is the biggest absolute drop (280 users)
- Paid upgrade is the worst step conversion (15%)
- The leakiest point to fix first depends on which loss is cheaper to prevent — verification copy is usually a faster fix than monetization
Two pages with the same overall 6.5% conversion can have wildly different shapes, and the shape is what tells you what to fix.
What signals belong inside a funnel step?
A funnel is only as honest as the events that define it. Good steps are:
- Unambiguous: the event fires exactly when the user completes the step, not before
- Idempotent: a user firing the event twice does not double-count
- User-scoped: the event is attributed to a stable user identifier across sessions
- Server-confirmed where possible: a payment funnel should not rely on a client-side
purchase_clickedevent
The most common funnel bug is a step event that fires on page load instead of on action, which inflates the denominator and makes everything downstream look broken.
How it relates to CloseTrace
CloseTrace lets you build closed or open funnels from any captured event in a few clicks, set a custom completion window per funnel, and replay the sessions of users who dropped out at a specific step. The funnel chart and the session list are linked, so diagnosing a leaky step takes one click instead of a SQL query.