Back to Blog
Product Comparisons

Cube D3 vs Mitzu: Agentic BI, Governed Metrics and the Semantic Layer Compared

Two ways to put governed metrics and AI agents on the warehouse: Cube's hand-authored universal semantic layer, and Mitzu's data-team-governed definitions that also power product analytics and experiment analysis.

Cube D3 brings AI agents to Cube's universal semantic layer for BI, embedded analytics and chat. Mitzu is an analytics platform on your warehouse for BI, product analytics and experiment analysis, with a deterministic SQL engine. Compare how each defines metrics, writes SQL and answers questions.

István Mészáros
István Mészáros

Co-founder & CEO

Published May 14, 2026 · Updated October 27, 2026
10 min read
Cube D3 vs Mitzu: Agentic BI, Governed Metrics and the Semantic Layer Compared

TL;DR

Cube D3 is an agentic analytics platform built on Cube's universal semantic layer: three AI agents (Semantic Model, Workbook, Analytics Chat) sit on top of cubes and views that are hand-authored in YAML, JavaScript or Python. 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. Both give teams governed metrics, dashboards and an AI agent on the customer's warehouse, so for self-service BI they are direct alternatives. Cube also feeds other BI tools, spreadsheets and embedded analytics from the same model.

Use this comparison if you are choosing a semantic layer with AI agents for governed metrics and self-service BI: how Cube D3 and Mitzu define metrics, who writes the SQL, and what each runs on the same definitions.

Cube calls itself "the agentic analytics platform built on a semantic layer," and was named in the 2026 Gartner Market Guide for Agentic Analytics. Cube D3 is their agentic product, layering AI agents on top of the universal semantic layer that already powers BI, embedded analytics and dashboards. Mitzu competes for the same job, governed metrics and self-service BI on the warehouse with AI agents on top, and runs product analytics and experiment analysis on the same definitions, with a deterministic query engine that owns the SQL. Both are warehouse-native. They differ in how the semantic layer is built, who writes the SQL, and which consumers each serves.

What is Cube D3?

Cube started as an open-source semantic layer (cube-js/cube) and grew into a commercial platform, Cube Cloud, covering BI, embedded analytics, and now agentic analytics under the D3 banner. The product page positions Cube as "Universal Semantic Layer. Business Intelligence. Embedded Analytics."

Cube D3 ("data in cube") was announced in June 2025 and ships three AI agents on top of the semantic layer:

  • Semantic Model Agent: proposes and edits cubes, views, measures and dimensions; helps build the semantic layer from scratch or extend an existing one.
  • Workbook Agent: assembles reports and visualizations inside the Workbooks surface, with point-and-click, SQL, and Python paths alongside the AI flow.
  • Analytics Chat Agent: answers business questions in natural language, running multiple queries against the semantic layer and summarizing the result.

The platform exposes its agents via MCP (available in Claude Desktop) and A2A so external agents (Claude, ChatGPT, custom) can call into Cube the way they would any tool. Data access is standardized on REST, GraphQL and SQL. See Cube's MCP write-up for the protocol details. Cube's site now also lists a Dashboard Agent that builds dashboards conversationally and a Slack agent that answers in-thread.

Underneath, the semantic layer is the same one Cube has shipped for years. Data models are authored in YAML, JavaScript or Python. Cubes represent business entities; views compose cubes into the surfaces consumers actually query; measures, dimensions, segments, joins and pre-aggregations live inside cubes. It is a BI-shaped model, strong for descriptive analytics, embedded dashboards and metric APIs, and the model is hand-authored upfront, then maintained as the warehouse evolves.

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. Like Cube D3, it covers governed metrics and self-service BI with agents on top. Unlike Cube, it does not feed other BI tools or embedded customer-facing analytics; instead the same definitions also run funnels, retention, journeys and A/B test analysis inside Mitzu.

The data team defines metrics such as net revenue, orders, average order value and margin once, on its own fact and dimension tables, and Mitzu can draft those definitions from the warehouse and dbt models for the data team to review. A Configuration Agent scans the warehouse for event and dimension tables, identifiers and property values. Every KPI dashboard, agent answer and scheduled agent reuses the same definitions, and each person sees only the data their Mitzu role allows. People reach Mitzu in the app, by mentioning @mitzu in Slack, through a remote MCP server from Claude, ChatGPT, Cursor, GitHub Copilot and other MCP clients, and through emails from scheduled monitoring agents that review dashboards and KPIs. Supported warehouses include Snowflake, BigQuery, Databricks, Redshift, ClickHouse, PostgreSQL, Athena, Trino, Firebolt and Microsoft Fabric.

The trust differentiator: Mitzu's agent does not write SQL. It assembles structured analysis specifications (a metric and its breakdown, funnel steps with a conversion window, retention cohorts and return events, segmentation filters with sampled property values, journey definitions, an experiment and its metrics) and a deterministic query engine turns those specifications into SQL. The same specification produces the same SQL every time. Methodology errors that LLMs reliably make, such as a funnel without a window, a retention chart that double-counts or a cohort defined wrong, are prevented by the engine rather than by prompt engineering.

Cube D3 vs Mitzu: side-by-side

Cube D3Mitzu
CategoryAgentic BI on a universal semantic layerAnalytics platform on the warehouse: BI, product analytics and experiment analysis, with AI agents
Governed metrics and dashboardsMeasures in the semantic layer; dashboards, Workbooks and connections to other BI toolsMetrics on fact and dimension tables; KPI dashboards built by clicking or by asking the agent
Who writes the SQLLLM grounded in the hand-authored semantic modelDeterministic query engine, from a typed analysis specification
Semantic layer shapeCubes, views, measures, dimensions, segments, joins, pre-aggregationsMetrics on fact and dimension tables, plus events, event properties, entities, dimension properties, sampled values
Semantic layer authoringHand-authored in YAML, JavaScript or Python, with the Semantic Model Agent proposing edits; maintained over timeDrafted by Mitzu from the warehouse and dbt models; reviewed and owned by the data team
Methodology primitivesNone native for product analytics: funnels, retention and journeys are composed in SQL or model codeMetrics plus funnel, retention, segmentation, journey, cohort as first-class primitives
Experiment analysisNot listedLift, 95% interval, corrected p-values, guardrails and health checks on exposures in the warehouse
WarehousesSnowflake, BigQuery, Databricks, Redshift, ClickHouse, Postgres, MySQL, Trino and othersSnowflake, BigQuery, Databricks, Redshift, ClickHouse, PostgreSQL, Athena, Trino, Firebolt, Microsoft Fabric
ConsumersBI tools, spreadsheets, embedded apps, custom AI agents: many surfaces, one modelMitzu's own dashboards and agent, Slack, MCP clients and monitoring-agent emails
Agent surfacesSemantic Model, Workbook and Analytics Chat agents, plus a Dashboard Agent and a Slack agent; MCP + A2A accessAnalytics agent, Configuration Agent, Slack, scheduled monitoring agents; remote MCP server
Source modelCube Core is open source; Cube Cloud / Cube D3 are commercialCommercial SaaS; self-hosted deployment available on Enterprise
Best forUniversal semantic layer feeding BI, embedded analytics and AI agents from one modelKPI reporting, product analytics and experiment analysis on one set of governed definitions, with an agent that explains why a number moved

SQL examples: a funnel, two architectures

A governed KPI question such as "What was net revenue last quarter?" works in both tools once the measure or metric is defined. The difference shows on the product question that usually comes next: "What is our 7-day signup-to-activation conversion rate, broken down by acquisition channel, for the last 30 days?"

Cube D3: a semantic model and an LLM-authored query

In Cube you'd model the underlying events as a cube, then expose a view the agents can reach. A minimal model in YAML:

# model/cubes/events.yml — hand-authored
cubes:
  - name: events
    sql_table: analytics.events
    dimensions:
      - name: user_id
        sql: user_id
        type: string
      - name: event_name
        sql: event_name
        type: string
      - name: channel
        sql: "{CUBE}.properties:channel::text"
        type: string
      - name: event_time
        sql: event_time
        type: time
    measures:
      - name: count
        type: count
      - name: distinct_users
        sql: user_id
        type: count_distinct

views:
  - name: activity
    cubes:
      - join_path: events
        includes: "*"

With the model in place, the Analytics Chat agent grounds an LLM query against the view. A plausible LLM output for the funnel question:

-- Plausible LLM output against the Cube view.
-- Methodology depends on the prompt, the grounding, and the day.
WITH signups AS (
  SELECT user_id,
         min(event_time) AS signup_at,
         any_value(channel) AS channel
  FROM activity
  WHERE event_name = 'signup'
    AND event_time >= now() - interval '30 days'
  GROUP BY user_id
),
activations AS (
  SELECT user_id, min(event_time) AS activated_at
  FROM activity
  WHERE event_name = 'activated'
    AND event_time >= now() - interval '37 days'
  GROUP BY user_id
)
SELECT s.channel,
       count(*) AS signups,
       count(*) FILTER (WHERE a.activated_at <= s.signup_at + interval '7 days') AS activated_in_7d,
       round(100.0 * count(*) FILTER (WHERE a.activated_at <= s.signup_at + interval '7 days')
             / nullif(count(*), 0), 1) AS conv_pct
FROM signups s
LEFT JOIN activations a USING (user_id)
GROUP BY s.channel
ORDER BY signups DESC;

The semantic layer keeps the join graph and column names consistent. The conversion window, the anchor row for channel attribution, and the distinct-user logic are still authored by the LLM in the prompt. A different prompt, or a slightly different schema, can return: a window measured against the wrong anchor, an activation that pre-dates the signup counted as a conversion, or channel attribution joined off the wrong row when a user has multiple signups. None of these are SQL bugs.

They are methodology choices an LLM is making implicitly, every time.

Mitzu: SQL from a deterministic engine

The Mitzu agent does not write the SQL. It assembles a funnel specification, roughly { first_event: "signup", subsequent_events: ["activated"], conversion_window: "7d", breakdown: "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 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_value(channel)          AS channel
  FROM events
  WHERE event_name = 'signup'
    AND event_time >= now() - interval '30 days'
    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 = 'activated'
   AND e.event_time >  s1.step_1_at
   AND e.event_time <= s1.step_1_at + interval '7 days'
  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(100.0 * count(DISTINCT s2.user_id)
             / nullif(count(DISTINCT s1.user_id), 0), 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 be after signup and within 7 days). Distinct users prevent double-counting. Channel 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 as the agent's authored work, and the funnel can sit on the same dashboard as the revenue KPI it explains.

UI surfaces — where the work happens

Cube D3 centers on a workspace UI where the Semantic Model Agent and an analyst co-author cubes, views and metrics; Workbooks combine point-and-click, SQL, Python and AI flows for analyst-led report building; Analytics Chat is the natural-language entry point for business users. The same semantic layer also feeds BI tools (Tableau, Power BI, Looker), spreadsheets (Excel, Google Sheets), embedded analytics, and external agents over MCP.

Mitzu keeps the work inside one workspace and brings the agent to the tools people already use. Inside the app, KPI dashboards, point-and-click insights (funnels, retention, segmentation, journeys), experiment results and the analytics agent share the same semantic layer and the same engine, and any chart the agent builds can go straight onto a shared dashboard. In Slack, the Mitzu agent (@mitzu) reads thread context and answers in the thread, so people get answers without opening the app. The remote MCP server gives Claude, ChatGPT, Cursor and GitHub Copilot the same governed answers, and scheduled monitoring agents review dashboards and email the team when something moves. See the BI page and the product analytics page for screenshots of the in-app surfaces.

Advantages and trade-offs

Cube D3

StrengthsTrade-offs
Universal semantic layer: one model feeds BI tools, embedded analytics, spreadsheets and AI agents over the same definitions.Model is hand-authored as code. Cubes, views, measures and dimensions need to be written and maintained as the warehouse evolves, with the Semantic Model Agent helping.
Open-source roots (Cube Core) plus a commercial Cloud offering, with full visibility into the modeling layer.LLM authors SQL on top of the semantic layer. Methodology errors on funnels, retention and journeys are still possible.
Strong fit for BI and embedded analytics: caching, pre-aggregations and access policies designed for high-throughput dashboarding.Semantic shape is BI-flavoured (measures, dimensions, joins). It does not natively express funnels, retention windows, cohort definitions or sampled filter values.
MCP and A2A endpoints let external agents reach the same semantic layer used by humans.Cube D3 is a commercial product; the AI surface lives in Cube Cloud rather than the open-source core.
Broad warehouse coverage and broad consumer coverage: one model for many analytics surfaces.Breadth across consumers rather than depth in product analytics; experiment analysis is not listed.

Mitzu

StrengthsTrade-offs
The agent does not write SQL; a deterministic query engine does, from a typed specification. Same input, same SQL, same answer.Embedded dashboards are available, but there is no semantic layer feed into other BI tools. Pixel-perfect and financial reporting are out of scope; teams with heavy needs there often keep a BI tool for them.
One semantic layer for business metrics and product data: metrics on fact and dimension tables, plus events, properties, entities and sampled filter values. Mitzu drafts definitions from the warehouse and dbt models; the data team reviews and owns them.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.
KPI dashboards, funnels, retention, segmentation, journeys, cohorts and A/B test analysis on the same definitions.Open-ended statistical modeling, such as fitting a churn model, belongs in a notebook (Hex, Deepnote, Jupyter), not in Mitzu.
Runs on Snowflake, BigQuery, Databricks, Redshift, ClickHouse, PostgreSQL, Athena, Trino, Firebolt and Microsoft Fabric.Self-hosted deployment is available on the Enterprise plan; lower tiers are SaaS.
The app, Slack, the MCP server and scheduled monitoring agents all use the same definitions and Mitzu roles.—
Plans with editor seats and unlimited events; warehouse compute stays under the customer's control.—

Capability scorecard

Where each tool stands on governed metrics and BI, on product analytics and experiment analysis, and on how people reach the agents.

CapabilityCube D3Mitzu
Runs on the customer's warehouse✅✅
Multi-warehouse support✅✅
Open-source semantic layer core✅ Cube Core❌
Self-hosted deployment✅ Cube Cloud / self-host options✅ Enterprise tier
Governed metrics and KPI dashboards✅✅
Universal semantic layer for BI + embedded + AI✅❌
AI-assisted semantic modeling✅ Semantic Model Agent proposes model code✅ Mitzu drafts definitions from the warehouse and dbt models
Deterministic SQL engine (agent does not write SQL)❌✅
Native funnel methodology❌✅
Native retention methodology❌✅
Native segmentation, journey and cohort primitives❌✅
Sampled property values for filters❌✅
A/B test analysis (lift, intervals, guardrails, health checks)Not listed✅
Scheduled agents that review KPIs and email the teamNot listed✅
Reviewable SQL surfaced for every answer✅✅
MCP server for external agents✅✅ Remote MCP
Slack agent✅✅
Pre-aggregations / caching layer for BI workloads✅❌
Embedded analytics surface for end customers✅❌

When to choose Cube D3, Mitzu, or both?

For governed metrics, dashboards and an agent that answers from them, the two overlap. Cube D3 is a universal semantic layer with an agentic layer on top, strong when many consumers, including other BI tools and embedded analytics, share one model. Mitzu is one analytics platform where the same governed definitions run KPI dashboards, product analytics and experiment analysis, with a deterministic engine that keeps the methodology right. The right choice depends on who consumes the metrics and which questions dominate the team's workload.

  • Choose Cube D3 when you need one semantic layer feeding BI tools, spreadsheets, embedded analytics and AI agents from a single model, and you have the engineering cycles to author and maintain that model in YAML, JavaScript or Python.
  • Choose Mitzu when you want KPI dashboards plus funnels, retention, journeys and A/B test results on one set of definitions the data team governs; an agent that explains why a number moved (why did week-2 retention drop, did the new pricing page move trial-to-paid) with SQL from a deterministic engine; and the same answers in Slack, AI assistants and scheduled monitoring emails.
  • Run both when Cube already serves embedded analytics or feeds Tableau, Power BI or Looker, and internal teams want Mitzu for KPI dashboards, product analytics and experiment analysis on the same warehouse. External agents can reach both via MCP.

FAQ

Can Cube D3 replace a product analytics tool?

For descriptive product metrics (DAU, weekly events by feature, signups by channel), Cube D3 will answer well, especially once the underlying cubes are modeled. For diagnostic product analytics (funnels with strict conversion windows, retention cohorts, journey trees, churn analysis, sampled filter values, impact analysis on a release), methodology lives in whatever SQL the LLM authors against the semantic layer. A deterministic engine that owns the methodology removes a class of error that a BI-shaped semantic layer alone cannot. In Mitzu, those analyses sit next to the KPI dashboards and experiment results, on the same definitions.

Does Mitzu have a universal semantic layer like Cube?

Mitzu's semantic layer is governed and shared across everything inside Mitzu, but it is not universal in Cube's sense. It holds metrics such as net revenue, orders and margin on fact and dimension tables, plus events, event properties, entities (users, accounts, teams), dimension properties and sampled property values, and every Mitzu dashboard, agent answer, Slack reply, MCP answer and monitoring agent uses it. It does not serve other BI tools or embedded customer-facing analytics. If those are the workloads, a universal semantic layer like Cube is the right shape.

Is Cube open source? Is Mitzu open source?

Cube has an open-source core (cube-js/cube) plus a commercial Cube Cloud where Cube D3 lives. Mitzu is a commercial SaaS product; the Enterprise plan supports self-hosted deployment in the customer's own infrastructure. Every plan has unlimited events and no per-event pricing; see the pricing page for current details.

Can I use Cube D3 and Mitzu together?

Yes. Both expose MCP endpoints. A team using Cube to feed embedded analytics or other BI tools can run Mitzu in parallel for internal KPI dashboards, product analytics and experiment analysis, with both reading from the same warehouse. The cost is two sets of definitions to keep in sync.

An external agent (Claude, Cursor, ChatGPT, custom) can be wired to call either backend.

Where does the data live in either tool?

In the customer's warehouse. Cube reads the warehouse through its semantic layer; Mitzu reads the warehouse through its deterministic engine. Neither moves data into a vendor silo. Compliance, data residency and cost control stay on the customer's side of the line.

References

Key Takeaways

  • The architectural distinction is who writes the SQL: an LLM grounded in a hand-authored semantic layer (Cube D3) or a deterministic engine driven by a typed analysis specification (Mitzu).
  • Cube's semantic layer is BI-shaped (cubes, views, measures, dimensions, joins, segments), authored as code and maintained over time. Mitzu's holds metrics on fact and dimension tables plus events, properties, entities and sampled values; Mitzu drafts the definitions from the warehouse and dbt models, and the data team reviews and owns them.
  • In Mitzu, KPI dashboards, funnels, retention, journeys and experiment results use the same definitions, so a revenue drop can be followed to the funnel step behind it in one analysis.
  • Both architectures keep the data in the customer's warehouse and neither requires data egress.

About the Author

István Mészáros

Co-founder & CEO

LinkedIn: https://www.linkedin.com/in/imeszaros/

Co-founder and CEO of Mitzu. Passionate about product analytics and helping companies make data-driven decisions.

Share this article

Subscribe to our newsletter

Get the latest insights on product analytics.

Ready to transform your analytics?

See how Mitzu can help you gain deeper insights from your product data.

How to get started with Mitzu

Start analyzing your product data in three simple steps

Connect your data warehouse

Securely connect Mitzu to your existing data warehouse in minutes.

Define your events

Map your product events and user properties with our intuitive interface.

Start analyzing

Create funnels, retention charts, and user journeys without writing SQL.