Skip to main content

Performance settings

The Performance settings tab speeds up funnels, retention, and journey insights on high-volume projects by reducing how many events and entities Mitzu processes — and by applying query-friendly defaults to new charts.

Use this tab when insights run slowly, your warehouse is under load, or you routinely hit query time limits. Changes apply workspace-wide and are saved automatically.

image

Sampling & resolution​

Mitzu has two independent kinds of sampling. They reduce different things, they are scaled back up differently, and each has its own workspace default. A third setting, Apply entity sampling to, decides which insight types the entity sampling default reaches.

Event sampling (Event resolution)Entity sampling (Uniques sampling)
What it dropsEvents — keeps at most one event per entity per time bucketEntities — keeps a fixed share of users / accounts / sessions
Who is still countedEvery entityOnly the entities in the sample
Correction appliedNone needed — entity counts are unaffectedCounts are multiplied back up to full-population estimates
Workspace default settingEvent resolutionAutomatic entity sampling, narrowed by Apply entity sampling to
Per-insight controlEvent resolution in the sampling menuUniques sampling in the sampling menu
Applies toFunnels, journeys, retentionAll insight types, segmentation included — Apply entity sampling to can keep the workspace default off segmentations

Event resolution and Automatic entity sampling are aggressiveness scales, not concrete values. They take four levels — None, Weak, Medium, Strong — and Mitzu turns the level into a concrete setting on each insight. The two scales are set separately, so you can run Strong event resolution with None entity sampling, or any other combination.

Event resolution​

Groups high-frequency events into a single event per entity per hour or per day. Funnels, journeys, and retention then read far fewer rows and calculate faster. Every entity is still in the result — you only lose sub-hour or sub-day granularity on the event stream, which shows up in time-based measures such as time to convert.

The level you choose here does not pick a resolution directly. It decides how long a time span has to be before Mitzu compresses the event stream by itself:

Insight typeMeasured againstNoneWeakMediumStrong
Funnel, JourneyThe conversion windownever≥ 60 days≥ 30 days≥ 15 days
RetentionThe chart's date rangenever≥ 180 days≥ 90 days≥ 45 days
Segmentation—nevernevernevernever

The check runs when you switch the metric type on Explore: if the span has reached the threshold at that moment, the insight's Event resolution is set to One user event per hour, otherwise it is set to No sampling. Widening the date range or conversion window afterwards does not re-run it.

note

Automatic selection only ever reaches One user event per hour. One user event per minute and One user event per day exist in the per-insight menu but are never chosen for you — pick them by hand when you want them.

Months and years are converted with approximate lengths (1 month = 30 days, 1 year = 365 days), so a 2-month conversion window counts as 60 days.

When to use it:

  • Entities generate many events of the same type in a short time (scroll, heartbeat, tick events).
  • You don't need to distinguish "5 pageviews in a minute" from "1 pageview" in your funnel logic.

Automatic entity sampling​

Samples entities — users, sessions, accounts, or whatever the workspace's default entity is. Mitzu keeps a fixed share of them and multiplies the resulting counts back up, so the numbers you read approximate the full population. Whether segmentations pick it up is decided by Apply entity sampling to.

The level maps straight to a share of entities:

LevelDropdown labelEntities kept
NoneNo sampling100% — no sampling
Weak50% volume reduction50%
Medium75% volume reduction25%
Strong90% volume reduction10%

Trade-off: faster queries at the cost of precision. Small segments can disappear entirely at aggressive rates, and rare-event funnels get noisy.

Recommended starting point on large warehouses: try Weak (50% volume reduction) first and compare against a non-sampled baseline. Only go further if the speed-up justifies the precision loss.

note

Unlike the event resolution scale, this setting has no time thresholds. Weak, Medium, and Strong apply to an insight the moment it is seeded, regardless of how long a period it covers.

Apply entity sampling to​

Decides which insight types the Automatic entity sampling level above reaches. It has no effect while that level is None. Every workspace starts on Funnels, retention and journeys only, including workspaces that existed before this setting was added.

OptionBehaviour
Every insight typeSegmentations, funnels, retention and journeys all start out sampled.
Funnels, retention and journeys onlyMulti-step insights start out sampled; segmentations are left unsampled, so counts stay exact. This is the default.

Segmentations are usually a single scan over the event table, so they are cheap enough to run at full volume even on large warehouses. Funnels, retention and journeys join events to themselves and are where sampling pays off. Pick Funnels, retention and journeys only when you want exact numbers in your day-to-day segmentation charts without giving up the speed-up on the expensive insight types.

The option also changes what switching the metric type on Explore does to Uniques sampling:

  • Every insight type — a rate you picked by hand survives the switch. Only No sampling is re-seeded with the workspace level.
  • Funnels, retention and journeys only — the switch clears the current rate, whatever it is, and applies the default for the new type: the workspace level for a funnel, retention or journey, No sampling for a segmentation. Switching a funnel to a segmentation turns sampling off, and switching back turns it on again.

You can still turn sampling on by hand for a single segmentation from the sampling menu above the chart. That choice holds through date-range and filter changes, until you switch the metric type.

Changing this setting does not rewrite existing insights. A saved insight keeps the rate it was saved with, and a segmentation that was seeded while the option was Every insight type keeps its rate until you switch its metric type.

note

Segmentations created by the AI agent are never entity-sampled, whichever option you pick here. The agent applies the workspace level only to the funnels, retention and journeys it builds.

Warehouse sampling ratio​

An unrelated knob. Use it only when your warehouse already holds a pre-sampled subset of production events — for example a pipeline that writes 1 of every 5 events for cost reasons. It tells Mitzu what percentage of source events actually reached the warehouse so final counts can be reconstructed.

  • Enter a value between 0 and 100 (percent).
  • Mitzu multiplies every scaled count by 100 / value in the supported final aggregations.
  • Example: the warehouse holds 20% of events → set to 20 → Mitzu multiplies counts by 5.
  • Leave empty when the data is not pre-sampled. Most workspaces should leave this empty.

The multiplier stacks with entity sampling: an insight at 90% volume reduction in a workspace with a warehouse sampling ratio of 20 has its counts multiplied by 10 × 5 = 50.

note

Unlike Automatic entity sampling, this setting does not add sampling to the queries Mitzu generates. It compensates for sampling that already happened upstream.

How the defaults are applied​

This is the part that surprises people, because the two sampling types behave differently once an insight exists. The short version:

  • Entity sampling fills a gap. It is only written into an insight whose Uniques sampling is No sampling, so a rate you picked by hand is kept. The one exception is a metric-type switch while Automatic entity sampling is not None and Apply entity sampling to is Funnels, retention and journeys only, which clears the rate and applies the default for the new type.
  • Event resolution is recomputed. Whenever it is evaluated it replaces whatever is in the insight's Event resolution — including a value you picked by hand.

When each default is written​

MomentUniques samplingEvent resolution
You create a new insight from the + menuSeeded from Automatic entity samplingLeft at No sampling
You switch the metric type on Explore (funnel ↔ retention ↔ journey ↔ segmentation)Re-seeded only if currently No sampling — under Funnels, retention and journeys only, cleared and re-seededRecomputed and overwritten
You switch the metric type on an entity profile (Explore opened for a single entity)Set to No sampling, unless a rate you picked by hand survives the switchSet to No sampling
You change anything else on Explore (date range, conversion / retention window, segments, filters, breakdown, chart type, aggregation…)UntouchedUntouched
You open a saved insight, a shared link, or a dashboard cardUntouched — the saved value is used as-isUntouched — the saved value is used as-is
The AI agent creates a funnel, journey, or retention insightSeeded from Automatic entity samplingComputed from Event resolution
The AI agent creates a segmentationUntouchedUntouched

When Apply entity sampling to is Funnels, retention and journeys only, "seeded" means No sampling for a segmentation in every row above.

Two consequences worth internalising:

  1. No sampling is not a sticky choice for entity sampling. Mitzu cannot tell a No sampling you picked apart from one that was never filled in. If Automatic entity sampling is anything other than None and you set an insight's Uniques sampling back to No sampling, the next metric-type switch re-seeds the workspace default. To keep an insight unsampled, set it back after switching the type — or set Automatic entity sampling to None for the whole workspace. The exception is a segmentation while Apply entity sampling to is Funnels, retention and journeys only: its default is No sampling, so it stays that way.
  2. A hand-picked event resolution does not survive a metric-type switch. Switching recomputes Event resolution from the workspace scale and the insight's current date range and conversion window. With the scale at None, that resets the insight to No sampling; with Strong on a short funnel, it does the same. Date-range and window changes after the switch leave the resolution alone, so widening a funnel's conversion window does not raise it by itself. In practice the automatic level rarely applies to insights built on Explore: a new funnel starts with a 1-day conversion window, a switch from retention carries a 1-week window, and retention starts on a 1-month date range — all below every threshold. Once the window is set, pick One user event per hour from the sampling menu if you want it. Funnels, journeys and retention charts created by the AI agent still get the workspace level, computed from their final window.

Precedence​

For a given insight, the value that actually runs is resolved in this order:

  1. A dashboard-level entity sampling override, if the card sits on a dashboard whose filter bar sets one. It wins over the insight's own Uniques sampling. See Dashboard filters and overrides.
  2. A segmentation over a saved insight, which can take over the saved insight's Uniques sampling. See Insight references.
  3. The insight's own Uniques sampling / Event resolution, whether you set it by hand or Mitzu seeded it.

Event resolution has no dashboard-level override — only entity sampling does.

Query optimization​

Defaults that reduce warehouse load for new charts.

  • Apply first period filter by default: turns on the "first period filter" for every new funnel and retention chart. The filter restricts the analysis to entities whose first matching event falls inside the chosen date range, which is usually what you want and is dramatically cheaper to compute on high-frequency events. Strongly recommended for high-volume projects. Can be turned off per chart.

Changes are saved automatically.

Choosing the right lever​

SymptomFirst thing to try
Funnels scanning millions of identical events per entityEvent resolution: Medium (hourly from a 30-day conversion window)
Warehouse queue saturated, you need a blanket speed-upAutomatic entity sampling: Weak (50% volume reduction)
Funnels are slow but segmentation counts must stay exactAutomatic entity sampling: Weak with Apply entity sampling to: Funnels, retention and journeys only
Long retention charts time outEvent resolution: Strong (hourly from a 45-day range)
You already pre-sample upstream and counts look too lowWarehouse sampling ratio
New charts routinely time out or OOMApply first period filter by default
Numbers must be exact (billing, compliance, QA)Automatic entity sampling: None, and turn off Uniques sampling per insight