Knowing how fast users convert tells you if your product is frictionless or stuck. In Mixpanel, you can track the exact time elapsed from when someone first engages (like viewing a product) to when they complete a conversion (like placing an order). This metric is critical for identifying whether your funnel is smooth or losing users.
Set Up Event Tracking with Timestamps
To measure time to convert, you need two events: a starting event (like 'View Product') and a conversion event (like 'Purchase'). Mixpanel automatically captures timestamps, so you just need to make sure both events fire and are tied to the same user.
Track the starting event in your product
When a user begins their journey, fire an event. For example, if you're measuring time to purchase, track when they first view a product detail page. Use the track() method to send the event to Mixpanel.
mixpanel.track('View Product', {
'product_id': '12345',
'product_name': 'Pro Plan',
'category': 'Pricing'
});Track the conversion event
When the user completes their goal (purchase, signup, etc.), fire a second event. Mixpanel logs the timestamp automatically—you don't need to manually add time fields.
mixpanel.track('Purchase', {
'product_id': '12345',
'amount': 99,
'plan_type': 'Pro'
});Add user identity to both events
Make sure both events are tied to the same user. Use identify() to set a distinct user ID before tracking events, so Mixpanel can connect the journey.
mixpanel.identify('user_12345');
mixpanel.track('View Product', { 'product_id': '12345' });
// ... user takes action ...
mixpanel.track('Purchase', { 'amount': 99 });Build a Funnel to Measure Conversion Time
Mixpanel's Funnels feature lets you see how long users take to move from one step to the next. You can set a time limit to calculate the percentage of users who convert within a specific window.
Create a funnel in Mixpanel
Open Funnels in the left sidebar. Click Create Funnel and add your two events in order: 'View Product' as step 1, 'Purchase' as step 2. This shows the number of users at each stage and the median time between steps.
// Configure in Mixpanel UI:
// Funnels > Create Funnel
// Step 1: View Product
// Step 2: Purchase
// View > Funnel Step Conversion TimeFilter by time window to segment fast vs. slow converters
In the funnel view, use the Date Range and Filters to analyze conversion speed. For example, filter to show only users who completed the funnel within 7 days, then compare to those who took 30+ days. Mixpanel's Conversion Time column shows the median duration.
// Query conversion time distribution via Data Access SQL
SELECT
COUNT(DISTINCT user_id) AS users,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY time_between_steps) AS median_hours
FROM funnel_data
WHERE funnel_name = 'view_to_purchase'
AND time_between_steps < 24 * 60 * 60 * 1000; -- within 24 hoursCalculate and Segment by Conversion Speed
For deeper analysis, store the timestamp of the starting event as a user property, then calculate elapsed time when the conversion fires. This lets you segment users by speed and identify patterns.
Store the initial event timestamp as a user property
When the user first views a product, capture the timestamp and save it as a user property using people_set(). This gives you a reference point to measure against later.
const now = new Date();
mixpanel.track('View Product', { 'product_id': '12345' });
mixpanel.people.set({
'first_product_view_at': now.toISOString(),
'initial_product': '12345'
});Calculate elapsed time on the conversion event
When the user converts, send the elapsed time as a property on the conversion event. Calculate this in JavaScript or on your backend before firing the event.
const firstViewTime = new Date(userProperties.first_product_view_at);
const purchaseTime = new Date();
const elapsedMs = purchaseTime - firstViewTime;
const elapsedDays = Math.round(elapsedMs / (1000 * 60 * 60 * 24));
mixpanel.track('Purchase', {
'amount': 99,
'time_to_convert_days': elapsedDays,
'time_to_convert_seconds': Math.round(elapsedMs / 1000)
});Segment by conversion speed in **Insights**
In Insights > Events, select Purchase, then add a breakout by time_to_convert_days. This shows you the distribution: how many users converted in 0-7 days, 7-30 days, etc. Compare purchase rates across these segments.
// In Mixpanel UI:
// Insights > Events > Purchase
// Breakout by: time_to_convert_days
// View > Stacked or Table view
// Add comparison: by payment_method, signup_source, etc.Common Pitfalls
- Not tying events to the same user ID—if your starting event and conversion event use different user IDs, Mixpanel won't connect them into a single journey.
- Forgetting that Mixpanel timestamps are in UTC—convert to user's timezone in reports if you're comparing conversion times across regions.
- Using browser-based timestamps instead of server timestamps—clock skew on the client can throw off your time calculations by hours or days.
- Counting repeat events—if a user views a product multiple times before converting, decide whether you want time from the first view or most recent view, then filter your data accordingly.
Wrapping Up
You now have two approaches to measure time to convert in Mixpanel: funnels for a quick overview, or user properties for detailed segmentation. Both reveal whether your conversion flow is frictionless or losing users. If you want to track this automatically across tools, Product Analyst can help.