Funnel analysis shows you the path users take through your product—and where they drop off. In Amplitude, you define a sequence of events and see what percentage of users complete each step. This is critical when you need to understand conversion rates, onboarding effectiveness, or why users abandon key workflows.
How Funnel Analysis Works in Amplitude
A funnel in Amplitude is a sequence of events. You measure how many users start at step one, progress to step two, and so on.
Track Events That Matter
Before you can analyze a funnel, you need to track the events that represent each step. Use the track() method to send events from your product. Each event should represent a discrete action—like 'page_view', 'button_click', or 'checkout_started'.
// Track events for a checkout funnel
amplitude.track('checkout_started', {
product_id: 'PRD_123',
cart_value: 99.99
});
amplitude.track('payment_method_selected', {
method: 'credit_card'
});
amplitude.track('purchase_completed', {
revenue: 99.99,
transaction_id: 'TXN_456'
});Set Up the Funnel in Amplitude
Navigate to Analytics > Funnels in Amplitude. Click New Funnel and name it (e.g., 'Checkout Funnel'). Select your first event, then add subsequent steps in order. Amplitude will automatically calculate what percentage of users completed each step.
import * as amplitude from '@amplitude/analytics-browser';
amplitude.init('API_KEY', {
userId: 'user_123',
defaultTracking: {
pageViews: true,
formInteractions: true
}
});
// Now events sent via amplitude.track() will be captured
amplitude.track('funnel_step_1');Analyzing Dropout and Conversion
Once your funnel is set up, Amplitude shows you conversion rates between each step and helps you identify where users abandon.
Review Conversion Rates
The funnel report in Analytics > Funnels displays a visualization showing user counts and conversion percentages at each step. Click on any step to see which users completed it and which dropped off. Use Filters to segment by user properties (e.g., 'free_plan' vs 'paid_plan').
// Set user properties that let you segment funnel analysis later
amplitude.setUserProperties({
plan_type: 'paid',
signup_date: '2025-03-15',
country: 'US'
});
// Now when you analyze the funnel in Amplitude, filter by these properties
amplitude.track('checkout_started');
amplitude.track('checkout_completed');Compare Funnels Across Cohorts
Click the Compare button in your funnel to run the same funnel across different user segments. For example, compare new users vs returning users, or iOS vs Android. This helps you spot whether a problem is universal or specific to a user group.
// Track the user's acquisition source and channel
amplitude.setUserProperties({
utm_source: 'google_ads',
utm_campaign: 'Q1_launch',
device_type: 'mobile'
});
// Events are automatically attributed to this cohort in the funnel report
amplitude.track('onboarding_started');
amplitude.track('onboarding_completed');Advanced: Filtering and Custom Time Windows
Funnels aren't always linear. Amplitude lets you exclude certain users or adjust time windows to match your product's reality.
Apply Funnel Filters and Window Settings
In your funnel editor, click Add Filter to exclude users who don't match certain criteria. For example, exclude test accounts or filter to only users who saw a specific feature flag. Adjust the Conversion Window (default 30 days) if your funnel spans longer—like trial signup to paid conversion.
// Track a feature flag variant so you can filter the funnel later
amplitude.track('experiment_viewed', {
experiment_id: 'new_checkout_v2',
variant: 'control'
});
// Pass a session_id property for complex multi-page funnels
amplitude.track('checkout_started', {
session_id: 'sess_abc123',
checkout_type: 'new_customer'
});
amplitude.track('checkout_completed', {
session_id: 'sess_abc123'
});session_id property so Amplitude can link events correctly, even if they come from different domains.Common Pitfalls
- Assuming dropout = disinterest. Users might skip a step because they're already paid, use a guest checkout, or hit an error. Check your event instrumentation—missing events inflate dropout rates.
- Not tracking enough context. 'checkout_started' alone doesn't help debug. Include product_id, cart_value, error codes, or feature flags so you can see which checkouts fail and why.
- Misaligning funnel steps with user intent. A 50% dropout from page A to B might not be a problem if many users have already completed that step. Always segment by cohort and compare.
- Ignoring time windows. By default, Amplitude funnels assume all steps happen within 30 days. If your funnel spans months (e.g., trial signup → paid conversion), adjust the Conversion Window or you'll undercount completions.
Wrapping Up
Funnel analysis in Amplitude shows you exactly where users abandon their journey and helps you prioritize fixes. By tracking the right events, segmenting by user properties, and comparing cohorts, you can turn funnel insights into action. If you want to track and analyze funnels automatically across all your tools, Product Analyst can help.