You bought a semantic layer to end the “which number is right” argument. Eighteen months later you have 200 metrics and the same argument, one level up.
A semantic layer is a good idea: one governed place to define “revenue,” “active user,” “churn,” so every tool reads the same definition. The trouble starts because the semantic layer inherits the same ownership gap that broke the dashboards it replaced.
Three ways it turns into invisible debt:
- Metric sprawl. Every team adds its own variant. revenue, revenue_net, revenue_v2. The layer that promised one definition now holds five, and nobody deletes the old ones.
- Governance gaps. Anyone can add a metric, nobody reviews them, no owner per definition. Within a year it’s as ungoverned as the warehouse was.
- Migration lock-in. Definitions get written in one vendor’s syntax. Moving off it later means rewriting every metric, so you don’t, and you’re a little more married to the vendor each release.
The fix is boring and organizational, not technical:
- One owner per metric, named in the definition file. No owner, no metric.
- A review step to add or change a definition, the same way you review code.
- A quarterly cull of unused metrics. If nothing queried it in 90 days, it goes.
A semantic layer with governance is a real foundation for the AI agents that need trustworthy definitions to reason over. Without governance, it’s the same mess, one layer up.
How many definitions of ‘active user’ live in your semantic layer right now?
