Funnels

Last updated:

|Edit this page

For every flow in your product, more people will start it than complete it successfully. Funnels enable you to visualize your flows and understand where the friction points are so that you can improve them.

You can learn the following from funnels:

How to create a funnel

  1. Click Product Analytics on the left sidebar
  2. Click the + New Insights tab
  3. Select the Funnel option in the dropdown

Adding steps

Select the steps to include in your funnel, ideally starting with the first event or action a user will trigger in the flow. Next, add intermediate events users need to go through to be successful and finish with the event you consider to be the success for this flow. It's best to start with the simplest flow and avoid using optional steps to ensure you don't filter out or skew results.

Funnel steps

Filtering steps

To refine your steps, you can filter out events using event, person, or group properties, autocapture elements, or HogQL. To do this, click the filter icon next to the step, choose your property, and fill in the details. You can also set a global filter in the Filters section in the bottom.

Global filters

Note: Using person properties in funnels requires identified events and person profiles.

Excluding steps

You can also exclude people who completed certain events between two specific steps. To do this, add the step in the Exclusion steps section.

These people are completely excluded from the entire funnel.

Conversion rate calcuation

There are two options for showing conversion rates in a funnel:

  1. Overall conversion – for each step, this shows the conversion relative to the first step.
  2. Relative to the previous step – for each step, this shows the conversion relative to the previous step.

Overall conversion is helpful for understanding the entire funnel, whereas relative conversion shows you which steps have biggest opportunity for improvement.

Overall vs relative conversion

Breakdowns

To understand how different types of user interact with your funnel, it's helpful to breakdown results. You can breakdown steps by event and person properties. To do this, click on the + Add breakdown button and select the property you want to break down by.

The example below shows a breakdown by operating system:

Breakdown funnel steps by Operating System
Funnel steps broken down by property

Attribution types

When breaking down funnels, it's possible that the same properties don't exist on every event. For example, if you want to break down by browser on a funnel that contains both of frontend and backend events.

In this case, you can choose from which step the properties should be selected from by modifying the attribution type. There are four modes to choose from:

1. First touchpoint

In this case, the first property value seen in any of the steps is chosen.

Consider this example sequence of events:

  1. $pageview with browser = Chrome
  2. user signed up with browser = Firefox

The first touchpoint means that Chrome will be the breakdown value.

In the first touchpoint mode, one person will always only have one value.

2. Last touchpoint

In this case, the last property value seen from all steps is chosen.

Consider the same example as above:

  1. $pageview with browser = Chrome
  2. user signed up with browser = Firefox

The last touchpoint means that Firefox will be the breakdown value.

In the last touchpoint mode, one person will always only have one value.

3. All steps

In this case, the property value must be seen in all steps to be considered in the funnel.

4. Specific step

In this case, only the property value seen at the selected step is chosen.

Consider the same example as above:

  1. $pageview with browser = Chrome
  2. user signed up with browser = Firefox

For the example above, when step two is chosen the value will be Firefox.

With the specific step mode, one person can have more than one property value. For example, if the user captured the same event with different browsers:

  1. $pageview with browser = Chrome
  2. $pageview with browser = Firefox

Then the person would have both Chrome and Firefox as their breakdown values.

Another common use for Specific step is to display only a single URL for pageview steps in the funnel columns. The default, First touchpoint uses the first property value seen from all steps, which will include the subdirectory URLs in the breakdown if they appeared in later steps.

For example, if you've

  • set your first query step as Pageview where Current URL = equals https://foo.com/bar,
  • and /bar has subdirectories (e.g. https://foo.com/bar/foo1 https://foo.com/bar/foo2 etc.),
  • and Breakdown by is set to Current URL

but you don't want pages under the subdirectories of https://foo.com/bar to appear in the funnel chart.

In this case, set the Attribution type to Specific step / Step 1 to see only https://foo.com/bar in the pageview column of the chart.

For an unordered funnel, the specific step is meaningless, as the first step can be the last step, and vice versa. So, it's referred to as "any step" in the UI. It has the same semantics as a specific step in an ordered funnel, but it looks at property values from all steps.

Graph type

The graph type dropdown let's you choose between conversion steps, time to convert, and historical trends.

Conversion over time using Trends

Each type serves a unique purpose:

  • Conversion steps – shows you where users are dropping off in your funnel and number of people converting between steps.

  • Time to convert – shows you steps with the highest friction. Steps with a long time to convert are likely much harder than steps with a short time.

  • Historical trends – shows you how your conversion rate has changed over time. Useful for understanding how changes, fixes, and new features have affected your funnel success rate.

Tips for analzying funnels

Understand where people are getting stuck during your flow

The most common use case for funnels is understanding where people are getting stuck or dropping off in your flow.

Identifying drop-offs in a funnel

There a few ways to identify problem steps:

  • Absolute numbers show you where you're losing the most people.
  • Relative conversion rate show you which steps have the greatest impact on your overall conversion rate.

Usually the steps with the lowest relative conversion rate are where the largest opportunities are.

Identify unsuccessful users

Once you have a funnel drop-off you'd like to explore further, the first step is to find out why users are struggling. There are many ways to get this information, from talking to users directly to replaying their sessions.

Click on the chart or the linked column values below the funnel to view the individual people who COMPLETED or DROPPED that step of your funnel.

View users in a funnel

You can also save this list of users as a cohort for further analysis.

Explore user paths

It can be useful to explore the paths people take between steps in your funnel.

Click on the '...' next to any step in your funnel and, depending on which step you're selecting, you'll be presented with options to "show user paths":

  • leading to step
  • between previous step and this step
  • after step
  • after drop off
  • before drop off
View user paths in a funnel

Selecting any option creates a new insight showing the paths users took. This is useful for getting a complete picture of the real funnel created by user interactions, rather than the imagined perfect funnel engineers and designers have in their head. Spoiler: the real funnel and the perfect funnel are rarely the same!

Understand seasonality in your conversion rates

It's unlikely that your conversion rate will remain stable every day or every week. This is normal, but it's important to understand the external factors that can cause these fluctuations so you don't jump to conclusions too quickly when analyzing a big change or drop-off.

To look at the seasonality of your conversion rates, set the graph type to historical trends and set the time period to when you may expect seasonal variations.

A common seasonality to watch out for is weekends, particularly if your product is B2B. Another one is a yearly sale such as "Black Friday", which increases the number of people visiting your site and increases the expectation of discounts, making it difficult to compare against the rest of the year.

In this view, you can adjust the date ranges to observe key seasonal trends. You can then look at your funnel to determine if it's just a seasonal trend or whether something else has affected the experiece of your product (like a product change).

Correlation analysis

Where is this feature available?
Free / Open-source
Paid
Enterprise

Correlation Analysis automatically highlights significant factors that affect the conversion rate of users within the funnel.

Correlation analysis works well when you don't already have a hypothesis for what is affecting conversion through a funnel. This report will automatically highlighting significant events or properties that either negatively or positively impact conversion rate.

Further reading

Want to know more about what's possible with Funnels in PostHog? Try these tutorials:

Want more? Check our full list of PostHog tutorials.

Questions?

  • Ulyana
    3 days ago

    Discrepancy in Metrics with and without "Breakdown by"

    I’ve encountered an issue with the metrics in our funnel. When the “Breakdown by” option is enabled, the metrics are different from those shown when the breakdown is not applied.

    Could you please help me understand why this discrepancy occurs and assist in resolving this issue?

    Thank you for your help!

  • Eren
    a month ago

    Eren

    In the historical view of funnels, is there any way to display it as absolute number of people converted instead of %?

    • Steven(he/him)
      a month ago

      Hey @eren/32564 ,

      Thanks for getting in touch about this.

      The bad news is that this isn’t possible at the moment. The good news is that we can maybe work on it in the future if you create a GitHub issue which explains it in full detail. Once we have that, we can pester our engineers on your behalf and let you know when it launches!

      We can't promise that we'll build every feature request, as we have a lot on our roadmap, but we'll certainly give it serious thought!

  • Jason
    2 months ago

    Aggregate funnel by actions, rather than unique users or sessions

    I'd like to aggregate a funnel by the first action, rather than unique users or unique sessions.

    For example, if I have a funnel that measures Product Views -> Product Add to Cart, I want a funnel where each Product View is counted separately. If a user views four different products, and then adds one of those products to cart, then I want conversion to be 25%.

    • Abe
      10 days ago

      +1 to this. While we can add a custom property to events (with some identifier that ties the workflow together) and aggregate by that, this process is error prone, requires attaching the properties to events, and kinda defeats the purpose of auto-capture. It'd be super neat if we could just aggregate funnels by occurrence rather than users or sessions.

  • Shawn
    3 months ago

    Funnel filtering with cohorts

    I have a multi-step funnel looking at the last 7 days where the first step has a filter to see if the user belongs to a dynamic cohort. Does that mean that the entire funnel will only measure individuals who belonged to that cohort at the time they entered the first step?

    The cohort is users who have made a payment in our app. So my funnel is trying to measure users who have already made a payment before. So when a new user makes their first payment, they get added to the cohort as well, but I want to make sure that they don't get retroactively counted into my "returning paying user" funnel.

    • Abigail(she/her)
      2 months ago

      Hi Shawn! When using cohorts as part of your insight filters, this will only check whether the users are part of that cohort at the time of running the query.

      Are you able to drop a link to the funnel that you're looking at so I can see what it is you're trying to achieve?

  • Rajiv
    5 months ago

    How do I use an event from the Data Warehouse in the funnel?

    I cannot seem to use Data Warehouse events in Funnel insights the same way as I can in Trend insights.

  • Chap
    5 months ago

    Steps with an OR filter

    Is it possible to change the 'AND' filters to 'OR' filters?

    • Justin
      4 months ago

      I would also like to know the answer to this

    • Jason
      2 months ago

      I am also curious

  • Andreas
    5 months ago

    Multiple events in first step

    Hello,

    I need some clarification on how funnel analysis works when users can trigger the first step multiple times before reaching the second step. Specifically, are we always using the latest event from step 1 before step 2 occurs?

    For example, in my funnel: Paywall: Showed → Membership: Activated, users may encounter multiple paywalls during their journey. I want to break down the funnel by "Paywall title."

    Logically, I would expect the analysis to always consider the most recent event from step 1 that occurred before step 2. However, when I change the attribution type, the number of conversions changes, even though only step 1 includes the property I'm using for the breakdown. This makes me uncertain about what the funnel is actually tracking.

    Could you clarify how this works and why changing the attribution type affects the results?

    Thank you!

  • Renaud
    6 months ago

    How can we exclude actions from funnel steps??

    Why can't we exclude actions from funnel steps?? Seems limited to captured events only. This is super limitative since most of our funnels are based on current url pathnames and relies on actions we have built in posthog. Capturing events for all page loaded in applications seems like a pretty poor workaround to fix this limitation.

  • Cansu
    6 months ago

    Funnel analysis with linked data sources

    Is it possible to use funnel analysis with a linked GCP Storage bucket?

  • Jorien
    7 months ago

    Use regex to cleanup paths

    Next to the breakdown option 'Normalize paths' is there an option to use regex? We've got user specific pages with ids in the url and those are not being grouped with the path normalizing option.

    • Marcus
      7 months ago

      Hey Jorien, we do not support applying path cleaning rules in funnel insights as of right now but feel free to subscribe to this feature request on GitHub to get notified of updates.

  • Sean
    7 months ago

    Breakdown labels

    I have a funnel with a feature flag breakdown, where the feature flag has multiple variants. I am testing which variant has a higher conversion rate. When adding the feature flag, the labels are either missing or confusing. My control should be the same as the baseline, but the data seems off. When I look at the query it isn't clear where it is pulling the feature flag labels and splitting attribution. Is there a way to fix this? Screenshot 2024-07-16 at 9.38.54 AM.png

  • Christian
    8 months ago

    Invert funnel step

    Let say I have the following events register_start and register_done. I would like to find users that has register_done but NOT register_start. How would I do that?

    • Marcus
      8 months ago

      Hey Christian, that would be possible using a cohort with the completed the register_done event AND did not complete the register_start event.

  • Janosch
    9 months ago

    Multiple Events for Conversion

    Did I miss something? As a last step I want to allow two events to be considered for conversion. Either a user does X or a user does Y which both fulfill the last step requirements and count towards conversion.

    Let's say I want to define an interaction with the content as a conversion (so non commerical conversion). Either the user previews the content or even clicks a button to get more details would both be fine as a conversion for user interaction.

    Step 1: Search Step 2: Adjust filters Step 3: Interact with results in either of two ways

    Or would that be two separate funnels as it'd give more insight?

    Thanks

    • Janosch
      Author9 months agoSolution

      Ah nevermind, I can just create an action with all my interaction events and then use an action in the last step

  • Will
    a year ago

    Company funnels

    I am trying to create a funnel, that only looks at companies. However, some companies are going back into the funnel even if they've done it once. Is there a way of excluding companies that have done an event once?

    • Marcus
      a year agoSolution

      Hey Will, we have a similar funnel here are PostHog. We use a joined organization event with a property called is_first_user_at_organization. In first funnel step we filter for is_first_user_at_organization = true.

  • Max
    a year ago

    How to create a funnel for a dynamic flow

    I'm wondering how I can understand dropoff and conversion for a series of steps that are dynamic. Some users might get steps 1, 2 and 4. While other users might get steps 1, 2, 3 and 4. Even more complexly, the flow has a variable number of steps in the middle. It would be great to be able to identify which part of the flow causes users to drop out, and the impact the number of steps has on conversion in general

    Am I getting outside of the use cases for funnels on Posthog, or am I thinking about the problem incorrectly?

    • Marcus
      a year agoSolution

      Hey Max, it's currently not possible to set up optional funnel steps but feel free to subscribe to this feature request to get notified of updates.

      Although it's possible to have a single step which could be one of multiple events using an Action.

    • Max
      Authora year ago

      Thanks Marcus. We'll check out Actions for some of this.

  • Filip
    a year ago

    "Any step" attribution type

    Info pop-up on the "Attribution type" setting includes "Any step" as one of the options, but it's not available in the dropdown. That'd be very useful for one our funnels, is this something that will be available?

  • Pedro
    a year ago

    Dropoff users

    Hi, I have a funnel and I'm trying to determine why users are dropping off at a particular step, when I click on the view drop off users section I get the usual modal that's supposed to show users but instead I see this message: "16 results are not shown because they've been merged with those listed, or deleted." - what does this mean exactly? The accompanying link doesn't really help to answer this question.

    • Marius
      10 months ago

      Hello, we recently rolled out a huge change to funnels, so this may already be fixed. Can you submit a support request through the app if it isn't.

  • Dishant
    a year ago

    Funnel Steps unable to rename

    I have created an funnel insight in my posthog using the events.

    Now I want to rename the steps of already created funnel but its not reflecting.

    When i try to create a new event and rename the steps at the time of creating the it works.

    Ref: https://app.usebubbles.com/8CYEeBonuNdfj6GduLjV4V/posthog-unable-to-rename-funnels

    How should I fix this.

    Thanks!

  • Max
    2 years ago

    Annotations on Historical Graphs

    How can I see annotations on my historical funnel graphs? They don't seem to be showing up for me...

    • Marcus
      2 years agoSolution

      Annotations are not supported on historical funnel graphs, they are only supported in Trends, Sessions or in a Dashboard.

Was this page useful?

Next article

Dashboards

Dashboards are the easiest way to track all your most important product and performance metrics. Unlike notebooks , which are ideal of adhoc analysis of specific issues, dashboards are designed for tracking common metrics over time. You can create a new dashboard from scratch, but we also offer numerous dashboard templates for tracking things like website metrics , product health metrics , and metrics for large language models . Creating a new dashboard Click on Dashboards in the left…

Read next article

PostHog.com doesn't use third party cookies - only a single in-house cookie.

No data is sent to a third party.

Ursula von der Leyen, President of the European Commission