6 min read

How to Visualize Conversion Rate in Mixpanel

Conversion rate is everything — but you can't optimize what you can't see. Mixpanel's Funnel tool lets you visualize exactly where users drop off between any two events. Whether you're measuring signups, feature adoption, or purchases, this guide shows you how to set it up and interpret the data.

Setting up Events to Measure Conversions

Before you can visualize a conversion rate, you need two events: a starting point and a goal. Track both using Mixpanel's JavaScript SDK.

Track your starting event

When a user begins the conversion journey (e.g., landing on a signup page), fire a Start Signup event. Use mixpanel.track() with clear properties so you can segment later.

javascript
mixpanel.track('Start Signup', {
  'signup_page': 'homepage',
  'referrer': document.referrer,
  'user_segment': 'free_trial'
});
Track when a user initiates the signup flow

Track your conversion event

Fire a second event when the user completes the goal. Include the same identifying properties so Mixpanel can connect the funnel steps.

javascript
mixpanel.track('Signup Completed', {
  'signup_page': 'homepage',
  'referrer': document.referrer,
  'user_segment': 'free_trial',
  'signup_duration_seconds': 240
});
Fire the completion event with journey context

Identify your users consistently

If you want to track individual user funnels, call mixpanel.identify() early. This ensures Mixpanel associates both events with the same person.

javascript
mixpanel.identify('user_' + userId);
mixpanel.people.set({
  'email': userEmail,
  'plan': 'trial',
  'signup_date': new Date()
});
Set user identity before tracking funnel events
Tip: Use consistent event names and property keys. Mixpanel is case-sensitive, so Start Signup and start signup won't match.

Building Your Funnel in Mixpanel

Once events flow in, create a Funnel analysis to see your conversion rate and drop-off points.

Open the Funnel analysis tool

In Mixpanel, navigate to Reports > Funnel. Select your time range (e.g., last 7 days) from the date picker.

javascript
// Query funnel data via Mixpanel Data API
fetch('https://data.mixpanel.com/api/2.0/funnels', {
  'method': 'POST',
  'headers': {
    'Authorization': 'Bearer ' + SERVICE_ACCOUNT_TOKEN,
    'Content-Type': 'application/json'
  },
  'body': JSON.stringify({
    'funnel_events': ['Start Signup', 'Signup Completed'],
    'funnel_window_days': 7,
    'interval': 1
  })
}).then(r => r.json())
  .then(data => console.log('Funnel data:', data));
Fetch funnel metrics from Mixpanel's Data API

Add your funnel steps

Click Add Step and select your starting event (Start Signup). Then add the conversion event (Signup Completed). Mixpanel calculates drop-off and conversion rate automatically.

javascript
// Calculate conversion rate from funnel response
const conversionRate = (funnelData['Signup Completed'] / funnelData['Start Signup']) * 100;
console.log('Conversion rate: ' + conversionRate.toFixed(2) + '%');
console.log('Drop-off: ' + (100 - conversionRate).toFixed(2) + '%');
Derive conversion percentage from step counts

Segment your funnel

Click By Group or By Property to break down conversion by device, traffic source, or user segment. This reveals where you're converting well and where you're losing users.

javascript
// Include segmentation in your tracking
mixpanel.track('Start Signup', {
  'device': 'mobile',   // Later filter by this
  'source': 'organic',  // Or this
  'user_segment': 'enterprise'
});
// Then use Mixpanel UI "By Property" filter to segment funnel by 'device'
Add properties during tracking for later segmentation
Watch out: Funnel steps must occur in order. If a user completes the goal before starting, they won't appear in the funnel.

Interpreting Trends and Setting Alerts

A single snapshot tells you where you stand today. Trends tell you if you're improving.

Compare time periods

Use the date picker to compare this week's conversion to last week's. Look for sudden drops (bugs or changes) or steady climbs (optimization working).

javascript
// Compare conversion across two weeks
const getFunnelForPeriod = (fromDate, toDate) => {
  return fetch(`https://data.mixpanel.com/api/2.0/funnels?from_date=${fromDate}&to_date=${toDate}`, {
    'headers': { 'Authorization': 'Bearer ' + TOKEN }
  }).then(r => r.json());
};

Promise.all([
  getFunnelForPeriod('2026-03-19', '2026-03-26'),
  getFunnelForPeriod('2026-03-12', '2026-03-19')
]).then(([thisWeek, lastWeek]) => {
  const thisWeekRate = (thisWeek['Signup Completed'] / thisWeek['Start Signup']) * 100;
  const lastWeekRate = (lastWeek['Signup Completed'] / lastWeek['Start Signup']) * 100;
  console.log('Change: ' + (thisWeekRate - lastWeekRate).toFixed(2) + '%');
});
Track week-over-week conversion changes

Identify drop-off bottlenecks

Mixpanel shows you not just the final conversion rate, but drop-off at each step. If Start SignupEmail Verified loses 40% of users, that's your biggest friction point. Focus optimization there.

javascript
// Add more granular funnel steps
mixpanel.track('Email Verified', {
  'verification_method': 'link_click',
  'time_to_verify_hours': 0.5
});
mixpanel.track('Onboarding Started', {
  'onboarding_step': 'select_company_size'
});
// Funnel: Start Signup → Email Verified → Onboarding Started → Signup Completed
Create granular steps to pinpoint friction
Tip: If conversion drops after a deploy, check your changelog first. A product change usually explains sudden shifts.

Common Pitfalls

  • Not tracking both events with the same user ID — Mixpanel can't connect steps if it doesn't know they're the same person.
  • Using inconsistent event names — Start Signup won't match start signup. Case and spacing matter.
  • Expecting retroactive conversions — Mixpanel only counts events after the funnel is created. Historical data won't backfill.
  • Too many funnel steps — more than 5–6 steps dilutes data and makes actionable insights harder to extract.

Wrapping Up

You now have a live window into your conversion funnel. Watch it weekly, segment by traffic source and user type, and catch drops before they compound. If you want to visualize conversion metrics across all your tools in one place, Product Analyst can help.

Track these metrics automatically

Product Analyst connects to your stack and surfaces the insights that matter.

Try Product Analyst — Free