6 min read

How to Visualize Conversion Rate in PostHog

PostHog's strength is showing you *where* users drop off, but visualizing your actual conversion rate requires the right approach. You can use funnels for step-by-step conversion paths, or build custom formulas in Insights if you need a single percentage metric across your whole funnel.

Capture Your Conversion Events

Before you visualize, you need to track what conversion looks like for your product.

Define and capture your conversion event

Identify what action counts as a conversion—purchase, signup, trial activation, whatever. Track it with posthog.capture() and include properties that help you segment later (plan tier, source, etc.).

javascript
// Track a purchase conversion
posthog.capture('purchase_completed', {
  amount: 99.99,
  plan_tier: 'pro',
  source: 'organic_search'
});

// Or a signup conversion
posthog.capture('account_activated', {
  signup_method: 'email',
  company_size: 'enterprise'
});
Capture conversion with context properties for later segmentation

Optionally capture your funnel steps

If you want to see the *path* to conversion (landing page → product view → checkout), capture each step separately. You'll use these events later in your funnel.

javascript
// Funnel step 1: Landing page
posthog.capture('landing_page_viewed');

// Funnel step 2: Product explored
posthog.capture('product_page_viewed', { product_id: '123' });

// Funnel step 3: Checkout started
posthog.capture('checkout_started');

// Funnel step 4: Purchase completed
posthog.capture('purchase_completed', { amount: 99.99 });
Each step becomes a stage in your PostHog funnel
Watch out: Don't track conversion twice—use one event (purchase_completed) not both purchase_clicked and purchase_completed. PostHog will double-count your conversion rate.

Visualize with Funnels

PostHog's Funnels feature is the clearest way to see conversion rate—it shows what percentage of users move from step 1 to step 2, step 2 to step 3, and so on.

Create a funnel and add your steps

Go to Insights and select Funnel. Add your events as steps (usually landing page → product view → purchase). PostHog calculates the conversion percentage automatically.

javascript
// Your funnel steps in PostHog UI:
// Step 1: landing_page_viewed
// Step 2: product_page_viewed
// Step 3: purchase_completed

// These events are already captured in your app:
posthog.capture('landing_page_viewed');
posthog.capture('product_page_viewed', { product_id: '456' });
posthog.capture('purchase_completed', { amount: 199.99 });
PostHog auto-calculates conversion % between each step

Break down by properties to see segments

Click Breakdown in the funnel and select a property like plan_tier or source. You'll see conversion rate for each segment—which customer type converts best, which channel drives the best-quality traffic.

javascript
// Include properties so you can break down by them
posthog.capture('purchase_completed', {
  amount: 99.99,
  plan_tier: 'pro',
  source: 'paid_ads',
  user_cohort: 'existing_customer'
});
Rich properties enable powerful breakdown analysis
Tip: If your funnel shows 0% conversion for a step, check your event names—PostHog is case-sensitive and purchase_completed won't match Purchase_Completed.

Build a Conversion Rate Formula

For a single dashboard metric, skip the funnel and use an Insights formula to calculate conversion rate—users who converted divided by total users.

Create a custom insight with event counts

In Insights, create a new graph and add two event counts: one for your conversion event and one for your baseline (landing page, or total users). Then divide them.

javascript
// Event 1: All users who land
posthog.capture('landing_page_viewed');

// Event 2: Users who convert
posthog.capture('purchase_completed', { amount: 99.99 });

// In PostHog Insights:
// Formula: (event[purchase_completed] / event[landing_page_viewed]) * 100
PostHog formulas let you calculate conversion % directly in Insights

Filter to your conversion window

Use Filters to focus on a date range or specific user segments. For example, filter to users who landed in the last 30 days, or users from a specific traffic source.

javascript
// Capture source so you can filter
posthog.capture('landing_page_viewed', {
  traffic_source: 'organic',
  campaign: 'q1_launch'
});

posthog.capture('purchase_completed', {
  amount: 99.99,
  source: 'organic'
});
Properties enable filtering to specific user cohorts or time windows
Tip: Most conversion formulas show a percentage under 10%—if yours is 80%+, verify your baseline event isn't over-counted (e.g., fired on every page load instead of just once per session).

Common Pitfalls

  • Double-counting conversion events—fire purchase_completed once, not on every page load
  • Using case-sensitive event names inconsistently—PostHog won't match PurchaseCompleted to purchase_completed
  • Including too many funnel steps—more than 5-6 steps makes trends hard to read; consider multiple smaller funnels instead
  • Forgetting to include properties—without plan_tier, source, or user_type in your event, you can't segment conversion rate later

Wrapping Up

With funnels and formulas, you now see exactly where your users drop off and which segments convert best. Track your conversion events consistently, break down by properties, and PostHog will do the math. If you want to track conversion automatically across all your tools and get smarter about which users to acquire, Product Analyst can help.

Track these metrics automatically

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

Try Product Analyst — Free