Same Data, Three Different Numbers
Ask a simple question: "What was our net revenue in the East region last month?" You'll get three different answers from sales, operations, and finance. And each one is convinced they're right.
Sales counts the contract value they signed. Operations looks at what customers actually paid, minus refunds. Finance follows accounting rules—only recognizing revenue when it's earned. They're not sloppy. They're just answering three different questions.
I once saw a company argue for a week over a $2M discrepancy. Turned out the sales team was including a deal that hadn't closed yet, and finance was excluding it. Neither was wrong. They just had different definitions of "revenue."
Data Is Just Data, Not Meaning
Underneath it all, a database holds fields. Take a single order record: order_id: 10086, amount: 999, status: 3, created_at: 2026-07-12T14:30:00+08:00. The database knows amount is a number and status is an integer. But it has no clue whether amount is pre-tax or post-tax, gross or net of refunds.
Even if you name the field revenue, that label doesn't tell you if it's the signed amount, the paid amount, or the recognized amount. The database stores raw materials, not meaning.
One Metric, Many Versions
So when you give everyone access to the same data warehouse, they don't automatically speak the same language. Each team writes their own SQL, applies their own filters, picks their own date ranges. The result? The same metric name pops up in a dozen reports, each with a slightly different number.
BI tools and AI make this mess worse. They let more people query data, but if definitions aren't centralized, every new report just adds another version of the truth. I've seen a company with 47 different definitions of "active user." 47!
You Have to Decide What to Measure
No tool can tell you whether 800万, 1000万, or 1200万 is the "right" number. They're all right—for different purposes.
What you need is not to force them into one number, but to give each concept a clear name, define when to use it, spell out the calculation rules, and assign someone to own that definition. That's not a technical problem. It's a governance problem.
Making Definitions Executable
Once you've agreed on definitions, you need to put them somewhere machines can use them. That's where a semantic layer comes in. It sits between your business language ("successful payments", "East region", "last natural month") and your database schema (payments.pay_amount, payments.payment_status).
For example, you might define "platform net payment" as: successful payments in the period minus successful refunds in the same period. The semantic layer maps each piece of that definition to the right tables, fields, and joins.
From Question to Answer, With Context
When someone asks "What was net revenue last month?" the system should first ask: "Which one? Contract value, net payment, or recognized revenue?" Then it runs the query and returns not just a number, but the metric name, region, time range, timezone, data refresh time, and the user's permission scope.
That context is what makes the answer trustworthy. Without it, a number is just a number—and you're back to three different answers.
Reusable Definitions Beat Repeat Queries
The real payoff of a semantic layer is that definitions become reusable. Instead of each analyst reimplementing the same logic in SQL, they all query the same semantic model. BI reports and AI tools can share the same definitions.
So next time you see a disagreement in the numbers, don't blame the data. Look at the definitions. And if you can't find them written down anywhere, that's your real problem.
Comments (0)
Please sign in to post a comment.
Don't have an account? Create one
No comments yet. Be the first to comment!