Meerkats AI
← All posts
Data·15 May 2026·8 min read

Why every dashboard shows a different revenue number (and the fix)

Shopify, GA4, Meta and your BI tool will give you four different revenues for the same month — every time. The cause is definitional, not technical. The fix is a semantic layer.

TL;DR
  • Four tools, four revenue numbers is normal: they differ on timing, scope (gross vs net), attribution lens and currency/tax treatment — all defensible, all different.
  • The fix isn't another dashboard; it's defining each metric exactly once — a semantic layer — and making every tool and agent read from it.
  • For a D2C brand this doesn't need a data team: the spine is ~5 sources and ~20 governed metrics.

Put last month's "revenue" from Shopify, GA4, Meta and your BI tool side by side. You'll get four numbers, sometimes 30% apart. The usual response is to distrust one tool, then another, then quietly stop looking. The correct response is to realise nobody defined the word.

The four ways tools disagree

AxisThe hidden questionExample divergence
TimingOrder placed, paid, or fulfilled?COD order placed May 31, delivered June 6 — which month's revenue?
ScopeGross, or net of discounts/returns/GST/shipping?₹100 order with 20% discount + GST: 'revenue' spans ₹67–₹100
Attribution lensAll orders, or orders this tool takes credit for?Meta reports Meta-attributed revenue; Shopify reports all
IdentityWhat counts as one customer / one order?Split payments, edited orders, exchanges — each tool dedupes differently

None of these is a bug. Each tool answers its own question correctly. The organisation fails because it thinks the four tools are answering the same question.

The compounding cost

  • Meetings that open with twenty minutes of "whose number is right" before any decision.
  • Metrics that drift silently: someone changes a filter in a BI tool, "CAC" means something new, nobody knows.
  • Agents and automations amplifying the mess — an AI querying inconsistent definitions returns confident nonsense.
  • The worst one: teams optimising different definitions of the same word. Marketing's "profitable" and finance's "profitable" diverge by exactly the definitional gap.

The fix: define once, read everywhere

A semantic layer is a thin, boring, decisive thing: a single governed place where each business metric has exactly one formula, one timing rule, one scope — and every chart, query, alert and agent reads from it instead of re-deriving its own.

Example: one governed definitionnet_revenue = item_total − discounts − returns − GST (timing: payment captured)

With that in place, "revenue" in the founder's Monday view, the growth lead's cohort chart and the agent's answer to "did we grow?" is the same number, by construction. Disagreement becomes impossible rather than merely discouraged.

What a D2C-sized spine actually looks like

ComponentContentsD2C reality
SourcesAd platforms, store, payments, cost sheet, CRM/email~5 connectors, not fifty
JoinsOrder ↔ ad click (UTM/click-ID), order ↔ costs, customer ↔ ordersThe hard 20% that makes everything else honest
Governed metricsRevenue, CM, MER, nCAC, repeat rate, RTO rate…~20 definitions cover 95% of decisions
ConsumersDashboards, alerts, agents, weekly briefAll read the layer; none invent math

Build vs buy, honestly

The enterprise version of this (dbt + a metrics store + BI governance) is real and needs a data team you don't have and shouldn't hire at ₹10–100 Cr scale. The D2C-sized version is opinionated plumbing: fixed sources, known joins, pre-governed metric graph, done in days not quarters. That's the layer Meerkats ships as the foundation under its agents — because we'd rather argue about strategy than about whose spreadsheet is right.

The one-sentence test
Ask two people at your company for last month's CAC. If you get two numbers, you don't have a metrics problem — you have a definitions problem, and no amount of dashboarding fixes a definitions problem.

FAQ

Is a semantic layer the same as a data warehouse?
No. The warehouse stores data; the semantic layer defines meaning on top of it. You can have a warehouse full of data and still four definitions of revenue — most companies do.
We're small — isn't this premature?
The disagreement tax starts the day you have two tools. Installing definitions at ₹1 Cr/month is an afternoon of decisions; retrofitting at ₹10 Cr/month is an archaeology project.
Which revenue definition is 'correct'?
Whichever you pick — the power is in picking once. Most brands: net revenue (post-discount, pre-GST) on payment capture for operating decisions, with gross kept as a secondary lens.
How does this relate to attribution?
Attribution decides which ad gets credit for an order; the semantic layer decides what the order is worth and when it counts. You need both — attribution without governed definitions just misallocates a disputed number.

See your real numbers, not the platform's.

Connect Shopify, Meta and Google. Reconciled truth in 20 minutes.