6 min read

What Is Time To Convert in Mixpanel

Time to convert measures how long it takes a user to move from an initial action to a conversion event. In Mixpanel, this typically means tracking the elapsed time between a trigger event—like a signup or free trial start—and a desired outcome like a paid upgrade or feature activation. Understanding this metric helps you identify friction in your conversion funnel and spot where users get stuck. It's the difference between knowing your conversion rate and knowing how long users actually spend before they buy.

What Time To Convert Measures

Time to convert is straightforward: it's the clock time between when a user takes a starting action and when they complete your target conversion. Unlike session duration or time on page, time-to-convert spans days or weeks, capturing the full journey from first interest to purchase.

Define Your Start and End Events

Pick your starting event (e.g., sign_up, free_trial_started, or onboarding_completed) and your conversion event (e.g., subscription_purchased or feature_activated). Both events need to be tracked in Mixpanel with accurate timestamps. Mixpanel automatically captures event timing, so as long as you're sending these events consistently, you have the raw data you need to calculate conversion speed.

javascript
// Track the starting event
mixpanel.track('sign_up', {
  'email': '[email protected]',
  'source': 'organic',
  'plan_interest': 'pro'
});

// Track the conversion event later (could be days later)
mixpanel.track('subscription_purchased', {
  'plan': 'pro',
  'amount': 99,
  'upgrade_source': 'email_campaign'
});
Mixpanel automatically timestamps events with millisecond precision, so time-to-convert is calculated from the difference between event timestamps.

Use Mixpanel's Funnels Report

In the Mixpanel dashboard, navigate to Funnels and create a new funnel with your start event as step 1 and your conversion event as step 2. Mixpanel calculates the median and mean time between steps automatically. The funnel report shows not only how many users converted, but also how long the conversion took on average. This is where you'll see time-to-convert expressed in days, hours, or seconds.

javascript
// Initialize Mixpanel with your token
mixpanel.init('YOUR_PROJECT_TOKEN');

// Track step 1: Start of funnel
mixpanel.track('sign_up', {
  'distinct_id': user_id,
  'funnel_id': 'trial_to_paid',
  'user_segment': 'free_tier',
  'source': 'landing_page'
});

// Track step 2: Conversion (Mixpanel auto-timestamps both)
mixpanel.track('subscription_purchased', {
  'distinct_id': user_id,
  'funnel_id': 'trial_to_paid',
  'conversion_source': 'in_app_upgrade'
});
Events in a Mixpanel funnel are ordered by their timestamp automatically. The time between the two events is your time-to-convert metric.
Tip: Mixpanel's Funnels report shows both median and mean time-to-convert. The median is often more useful because it's less skewed by outliers—users who take months to convert.

Calculating Time To Convert with Event Properties

For more granular analysis, you can store conversion-related properties directly on your events and use Mixpanel's segmentation tools to slice time-to-convert by user attributes, channels, or plans.

Store Conversion Timing as Event Properties

When a user converts, calculate the time difference between their signup and conversion events, then include it as a property on the conversion event. This lets you filter and segment by conversion speed in Mixpanel's reports without needing external tools.

javascript
// Calculate time-to-convert on your backend
const signupTimestamp = user.created_at; // Unix timestamp from DB
const conversionTimestamp = new Date().getTime();
const secondsToConvert = (conversionTimestamp - signupTimestamp) / 1000;
const daysToConvert = Math.floor(secondsToConvert / 86400);

// Track the conversion with timing data
mixpanel.track('subscription_purchased', {
  'distinct_id': user_id,
  'plan': 'pro',
  'amount': 99,
  'seconds_to_convert': secondsToConvert,
  'days_to_convert': daysToConvert,
  'conversion_speed': daysToConvert <= 1 ? 'same_day' : 'multi_day'
});
Storing days_to_convert and conversion_speed as properties makes it easy to segment your funnel later.

Segment By Conversion Speed in Mixpanel

Once you have conversion speed as an event property, use Mixpanel's Segmentation or Retention reports to compare user cohorts. For example, segment by conversion_speed to see if same-day converters have higher lifetime value than multi-day converters, or check whether they churn at different rates.

javascript
// Store user-level conversion data
mixpanel.people.set({
  'distinct_id': user_id,
  'last_conversion_speed': daysToConvert,
  'is_quick_converter': daysToConvert <= 1,
  'signup_date': new Date().toISOString()
});

// Track cumulative user metrics
mixpanel.people.increment('total_purchases', 1);
mixpanel.people.set('lifetime_value', userLTV);
User properties help you build cohorts and track individual user behavior over time.
Watch out: If you calculate time-to-convert on your frontend, make sure your server time and client time are in sync. Clock skew of even a few hours can distort your averages. Use UTC timestamps consistently.

Common Patterns and Gotchas

Time-to-convert analysis reveals insights about your funnel, but there are a few traps to watch for.

Remember: Funnels Only Show Completers

Mixpanel's Funnels report only includes users who completed all steps. Users who signed up but never converted don't appear in the time-to-convert calculation. This is why funnel conversion rates look so different from your actual user base. If you want to understand why users didn't convert, you'll need to segment non-converting users separately.

javascript
// Track non-conversion signals to understand drop-off
mixpanel.track('free_trial_ended', {
  'distinct_id': user_id,
  'trial_days': 14,
  'converted': false,
  'last_engagement': 'email_opened'
});

// Also track when users abandon signup
mixpanel.track('signup_abandoned', {
  'distinct_id': user_id,
  'stage': 'payment_info',
  'reason': 'payment_failed'
});
Track both conversion and non-conversion events to get a complete picture of your funnel.
Tip: Create a secondary analysis for users who haven't converted yet. Use Mixpanel's Retention report to see if certain cohorts are just slow converters or true dropouts.

Common Pitfalls

  • Ignoring timezone differences—if your start event is timestamped in EST and your conversion event in UTC, your time-to-convert will be off. Use UTC consistently.
  • Mixing funnel time-to-convert with session-based metrics—time-to-convert spans days or weeks, not a single session. Don't confuse it with average session duration.
  • Relying only on Mixpanel funnels for time-to-convert—funnels only show users who completed both steps. You're blind to users who dropped out before conversion.
  • Forgetting that the time-to-convert median is more useful than the mean—if a few users take 6 months to convert, the mean will be misleading. Always check the median.

Wrapping Up

Time to convert is a vital metric for understanding how your funnel operates. By tracking start and conversion events in Mixpanel and analyzing time between them, you can spot friction points and optimize your onboarding. If you want to track conversion speed automatically across multiple tools and attribution models, Product Analyst can help.

Track these metrics automatically

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

Try Product Analyst — Free