12 Best Semantic Layer Tools for AI and BI in 2027

Not all semantic layers are equal. Learn what tools there are, how they differ, and how to evaluate them beyond the flashy demo.

August 27, 2026 · 43 min read · Huy Nguyen
12 Best Semantic Layer Tools for AI and BI in 2027

Key takeaways

  • A semantic layer is the governed definition of your metrics, dimensions, and logic that sits between the warehouse and every consumer – dashboards, APIs, embedded analytics, and now AI agents.
  • Tools fall into four architectures: BI-native (Holistics, Looker, Power BI, ThoughtSpot), open-source (anfra, MetricFlow, Malloy), standalone/headless (dbt Semantic Layer, Cube, AtScale), and warehouse-native (Snowflake, Databricks).
  • If you want one governed semantic layer behind dashboards, embedded analytics, and AI agents, check out Holistics.
  • If your coding agents build custom data apps and you need every number traced back to a governed metric, check out anfra.
  • If you're already committed to a stack, start with what fits it: the dbt Semantic Layer or MetricFlow for dbt-centric teams, Power BI for Microsoft shops, and Snowflake or Databricks for minimal disruption in the warehouse.

Every BI vendor in 2027 demos the same AI chat. "Show revenue by region." "Top 10 products by sales." A look-up question on a single fact table will impress any modern LLM, on any platform. It says almost nothing about whether the underlying system can answer the questions your business asks day to day.

The demo trap

"Chat to dashboard" shows the LLM's ability. It does not prove the analytics system.

What the demo shows
"Show revenue by region."
"List customers by country."
"Top 10 products by sales."

Simple metric plus dimension combinations. Any LLM with a schema gets this.

What the business asks

"Of customers who signed up in January, what was 30-day conversion vs. April's cohort, and how does ARPU compare for the two groups?"

Cohort Period comparison Nested aggregation Cross-grain ratio

Four operators stacked into one breath.

Adapted from the demo-trap diagram in Not all semantic layers are equal.

The real differentiator is the semantic layer underneath, and not all semantic layers are equal. The differences show up the moment you move past demos and into the daily reality of nested aggregations, period-over-period comparisons, cross-grain ratios, and multi-step calculations, the questions that actually fill the analyst queue.

This guide compares the 12 best semantic layer tools in 2027 across four architectures: BI-native, open-source, standalone, and warehouse-native. We'll explain what separates a primitive configuration layer from a programmable one, introduce the concepts of the semantic ceiling and semantic leakage, and help you decide which architecture fits your team.

If you're only evaluating BI tools with a built-in semantic layer, see our comparison of BI tools with a semantic layer.

What Is a Semantic Layer?

A semantic layer is a centralized definition of business metrics, dimensions, and logic that sits between the data warehouse and every downstream consumer: dashboards, AI agents, APIs, notebooks, and embedded analytics.

Instead of writing "monthly revenue" logic in five different SQL queries, you define it once in the semantic layer and use it consistently everywhere. A data catalog is a dictionary: it tells you what words exist, customer, subscription, churn. The semantic layer is the grammar. It encodes how definitions combine, which metrics are canonical, and how "revenue by quarter" is supposed to work across every dashboard, report, and now, every AI prompt.

The semantic layer sits between the warehouse and every consumer: dashboards, AI, APIs. Source: vutr.substack.com

Why semantic layers matter more in 2027

Semantic layers are having their second renaissance because AI made the cost of ambiguity impossible to ignore.

This is not a new conviction for us. We have been advocating for this layer for six years, starting with our Analytics Setup Guidebook in 2020.

The argument in the guidebook was that the mapping between business logic and data logic has to move out of an analyst's head and into an explicit modeling layer. Business users should be able to work with business concepts, while the layer handles the translation into correct data logic. This is the foundation of self-service analytics.

The semantic layer sits between the warehouse and every consumer: dashboards, AI, APIs. Source: vutr.substack.com

We extended the same argument in a 2023 dbt Singapore meetup talk on the ideal semantic layer. The talk started from metrics-centric thinking: metrics should be first-class objects that compose, parameterize, and travel across dimensions at query time. If an LLM has to generate raw SQL over raw tables, it has to guess. If it can express intent against a semantic layer, the hard parts, joins, grains, metric definitions, and governance, stay deterministic.

A mature semantic layer turns AI from a guesser into a deterministic partner. Instead of asking an LLM to reason over raw tables, you give it the grammar, metrics, dimensions, relationships, that are already agreed upon. The model is grounded in it.

The actual mechanism

The semantic layer is what makes AI analytics reliable.

If the AI gets user intent right, it hands that intent to the semantic layer. The layer deterministically generates accurate SQL, without guessing or drift.

Raw text-to-SQL

LLM owns intent and execution.

Question→ LLM writes SQL→ Warehouse
  • Joins, GROUP BYs, and CTEs invented per query
  • Metric logic reinvented every prompt
  • No deterministic guarantee the SQL is correct
  • No governance because access control sits outside the prompt
With a real semantic layer

LLM owns intent. Semantic layer owns execution.

Question→ LLM expresses intent→ Layer compiles SQL→ Warehouse
  • Metrics, dimensions, and joins defined once
  • SQL is generated deterministically
  • Same definitions everyone in the company uses
  • Access control enforced at the semantic layer
Adapted from the AI reliability diagram in Not all semantic layers are equal.

Four Types of Semantic Layer Tools

The semantic layer market divides into four architectures. Each trades off integration breadth, user experience, and expressiveness differently.

  • BI-native (bundled): the semantic layer and the dashboards, exploration, and AI that consume it live in one platform. Tools: Holistics, Looker, Power BI, ThoughtSpot.
  • Open-source: the semantic layer's code is public and you can self-host it, so definitions stay portable and nothing is locked behind a vendor. Tools: anfra, MetricFlow, Malloy, plus Cube's open-source core (Cube Core).
  • Standalone (headless): a metrics layer between the warehouse and many downstream tools, served over APIs. You still need a BI tool, notebook, or app to show the numbers. Tools: dbt Semantic Layer, Cube, AtScale.
  • Warehouse-native: the data warehouse itself stores metric definitions that any connected tool can query. Tools: Snowflake Semantic Views, Databricks Unity Catalog Metric Views.

Below, we compare all 12 side by side and profile each one, then show how to test any of them on your own data.

Best Semantic Layer Tools for AI and BI: Features and Pricing

Here is the landscape at a glance, with a full profile of each tool below. "Ceiling" is how far the layer answers complex questions (nested aggregation, period-over-period, cross-grain ratios, cohorts) natively, before logic leaks into workarounds.

Tool Category Metric expressiveness (ceiling) Governance AI readiness Interoperability Best for
Holistics BI-native Highest – AQL composes nested aggregation, period-over-period, cross-grain, cohorts natively Code-defined, typed, versioned in Git Strong – AI + MCP server generate governed AQL, not raw SQL Open API / MCP; serves dashboards, embedded, agents Teams wanting a governed BI-native layer tied directly to AI and embedded analytics
AtScale Standalone (headless) Moderate, OLAP-oriented Enterprise-grade Limited Connects to existing BI (Tableau, Excel, Power BI) Heavy existing BI investment, no migration
Cube Standalone (headless) Moderate – multi-step often needs pre-computation Config-based Moderate – serves agents via API Broad – REST/GraphQL/SQL APIs Serving one definition to many apps/tools
MetricFlow Open-source Moderate – simple, ratio, cumulative, derived, and conversion metrics in YAML Lives in the dbt project, versioned in Git Moderate – engine only; AI access comes through the dbt Semantic Layer APIs Python CLI and library; powers the dbt Semantic Layer dbt users who want an open-source metrics engine
Looker BI-native High for standard cases; cumulative/nested often need derived tables Strong (LookML, Git) Moderate – depends on downstream generating LookML LookML mostly consumed inside Looker/Studio Existing Google Cloud / Looker shops
Power BI BI-native High within DAX/VertiPaq patterns; proprietary engine Strong in MS ecosystem Moderate (Copilot within MS stack) Best inside Microsoft ecosystem Microsoft-first organizations
ThoughtSpot BI-native Standard OLAP; constrained for multi-step composition Good Search-native; ceiling caps hard questions Consumed mainly in ThoughtSpot Search-driven business-user analytics
anfra Open-source High – AMQL handles funnels, cohorts, and period-over-period natively Models as code, reviewed in pull requests; every definition sandboxed, data only through the SDK Strong – built for coding agents, with an MCP endpoint and every query inspectable JavaScript SDK and MCP; any custom app Teams whose coding agents build custom, governed data apps
Malloy Open-source High – nested queries, symmetric aggregates, and composable query pipelines Models as code in .malloy files, versioned in Git Emerging – readable models give agents structure, but tooling is young VS Code, npm, CLI, Python, and Publisher Analysts and engineers who want a modern modeling and query language
dbt Semantic Layer Standalone (headless) Moderate – YAML metrics; complex composition gets verbose Inherits dbt project governance Moderate – API exists; expressiveness caps AI Broad – API to many BI tools Stacks already centered on dbt transformations
Snowflake Semantic Views Warehouse-native Early-stage, limited expressiveness Snowflake RBAC Emerging – Cortex Analyst Any Snowflake-connected tool Snowflake-centric teams wanting minimal disruption
Databricks Metric Views Warehouse-native Early-stage, limited expressiveness Unity Catalog Emerging – AI/BI Genie Databricks SQL and connected tools Lakehouse teams standardized on Databricks

We build Holistics, so treat its placement as a disclosed view, not a neutral ranking – and judge every tool here on the same test: can it answer your hardest question natively, keep one definition of every metric, and let any tool or agent query it?

1. Holistics

BI-nativeBest for: teams that want one governed semantic layer behind dashboards, embedded analytics, and AI

Holistics semantic layer architecture Holistics turns warehouse tables into data models, then groups models, relationships, and metrics into datasets that power charts and dashboards. Source: Holistics documentation.

Holistics takes a programmable approach with AML (Analytics Modeling Language) for defining models and AQL (Analytics Query Language) for composable, multi-step metric calculations. AQL operates at a higher abstraction than SQL, handling nested aggregations, period-over-period, cross-grain ratios, and running totals natively. Because it's typed, invalid field references and semantic issues are caught as you type, not at runtime. The core shift is from table-centric modeling to metrics-centric thinking: metrics are first-class objects that can reference other metrics, be parameterized, and compose into arbitrary depth.

The semantic layer, how it is built

AQL + AML. Two real languages, not config files.

Holistics's semantic layer is built on two purpose-built languages: a composable query language and a native development language, both compiled down to standard SQL.

AQL · Analytics Query Language

Metrics as first-class objects. Named, stored, modified, and combined like variables.

metric arpu = revenue / users

High-level analytics functions. Time intelligence, cohort, nested aggregation, and level-of-detail are primitives.

revenue | relative_period(year, -1)

Composable operations. Pipe chains build unlimited complexity from simple primitives.

revenue | where(...) | by(country) | of_all()

AML · Analytics Modeling Language

Programmable constructs. The same building blocks programmers use to keep code DRY, without YAML config or Jinja-templated SQL.

constFuncextendPartialif · elsemodule

Type-safe IDE with a live feedback loop. Errors are caught as you type. The same type system guardrails AI from misreading the semantic layer.

Native dialect SQL · the shared substrate

One semantic layer. One compiled SQL output. Every warehouse.

Snowflake · BigQuery · Postgres · Redshift · Databricks. Analysts can still read, debug, and explain the generated SQL.

Adapted from the AQL + AML architecture diagram in Not all semantic layers are equal.

Key features:

  • AQL composable metrics: nested aggregation, period-over-period, cross-grain ratios (of_all()), running totals, and cohorts as native operations
  • AML programmable modeling: constants, functions, extend, and modules keep models DRY, with a type-safe IDE that catches errors as you type
  • Native 2-way Git: branches, pull requests, and CI/CD across dev, staging, and production for every model, metric, and dashboard
  • AI on the governed layer: AI generates AQL rather than raw SQL, and an MCP Server lets external agents query the same metrics
  • Open semantic layer: query any dataset's metrics over an API and get JSON back, for notebooks, scripts, and internal services
  • Embedded analytics: one model and its row-level security power internal dashboards and customer-facing embeds

Pricing: Starts at $800/month. A free trial is available.

2. AtScale

Standalone (headless)Best for: enterprises with heavy existing BI investment

AtScale Design Center canvas showing a fact dataset linked to dimension hierarchies AtScale's Design Center canvas shows a semantic model's dimensions and relationships, with a text editor tab for the underlying SML. Source: AtScale documentation.

AtScale takes an enterprise-oriented approach, providing a virtual semantic layer that connects to existing BI tools (Tableau, Power BI, Excel) without requiring migration. It translates OLAP-style queries into optimized warehouse SQL. Best suited for organizations with heavy existing BI investments that want consistent definitions without replacing their tools.

Key features:

  • Virtual OLAP cubes: dimensional models on top of the cloud warehouse, without moving data
  • Multi-tool connectivity: live connections for Excel, Power BI, and Tableau
  • Autonomous aggregates: automatically created aggregates to speed up queries
  • SML: an open-source, code-based Semantic Modeling Language

Pricing: Custom enterprise pricing. A free Developer Community Edition is available.

3. Cube

Standalone (headless)Best for: serving one set of definitions to many apps and tools

Cube Core architecture diagram from data sources to applications Cube sits between data sources and applications, handling modeling, access control, caching, and APIs. Source: Cube on GitHub.

Cube provides a headless semantic layer with its own query engine. Its "Views" feature lets teams compose virtual tables from multiple data sources, exposed through REST, GraphQL, and SQL APIs. Cube's strength is integration breadth: it serves BI tools, notebooks, applications, and AI agents from one definition layer. The modeling language (YAML or JavaScript) supports basic metric composition but, like dbt, complex multi-step calculations often require pre-computation.

Key features:

  • Data model in YAML or JavaScript: cubes, views, measures, and dimensions
  • REST, GraphQL, and SQL APIs: connect BI tools, apps, and AI agents
  • Pre-aggregations: a caching layer for fast, cost-efficient queries
  • Access control: row-level security defined in the model

GitHub: cube-js/cube

Pricing: Cube Core is open source and free. Cube Cloud has a free tier, with paid plans billed on usage and custom Enterprise pricing.

4. MetricFlow

Open-sourceBest for: dbt users who want an open-source metrics engine

Diagram of semantic models joining fact and dimension tables into metrics MetricFlow turns normalized tables into semantic models, then joins them on demand to answer metric queries. Source: dbt documentation.

MetricFlow is the open-source engine behind the dbt Semantic Layer. You describe semantic models (entities, dimensions, and measures) and metrics in YAML, and MetricFlow works out the joins and generates the SQL for each metric query. You can run it on its own from the command line or as a Python library, without the hosted dbt Semantic Layer, though you then build your own way to serve metrics to other tools.

Key features:

  • Semantic models and entities: MetricFlow uses entities to find join paths between models, so a query can mix measures and dimensions from different tables
  • Metric types: simple, ratio, cumulative, derived, and conversion metrics
  • Dialect-aware SQL: compiles to SQL for Snowflake, BigQuery, Databricks, Redshift, PostgreSQL, DuckDB, Trino, and more
  • CLI and Python library: query metrics with mf query or call the engine from your own code

GitHub: dbt-labs/metricflow

Pricing: Free and open source (Apache 2.0). The hosted dbt Semantic Layer, which adds APIs and BI integrations, needs a paid dbt plan.

5. Looker

BI-nativeBest for: existing Google Cloud and LookML shops

The Looker IDE with an orders view defined in LookML The Looker IDE in Development Mode, with an orders view defined in LookML. Source: Looker documentation.

Looker pioneered code-based semantic modeling with LookML. SQL-based metric definitions give explicit control over generated SQL, with "symmetric aggregates" handling many-to-many joins. The language is YAML-based, powerful for standard use cases, but lacks the functions, variables, and code reuse of a full programming language. Complex metrics like cumulative sums often require building manual derived tables.

Key features:

  • LookML: views, dimensions, measures, and Explores defined centrally in code
  • Symmetric aggregates: correct totals across fan-out joins
  • Native Git integration: branching and code review for LookML projects
  • Period-over-period measures: native period_over_period measure type (GA since August 2025)
  • Gemini in Looker: conversational analytics grounded in LookML definitions

Pricing: Custom, through Google Cloud sales. According to Vendr, the median buyer pays about $89K per year.

6. Power BI

BI-nativeBest for: Microsoft-first organizations

Power BI Desktop Model view showing a star schema and the Model explorer Power BI Desktop's Model view: a Sales fact table joined to dimension tables, with the semantic model's measures, relationships, and roles in Model explorer. Source: Microsoft Learn.

Power BI uses DAX (Data Analysis Expressions) inside a tabular semantic model. DAX is powerful for certain patterns (time intelligence, calculated columns) but operates within a proprietary in-memory engine. The model is GUI-configured in Power BI Desktop, and complex logic often requires understanding both DAX and the VertiPaq engine's behavior.

Key features:

  • DAX measures: iterator functions (SUMX, AVERAGEX) and CALCULATE cover nested and cross-grain patterns
  • Time intelligence: mature built-ins like SAMEPERIODLASTYEAR and DATEADD
  • TMDL: a text-based format for semantic models, with Fabric Git integration
  • Copilot and Fabric data agents: natural language questions over the semantic model

Pricing: Power BI Pro is $14/user/month and Premium Per User is $24/user/month. Fabric capacity, needed for Copilot and enterprise features, starts at roughly $262/month for the F2 tier.

7. ThoughtSpot

BI-nativeBest for: search-driven analytics for business users

The ThoughtSpot Model editor with two tables joined on the canvas The ThoughtSpot Model editor, where tables are joined on a canvas, with tabs for columns, formulas, filters, and parameters. Source: ThoughtSpot documentation.

ThoughtSpot centers on search-driven analytics with TML (ThoughtSpot Modeling Language) for semantic definitions. Its strength is the search interface for business users; its semantic layer handles standard OLAP patterns well but is more constrained for multi-step metric composition. (For replacements, see our ThoughtSpot alternatives guide.)

Key features:

  • Models: joins, columns, and formulas defined in one place, exportable as TML
  • Spotter: an AI analyst for natural language questions
  • Formula functions: reaggregation, cumulative, moving, and semi-additive functions
  • MCP Server: available as an add-on for external agents

Pricing: The Essentials plan starts at $25/user/month. Pro and Enterprise are custom-priced.

8. anfra

Open-sourceBest for: teams whose coding agents build custom, governed data apps

How anfra works: your app, the anfra SDK, the anfra server, your semantic layer, and the warehouse Your app asks the anfra SDK for metrics by name, and the anfra server turns each interaction into a query on your semantic layer that runs on the warehouse. Source: anfra.ai.

anfra can be categorized as an open-source semantic layer, but its capabilities extend far beyond a regular semantic layer. If anything, it's more of a semantic framework for AI. Coding agents build fully custom data apps on it, in HTML, JavaScript, and any chart library, and every number in those apps comes from governed metrics rather than SQL the agent improvised.

What sets it apart is who it's built for. In anfra, a definition can come from many authors, people and agents alike, and an agent busy building an analysis may not think of security. So anfra guards every definition for its author: each one runs in a sandbox and reaches data only through the SDK, which offers everything a Data App needs. The safe way is the only way, and also the easy one, and every feature below follows from that.

Key features:

  • Semantics for custom front ends: anfra sits between a custom HTML/JavaScript app and the semantic layer underneath, so even a hand-built app requests metrics by name instead of running raw SQL. Tools that skip the semantic layer and have the agent write SQL directly can't give you this.
  • Every number can be traced: an Inspect panel lists every query that ran on the page and traces each one to its metrics and models, with lineage, the semantic query, and the generated SQL. Try it on the ecommerce overview demo, a dashboard built entirely by coding agents: click Inspect at the bottom right.
  • Trust without giving up flexibility: there are no fixed chart types or layouts. The apps on the demo site are each tailored to a different use case, and all of them are governed because they run on the same SDK.
  • Built for coding agents: an MCP endpoint and one-step setup for Claude Code and Cursor. When models don't exist yet, the agent drafts them and your data team reviews them in a pull request.
  • Runs on your infrastructure: a single binary that connects to Snowflake, BigQuery, Databricks, Redshift, PostgreSQL, ClickHouse, DuckDB, and more.

GitHub: holistics/anfra

Pricing: Free and open source (Apache 2.0). anfra Cloud, which adds login, permissions, and row-level security, is on a waitlist and hasn't published pricing yet.

9. Malloy

Open-sourceBest for: analysts and engineers who want a modern modeling and query language

How Malloy works: define a semantic model, compile it to SQL, and run it on your warehouse You define a semantic model in a .malloy file, the Malloy compiler turns queries into SQL for your database, and the SQL runs on your warehouse. Source: Malloy on GitHub.

Malloy is an open-source language that is both a semantic modeling language and a query language. You define sources with joins, dimensions, and measures, then write queries against them, and Malloy compiles each query to SQL that runs on your existing database. It's more expressive than most YAML-based layers: nested queries and multi-stage pipelines are part of the language, so results like "top products within each region" come from one query.

Key features:

  • Semantic sources: joins, dimensions, and measures defined once and reused by every query
  • Nested queries and pipelines: nested result sets and multi-stage queries without hand-written CTEs
  • Symmetric aggregates: correct totals across joins that would otherwise fan out
  • Many SQL engines: BigQuery, Snowflake, DuckDB, MotherDuck, PostgreSQL, MySQL, Trino, Presto, and Databricks
  • Several ways to use it: a VS Code extension with notebooks, npm packages, a CLI, Python, and Publisher for serving models

GitHub: malloydata/malloy

Pricing: Free and open source (MIT).

10. dbt Semantic Layer

Standalone (headless)Best for: stacks already centered on dbt

Diagram of the dbt Semantic Layer defining metrics in dbt and serving them to BI tools, notebooks, and data apps Metrics are defined in dbt next to the models, and downstream tools such as BI tools, notebooks, and data apps send Semantic Layer queries to get metric data back. Source: dbt documentation.

dbt Semantic Layer (MetricFlow) extends dbt's transformation layer into a full metric definition system. You define metrics in YAML alongside your dbt models, and MetricFlow compiles them to SQL at query time. Because dbt already owns the transformation layer in many stacks, the semantic layer inherits that context. The trade-off: metric definitions live in YAML configuration files, which can become verbose for complex composition. MetricFlow supports derived metrics (metrics referencing other metrics) but the language lacks the programming constructs (functions, variables, modules) of a full-blown modeling language.

Key features:

  • MetricFlow: simple, ratio, cumulative, derived, and conversion metric types
  • Defined next to dbt models: metrics live in the same Git repo and project as transformations
  • APIs and integrations: JDBC and GraphQL APIs, plus connectors for BI tools and spreadsheets

Pricing: Available on paid dbt plans. The Starter plan is $100 per developer seat/month; Enterprise is custom.

11. Snowflake Semantic Views

Warehouse-nativeBest for: Snowflake-centric teams that want minimal disruption

Diagram placing a Snowflake semantic view between transformed data and AI, BI, and SQL consumers A Snowflake semantic view sits on top of transformed data and gives AI tools, BI tools, and SQL users one shared business layer. Source: Snowflake documentation.

Snowflake stores semantic definitions as native database objects. Semantic views describe tables, relationships, facts, dimensions, and metrics inside Snowflake, and Cortex Analyst uses them to answer natural language questions. The promise: define metrics once at the warehouse level, consume them in any connected tool. The reality in 2027: expressiveness is still limited compared to dedicated semantic layer tools.

Key features:

  • Semantic views: metrics, dimensions, and relationships as Snowflake schema objects
  • Cortex Analyst: natural language to SQL grounded in semantic views
  • Snowflake governance: access controlled through existing roles and privileges

Pricing: No separate license. You pay Snowflake compute credits for queries, and Cortex Analyst is billed per message.

12. Databricks Unity Catalog Metric Views

Warehouse-nativeBest for: lakehouse teams standardized on Databricks

Diagram of a Unity Catalog metric view queried by SQL, dashboards, and Genie A metric view is defined in YAML or SQL over Unity Catalog tables, and the same dimensions and measures serve both code and no-code tools. Source: Databricks documentation.

Databricks adds metric views to Unity Catalog. Metric views are defined in YAML, registered alongside tables, and queried through SQL, with AI/BI dashboards and Genie consuming them. Like Snowflake's approach, it optimizes for breadth over depth: any connected tool can consume the definitions, but the modeling language is simpler than what dedicated tools offer.

Key features:

  • Metric views: YAML-defined measures and dimensions registered in Unity Catalog
  • Unity Catalog governance: permissions, lineage, and auditing in one place
  • AI/BI integration: dashboards and Genie use the same definitions

Pricing: No separate license. You pay for the Databricks compute (DBUs) that runs the queries.

How to Evaluate Semantic Layer Tools

Every tool in this guide has something it calls a "semantic layer." But the range of questions each layer can answer natively varies widely, and that difference compounds as AI becomes the primary analytics interface. So don't test the chat box. Test the layer underneath, starting with two concepts: the semantic ceiling and semantic leakage.

The semantic ceiling

Most conventional semantic layers handle the OLAP basics: lookup, slice-and-dice, filter/group, top-N. These resonate with end users familiar with pivot tables, and this is what most vendors show in demos.

But there is a non-trivial class of questions that conventional semantic layers cannot answer natively:

Question type Example Why it's hard
Nested aggregation "Average order value by category, then rank categories" Requires aggregating, then aggregating the result; most layers only support one level
Period-over-period "Revenue this month vs. last month, by region" Requires comparing the same metric at two different time grains
Cross-grain ratios "Each region's % of total revenue" The denominator (total) is at a different granularity than the numerator (per-region)
Running totals "Cumulative revenue over time" Requires window-function equivalents that live inside the semantic layer
Multi-step calculations "Filter → aggregate → compare → rank in one metric" Requires chaining operations that most layers only support as separate steps
Cohort analysis "Of Jan signups, how many bought within 7 days?" Requires parameterized time windows with cross-model joins

The picture

Your semantic layer sets your self-service ceiling.

↑ Above the ceiling · pulls an analyst back in

Nested aggregation

"Average revenue per active user."

Period over period

"MTD vs. previous MTD" or "YoY %."

Cohort analysis

"Of Jan signups, how many bought within 7 days?"

Cross-grain ratios

"Conversion rate" across different grains.

Cross-model metrics

"Revenue spanning orders plus products."

Parameterized metrics

"N-day conversion" for N = 7, 14, 30, 90.

Where conventional SQL semantic layers stop.

Every question above this line is a ticket back to the data team, and the same ceiling your AI agent inherits the moment you ship it.

Look-up

"Revenue last month."

Slice and dice

"Revenue by region by month."

Filter / group

"Active users by tier in APAC."

Top-N

"Top 10 products by sales."

↓ Below the ceiling · handled by any semantic layer

Adapted from the self-service ceiling diagram in Not all semantic layers are equal.

When a semantic layer hits this ceiling, three things happen:

  1. Data teams build derived tables, pre-computing metrics in dbt or LookML derived tables and bypassing the semantic layer entirely
  2. End users run calculations at the dashboard level, using table calculations, spreadsheet exports, and dashboard formulas instead of the governed layer
  3. Requests go back to analysts, the question becomes a ticket in the analyst queue, undoing the promise of self-service

The ceiling of your semantic layer is the ceiling of your AI analytics. If the layer cannot express a question natively, AI either falls back to raw SQL (reintroducing hallucination risks) or simply returns nothing.

Semantic leakage

Semantic leakage is what happens when business logic escapes the governed semantic layer into ungoverned locations:

  • Upstream into dbt models, derived tables, and near-duplicate transformations
  • Downstream into dashboard formulas, table calculations, spreadsheets, and custom report code
  • Side-channel into analyst memory and ad-hoc Slack clarifications

A name for the failure mode

Semantic leakage is the moment the answer leaves governed definitions.

Raw path
User question
LLM writes SQL from scratch
Ungoverned answer
Semantic layer path
User question
Can the semantic layer answer natively?
No
Yes
Semantic leakage
Governed answer

Falls back to the raw text-to-SQL path

Adapted from the semantic leakage flow in Not all semantic layers are equal.

Over time, metric definitions fork across these locations. Trust erodes. The semantic layer loses its authority as the single source of truth.

Semantic leakage compounds the problem. As end users ask increasingly sophisticated questions through AI interfaces, they will inevitably hit questions that the semantic layer can't answer natively. When that happens, AI falls back to text-to-SQL from scratch, reintroducing the hallucination and inconsistency the semantic layer was supposed to eliminate.

The consequence

AI lowers the cost of asking. Your data team pays it back.

When semantic leakage meets AI

Stakeholders ask

? ? ? ? ? ? ?

↓

AI writes SQL

↓

∅ Where peer review used to be

No reviewer in the loop

↓

Ships to dashboard

"Who confirms any of this is correct?"

Without a semantic layer that AI itself uses, there is no verifier. Confident-sounding answers ship with no audit trail.

Adapted from the AI verification diagram in Not all semantic layers are equal.

For a detailed visual walkthrough of the ceiling and leakage concepts, see Not all semantic layers are equal.

The evaluation checklist

Here are the questions that separate a PoC that will age well from one that will cost your team for years:

Receipts

Every question above the ceiling needs a native primitive.

Each primitive below is one less place where semantic leakage can happen.

Nested aggregation

group() | aggregate() | aggregate()

"Average monthly signups across years." Aggregate of aggregate, one governed metric.

Period over period

previous() · relative_period()
period_to_date()

Same period last year, YoY %, MTD vs. previous MTD. Reusable everywhere.

Cohort analysis

with_relationships()
filter(cohort_dim)

Segment a population by signup window, then track behavior at the cohort grain.

Cross-grain and cross-model

relationship()
with_relationships()

Numerator and denominator at different grains. Auto-composed across models.

Parameterized metrics

metric args · dataset fields

N-day conversion for N = 7, 14, 30, 90. One metric, query-time parameter.

Multi-step composition

pipe | · metric-of-metric

Compose group, filter, and aggregate as named steps. No monolithic CTE.

Adapted from the capability cards in Not all semantic layers are equal.

Test the layer, not the demo:

  • Can it express "average order value by region, then rank regions by that average"? (nested aggregation)
  • Can it calculate "month-over-month revenue growth by segment" without a pre-built derived table? (period-over-period)
  • Can it answer "each region's share of total revenue" in a single metric? (cross-grain ratio)
  • Can it define "N-day activation rate" once and parameterize N? (composable, parameterized metrics)

Find the leakage:

  • When the semantic layer can't answer a question natively, where does the logic go?
  • How many derived tables / dbt models exist solely to work around semantic layer limitations?
  • How many table calculations or workbook-level formulas duplicate metric logic?
  • Can a new analyst find all metric definitions in one place, or must they check dashboards, transformations, and Slack threads?
  • If AI generates a wrong answer, can a business user trace it to a governed definition, or is it raw SQL?

To see how the tools in this guide compare across these dimensions, go back to the comparison table.

Choosing the right architecture

Once you know what to test, choosing an architecture comes down to three questions:

  • Where do you want meaning to live? Choose BI-native if your team works mainly in dashboards and self-service exploration, open-source if you want to self-host or let coding agents build on governed definitions, standalone if many tools must share one definition of "revenue", and warehouse-native if you want consistency without replacing existing tools.
  • How complex are your metrics? If your analysts build derived tables for nested aggregations, period-over-period, or cross-grain ratios, you need a layer that handles these natively. Test it with a question like "Of customers who signed up in January, what was 30-day conversion vs. April's cohort, and how does ARPU compare for the two groups?"
  • How important is AI readiness? The higher a layer's ceiling, the more questions AI can answer with governed metrics before it falls back to raw text-to-SQL (see how BI tools with a programmable semantic layer differ).

Is Holistics a semantic layer?

You might have already heard this argument somewhere: a "true" semantic layer is a standalone, headless component that serves metrics to external tools and agents (think dbt Semantic Layer or Cube), and anything else, Holistics included, is just "a BI tool with built-in modeling", category-adjacent, and using it in place of a real semantic layer creates integration debt.

We build Holistics, so treat this as a disclosed answer rather than a neutral one. We don't think it's a fair argument. The critique defines "semantic layer" as "headless metrics API", then rules that everything not built that way is not the real thing. That is circular. A semantic layer should be defined by what it does: a centralized, governed definition of metrics and dimensions that guarantees the same question returns the same number everywhere. Headless delivery is one architecture for that job, not the definition of the job. By the same logic Looker's LookML would not qualify, and no one seriously argues that.

And the definition also goes both ways. A headless layer cannot answer a business question or govern an experience on its own. We can't talk about semantic layer, without talking about the consumption endpoint of the semantic layer. It is metric plumbing that still needs a downstream BI tool, notebook, or app to produce anything a person sees. Bolt one onto a separate BI tool and you now run two governance surfaces and inherit the gap between what the layer can express and what the downstream tool can actually render. That seam is exactly where semantic leakage lives.

The more important thing is that Holistics semantic layer is open.

Your Holistics semantic layer is queryable over an API. You can request a dataset's dimensions and metrics from outside Holistics and get results back as JSON, so the same governed metrics behind your dashboards can power Jupyter and Python, terminal scripts, internal services, and automation workflows. If a tool can make an HTTP request, it can query your dataset. That delivers the properties the critique reserves for "true" semantic layers:

  • No vendor lock-in. Metric definitions are accessible via API, not trapped inside a proprietary UI. You invest in the semantic layer knowing it stays portable.
  • Single source of truth. Define a metric once and query it everywhere, instead of rebuilding the same logic in each tool and watching the numbers drift ("why is revenue different here?").
  • Portable and expressive at once. The JSON you get back is computed by AQL, so external consumers receive nested aggregations and cross-grain ratios, not a lowest-common-denominator subset. Holistics also exposes an MCP Server, so AI agents query the governed layer and generate AQL rather than raw SQL.

So the "trapped in a proprietary tool" and "does not serve external tools or agents" claims do not hold.

So, is Holistics a semantic layer? Yes. It is a governed, code-defined layer of composable metrics that is expressive enough to answer questions most layers push into workarounds, and open enough to serve those metrics over an API to whatever consumes them. The more useful question is "does this layer answer my hardest questions natively, keep one definition of every metric, and let any tool or agent query it?"

Judge Holistics, and every tool in this guide, on that.