Mixpanel’s Funnels allows you to examine how end-users perform events in a series. Funnels calculate and display the amount of users who convert from one event to another within a particular time window. This allows you to identify where your users drop off, what segments convert the most, and other important facets of the user journey.
In this blog, we are going to focus specifically on the different filter types present in Funnel report and the different use cases attached to them.
What are In-line Filters and report-level filters?
In-line filters are applied directly to the event that has been chosen in that particular step
Report-level filters are applied in the query builder for all events present in the report
Example to demonstrate the differences
Imagine you are running an e-commerce website where users can view and buy toys on the platform. A user has performed certain viewing and purchasing events on the platform (see image attached)
Now you want to create a funnel to understand the conversion of Product View to Product Purchase for a product "Lego Set".
Step 1: Adding steps to the funnel
Firstly, you will be adding the steps of the funnel you want to create in the order you want
Step 2: Add the conversion criteria
Once we have the steps, we will be adding the conversion criteria. For this example, I want to see conversion of users who perform the above steps in a specific order within 1 day.
Since there are no specific conditions set in the beginning, the funnel conversion would be 100% as user had viewed the Product Detail Page and then made a purchase within an hour of first attempt.
Now let's say we want to see how the funnel conversion behaves for a specific product. Let's see what happens when we add an in-line filter to the event where we specify the Product Name
When you apply in-line filter, it first filters the events based on the query and only then applies the rest of the funnel logic. Hence, Mixpanel only works with events that have Product Name = "Lego Set" in the above example.
The conversion, in this case, would be 0% because we're working with uniques and we count only the first time the user enters the funnel. In this instance, the first attempt does not result in a purchase within the 1 day conversion criteria window. Consequently, due to our "unique" definition, even if the user subsequently does purchase the lego set within 1 day, they would still not count as a conversion.
This would be different when working with Totals where all attempts are taken into consideration. It is important to note here that the next attempt in only taken into consideration when either the previous attempt is converted or the conversion window is closed.
Report level filters
While in-line filter filters the events before computation, report level filters work at conversion calculation time. Let's see this example below:
We see here that the Product Name is set as "Lego Set" at report level and the attribution type is selected as "First Touch". Interestingly, the conversion funnel looks very different for this use case from in-line filter.
How would the conversion here be 100%? To understand this, we need to first understand The sequence of tasks done when you apply a report level filter and also the different attribution types.
First Touch: When attribution type is "first touch", it forward fills the value to the other steps of the funnel. Which means that event "Product Detail Page Viewed" with product name as "Lego Set" is first seen in the first attempt of the user and then it just finds the event in the next step and carries that value to that event regardless of what value does that event holds. Hence, the conversion is 100%
Last Touch: When attribution type is "last touch", it backfills the value to the previous steps of the funnel. Which means that the event "Product Purchase" with the product name as "Lego Set" is seen in the last step on Day 2 of the events and then it is backfilled for the previous step. Hence, the conversion here also is 100%
With these examples, we not only see how using in-line filter gives you a different result from using report level filter, we also see how different attribution types could give you different results. To understand this better you can try breaking down the 2 attribution type funnels by $insert_id to truly understand which exact event is being carried forward or backfilled.
As you can see from the above examples, depending on the question you're trying to answer, using in-line filters vs report level filters will yield vastly different results. For example, if you were running a specific marketing campaign for lego sets, you might care whether the resultant sale of lego sets came from that marketing campaign. In that case, you might want to apply in-line filters. However, if you were running a general marketing campaign for instance, and just wanted to know which toy had the highest conversions, you could just use the report filers with last touch attribution.