Skip to main content
You are viewing the documentation for Interana version 2. For documentation on the most recent version of Interana, go to


Scuba Docs

Build funnels and funnel metrics

Neal Kaplan

Funnels allow you to calculate the number of actors that pass from one state to another as well as the elapsed time between those states. 

You define a funnel by building a series of steps. When you run a funnel, it measures how many actors matched that series of steps during their journeys, within the specified time period. For example, the typical steps e-commerce shoppers perform during checkout, such as view shopping cartenter shipping addressenter billing information, and confirm purchase comprise a funnel.

Unlike sessions, they are defined by matching steps (specific events) rather than timeout. Funnels can also be used to find paths to, from, and between particular steps.

Use funnels to understand the behavior of flows such as registration for an application, actions people take to play a song in an online media player, and various conversion rates like a checkout cart or paywall. The auto-generated funnel metrics allow you to drill into these flows to more deeply understand them.

Create a funnel

  1. Log in to your Interana instance and click the Funnels icon to open the Funnels tab.

  1. Click Create New Funnel.

  1. Enter a unique Funnel name to identify your funnel and select the Data Source to use.
  2. Select the Funnel for value. This is the actor (for example, the user or session) you selected when importing your data. 

  1. Add steps to the Funnel and any filters to define what those steps are.

The names you choose here will show up in the funnel view.

  1. Select the maximum time period for the entire funnel in the All events happen within fields. For example, you can require that all funnel steps happen within one day. 

  1. Optionally, add global filters to the funnel. These filters are applied to all of the steps in the funnel. For example, if you want to include only mobile events, you can add a filter to the Global Filters to include only mobile platforms. 

  1. Click Save. Interana runs the funnel and displays the results.

Creating funnels that reset if the first step is repeated

If you select Reset funnel if event matches Step 1, funnels will reset automatically if, after starting a funnel, a user performs the first step of the funnel again. The funnel will end and a new funnel will begin at the repeated step. By default, this setting is not active and funnels will not reset. 

For example, if funnel reset is enabled, this funnel will reset if the user performs the "register" step again:

By default, funnels will not reset.

What does the funnel visualization look like?

To illustrate these techniques, we will use a three-step funnel on a streaming music player dataset. We will create a new funnel to analyze the effects that listening to specific music has on converting users from a free user to a paying one.

This funnel includes the three steps:

  1. Register with the streaming service (register)
  2. Listen to one or more popular artists (listen to popular music)
  3. Upgrade to a paid subscription (upgrade)

For step 1, we add a filter to require that the page is either Submit Registration or Register. For step 2, we allow the artist to be any one of a group of popular artists, as determined by a separate analysis. For step 3, we require that page is either Submit Upgrade or Upgrade.

The last step in the creation of this funnel is setting the time range. In this example, we’re requiring that all of the steps happen within 12 weeks. After we save this funnel, Interana displays a funnel visualization of the effect of listening to this music on upgrading.

Hovering over each section displays information about the count of users progressing to the next step (if we hover over the gray/black bars representing each step), or the median elapsed time between steps (if we hover over the blue bars between steps).

If we hover over the Step 1 bar, Interana displays information about the raw count of users who completed step 1 (116,384 in the image below), the percentage of all possible users that this raw count represents (almost 17%), and the dropoff from step 1 to the next step (9,172 users, or almost 8%).

Click on the bar to display an analysis of the users progressing through this funnel. If we hover over the Step 2 bar, Interana displays information about the raw count of users progressing to step 2 (107,212 in the image below), the percentage of all possible users that this raw count represents (just over 15%), the percentage of users who make it to step 2 from step 1 (about 92%), and the dropoff from step 2 to step 3 (59,224, or just over 55%).

The two blue bars below show statistics of the length of time it takes for users to go from one step to the next. Hovering over the blue bar between step 1 and step 2 displays the median time that users spent moving from step 1 to step 2. In this case, it takes almost 6 days for users to listen to any of the selected artists after they register for the streaming music site.

Once a user has listened to one of these artists on the streaming music site we see that it takes them a little more than three weeks to convert to a paying user.

Funnel metrics

This is where the power of Interana's funnels really shines. All of the funnels that you create and the properties of those funnels are available in Explorer. For example, in a three-step funnel you can filter to events where <funnel name>.terminal_state is equal to 1,2,3, or null. You can also group by any property of the funnel and create comparison groups.

While the funnel visualization is a great quick glance at conversion rates or time periods, some of the most powerful aspects of the Interana funnel feature are the metrics that are computed from a funnel.

<funnel name>.current_state

This is calculated on a per-funnel instance basis. It represents the most recent step that was reached within a funnel. For example, if we filter to current_state == 1 and group by event type, we'll see the events that users performed after and including step 1 until, but excluding, the event that constitutes step 2.

For example, our funnel, named demoFunnel, is tracking three events: registering for the streaming music service, listening to one (or more) of the selected artists, and then upgrading to a paid subscription. 

If we filter to demoFunnel.current_state==2, the events captured for Listener A will be the the actions they took between steps 2 and 3 (both listening to popular music and the “other action,” represented by a star in the diagram). The event captured for Listener B will be only listening to popular music, because that user did not perform any other events between steps 2 and 3.

This is useful for looking at events that happen between two steps, and get ideas for different paths a user took.

<funnel name>.terminal_state

This is calculated on a per-funnel instance basis. It represents the furthest step reached within a particular pass through a funnel.

For example, if our funnel has three states (register, listen to popular music, and upgrade), the <funnel name>.terminal_state for Listener C will be 2 on their first pass through the application, but 3 on the second pass:

We can also count unique users and group by <funnel name>.terminal_state. If a user progressed through a portion of the funnel twice, ending at a different step, both funnel flows will be counted for the user, not just the funnel in which the user reached the furthest step.

tip_icon.png For any funnel, <funnel name>.terminal_state=<all steps> will be equivalent to <funnel name>.current_state=<all steps>. For example, if your funnel has 3 steps, MyFunnel.terminal_state=1,2,3 will return the same values as MyFunnel.current_state=1,2,3.

<shard key>.max.<funnel name>.terminal_state

For each actor, if the actor passed through a funnel multiple times during the time range that you selected this metric shows you the furthest step that they reached in all of their passes through the funnel.

For example, if Listener C made it to the second funnel step on their first pass, and then made it to the third step on their second pass, this gives them a max terminal_state value of 3. Unlike the <funnel name>.terminal_state metric, this returns a single value for an actor regardless of the number of times they passed through the funnel. So even if Listener C goes through the funnel a third time (in the selected time period) and stops at the second step, their value for userId.max.demoFunnel.terminal_state will still be 3.

In the following example, the userId.max.demoFunnel.terminal_state will be 3 for Listener A but 2 for Listener D:

You can also use this to filter users who have reach specific states. For example, in the Explorer you can filter to userId.max.demoFunnel.terminal_state = 2 to see only users who reached the second step but never the third in the specified time period. In this example, that would return Listener D. 

By clicking on the first light grey rectangle in the funnel visualization, we open the funnel in the Explorer's time view and see the unique users who have ever entered the funnel over time. 

This uses the userId.max.demoFunnel.terminal_state metric to filter for users who progressed to state 1, 2, or 3. 

Now that we're in Explorer, we can expand our analysis and look for any possible differences between how users who identify as male and female move all the way through this funnel. We do this by grouping by gender in the Query Builder, and changing the terminal state to only look at users who reached step 3 in the funnel:

We can see some differences between the two groups, and we can use this as the basis for further analysis to see if this is statistically significant.

<shard key>.<funnel name>.time_between.<step>.<step>

This is the time (milliseconds) each actor took between steps, for any pair of steps in the funnel. If the actor made multiple passes through the funnel, this computes the average of those times.  

You can aggregate (i.e., average, median), or filter on this (for example, users who took more than 1 day to do step 2). 

Using the demoFunnel example, the userId.demoFunnel.time_between.2.3 will return the average amount of time our users took to progress between the listen to popular music and upgrade steps of our funnel. We can use the Distribution view to plot the time ranges:

Click a column, or drag and select multiple columns to drill down into those time bands. 

Back in the Funnel tab, we can also explore the conversion time between steps 1 and 2 by clicking on the first blue rectangle (between step 1 and step 2):

Clicking on this rectangle brings us to the Time view in Explorer, where we see a plot of average time to conversion over time. The downward trend of this graph indicates that over time, it takes less time on average to convert from step 1 to step 2:

<funnel name>_transition_time_to_current_state

This is calculated on a per-funnel instance basis. It is the amount of time (milliseconds) it took to reach the step representing the current_state in the funnel pass from the step representing the previous state in the funnel pass. 

Use transition_time_to_current_state to look at the transition time for all actors and all passes through the funnel. For example, you can find the average amount of time that it took all of your users to pass from one state to another, and then plot that average value over time to see how it has changed. 

Or you can use this to find the longest session for an actor during a given day; unlike time_between, transition_time_to_current_state does not calculate the average value for all of an actor's passes through the funnel. Using transition_time_to_current_state, you can plot all of an actor's transition times during a time period to see when they progressed quickly and when they moved slowly through the funnel. 

When using this, you must filter by <funnel name>.current_state to specify the state that you want to measure to (for example, "MyFunnel_current_state is one of 2"). 

Suggestions for additional analysis

You can use the metrics to filter on users who took a long time to progress through the funnel, and get more information about this type of user. 

The funnel metrics can also help you understand the different actions taken by users who moved to a step quickly versus those who took a long time. Is there something that is slowing their progress, such as a confusing checkout process, or do they spend a lot of time investigating your pricing options?