Semantic Layer vs. Metrics Layer: What's the Difference?

Both terms appear in every modern data architecture diagram. They're used interchangeably in conference talks, Slack threads, and vendor marketing. And almost nobody defines them precisely.
Here's the difference, why it matters, and what it means for how you build your data platform.
What a Metrics Layer Does
A metrics layer has one job: define how business metrics are calculated and make those definitions available to every tool in your stack.
Take Revenue. Without a metrics layer, the formula lives in a dashboard filter, a dbt model, a Python notebook, and three different analysts' heads. With a metrics layer, the formula is defined once:
Revenue = SUM(order_total) WHERE status = 'completed' AND refunded = FALSE
Every dashboard, API endpoint, and AI agent that needs "Revenue" pulls from this single definition. Change the formula in one place, and it updates everywhere.
Metrics layers are typically code-defined. dbt's semantic layer uses YAML specifications. Cube.js uses JavaScript schemas. The metric definition includes the calculation, the time dimension, the allowed filters, and the grain.
This is valuable. But it's incomplete.
What a Semantic Layer Does
A semantic layer does everything a metrics layer does, plus more. It covers the full abstraction between raw data and the people (and machines) querying it.
| Capability | Metrics Layer | Semantic Layer | |---|---|---| | Metric definitions (KPI calculations) | Yes | Yes | | Documentation (table/column descriptions) | Sometimes | Yes | | Labels and tags (governance, discoverability) | No | Yes | | Join relationships (pre-defined paths) | Limited | Yes | | Access policies (row/column security) | No | Yes | | Query optimization (caching, pre-aggregation) | No | Often |
A metrics layer tells you how to calculate a number. A semantic layer tells you what the data means, how to calculate it, who can see it, how to join it, and where it came from.
The Relationship: Subset, Not Alternative

A metrics layer is a component of a semantic layer. Not a replacement.
Think of it like a spreadsheet. The metrics layer is the formulas: revenue calculations, growth rates, ratios. The semantic layer is the entire workbook: formulas, column headers, sheet labels, formatting, and sharing permissions. You can't have a useful workbook with just formulas. And you can't have a complete semantic layer without metric definitions.
The confusion arose because different vendors built different pieces first. dbt built the metrics layer and called it a "semantic layer." BI tools like Looker built semantic models (LookML) focused on relationships and query patterns. Platforms like Dremio built a full semantic layer that includes views, documentation, governance, and AI context in one integrated system.
Why the Distinction Matters
If you build a metrics layer but skip the rest of the semantic layer, you leave three gaps:
No documentation means no AI accuracy. When an AI agent generates SQL, it needs more than metric formulas. It needs to know what each column represents, which tables to join, and what filters are valid. Metric definitions alone don't provide that. Wikis, labels, and column descriptions do. Without them, AI agents hallucinate joins and misinterpret fields.
No security means enforcement happens ad hoc. A metrics layer doesn't include row-level security or column masking. Those policies get applied separately in each BI tool, each notebook, each API. One missed policy, and sensitive data leaks to the wrong role.
No join paths means redundant work. If the metrics layer defines "Revenue" but doesn't define how to connect the Orders table to the Customers table, every consumer figures out the join independently. Some get it right. Some don't. You get conflicting results from a formula that was supposed to be centralized.
What This Looks Like in Practice
A platform with a full semantic layer, like Dremio, provides:
- Virtual datasets (SQL views) that define business logic across federated sources
- Wikis that document tables and columns in human- and AI-readable format
- Labels that tag data for governance (PII, Finance, Certified)
- Fine-Grained Access Control that enforces row/column security at the view level
- Reflections that automatically optimize performance for the most-queried views
- AI-generated metadata that auto-populates descriptions and label suggestions
Compare that to a standalone metrics layer, which gives you metric definitions and (sometimes) basic documentation. The metrics layer is the engine. The semantic layer is the complete vehicle.

What to Do Next
If you already have a metrics layer, audit what's missing. Do your metric definitions include documentation? Labels? Security policies? Join paths? If not, you have a piece of the semantic layer, not the whole thing.
Completing the picture means either extending your metrics layer with those capabilities, or adopting a platform that provides them natively.