Funnels in Mitzu
Mitzu's Funnels let you examine how end users perform a series of events. Funnels calculate and display the number of users who convert from one event to another within a particular time window.
Use Cases​
Imagine your product is a B2B messaging application. You might use Funnels to answer these questions:
- What percentage of users converted through my signup funnel within 7 days?
- At what step of the signup funnel did most users drop off?
- How did my A/B test impact conversions in the signup funnel?
- How has the payment funnel conversion rate in the US changed over time?
- How long does it take most users to complete my payment funnel?
- What departments complete the payment funnel most often?
- What flows do users take between opening an app and making a purchase?
- What flows do users take that don't lead to a purchase?
- How do these two paths differ? Which actions should I nudge users toward or away from?
- What did the users who dropped off do instead?
Quick Start​
Building a report in Funnels takes just a few clicks, and results arrive in seconds. Let's build a simple report together.
Let's measure the conversion rate of website visitors to your SaaS product. The typical question you would ask is, "How many users converted to start a trial?"
We should only consider conversions valid if the user started the trial within 7 days of their first visit.
We should also look at the last 4 months of data to get reasonable results.
Step 1. Switch to funnels​
Click on the Funnels tab on the left side of the screen.

Step 2. Select the events​
Select the steps of the funnel you want to analyze:
- The first step should be the website visit event.
- In our case, the second step should be the conversion event "trial started".
- For the
page viewedevent, select theFirst eventsegment filter. (This ensures we only consider the user's first visit.)
Step 3. Conversion window​
Select the correct conversion window, 1 week, in the conversion window dropdown.

The rest of the settings are left at their defaults.
- Entire funnel conversion window type
- Every event conversion attribution
Step 4. Time window​
Let's choose the 4M time window to achieve the desired results.
Switch to Funnel steps to see the overall conversion rate of the funnel.

The results​
After the 4th step, you should see the following results:

Extra step: breakdown​
As an extra step, you can break down the funnel by the Campaign event property.
This visualizes how each campaign contributed to the conversion rate.

Conversion window​
The conversion window is the time period during which the funnel steps must be completed.
The default value is 1 day, which means all steps must be completed within 24 hours.
Mitzu currently doesn't support funnels without a conversion window. If you need an unbounded funnel, increase the conversion window to 10 years.
The conversion window can significantly affect the funnel's performance. With longer conversion windows, the SQL engine has to join more events, resulting in longer query execution times.
Conversion window type​
This setting allows you to choose the type of conversion window. Currently, we support two types of conversion windows:
- Entire funnel - all the steps must be completed within the conversion window.
- Between each step - the maximum amount of time that can pass between any two consecutive steps must be within the conversion window.
Conversion attribution​
This setting allows you to choose the attribution of the conversion. It has no visible effect on the "Conversion rate" aggregation type (which is the default aggregation type), but it does affect the "Custom aggregations" and "Time to convert" aggregation types.
Currently, we support two types of conversion attribution:
- Every event - each event is considered a "converting" event of the funnel.
- First event - only the first event of each step (segment) is considered a converting event.
Conversion order​
The Conversion order setting lets you choose the temporal direction of the funnel:
- Forward (default) - users must perform the steps in the order you defined them, with each step happening after the previous one. This is what you usually want.
- Reverse - users must perform the steps in the opposite order. This is useful for retrospective analysis: "of the users who reached the checkout step, how many had previously visited the landing page within the conversion window?"

Reverse funnels still use the same conversion window — only the direction of step ordering is flipped.
Loose timestamp comparison​
Some funnels combine events from different sources — for example backend and frontend events — whose clocks are not always perfectly aligned for the same user interaction. When that happens, two steps that logically occurred in order can appear a few seconds out of order, and the user is counted as not converted.
Enable Loose timestamp comparison (the checkbox at the bottom of the conversion window menu) to allow a 1 minute grace period when comparing the order of events. With it on, a step can happen up to 1 minute before the previous step and the user is still counted as converted.
The grace period only relaxes the ordering of the steps — the conversion window itself still applies. The default comes from the Loose timestamp comparison setting in your workspace's insights settings (which insight types it applies to) and can be overridden per funnel.
Exclusion steps​
Any funnel step card can be switched to Exclude with the Exclude chip in the card's â‹® menu. An excluded card is not a step: it gets no number and no bar in the chart. It sits in a gap instead, and users who do its event in that gap can't reach the next step from that moment on.
- Between two steps - the excluded event only counts inside the conversion window after the earlier step. A conversion that finished before the excluded event still counts.
- Before step 1 - step 1 events after the user's first excluded event in the date range don't count.
- After the last step - last step events before the user's last excluded event in the date range don't count.
Move the card with Move up and Move down to pick the gap it applies to. Several excluded cards in the same gap mean none of those events may happen there.
A card before step 1 or after the last step looks across the whole date range, so results for older weeks can change as the range moves. A refund that arrives today removes a purchase from three weeks ago.
Before step 1 and between steps, an exclusion blocks the user, not a single attempt. A user who adds to cart, removes the item, then adds and buys a week later is blocked on that later purchase too, even though nothing was removed in between. Over a long date range, users who ever hit the exclusion stop converting in the later periods, and moving the start of the range changes the later periods as well. After the last step it works the other way round: only the conversions made before the user's last excluded event are dropped, so a purchase after a refund still counts.
When the funnel holds a property constant, the excluded event must have the same held value: removing order A from the cart blocks order A's purchase, but order B still converts. If the excluded event doesn't have that property, it blocks every value the user has in progress. Holding an order, cart or session id constant that the excluded event also carries is how you get one cut-off per attempt instead of one per user. On most warehouses, an excluded event whose held property is empty blocks nothing; on Microsoft Fabric it blocks the step events whose held property is empty too.
A few more details decide what counts as "in the gap":
- Every event of the earlier step opens the gap, even one that isn't part of an attempt, for example a checkout with no add to cart before it.
- An excluded event with the same timestamp as the earlier step is not in the gap, and a step event with the same timestamp as the excluded event still counts. Events sent together with second-level timestamps can slip through.
- With Event resolution set to one event per user per day, hour or minute, only the first excluded event in each period is kept, so a later one on the same day may not block.
Excluded cards can't have a breakdown or an Nth event filter, and they are only available in funnels. A funnel with an excluded card can't be compared with a previous period: the exclusion is measured across the whole date range rather than per period. The comparison you picked is kept and comes back when you switch the card back to a step. The Mitzu agent understands questions like "from signup to purchase without a cancellation in between" and builds the exclusion for you.
Calculation base step​
When the measurement type is Conversion rate or one of the time to convert measurements, you can choose which step each step of the funnel is measured against:
- Previous step - each step is measured against the step right before it.
- Conversion rate:
(users at this step) / (users at the previous step). This makes step-by-step drop-offs easy to spot. - Time to convert: the time it took to get from the previous step to this one, so you can see which step users linger on.
- Conversion rate:
- Base step - each step is measured against the first step.
- Conversion rate:
(users at this step) / (users at the first step). This gives an end-to-end conversion at every step. - Time to convert: the time it took to get from the first step to this one.
- Conversion rate:
Conversion rate defaults to Previous step, and time to convert defaults to Base step. Changing the measurement type resets the setting to that measurement's default.

In a reverse funnel the base step is the last step, and the previous step is the one after it.
The setting only changes the intermediate steps in Funnel steps. Funnel trends and the number chart always measure the whole funnel, from the first step to the last.
Practical examples​
Let's consider the following funnel:
- Landing page visit
- Payment for an item on an e-commerce website
To measure the total revenue, you can use the "Every event" conversion attribution with the "Sum of revenue" aggregation type.
However, if you want to measure the average time it takes to reach the first payment, you can use the "First event" conversion attribution with the "Average time to convert" aggregation type.
Performance implications of conversion attribution​
Mitzu's SQL engine uses LEFT OUTER JOIN with the "every event" conversion attribution,
and a WINDOW FUNCTION with the "first event" conversion attribution.
Window functions are an order of magnitude faster than left outer joins. We recommend defaulting to "first event" conversion attribution if you have a large dataset. You can change the default conversion attribution in the "Conversion attribution" setting on the Insight settings page.
Measurement types​
Mitzu funnels have rich support for measurement (or aggregation) types.

By default, Mitzu uses the "Conversion rate" measurement type.
The supported measurement types are:
- Conversion rate - the number of converted users divided by the number of users who started the funnel.
- Count converted users - the number of users who completed the funnel steps.
- Count converted events - the number of converting events on the last step. Use this when a single user can convert multiple times (e.g., a user who completes several purchases) and you want to count the events rather than the unique users.
- Average time to convert - the average time it takes for users to convert.
- Median time to convert - the median time it takes for users to convert.
- PXX time to convert - the XXth percentile of time it takes for users to convert.
- Min time to convert - the minimum time it takes for users to convert.
- Max time to convert - the maximum time it takes for users to convert.
- Aggregate property - a custom aggregation of any property value from the funnel's last segment (step).
Trends vs. Overall measurement configuration​
If you are visualizing a funnel trend, the measurements are calculated between the first and last steps only. However, users must still complete each step in the funnel in order to be considered "converted".
If you want to visualize the funnel as an overall measurement, the measurement is calculated for all the steps in the funnel. The exception is the "Aggregate property" measurement type, which aggregates the values of the last step only in both cases.
Custom holding constant​
As previously mentioned, a user is considered "converted" if the same user completes all the steps in the funnel. With custom holding constants, you can modify this behavior.
For example, suppose you want to consider a conversion successful only if it happened within the same browser session.
For this purpose, we have introduced the Custom holding constant setting. You can pick any property present in all the steps of the funnel.
In the example above, you would set the Custom holding constant to session_id.
This ensures that Mitzu measures the conversion rate of users who converted within the same browser session.
A custom holding constant never replaces the analyzed entity — the entity you selected in Analyze by (the user by default) is always kept. The holding constant is an additional requirement layered on top of it, so a conversion only counts when the same entity completes the steps and the steps share the same holding-constant value. A later step performed by a different user, or by the same user in a different session, is not counted.
Difference between "Custom holding constant" and "Analyze by"​
If you change the Custom holding constant setting, the measurements still calculate user conversion rates (or any other user-level measurement).
However, if you change the Analyze by setting, the target entity for the measurements changes. For example, if you set Analyze by to Groups, the measurements are calculated for unique groups.
You can also set Analyze by to session_id. In this case, you will measure the number of successfully converting sessions.
This documentation uses session_id as an example. However, your data in the data warehouse might not have a session_id column.
Funnel step breakdown​
You can set a breakdown on any of the funnel steps, as long as the breakdown is set on a single step. The most common way to break down the funnel is by one or more properties of the first step.
If you break down the funnel by a property from the second step or later, you will often see the breakdown value <not set>.
This represents the segment of users who didn't convert between the previous step and the step containing the breakdown.

Trends vs. Overall measurement configuration​
We already discussed trends vs. overall measurement configuration in the Insight basics section.
In this section, we consider this setting in the context of funnels.
Funnel steps​
The overall measurement type is called Funnel steps, and the visualization is a bar chart (or a
GEO or number chart).
In a bar chart, each group represents the associated measurements for each step of the funnel.
By default, each group in the bar chart shows the funnel's conversion rate (or other measurement) up to that step.

Number chart​
A number chart answers for the funnel as a whole rather than step by step: it shows the total conversion rate from the first step to the last, with the number of converted users below it. The other measurements follow the same rule — converted users and events show the count at the final step, and time to convert shows the time to cross the whole funnel.
Note that the calculation base step setting does not change this number. That setting decides what each bar is measured against; a number chart has a single value covering the whole funnel, which is always measured from the first step.
With a breakdown, you get one number per group, ordered from the highest value down. Groups beyond
the tenth are summarised as a +N other segments note rather than shrunk to an unreadable size.
Below, you can see the funnel steps for the time-to-convert measurement.

Pivot table​
A pivot table shows the same whole-funnel figure as the number chart, but as a grid: one row per breakdown value, or one column per breakdown value if you move it across the top. It is the chart to reach for when you want to compare the conversion of many groups side by side, or paste the numbers into a spreadsheet. See Pivot tables for the details.
Funnel trends​
The main thing to consider when visualizing funnel trends is that we attribute each conversion to the date of the first step of the funnel.
Consider the following funnel:
- Page viewed
- (Checkout) Payment for an item on the e-commerce site

In this case, the conversion window is set to 7 days. The checkout may have happened 6 days after the page view, but we still attribute the conversion to the date of the page view event.

This is true for any number of funnel steps.
Funnels support hourly, daily, weekly, monthly, and yearly trends. Quarterly is not available for funnel trends.
A funnel trend can also be shown as a pivot table: the periods run down the rows and your breakdown across the top, with the whole-funnel figure in every cell.
Dotted lines in funnel charts​

Dotted lines in funnel charts indicate that users entering the funnel at a given point have not yet had sufficient time to complete the funnel within the defined conversion window. The section with the dotted line is considered incomplete, meaning conversions beyond this point may still occur but are not yet recorded.
This helps distinguish between actual drop-offs and conversions that could still be in progress.
Probability to be best (Bayesian)​
With funnel insights, you can also see the probability that a variant has the highest true conversion rate, based on Bayesian sampling from posterior distributions. This feature is only available for funnel insights with overall measurements (Funnel steps).
This feature is most useful for A/B test analysis.
Bayesian A/B testing calculates the probability of a variant being the best by combining prior beliefs with observed data. Given two variants (A and B), we model their conversion rates as Beta distributions (posterior beliefs) using Bayesian inference. The probability that one variant is better than the other is computed by simulating many samples from these posteriors and checking how often one exceeds the other. This Monte Carlo method estimates P(A > B) or P(B > A) directly, giving actionable probabilities instead of p-values. Unlike frequentist tests, Bayesian A/B testing continuously updates beliefs and allows stopping based on confidence thresholds.

Comparison​
The Comparison feature lets you analyze and evaluate data trends by comparing them against a previous time window. For example, you can compare data points from the last month with those from the preceding month.
To enable comparison, select the desired comparison window from the dropdown menu.
Comparison works on funnel trends and on Funnel steps. A funnel belongs to the window its first
step falls in, so a user who enters the funnel near the end of the previous window and converts
inside the current one is still counted against the previous window.
In funnels, comparisons are currently supported using absolute values. Additional comparison methods will be introduced in future updates. For details on the product roadmap, please contact us at support@mitzu.io.

Comparison with absolute values​
When using comparison with absolute values, the chart displays:
- the data points from the selected insight time window, and
- the data points offset by the chosen comparison time period.
Both sets of data are visualized together, making it easy to identify trends, similarities, and deviations between the two time windows.
On a bar chart the two periods stand side by side at every step, the previous one in a quieter shade of the same colour. On a number chart the current value stays the headline and the change against the previous period is shown beside it.

Using a saved funnel in a segmentation​
A saved funnel can be reused as a segment in a segmentation insight, which is how you compare two funnels on one chart or show a conversion rate next to the volume behind it. The segmentation sets the date range and the break downs; the funnel keeps its own steps, conversion window and measurement. See Metrics.