TL;DR
Omni and Mitzu compete head to head on governed KPI reporting: both let the data team define metrics once, build dashboards on them and answer questions in plain English, in the app and through MCP, with data staying in your warehouse. Mitzu is an analytics platform on your data warehouse for BI, product analytics and experiment analysis, where the data team governs the metrics and everyone uses them through dashboards, an AI agent, Slack and their own AI assistants. Its agent assembles an analysis specification and a deterministic engine writes the SQL. Omni leads on embedded analytics in customer-facing products, spreadsheet-style workbooks and a Git-versioned model. Mitzu adds funnels, retention, journeys and A/B test analysis on the same definitions as the dashboards, and an agent that explains why a number moved.
Use this comparison if you are choosing a governed BI and AI analytics platform for your warehouse and want a clear read on where Omni and Mitzu compete head to head, where they differ, and which one fits the questions your team asks most often.
Omni recently raised a Series C at a $1.5B valuation and positions itself as "the AI analytics platform for the enterprise." That puts it in front of the same data teams evaluating Mitzu. Both tools are warehouse-native, both let the data team define metrics once and build dashboards on them, both ground their AI in a semantic model, and both surface reviewable SQL. On governed KPI reporting they are direct competitors. They differ in what sits next to the dashboards. Omni adds spreadsheet-style workbooks and embedded analytics. Mitzu adds product analytics (funnels, retention, journeys), experiment analysis and an agent that explains why a number moved, all on the same definitions.
What is Omni?
Omni is an AI analytics platform built by ex-Looker co-founders. The public product page positions it as a unified surface for self-service BI, embedded analytics, and AI-driven analysis, all anchored by a governed semantic model that Omni calls "the semantic foundation for native and external AI agents." Data stays in the customer's warehouse (Snowflake, BigQuery, Databricks, Redshift, and similar); Omni reads it in place.
Omni's semantic layer follows the LookML lineage of its founders: metrics, dimensions, joins, relationships, business logic, row-level filters, and access controls, declared in code and version-controlled in Git. The AI is positioned as another consumer of that model. Per Omni's own materials, the agent has a coordinator that plans actions, selects tools, executes queries, evaluates results, and decides what to do next. The AI generates semantic queries against the model rather than raw SQL, and Omni then compiles those semantic queries to SQL.
- Workbooks: a hybrid surface combining point-and-click exploration, SQL, and a spreadsheet-style interface. The flagship analyst experience.
- Dashboards and reports: the classic BI consumption layer, built from the semantic model.
- AI chat: natural-language interface with maintained conversation context; can build calculations, filter, summarize, explain charts, compare time periods.
- Embedded analytics: Omni dashboards and workbooks embedded inside customer-facing products with multi-tenant permissions.
- MCP server: exposes governed Omni queries to external AI tools (Claude, ChatGPT, Cursor, VS Code) so they inherit the same metrics and permissions.
- Git version control: the semantic model lives in Git; pull requests, branches, and review apply to metric definitions.
Omni's strength is BI breadth on a governed semantic foundation. It handles cross-domain analytical questions (revenue, marketing performance, operational reporting, product KPIs, finance) as long as someone has modeled them into the semantic layer.
What is Mitzu?
Mitzu is an analytics platform on your data warehouse for BI, product analytics and experiment analysis, where the data team governs the metrics and everyone uses them through dashboards, an AI agent, Slack and their own AI assistants. The data team defines metrics such as net revenue, orders, average order value and margin once on fact and dimension tables. KPI dashboards, funnels, retention charts and A/B test results all use those definitions, so a revenue drop can be followed to the funnel step and the users behind it in one analysis.
Mitzu meets users in the app, where dashboards and the Analytics Agent live; in Slack, through @mitzu in any channel; through a remote MCP server that any MCP-compatible assistant (Claude, ChatGPT, Cursor, GitHub Copilot) can call; and by email from scheduled agents that review a dashboard and report what moved. Setup starts with a Configuration Agent that scans the warehouse, recognizes common event schemas (Segment, Snowplow, Firebase, GA4, custom), maps user and group identifiers, and picks up dimension tables. Mitzu drafts metric definitions from the warehouse and dbt models, and the data team reviews and owns them. Each person sees only the data their role in Mitzu allows, on every surface.
The trust differentiator: Mitzu's agent does not write SQL, and does not write semantic queries either. It assembles structured analysis specifications: funnel steps with a conversion window, retention cohorts and return events, segmentation filters with sampled property values, journey definitions with starting events and depth. A deterministic query engine, the same code that has been generating SQL for Mitzu's UI for years, turns those specifications into SQL. The same specification produces the same SQL every time. Methodology errors that LLMs reliably make (a funnel without a conversion window, a retention chart that double-counts, a cohort defined off the wrong join) are guard-railed by the engine, not by prompt engineering.
Mitzu's semantic layer covers both sides of the platform: metrics on fact and dimension tables for KPI reporting, and the event side for product analytics, with events, event properties, entities (users, sessions, accounts, teams), dimension properties on those entities, and sampled property values. Filters are suggested from real values in the warehouse, not invented by the AI. Saved insights, dashboards, and named cohorts feed back into the semantic layer as additional context for future questions.
Omni vs Mitzu: side-by-side
| Omni | Mitzu | |
|---|---|---|
| Category | AI analytics platform: BI, reporting, embedded analytics, AI chat | Analytics platform on the warehouse: BI, product analytics and experiment analysis, with AI agents |
| KPI dashboards on governed metrics | ✅ dashboards built from the semantic model | ✅ metrics defined once on fact and dimension tables; dashboards built by clicking or by asking the agent |
| Who composes the query | AI generates a semantic query against the semantic model; Omni compiles it to SQL | Agent assembles a typed analysis specification; deterministic engine compiles it to SQL |
| Semantic layer shape | BI-shaped: metrics, dimensions, joins, business logic; LookML-style, Git-versioned | Metrics on fact and dimension tables, plus events, event properties, entities, dimension properties and sampled values |
| Semantic layer authoring | Hand-authored by analysts and data engineers (with AI assistance in-app) | Drafted by Mitzu from the warehouse and dbt models; the data team reviews and owns it |
| Methodology primitives | Charts built from metrics and dimensions; funnels, retention, journeys assembled per question | Funnel, retention, segmentation, journey, cohort and A/B test analysis (lift, 95% interval, guardrails) as first-class primitives in the engine |
| Filter values | User-typed or model-defined | Sampled from real warehouse values, so no invented region codes or feature names |
| Warehouses supported | Snowflake, BigQuery, Databricks, Redshift, Postgres, and others | Snowflake, BigQuery, Databricks, ClickHouse, Redshift, Athena, Trino/Presto, Postgres, Firebolt, Starburst, MS Fabric |
| Surfaces | Workbooks, dashboards, AI chat, embedded analytics, MCP server, APIs | Dashboards, in-app Analytics Agent, Slack, remote MCP server, scheduled monitoring agents |
| Reviewable SQL | ✅ shown for inspection | ✅ shown for inspection |
| Embedded analytics | ✅ first-class: multi-tenant, embedded in customer products | ❌ not the focus |
| Slack agent | ❌ | ✅ @mitzu in any channel; thread context shared |
| Best for | Governed BI with embedded analytics, spreadsheet-style workbooks and a Git-versioned model | Governed KPI reporting plus the product analytics, experiment analysis and agent answers that explain the numbers |
SQL examples: the same question, two architectures
Dashboards are where the two tools meet. The architectures differ one question later, when a KPI moves and someone asks about the funnel behind it: "What is our 7-day signup-to-activation conversion rate, broken down by acquisition channel, for the last 30 days?"
Omni: SQL compiled from an AI-generated semantic query
In Omni, the AI generates a semantic query against the semantic model. That assumes an analyst has previously modeled signup and activation as events, defined acquisition_channel as a dimension on the user entity, and authored a conversion-window measure or the join logic to support one. Omni then compiles the semantic query to SQL. Plausible output:
-- Plausible compiled SQL from an Omni semantic query.
-- The exact shape depends on how the semantic model was authored
-- (was a 7-day window measure defined? is channel on the user
-- or on the signup event? is "activation" a single event or a model?).
WITH signups AS (
SELECT u.user_id,
u.acquisition_channel,
min(e.event_at) AS signup_at
FROM events e
JOIN users u USING (user_id)
WHERE e.event_name = 'signup'
AND e.event_at >= current_date - INTERVAL '30 days'
GROUP BY 1, 2
),
activations AS (
SELECT user_id, min(event_at) AS activated_at
FROM events
WHERE event_name = 'activation'
GROUP BY user_id
)
SELECT s.acquisition_channel,
count(DISTINCT s.user_id) AS signups,
count(DISTINCT CASE
WHEN a.activated_at BETWEEN s.signup_at
AND s.signup_at + INTERVAL '7 days'
THEN s.user_id END) AS activated_in_7d,
round(100.0 * count(DISTINCT CASE
WHEN a.activated_at BETWEEN s.signup_at
AND s.signup_at + INTERVAL '7 days'
THEN s.user_id END)
/ nullif(count(DISTINCT s.user_id), 0), 1) AS conv_pct
FROM signups s
LEFT JOIN activations a USING (user_id)
GROUP BY 1
ORDER BY signups DESC;The semantic model carries real constraints, so it is harder for the AI to invent a channel value or join the wrong table. The methodology question (what counts as a 7-day window, whether activation events before the signup count, whether a user with multiple signups is double-counted) is still resolved by the model definitions and by what the AI chose to ask for. If a strict funnel-window measure was not authored into the model, the AI has to compose one inside the semantic query; how reliably it does that across phrasings is an empirical question.
Mitzu: SQL from a deterministic engine
The Mitzu agent does not write the SQL and does not author a semantic query. It assembles a funnel specification, roughly { first_event: "signup", subsequent_events: ["activation"], conversion_window: "7d", breakdown: "acquisition_channel", date_range: "last_30_days" }, and the deterministic engine emits the same SQL every time:
-- Engine output for a 2-step funnel with a 7-day conversion window,
-- broken down by acquisition channel, for the last 30 days.
-- Same spec → same SQL.
WITH step_1 AS (
SELECT user_id,
min(event_time) AS step_1_at,
any(properties['channel']) AS channel
FROM events
WHERE event_name = 'signup'
AND event_time >= now() - INTERVAL 30 DAY
AND event_time < now()
GROUP BY user_id
),
step_2 AS (
SELECT s1.user_id,
s1.channel,
min(e.event_time) AS step_2_at
FROM step_1 s1
INNER JOIN events e
ON e.user_id = s1.user_id
AND e.event_name = 'activation'
AND e.event_time > s1.step_1_at
AND e.event_time <= s1.step_1_at + INTERVAL 7 DAY
GROUP BY s1.user_id, s1.channel
)
SELECT s1.channel AS channel,
count(DISTINCT s1.user_id) AS step_1_users,
count(DISTINCT s2.user_id) AS step_2_users,
round(count(DISTINCT s2.user_id)
/ nullIf(count(DISTINCT s1.user_id), 0) * 100, 1) AS conv_pct
FROM step_1 s1
LEFT JOIN step_2 s2 USING (user_id)
GROUP BY channel
ORDER BY step_1_users DESC;The conversion window is enforced strictly (activation must come after the signup and within 7 days). Distinct users prevent double-counting. The channel value comes from the signup row, so attribution is consistent. The engine has been generating this shape of SQL in production for years; the agent's job is to assemble the specification, not to author the query.
The SQL is shown to the analyst as a verification artifact, not the agent's authored work. However the question is phrased ("signup to activated within a week, by channel," "7-day activation funnel split by source"), the same specification compiles to the same SQL.
Other questions, side by side
Once a metric is defined, both tools put it on a dashboard. The differences show up in the questions below: journey and diagnostic questions that Mitzu's engine handles as first-class primitives on the same governed metrics, and embedded analytics, where Omni leads. In Omni, the product analytics questions are charts an analyst assembles from metrics, dimensions, and the relationships the semantic model exposes.
| Question type | Omni | Mitzu |
|---|---|---|
| "Weekly net revenue, orders and average order value on one dashboard" | Native BI strength once the metrics are modeled | Governed metrics on a KPI dashboard, built by clicking or by asking the agent |
| "Show retention by weekly cohort, signups vs. activated users, last 12 weeks" | Compose a cohort table from a retention measure if modeled; accuracy depends on how the cohort logic was authored | Retention primitive: cohort = signup, return event = any event (or specified), bucket = weekly. Engine handles cohort isolation and bucketing. |
| "Top 10 most-trodden user journeys from app open over the next 5 events" | Bespoke SQL or notebook work; journeys are not a native BI primitive | Journey primitive: starting event = app_open, depth = 5. Engine emits the Sankey / tree query. |
| "Users in DACH who completed checkout and have NPS < 7" | Filter on country dimension + measure on NPS; needs both modeled into the semantic layer | Segmentation with sampled country values from the warehouse + NPS join surfaced in the data catalog |
| "Why did week-2 retention drop in November?" | Returns a chart; root-cause investigation is an analyst job | Agent investigates from multiple angles (breakdowns, segment comparisons, correlated events) and returns a synthesized report |
| "Build a tenant-isolated dashboard our customers see in our app" | First-class embedded analytics with multi-tenant permissions | Not Mitzu's focus; Omni or an embedded BI tool fits better |
| "Cross-functional dashboard with finance, sales, and product KPIs" | Native BI strength: once metrics are modeled, dashboards combine them | Governed metrics on the warehouse's fact and dimension tables, next to product KPIs on the same dashboard; pixel-perfect finance reports often stay in a BI tool |
UI differences in one line each
- Omni workbook: a hybrid grid that combines a spreadsheet, a SQL editor, and a point-and-click query builder; the analyst's primary workspace.
- Omni dashboard: composed tiles backed by the semantic model; consumers filter and drill; analysts edit upstream metrics in Git.
- Omni AI chat: a side panel or full chat surface; conversation context maintained; calculations, filters, and charts created from prompts.
- Mitzu dashboards: KPI dashboards on governed metrics, built by clicking or by asking the agent; a scheduled agent can review one and email the team when something moves.
- Mitzu Explore: direct point-and-click funnel, retention, segmentation, and journey builders; outputs are charts plus the SQL behind them.
- Mitzu Analytics Agent: a chat surface where the agent assembles funnel, retention or segmentation specifications, runs them through the deterministic engine, and replies with chart, summary and reviewable SQL.
- Mitzu in Slack:
@mitzuin any channel; the agent reads thread context, runs the same engine, and posts answers as cards.
Strengths and trade-offs
Omni
| Strengths | Trade-offs |
|---|---|
| BI breadth: dashboards, reporting, spreadsheet-style modeling, embedded analytics in one platform. | Semantic model is BI-shaped (metrics + dimensions + joins). Product-analytics concepts like funnels with conversion windows or journey trees are not native primitives. |
| Governed semantic foundation: the same model powers dashboards, AI chat, embedded, and external agents. | Semantic layer is hand-authored; setting it up and keeping it current is data engineering work. |
| First-class embedded analytics: multi-tenant, secure, designed to ship inside customer-facing products. | AI still composes queries (against the semantic model rather than raw schema, but still composing). Methodology choices around funnels, retention, and attribution depend on what the model exposes. |
| Git-versioned model: pull requests and review for metric definitions. | Slack agent and out-of-the-box product analytics methodology are not the focus. |
| Strong fit for analytics teams that need one tool spanning BI, reporting, and embedded use cases. | Per the public materials, Omni does not currently provide a built-in way to test response accuracy; analyst review is the gate. |
Mitzu
| Strengths | Trade-offs |
|---|---|
| One platform: KPI dashboards, product analytics and A/B test analysis on one set of governed definitions and one bill. | Not built for pixel-perfect or financial reporting; teams with heavy board-pack or P&L reporting often keep a BI tool for that. |
| The agent does not write SQL and does not author a semantic query. A deterministic engine compiles a typed specification into SQL: same input, same SQL, same answer. | Requires business and event data already in the warehouse. Companies without a warehouse, or with events trapped in a third-party tool that will not export, are not the fit. |
| Semantic layer drafted from the warehouse and dbt models: metrics on fact and dimension tables, events, entities, and sampled filter values. The data team reviews and owns it. | Open-ended statistical exploration belongs in a notebook (Hex, Deepnote, Jupyter), not in Mitzu. |
| Funnel, retention, segmentation, journey, cohort and experiment analysis are first-class primitives, so methodology errors LLMs reliably make are guard-railed by the engine. | Embedded analytics for customer-facing products is not the focus. |
| Every surface shares one semantic layer and Mitzu's roles: dashboards, the in-app Analytics Agent, Slack, the MCP server and scheduled monitoring agents. | No spreadsheet-style workbook and no Git version control on the semantic model. |
| Warehouse-agnostic: Snowflake, BigQuery, Databricks, ClickHouse, Redshift, Athena, Trino/Presto, Postgres, Firebolt, Starburst, and MS Fabric. Plans with editor seats and unlimited events; warehouse compute stays under the customer's control. | — |
Capability scorecard
Where each tool stands on governed BI, the AI, and the product analytics Mitzu adds on the same definitions.
| Capability | Omni | Mitzu |
|---|---|---|
| Runs on the customer's warehouse | ✅ | ✅ |
| Multi-warehouse support (Snowflake, BigQuery, Databricks, Redshift, ClickHouse, Postgres, Trino…) | ✅ | ✅ |
| KPI dashboards on governed metrics | ✅ | ✅ |
| Auto-drafted semantic layer (no hand-authored model required) | ❌ hand-authored | ✅ drafted from the warehouse and dbt models |
| Event-level semantic layer for product analytics (events, properties, entities, sampled values) | ❌ BI-shaped | ✅ |
| Deterministic SQL engine (agent does not compose the query) | ❌ AI composes semantic queries | ✅ |
| Native funnel methodology with conversion window | ❌ | ✅ |
| Native retention methodology with cohort bucketing | ❌ | ✅ |
| Native segmentation and journey primitives | ❌ | ✅ |
| Sampled property values for filters | ❌ | ✅ |
| Reviewable SQL surfaced for every answer | ✅ | ✅ |
| AI chat with natural-language questions | ✅ | ✅ |
| MCP server for external agents | ✅ | ✅ |
| Slack agent | ❌ | ✅ |
| First-class embedded analytics (multi-tenant) | ✅ | ❌ |
| Workbook / spreadsheet-style modeling | ✅ | ❌ |
| Git version control on the semantic model | ✅ | ❌ |
| Diagnostic deep-dives (root-cause, impact analysis, why-did-X-change investigations) | ❌ chart-first, analyst-driven | ✅ agent investigates across angles |
| Best fit for embedded BI in a customer-facing product | ✅ | ❌ |
| Best fit for product, growth, and marketing behavioral analytics | ❌ | ✅ |
When to choose Omni, Mitzu, or both?
On governed KPI reporting these are substitutes: you pick one place for the data team to define metrics and build dashboards. The choice comes down to what your team needs next to the dashboards.
- Choose Omni when embedded analytics inside a customer-facing product, spreadsheet-style workbooks or a Git-versioned semantic model are central, or when most of the workload is cross-domain reporting that an analytics engineering team already models in code.
- Choose Mitzu when you want governed KPI dashboards and, on the same definitions, product analytics, A/B test analysis and an agent that explains why a number moved: why did week-2 retention drop, did the new pricing page move trial-to-paid, which onboarding step has the highest drop-off. The methodology is guard-railed by the engine, and the same answers reach Slack, MCP clients and scheduled agents that email the team.
- Run both when embedded analytics or pixel-perfect financial reporting matter alongside product and experiment analysis. Omni owns those; Mitzu owns KPI dashboards, product analytics and experiment analysis. Both stay warehouse-native and surface reviewable SQL, but metrics used in both tools are then defined twice, so decide which tool owns which definitions.
FAQ
Is Omni a product analytics tool?
Omni is an AI analytics platform with strong BI, embedded, and reporting capabilities on a governed semantic layer. Funnels, retention, journeys, and cohorts are not native primitives in the way they are in a dedicated product analytics tool; they are charts the analyst assembles from the semantic model. Teams who need that methodology pair Omni with a product analytics tool, or use a platform that covers BI and product analytics on one set of definitions.
Does Mitzu replace Omni for BI and dashboards?
For KPI dashboards and self-service reporting on governed metrics, many teams use Mitzu instead of a BI tool, and get product analytics, experiment analysis and the agent on the same definitions. Omni is the better fit for embedded analytics in customer-facing products and for spreadsheet-style workbooks, and teams with heavy pixel-perfect or financial reporting often keep a BI tool for that.
Both tools have a semantic layer. What is the difference?
Shape and authoring. Omni's semantic layer is BI-shaped (metrics, dimensions, joins, relationships, business logic) and hand-authored in code, Git-versioned in LookML lineage. Mitzu's semantic layer holds metrics on fact and dimension tables for KPI reporting, plus the event side that product analytics needs: events, event properties, entities, dimension properties on those entities, and sampled property values. Mitzu drafts it from the warehouse and dbt models, and the data team reviews and owns it.
The sampled values are what keep user-facing filters on real values.
Does Omni's AI write SQL? Does Mitzu's agent write SQL?
Omni's AI generates a semantic query against the semantic model; Omni compiles it to SQL. The AI is still composing the query, just at a higher level than raw schema. Mitzu's agent does not compose a query at any level. It assembles a typed analysis specification (funnel, retention, segmentation, journey, cohort) and a deterministic engine compiles the specification into SQL.
The same specification always produces the same SQL.
Can I use both together?
Yes. Both keep data in the warehouse, so there is no duplication of data. The usual split puts embedded analytics or pixel-perfect reporting in Omni, and KPI dashboards, product analytics and experiment analysis in Mitzu. Metrics used in both then exist in both semantic layers.
If your definitions already live in dbt, Mitzu drafts its metrics from those models, which keeps the two closer.
Where does the data live in either tool?
In your warehouse. Both architectures are warehouse-native. Neither moves data into a vendor silo. Compliance, data residency, and cost control all stay on your side of the line.
Related reading
- Mitzu BI and warehouse metrics
- ClickHouse AI vs Mitzu
- Agentic Analytics Platforms Compared
- BI vs Product Analytics
- Warehouse-Native vs First-Generation Product Analytics
- The Semantic Layer for Agentic Analytics
- AI Analytics, Hallucinations, and SQL Transparency
- Mitzu Product Analytics

