Data & lakehouseMay 8, 20244 min readBy MLT Corp

Why Two Dashboards Show Different Revenue

When finance and marketing report different revenue, the data is rarely wrong. The definitions are. A semantic layer puts them in one place.

Why Two Dashboards Show Different Revenue

Key takeaways

  • Most dashboard disagreements come from different definitions, filters or time logic, not bad data.
  • A semantic layer defines each metric once so every tool reads the same answer.
  • Write the definition in plain language first, then encode it.
  • Give every metric an owner and a change process.

The meeting nobody wants

The weekly review starts and two numbers for last month's revenue are on the screen. One comes from the finance dashboard, the other from the sales report. Twenty minutes go to arguing about which is right, and the actual business question never gets asked. Each side is often correct according to its own logic, which is exactly the problem.

Before blaming the pipeline, check the definitions. In most setups the gap comes from a handful of predictable causes.

The usual suspects

None of these is a bug in the strict sense. Each is a reasonable choice that was made locally, in a query or a report, and never written down where others could see it.

What a semantic layer actually is

A semantic layer is a shared place where business metrics and dimensions are defined once and then consumed by every tool. Instead of each dashboard writing its own formula for revenue, the dashboards ask the layer for revenue and receive the same governed result. Depending on your stack, it can be a modeling layer in the warehouse, a metrics definition file, or a feature of a BI platform. The tool matters less than the discipline of having a single definition.

Think of it as a dictionary and a calculator combined. The dictionary states what net revenue means in words. The calculator implements that statement in code, so nobody re-derives it in a spreadsheet.

How to build one without a big program

  1. List the ten to fifteen metrics that appear in executive and board conversations. Ignore the rest for now.
  2. For each, write a plain-language definition: what is counted, what is excluded, which date applies, which currency rule, which time zone.
  3. Compare the definition with how each existing dashboard calculates it. Record the differences; they are your reconciliation list.
  4. Agree on one official definition with the business owner, usually finance for money and the relevant function for other metrics. Where two versions are both useful, give them different names, such as booked revenue and recognized revenue.
  5. Implement each definition once in the modeling layer, with tests, and point the dashboards at it.
  6. Retire or relabel the old calculations so nobody finds a rival version later.

Naming and ownership matter as much as code

The cheapest fix for many disagreements is a better label. A chart titled Revenue invites argument. A chart titled Net revenue, recognized at invoice date, USD tells the reader what they are looking at. Add the definition on hover or in a linked glossary.

Assign each metric an owner who approves changes. When a definition must change, for example after a new tax treatment or a new sales channel, record the effective date and, if history will shift, tell the people who use the numbers before the change ships.

Keep the layer honest

Add automated checks that compare key totals against a trusted source, such as the ledger, and alert when they drift. Review new dashboards for metrics that bypass the layer. Do not aim for a perfect model on day one; aim for the few numbers that cause the most arguments to be right and boring.

Start with the single metric that triggered your last dashboard argument, define it in one sentence, and make every report use that sentence.

← Back to all insights

Keep reading

Start here

Let's scope your pilot.

A 45-minute working session, no slides.

We reply within one business day.