Metrics that survive the boardroom: building a semantic layer your CFO will defend
The 'whose number is right' problem is a governance failure, not a tool failure
Every leadership team has had the meeting. Marketing reports MQLs at one number, sales reports them at another, finance has a third, and the next 40 minutes are spent trying to reconcile the three rather than discussing what to do about them. The reflex is to blame the BI tool. The actual cause is that the metric was defined three times, in three places, by three teams, with three slightly different filters.
A semantic layer makes that meeting impossible. There is one definition of MQL. It lives in version-controlled code. Every dashboard, every Slack alert, every embedded chart pulls from the same definition. When the definition changes, it changes everywhere, and the change is visible in a pull request review.
A governed semantic layer defines metrics once and propagates everywhere
The shape of the semantic layer is straightforward: a directory of metric definitions, each one a file that specifies the source tables, the joins, the filters, the dimensions, and the aggregation. Peer-reviewed via pull request. Tested in CI against a regression set. Deployed through the same pipeline as application code.
- Metrics governed
- 1,200 across our analytics deployments
- Sources wired
- 40+ avg per tenant
- Refresh cadence
- 5 min sub-minute available
- Lineage coverage
- 100% tile → source row
Lineage from dashboard tile to source row is the audit trail your CFO needs
When a board member asks 'where does this number come from,' the answer should be a clickable trail: this tile is computed from this metric definition, which queries this materialized view, which is built from these source tables, which were last refreshed at this timestamp from these systems. End to end, in 10 seconds.
Without that lineage, every CFO defending a number is implicitly trusting a chain of analysts and dashboards she cannot inspect. With it, she can answer the question in real time and move on.
Self-serve analytics work only when bounded by the semantic layer
Every BI vendor pitches self-serve analytics — operators ask questions in plain language, the system generates the answer. It works exactly as advertised when constrained to the certified semantic layer, and it produces hallucinations and contradictions when allowed to write arbitrary SQL against the warehouse.
Our deployments wire the natural-language interface to the semantic layer only. Operators ask 'what was Q3 revenue by region,' the system identifies the certified revenue metric and the region dimension, generates the query against the metric definition, and returns the answer with a citation. If the question maps to no certified metric, the system says so and routes the request to the analytics team to define it.
Forecasts with confidence intervals beat single-line projections
Most forecasting tools return a single line that always trends upward. A useful forecast returns a probability distribution: the median, the 80% interval, and the 95% interval, with the inputs and assumptions interrogable. Boards make different decisions when they see a forecast as 'somewhere between $42M and $58M with 80% confidence' versus 'the line says $50M.'
The Business Intelligence Analytics module ships Bayesian and classical forecasting side by side. The Bayesian models give you the distribution and the assumptions; the classical baselines give you the sanity check. We have not yet seen a finance team that, given both, prefers the single line.
Anomaly detection with explanations beats anomaly detection with alerts
An alert that says 'metric X moved' generates noise. An alert that says 'metric X moved 18% week-over-week, driven by the West region, driven by these three customer segments, attributable to these specific transactions' generates action. The difference is not better thresholds; it is dimension drill-down baked into the detection itself.
We deploy continuous anomaly monitoring on the metrics that matter — revenue, gross margin, churn, CAC, pipeline velocity — and the alert payload includes the root-cause decomposition. The signal-to-noise on the alert channel is what makes the difference between operators acting on it and ignoring it.
Row, column, and cell-level access control belongs at the query layer
Access control on dashboards is necessary but insufficient. The right control point is the query layer, where every query is rewritten with the user's access scope before it touches the warehouse. A regional VP querying revenue gets her region; the global CFO gets the consolidated view; the same dashboard tile, same metric definition, different result.
This sounds like an implementation detail until the auditor asks how you prevent a regional manager from seeing another region's data, and the answer cannot be 'we trust the dashboard.' It has to be 'the query layer rewrites every query against the access policy, here is the policy, here is the test suite that proves it works.'
Operating the semantic layer is an analytics-engineering function
Most organizations underestimate the operating discipline a semantic layer requires. Metric definitions are code, code requires review, review requires owners, owners require a backlog. We typically deploy the semantic layer alongside an analytics-engineering function — two to four people who own the metric catalog, run the review process, and partner with finance and operations on definition changes.
Without that function, the semantic layer drifts within six months. With it, the metric catalog becomes a strategic asset and the 'whose number is right' meetings stop happening.
The first board meeting after we shipped the semantic layer, our CFO presented the same numbers the operating team was looking at all month. Nobody had to reconcile anything. It is the smallest thing and it changed how we run the company.
— Head of Finance, growth-stage SaaS
How long it takes to stand up
A first useful semantic layer ships in 8–12 weeks: weeks 1–3 to inventory the metrics in flight and catalog the data sources, weeks 4–8 to build the first 80–120 metric definitions covering the leadership reporting pack, weeks 9–12 to wire dashboards and natural-language interfaces against the certified layer. The catalog grows from there, but the payoff is in the first 100 metrics.
Frequently asked
What is a semantic layer in BI?
A semantic layer is a governed, version-controlled set of metric definitions that sits between your data warehouse and every consumption surface — dashboards, embedded charts, natural-language query, Slack alerts. Each metric is defined once, peer-reviewed, tested, and propagates everywhere. It is what guarantees that 'revenue' means the same thing in marketing's dashboard as in finance's board pack.
Why do organizations have multiple definitions of the same metric?
Because metrics get defined ad hoc by whoever needs them first, in whichever tool they were using, with whichever filters seemed reasonable that day. Without a central catalog, marketing's MQL definition diverges from sales's, finance builds a third for board reporting, and reconciliation becomes a recurring meeting. A semantic layer eliminates the divergence by making the catalog the single source of truth.
How is a semantic layer different from a data warehouse?
A data warehouse stores the underlying data; a semantic layer stores the business logic that turns that data into metrics. The warehouse answers 'what raw transactions exist'; the semantic layer answers 'what does revenue mean, with what filters, joined to which dimensions.' One is infrastructure, the other is governance. Both are required.
Can a semantic layer support self-serve analytics safely?
Yes, when the natural-language or self-serve interface is constrained to the certified semantic layer rather than allowed to write arbitrary SQL against the warehouse. Operators ask questions in plain language, the system maps to certified metrics and dimensions, and answers come back with citations. If a question maps to no certified metric, the system says so rather than improvising.
How long does it take to build a useful semantic layer?
Eight to twelve weeks for a first useful version covering the 80–120 metrics behind leadership reporting. Weeks one through three catalog existing metrics and data sources. Weeks four through eight build the first metric definitions. Weeks nine through twelve wire dashboards and self-serve interfaces. The catalog grows from there, but the leadership reporting pack should land in the first quarter of the engagement.
Does a semantic layer require a specific BI tool?
No. The semantic layer is a layer above the warehouse and below the consumption surfaces. It works with Looker, Tableau, Power BI, Mode, embedded analytics, Slack alerts, and natural-language interfaces simultaneously. The point of the layer is that it does not depend on which tool the consumer happens to be in; the metric is defined once and consumed anywhere.
Who owns the semantic layer day to day?
An analytics-engineering function — typically two to four people in mid-market deployments — owns the metric catalog, runs the review process for definition changes, and partners with finance, operations, and product on what gets defined. Without a named owner, the catalog drifts within six months. With one, it becomes the source of truth the rest of the business relies on.
More from Field Notes
All essays
BI & Analytics Probabilistic forecasting beats single-line projections in board decks
Why boards make better decisions with probabilistic forecasts — confidence intervals, scenario sensitivity, and the analytics architecture behind them.
BI & Analytics Anomaly detection on KPIs that actually matter
Why most anomaly detection misses the metrics it should catch and triggers on noise — the architecture for KPI monitoring that operators trust.
BI & Analytics Embeddable dashboards in Slack, ERP, and customer portals — without governance loss
How to embed BI dashboards in Slack, ERP modules, and customer portals while preserving the semantic layer, access control, and audit trail.