Back to Blog
Product Comparisons

Snowflake Cortex Analyst vs Mitzu: LLM-Written SQL on Snowflake vs a Governed Analytics Platform

Cortex Agents and Cortex Analyst let an LLM write SQL against a semantic model inside Snowflake. Mitzu runs BI, product analytics and experiment analysis on metrics the data team governs, and a deterministic engine writes the SQL.

Snowflake Cortex Analyst and Cortex Agents let an LLM write SQL on Snowflake, grounded in a semantic model. Mitzu is an analytics platform on your warehouse for BI, product analytics and experiment analysis, with a deterministic SQL engine. Compare architecture, methodology, SQL examples and surfaces.

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

Co-founder & CEO

Published May 14, 2026 · Updated October 27, 2026
11 min read
Snowflake Cortex Analyst vs Mitzu: LLM-Written SQL on Snowflake vs a Governed Analytics Platform

TL;DR

Snowflake Cortex is the umbrella for Snowflake's agentic stack: Cortex Agents orchestrate Cortex Analyst (text-to-SQL over a semantic model) and Cortex Search (unstructured retrieval), with Snowflake Intelligence as the business-user surface. 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 architectural difference is who writes the SQL. In Cortex an LLM authors it for each question. Mitzu's agent assembles an analysis specification and a deterministic engine turns it into SQL, so the same question gets the same answer.

Use this comparison if you are evaluating Snowflake Cortex Analyst for AI analytics on Snowflake and want to see how it differs from a governed analytics platform on the same account: who writes the SQL, how metrics are defined, and what each runs beyond a chat answer.

Snowflake has been steadily building out an agentic stack (Cortex Agents, Cortex Analyst, Cortex Search and Snowflake Intelligence) and positioning the result as the "control plane for the agentic enterprise." That makes "Snowflake Cortex vs Mitzu" a fair question: both answer plain-English questions on Snowflake data, and Snowflake teams sit squarely in Mitzu's audience. Cortex is a general-purpose way for an LLM to write SQL on Snowflake, grounded in a semantic model. Mitzu is one analytics platform on the warehouse for BI, product analytics and experiment analysis, governed by the data team, with an AI agent whose SQL comes from a deterministic engine. Snowflake is one of the warehouses Mitzu connects to.

What is Snowflake Cortex?

Snowflake Cortex is the umbrella name for Snowflake's in-warehouse AI features. The agentic surface area is built from a small set of composable pieces:

  • Cortex Agents: the orchestration layer. An agent plans a question, picks tools (Cortex Analyst for structured data, Cortex Search for unstructured, custom stored procedures, web search via Brave), reflects on results, and returns an answer. Exposed via REST API and the Snowsight chat UI.
  • Cortex Analyst: fully managed text-to-SQL over a semantic model, written as a YAML file or as a semantic view in Snowflake. The model defines logical tables, dimensions, facts, metrics and relationships. LLMs (Claude and OpenAI, selected per query) author SQL against it.
  • Cortex Search: retrieval over unstructured data (PDFs, docs, transcripts).
  • Snowflake Intelligence: the business-user surface. A "personal work agent" with MCP connectors to Gmail, Slack, Jira and Salesforce, deep research, and an iOS app.
  • Cortex Code: a Snowflake-native coding agent for builders, with VS Code and Claude Code plugins.

An April 2026 update collapsed two of the layers: Cortex Agents that use a Cortex Analyst semantic view as a tool now generate SQL directly rather than delegating to the Analyst service as a separate step. Lower latency, fewer round-trips. The architecture is otherwise unchanged: an LLM authors the SQL, grounded by a semantic model the data team writes.

The stack is general-purpose by design. The same architecture handles a quarterly revenue question, a support-ticket summary, a contract search and a sales-pipeline question. It is not pitched at product analytics or experiment analysis, and the semantic model does not ship native funnel, retention, segmentation, cohort or experiment primitives. Methodology lives in whatever SQL the LLM produces for each question.

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 Cortex, it answers plain-English questions on Snowflake data. Unlike Cortex, the same governed definitions also run KPI dashboards, 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. Snowflake is one of the supported warehouses, alongside BigQuery, Databricks, Redshift, ClickHouse, PostgreSQL, Athena, Trino, Firebolt and Microsoft Fabric. See AI Analytics for Snowflake for a deeper walk-through.

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.

Snowflake Cortex vs Mitzu: side-by-side

Snowflake CortexMitzu
CategoryAgentic SQL and general AI analytics on SnowflakeAnalytics platform on the warehouse: BI, product analytics and experiment analysis, with AI agents
Who writes the SQLLLM (Claude / OpenAI, selected by Cortex Analyst per query)Deterministic query engine, from a typed analysis specification
GroundingSemantic model as a YAML file or semantic view, written by the data team (Autopilot can draft); logical tables, dimensions, facts, metrics, relationshipsMetrics on fact and dimension tables, plus events, properties, entities and sampled filter values; drafted by Mitzu from the warehouse and dbt models, owned by the data team
Governed metrics and KPI dashboardsMetrics in the semantic model; charts in chat and Streamlit-in-Snowflake appsMetrics defined once; KPI dashboards built by clicking or by asking the agent
Methodology primitivesNone native: the LLM composes ad-hoc SQL per questionFunnel, retention, segmentation, journey and cohort as first-class primitives
Experiment analysisNo built-in methodology; the LLM writes any test statistics per questionLift, 95% interval, corrected p-values, guardrails and health checks on exposures in the warehouse
Scheduled monitoringNot listedMonitoring agents review dashboards or KPIs on a schedule and email the team
Where it runsSnowflake onlySnowflake, BigQuery, Databricks, Redshift, ClickHouse, PostgreSQL, Athena, Trino, Firebolt, Microsoft Fabric
SurfacesSnowsight chat, Snowflake Intelligence (iOS + web), Cortex Agents REST API, Microsoft TeamsMitzu app, Slack, remote MCP server, monitoring-agent emails
Unstructured dataCortex Search (PDFs, docs, transcripts) is a first-class toolOut of scope: Mitzu analyzes structured event and business data in the warehouse
Source modelProprietary feature inside the Snowflake accountCommercial SaaS; self-hosted deployment available on Enterprise
Best forFree-form questions across any modeled Snowflake data, including documentsKPI reporting, product analytics and experiment analysis on one set of governed definitions, with an agent that explains why a number moved

SQL examples: the same question, two paths

A governed KPI question such as "What was net revenue last quarter?" works in both once the 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?"

Snowflake Cortex: SQL the LLM might generate

-- Plausible Cortex Analyst output against a Snowflake events table.
-- Looks reasonable; methodology depends on the YAML semantic model + prompt.
WITH signups AS (
  SELECT user_id,
         MIN(event_time)               AS signup_at,
         ANY_VALUE(properties:channel::string) AS channel
  FROM analytics.events
  WHERE event_name = 'signup'
    AND event_time >= DATEADD('day', -30, CURRENT_TIMESTAMP())
  GROUP BY user_id
),
activations AS (
  SELECT user_id, MIN(event_time) AS activated_at
  FROM analytics.events
  WHERE event_name = 'activated'
    AND event_time >= DATEADD('day', -37, CURRENT_TIMESTAMP())
  GROUP BY user_id
)
SELECT s.channel,
       COUNT(*)                                                          AS signups,
       COUNT_IF(a.activated_at <= DATEADD('day', 7, s.signup_at))         AS activated_in_7d,
       ROUND(activated_in_7d / NULLIF(signups, 0) * 100, 1)               AS conv_pct
FROM signups s
LEFT JOIN activations a USING (user_id)
GROUP BY s.channel
ORDER BY signups DESC;

Reads cleanly, but the methodology is doing a lot of work in the semantic model and the prompt. A different prompt run, a different model selection, or a slightly different semantic model entry can yield a window measured against the wrong anchor, an activation that pre-dates the signup counted as a conversion, channel attribution joined off the wrong row when a user has multiple signups, or a window that quietly slips to 30 days because the LLM conflated the lookback with the conversion window. 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(properties:channel::string)    AS channel
  FROM analytics.events
  WHERE event_name = 'signup'
    AND event_time >= DATEADD('day', -30, CURRENT_TIMESTAMP())
    AND event_time <  CURRENT_TIMESTAMP()
  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 analytics.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 <= DATEADD('day', 7, s1.step_1_at)
  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 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 compared

Both platforms expose chat. The differences live in the artifacts the chat produces, where they can be reviewed, and what keeps running after the conversation ends.

SurfaceSnowflake CortexMitzu
Web chatSnowsight chat; Snowflake Intelligence personal-agent surfaceIn-app analytics agent for quick questions, impact analysis and deep dives
Chat in Slack / TeamsMicrosoft Teams integration; Slack via custom integrationNative Slack app (@mitzu in any channel, answering in the thread)
MobileSnowflake Intelligence iOS appSlack mobile (the Slack app works wherever Slack does)
Programmatic / external agentsCortex Agents REST APIRemote MCP server for Claude, ChatGPT, Cursor, GitHub Copilot and other MCP clients
DashboardsLLM-generated charts; published Streamlit-in-Snowflake appsKPI dashboards, saved insights and named cohorts on governed metrics; any chart the agent builds can go onto a dashboard
Scheduled monitoringNot listedMonitoring agents email the team on every run, or only when a plain-English condition is met
Reviewable SQLShown alongside Cortex Analyst answersShown for every answer; semantic layer visible in app
Semantic layer authoringYAML files in a Snowflake stage or semantic views (Autopilot can draft)Drafted by Mitzu from the warehouse and dbt models; reviewed and edited in-app by the data team

Advantages and trade-offs

Snowflake Cortex

StrengthsTrade-offs
Fully managed inside the Snowflake account: no extra infrastructure, no separate billing relationship.Snowflake-only: a single-warehouse architecture, not a fit for teams running BigQuery, Databricks or ClickHouse for events.
General-purpose by design: the same architecture handles finance, sales, support, ops and product questions.The LLM authors SQL, so methodology errors on funnels, retention, cohorts, journeys and test statistics are easy to make and hard to spot in a chat reply.
Cortex Search integrates unstructured data (PDFs, docs, transcripts) as a first-class agent tool.The semantic model is written by hand (Autopilot drafts; humans maintain). Ongoing maintenance moves with schema changes.
Snowflake Intelligence brings MCP connectors (Gmail, Slack, Jira, Salesforce), deep research and an iOS app to business users.Charts are LLM-generated rather than driven by a typed methodology layer; consistency across questions is not guaranteed.
Cortex Agents REST API makes the orchestration available to any external application.Data, agents and access control are tightly coupled to one cloud provider account.

Mitzu

StrengthsTrade-offs
The agent does not write SQL; a deterministic query engine does, from a typed specification. Same input, same SQL, same answer.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.Unstructured retrieval (PDFs, transcripts) is out of scope; pair Mitzu with Cortex Search if both are needed.
The app, Slack, the MCP server and scheduled monitoring agents all use the same definitions and Mitzu roles.Questions run on the metrics, events and tables the data team exposes in Mitzu, not on any table in the account.
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.

CapabilitySnowflake CortexMitzu
Runs on the customer's warehouse✅✅
Multi-warehouse support (BigQuery, Databricks, ClickHouse, Redshift, Trino, Postgres…)❌ Snowflake only✅
Self-hosted / single-tenant deployment✅ in customer's Snowflake account✅ Enterprise tier
Governed metrics and KPI dashboardsPartial: metrics in the semantic model; charts in chat or Streamlit apps✅
Deterministic SQL engine (agent does not write SQL)❌✅
Semantic layer drafted from the warehouse and dbt modelsPartial: Autopilot drafts a YAML model or semantic view to maintain✅
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)❌✅
Scheduled agents that review KPIs and email the teamNot listed✅
Reviewable SQL surfaced for every answer✅✅
Unstructured data retrieval (RAG)✅ Cortex Search❌ out of scope
MCP server for external agents✅ Snowflake Intelligence MCP connectors✅ Remote MCP
Slack agent❌ via custom integration✅ native
Free-form questions on any table in the account✅❌ governed metrics and exposed tables

When to choose Snowflake Cortex, Mitzu, or both?

Both answer plain-English questions on Snowflake data, so they overlap. Cortex gives you a general agentic interface to everything in Snowflake, documents included, with an LLM writing the SQL. Mitzu gives you 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 which questions dominate the team's workload and how much the answers have to agree with each other.

  • Choose Snowflake Cortex when the questions are broad and free-form across finance, sales, support and ops data, documents and transcripts are part of the answer, Snowflake is the single source of truth, and you have the data-engineering cycles to write and maintain Cortex Analyst semantic models or semantic views.
  • 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, which onboarding step has the highest drop-off) with SQL from a deterministic engine; scheduled agents that watch the KPIs; and the same answers in Slack and AI assistants. Especially if some of your data also lives in BigQuery, Databricks or ClickHouse.
  • Run both when Snowflake Intelligence already serves as a cross-system work assistant and Cortex Search covers documents, and the data team wants governed KPI reporting, product analytics and experiment analysis on the same Snowflake account. Any assistant that supports MCP can call Mitzu's analytics agent for those questions.

FAQ

Does Mitzu work with Snowflake?

Yes. Snowflake is a first-class supported warehouse. Mitzu reads event, fact, dimension and dbt-modeled tables in place, with no data movement and no per-event pricing. See AI Analytics for Snowflake for the broader landscape on Snowflake.

Does Snowflake Cortex replace Mixpanel, Amplitude or other product analytics tools?

Not by itself. Cortex is general-purpose agentic analytics on Snowflake data. For product analytics methodology specifically (funnels with conversion windows, retention cohorts, journey trees, segmentation with sampled filter values) and for experiment statistics, you either use a platform like Mitzu, where that methodology is built into the engine next to the KPI dashboards, or build it yourself in SQL and rely on the LLM to compose it correctly each time.

Can I use Cortex Analyst for funnels and retention?

An LLM can write a funnel or retention query against Snowflake. Whether the methodology is right depends on the semantic model, the prompt, the model selection that day, and the schema in front of it. The risk is not that the SQL fails to run (it usually runs) but that it answers the wrong question: a window measured wrong, double-counted users, attribution joined off the wrong row. A deterministic engine that owns the methodology removes that class of error.

How does Cortex Analyst's semantic model differ from Mitzu's semantic layer?

Cortex Analyst's semantic model, written as a YAML file or as a Snowflake semantic view, describes logical tables, dimensions, facts, metrics and relationships: a BI-shaped model that gives the LLM a grounded vocabulary for text-to-SQL. Mitzu's semantic layer 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 for filters. Mitzu drafts it from the warehouse and dbt models, the data team reviews and owns it, and every dashboard, agent answer, Slack reply, MCP answer and monitoring agent uses it.

Is Mitzu self-hostable inside our Snowflake account?

Mitzu is a commercial SaaS product. The Enterprise plan supports self-hosted deployment in the customer's own infrastructure for cases where SaaS analytics isn't acceptable. Mitzu reads Snowflake from there in the same way the SaaS version does, with no data movement and no per-event pricing. Every plan includes Editor seats and unlimited events; see the pricing page for current details.

Where does the data live in either tool?

Inside Snowflake. Both architectures are warehouse-native: Cortex by being a Snowflake-native feature, Mitzu by design (the agent reads Snowflake through the deterministic engine). Neither moves data into a vendor silo. Compliance, data residency and cost control all stay on the customer's side of the line.

References

Key Takeaways

  • The architectural distinction is who writes the SQL: an LLM (Cortex Analyst / Cortex Agents) or a deterministic engine driven by a typed analysis specification (Mitzu).
  • Cortex Analyst is grounded in a semantic model the data team writes, either a YAML file or a Snowflake semantic view (Autopilot can draft it). It is BI-shaped: logical tables, dimensions, facts, metrics. It does not natively express funnels, retention, journeys, cohorts or experiments.
  • Mitzu's semantic layer holds metrics on fact and dimension tables plus events, event properties, entities and sampled filter 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 A/B test results use the same definitions, and monitoring agents review them on a schedule and email the team when something moves.
  • Both architectures keep the data inside Snowflake. 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.