Skip to main content
GullySystem
A practical guide

What is a semantic layer and why dashboards need one

Ganesh HSStrategy and Technology, GullySystem
Practical advice · 5 min read

In this guide 6 sections
The short answer

A semantic layer is a single, shared set of business definitions that sits between your raw tables and your dashboards. Margin, outstanding and active customer are written once there. Power BI, Metabase and Looker Studio then read the same formula, so they return the same figure.

Why two dashboards show two different margins

Finance opens a Power BI report and sees one margin, while sales opens a Metabase chart and sees another. Neither is wrong. Each builder wrote a private formula inside their own report, and the two formulas treat freight, discounts and returns differently.

Most dashboards are built straight on tables, so every chart carries its own arithmetic. Copy a chart into a new report and that arithmetic travels along, drifting a little each time someone edits a filter. It adds up.

The fault is rarely in the data. It is in the definition. Nobody wrote down what margin means across the whole company, so each report invented its own answer and defended it. The owner then loses half of every review meeting to arguing over whose slide is correct, instead of deciding what to do about a falling product line.

  • Margin with and without freight
  • Outstanding by invoice date or by due date
  • Active customer in the last 90 days or the last year
  • Revenue before or after credit notes

What the semantic layer actually holds

Treat it as a dictionary the dashboards must obey. Each entry is a measure, such as net revenue or outstanding receivables, and beside it sit the formula, the filters and the tables it joins.

It also holds the dimensions people slice by, such as customer, branch, product family and month, with the join paths fixed once. A report builder drags in a measure and a dimension and cannot get the join wrong.

Where it lives differs by tool. Power BI keeps it in the dataset model and Looker uses LookML. Metabase has models and metrics, while a warehouse view or a dbt project does the same job for any tool that lacks its own.

  • Measures with one formula each
  • Dimensions and their join paths
  • Filters such as excluding cancelled orders
  • A named owner for every definition

How it keeps three tools in agreement

The trick is placement. If every definition lives in one place and every tool reads from it, the tools cannot disagree. The layer can be as plain as a set of curated database views that the BI tools query exclusively.

Raw tables are hidden from report builders. They see a view called finance_margin_monthly, not forty joined sources, and Power BI, Metabase and Looker Studio all query that same view, so the number agrees on every screen.

Change a definition once and every report follows. That is the real payoff. The month you decide to net credit notes against sales, a single edit corrects every chart, export and scheduled email that quotes revenue. Auditors and lenders asking how a figure was produced get one written answer instead of three.

When a small business does not need one yet

A single report, built by one person on one source, needs no layer, because a well-named view is enough. Skip the ceremony. Do not build machinery for a problem you do not yet have. Add the layer when a second report, a second tool or a second builder appears, because that is the moment definitions begin to fork.

The signs you have outgrown that are plain. Two people give the owner different numbers for the same month. A new hire rebuilds a report from scratch because nobody trusts the old one, or the finance head keeps a private spreadsheet to check the dashboard.

  • Two reports disagree on a headline number
  • Report builders keep re-deriving the same measure
  • Spreadsheets are used to check the dashboard

Start with ten definitions, not a whole model

Pick the ten numbers your management meeting argues about. Write each as one sentence, then as a formula, then as a list of exceptions, remembering that a returned item and a cancelled order are the usual troublemakers.

Have the finance head sign off each line. Then build the layer for those ten only, point one dashboard at it, and compare the results against the old figures. Explain every gap before widening the scope, and keep a note of each fix so the next hire sees why a definition changed.

Semantic layer starter sheet

A one-page worksheet with ten rows, one per business number. Columns are measure name, plain-English meaning, formula, source table, filters, edge cases, owner and the dashboards that currently show it. A final column records whether the old and new figures match.

Open a blank worksheet to print

Questions owners ask

Is a semantic layer the same as a data warehouse?

No. A warehouse stores the data. A semantic layer defines what the numbers mean. You can have either without the other, though a warehouse view often serves as a small semantic layer.

Do I need a semantic layer if I only use Power BI?

Less urgently. Power BI’s dataset model already acts as one. It matters again when a second tool, or a second dataset, starts reporting the same measures.

Who should own the definitions?

A business person, usually the finance head, owns the meaning. A technical person owns the implementation. Splitting the two keeps arguments about numbers out of the code.

How long does a first version take?

It depends on how clean the sources are and how many measures you start with. Ten well-chosen definitions on one source is a sensible first scope.

Browse all guidesBack to top ↑
Next step

Have a specific situation to work through?

This article covers the general case. Tell us what you’re actually dealing with and we’ll respond directly.

Share Your Requirements