Article · Updated August 2026
Session replays or funnels: which explains the drop-off?

Funnels and session replays answer different questions. A funnel measures how many eligible users moved between defined events and locates the largest trustworthy loss. A replay lets you observe what happened in selected recorded sessions.
Use them in sequence:
- funnel to measure the pattern;
- replay to observe affected cases;
- instrumentation or an experiment to test the suspected explanation.
A replay is a case. The funnel tells you whether the case is a pattern.

The core comparison
| Question | Funnel | Session replay |
|---|---|---|
| How many eligible users reached each stage? | Strong | Weak; manual sample |
| At which defined handoff is the loss largest? | Strong | Weak unless filtered by events |
| What did a selected user see and do? | Limited to captured events | Strong when the recording is complete |
| Is one observed behaviour common? | Can test after adding/using an event | Cannot establish prevalence by itself |
| Can it reveal an event missing entirely? | Sometimes through reconciliation | Sometimes by visual observation |
| Can it prove why users dropped? | No | No |
| Ongoing operating cost | Instrumentation and definition upkeep | Recording volume, privacy controls and review time |
Neither is a complete causal explanation. Together they form a practical diagnostic loop.
Start with a trustworthy funnel
Define:
- the eligible cohort;
- one entity across the path where possible;
- the start and end events;
- the maximum conversion window;
- event order rules;
- internal/test exclusions;
- identity behaviour before and after signup.
For example:
| Stage | Event | Entity | Completion rule |
|---|---|---|---|
| Entered | account_created | Account | Account persisted |
| Setup started | source_connection_started | Account | Valid flow begins |
| Setup completed | source_connected | Account | Usable data confirmed |
| First value | dashboard_rendered | Account | Complete current dashboard visible |
| Commercial | trial_started | Customer/account | Subscription source confirms trial |
If the entity changes from device to account or customer, document the join. A 45% “drop” can be identity loss rather than behaviour.
Choose which sessions to replay
Do not open the replay list and watch random recordings. Build a diagnostic sample.
For a drop between source_connection_started and source_connected, create groups:
- eligible sessions that started but did not complete;
- sessions that completed successfully;
- affected sessions from the relevant release, source type and platform;
- sessions with a related error event;
- sessions with no recording, recorded as missing rather than ignored.
Sample across devices, browsers, acquisition sources and account types when those dimensions are plausible. Decide the sample before watching so the most dramatic recording does not become the explanation by default.
Use a replay observation sheet
Record behaviour using a controlled list:
| Field | Example |
|---|---|
| Funnel stage | Source connection |
| Session ID | … |
| Segment | Mobile Safari, new account |
| Recording completeness | Full / partial / unavailable |
| Observed behaviour | Repeated credential submission |
| Technical signal | 401 error event present |
| Candidate explanation | Credential guidance or auth failure |
| Confidence | Observed in this session only |
| Follow-up event/test | Count repeated submission + error code |
Describe what happened, not the user’s intention. “Clicked submit three times after a 401” is observable. “Did not trust the form” is an inference.
Convert observations into testable hypotheses
Suppose 12 of 20 sampled failed sessions show the same error message after connection. Do not publish “60% of users fail because of the error.” The sample is filtered, small and may exclude unrecorded sessions.
Write:
Among the reviewed recordings from accounts that started but did not complete source connection, repeated authorization errors were a recurring observed pattern. We will instrument the error code across all eligible attempts and compare completion by error state.
Then add or use an event such as:
source_connection_failed { source_type, error_category, attempt_number }
The aggregate event can test whether the observed pattern explains a meaningful share of the funnel loss.
A fictional example
Acme Reports has this weekly funnel:
| Stage | Accounts | Step conversion | Absolute loss |
|---|---|---|---|
| Account created | 320 | — | — |
| Connection started | 250 | 78.1% | 70 |
| Connection succeeded | 130 | 52.0% | 120 |
| First dashboard rendered | 118 | 90.8% | 12 |
| Trial started | 76 | 64.4% | 42 |
The largest absolute loss and lowest step conversion occur at connection success. The team reviews a predetermined sample:
| Sample | Sessions requested | Complete recordings | Recurring observations |
|---|---|---|---|
| Started, not completed | 30 | 22 | 9 authorization errors; 5 repeated field edits; 8 mixed/unclear |
| Completed | 15 | 13 | 11 single-attempt completions; 2 retries |
The recordings support two hypotheses: authorization errors and unclear input requirements. They do not establish their corpus-wide frequency. The team instruments failure categories and attempt count for the next full cohort.
One week later:
| Connection outcome | Eligible attempts | Completed | Completion rate |
|---|---|---|---|
| No recorded error | 180 | 142 | 78.9% |
| Authorization error | 70 | 12 | 17.1% |
| Validation error | 35 | 18 | 51.4% |
Now authorization failure is an aggregate pattern. The next step is to separate upstream credential validity from the product’s handling and guidance.
When funnels are enough
Use the funnel without replay when:
- the loss is already explained by a known technical event;
- the next action is a measurement fix;
- privacy or platform constraints make replay inappropriate;
- the workflow is server-side and has little visible interaction;
- the aggregate segment cleanly identifies the issue.
A retryable API error does not need a recording to prove that it happened 400 times.
When replay is worth adding
Replay earns its cost when:
- the funnel locates a visible interaction problem;
- multiple plausible behaviours share the same outcome event;
- users cannot explain the problem reliably;
- the session can be recorded with appropriate privacy controls;
- someone will review a defined sample and record observations.
PostHog currently lists session replay separately from product analytics, with a free allowance and per-recording usage pricing on its public product page (PostHog). Pricing can change; the operating cost also includes review time and privacy governance.
Privacy and recording boundaries
Before enabling replay:
- mask sensitive text and fields by default;
- block payment, password, health and private-content surfaces;
- review consent and notice requirements for the product’s jurisdictions;
- control access to recordings;
- define retention and deletion;
- avoid recording internal/admin or test sessions as customer evidence;
- verify masking after every material UI change.
Do not collect a richer recording merely because the SDK allows it. Collect only what the diagnostic job warrants.
Common mistakes
Watching only failures
Successful sessions provide the comparison. Without them, a behaviour can look suspicious even when it occurs everywhere.
Watching the most dramatic recordings
Choose a sampling rule before reviewing. Anecdotal intensity is not frequency.
Using replay instead of event repair
If the funnel event is missing or fires incorrectly, repair it. Replay should not become a manual counter.
Treating missing recordings as successful sessions
Replay coverage can vary by consent, platform, duration and technical failure. Report the number requested, available and complete.
Publishing inferred intent
State the observed action and the hypothesis separately.
A repeatable weekly workflow
- Review the mature funnel and absolute losses.
- Confirm event, identity and cohort quality.
- Select one handoff.
- Define failed and successful replay cohorts.
- Review a fixed sample with an observation sheet.
- Rank candidate explanations by observed evidence and decision impact.
- Add an aggregate event or controlled experiment.
- Re-read the funnel after the change.
Stop when the first actionable explanation is strong enough to test. Do not turn replay review into a daily film festival.
Frequently asked questions
Should I install session replay or product analytics first?
For a recurring conversion question, begin with a small event plan and funnel. Add replay when the measured handoff requires visual observation.
How many recordings should I watch?
There is no universal sample size. Predefine a manageable failed/successful sample, report coverage and stop when you have testable hypotheses—not a prevalence estimate.
Can replay replace user interviews?
No. Replay shows recorded behaviour without the person’s explanation. Interviews can reveal goals and interpretation. Both have sampling limits.
Can a funnel explain why users leave?
No. It locates a measured loss. It narrows where to investigate.
What if replay and funnel disagree?
Check recording coverage, event firing, identity, cohort filters and timing. The tools may be observing different subsets or units.
Sources
- PostHog product analytics and session replay product overview
- Discussion about replay review being heavy and manual
- Discussion about a funnel finding a severe drop
- Discussion about replay revealing a product issue
- Founder replay-review workflow
- Discussion about recordings revealing feature non-use
- Reddit discussion comparing standard analytics and replay
- PostHog replay landing-page diagnosis