Skip to main content
← Back to BlogEngineering

A semantic layer that survives the next BI tool.

How we model business definitions in a way that stays correct when Slack, the web app, the API, and finance all ask the same question.

DA
Lea Roussel|Engineering·April 23, 2026·9 min read

Your MRR calculation broke last week. Not because Stripe changed their API. Not because a finance analyst made a typo. It broke because someone exported a CSV into a new tool, the aggregation logic diverged, and now three teams are reporting three different numbers for the same metric.

This is not a data quality problem. It's an architecture problem.

The problem isn't your data. It's your definitions

Most teams treat business intelligence as a reporting problem. They pick a BI tool, connect it to their warehouse, and start building dashboards. The problem is that the BI tool doesn't know what MRR means — it only knows what SQL you wrote. And the SQL you wrote probably reflects one person's interpretation of a business rule that was never formally defined anywhere.

When that tool gets replaced (and it will be), the SQL gets ported incorrectly, or not at all. The same thing happens with Slack-based reporting. Someone builds a weekly look in Metabase, it gets shared in Slack, the team grows, the look gets rebuilt in Tableau, someone adds a filter they shouldn't have, and now the number in the Slack message contradicts the dashboard. Nobody knows which one is right. Nobody has time to find out.

The failure mode isn't data loss. It's definition drift — the same concept, diverging across tools until nobody can reconstruct what the original intent was.

What a semantic layer actually does

A semantic layer is a formally defined, tool-agnostic representation of business logic. It's not a metrics store. It's not a dbt project. It's a layer that says: here is how we define active MRR, here is how we define a refunded order, here is how we define a qualified trial user — and here is every calculation that flows from those definitions.

In a B2B SaaS context, this means defining *cohort* differently than *plan_start_month*. It means defining *churn* as a net MRR event, not a cancellation event, because a customer who cancels but gets a grace period is still generating MRR until the grace period ends. Your BI tool doesn't know that. Your semantic layer does.

In DTC e-commerce, it means defining *repeat purchase rate* the same way in your Klaviyo attribution model, your Shopify export, and your Looker dashboard. If your post-purchase email targets customers who purchased within 90 days, and your cohort analysis groups by first purchase month, those two definitions need to match — or your retention story is incoherent.

Why the replacement cycle keeps breaking you

The average revenue operations team evaluates a new BI tool every 18-24 months. The average data team rebuilds its reporting stack every 12-18 months. Every time this happens, business definitions that were embedded in the previous tool's logic either get lost, approximated, or subtly changed.

The specific mechanism is usually this: a data analyst ports the SQL from one tool to another. The SQL looks correct because it returns numbers. Nobody validates the business logic against the original definition because the original definition was never documented — it was just "what the old dashboard showed."

A semantic layer survives this cycle because the definitions live outside the tool. You build your LookerExplore or your Metabase model or your Hex app on top of a defined layer. When you replace the tool, you reconnect to the same definitions. Nothing changes except the interface.

The definition that silently kills your growth story

Here's a real scenario from a data-led growth business: their email team was optimizing for *open rate* as defined by Klaviyo. Their cohort analysis team was optimizing for *repeat purchase within 60 days* as defined in their warehouse. Their paid media team was optimizing for * ROAS based on last-click attribution* as defined in their ad platform. Three teams, three definitions of the same customer journey, three investment decisions that were incompatible.

They didn't have a data quality problem. They had a semantic fragmentation problem. The moment they mapped their core business definitions to a shared semantic layer, the conflict became visible — and actionable. They stopped funding campaigns that inflated their attribution model and started funding the ones that drove actual cohort repurchase.

What you do next

Audit your three most important metrics — MRR, CAC, and 90-day cohort retention. Write down the exact definition of each one, including every filter, join, and exclusion. Then check whether that definition is implemented the same way in your warehouse, your BI tool, and any Slack report anyone relies on for a decision.

If you can't do that in under an hour, or if the definitions don't match across tools, you have a semantic layer problem — and it will cost you more than a tool replacement ever will.

You can test whether DataAgents would surface those definition conflicts before your next tool switch at dataagents.io.

See it in action

Connect your data sources and get your first automated report in under a week.

Book a Demo →
Ready when you are

See Your Data Clearly — Without Building a Data Team.

Connect your sources, standardize your metrics, and get decision-ready answers in minutes.

We use cookies to enhance your browsing experience, serve personalized ads or content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies.