Resources
What a semantic layer is, and whether you need one.
One definition, read by every tool that asks, for every client. Worth the service at a certain size, overhead below it.
- 6 minute read
- 5 sections
Part 1
The problem it exists to solve
The same metric gets rebuilt in every tool that shows it. The dashboard carries its own formula, the spreadsheet carries another, and whatever answers questions in plain English works out a third. Nobody made a mistake. They were built at different times by different people from the same raw tables.
A semantic layer moves the definition out of the tools and into one place they all ask. A tool requests the metric by name and gets back the agreed calculation, rather than being trusted to reproduce it.
Part 2
What is actually in one
Less than the name suggests. Four kinds of statement, written once and versioned like code.
Metrics
A name and the expression behind it. This is the part people picture, and on its own it is not enough to make the metric safe to use.
Dimensions
How the metric may legitimately be sliced. Stating this stops a metric being broken down by something it cannot be broken down by, which is a common source of totals that do not add up.
Joins and grain
Which tables relate, on which key, and what one row represents in each. Grain is the part that silently multiplies figures when it is left out, and it is left out often.
Access rules
Who may see which rows. Holding this beside the definition is most of the appeal for anyone reporting on separate clients out of shared tables.
Part 3
The distinction that decides it for you
Modelled tables put the consistency into the data itself. A semantic layer puts it into a service sitting in front of the data. Both end with one answer, and the difference is where the agreement is enforced.
Tables can be read by anything that speaks SQL, which includes every reporting tool and every AI agent, with nothing to adopt. A layer has to be spoken to, so every tool either goes through it or quietly does not.
So the rule of thumb is about churn rather than size. If your definitions change often and several tools read them, a layer earns the service it costs. If your metric set is stable, model the consistency into the tables and skip the extra hop, because the second version of the truth you are trying to avoid is exactly what a bypassed layer creates.
Part 4
Why this turned into an AI question
An agent answering a question about a client's marketing picks columns and writes a query. It can only use meaning that is reachable from the data. A definition held in a dashboard's configuration is invisible to it, which is why a chatbot and a dashboard built on the same warehouse can disagree.
That is the real requirement, and a semantic layer is one way to meet it rather than the only one. Named columns, a stated grain and one metric name per concept meet it too. What does not meet it is a definition that exists only inside a reporting tool.
In practice
Where SightShark fits
The transform step does this job in the tables. One name per metric, one type, one grain and one currency, applied in SQL inside a warehouse you own, which means the definition and its implementation are the same artefact and cannot drift apart.
Anything that reads SQL reads the same figures. The client dashboards and the chatbot are both reading the modelled tables rather than each carrying a private idea of what a metric is.
See how the platform worksQuestions
Questions people ask
What is a semantic layer?
A single place that holds what each metric means, so that every tool asks for the metric by name instead of rebuilding the calculation itself. It typically holds metric expressions, the dimensions a metric may be sliced by, the joins and grain between tables, and who is allowed to see which rows.
Do I need a semantic layer, or are modelled tables enough?
Modelled tables are enough when your metric set is stable, because consistency lives in the data and anything that speaks SQL reads it with nothing to adopt. A separate layer earns its cost when definitions change often and several tools read them. The failure worth avoiding is a layer some tools bypass, since that adds a definition rather than removing one.
Does a semantic layer help AI answer questions correctly?
It helps because it puts meaning somewhere a query can reach, which is the actual requirement. An agent cannot read a definition that exists only in a dashboard's settings. Consistently named columns and a stated grain in the tables themselves satisfy the same requirement without a separate service.
Also worth reading
- 7 min read
How to report a client's visibility inside AI answers.
Most of it never becomes a visit. What is left is a sample, and a sample is only worth reporting if it has a method.
Read it - 6 min read
How to set up alerts across client accounts, and keep them worth reading.
An alert that fires every day becomes a filter rule. Four things are worth interrupting somebody for.
Read it - 6 min read
Why reporting breaks as the roster grows.
The setup that was fine for five clients fails at thirty, and it fails in three specific ways.
Read it
Pricing
Priced by the clients you report on.
Starter
$499 /month
Up to 20 clients
Growth
$999 /month
Up to 50 clients
Enterprise
Custom
No cap on clients
Get started
Want this running on your own data?
Book a call with someone who can answer the technical questions.