skip to content

How do you govern metric definitions so every team and BI tool reports the same number?

level: principalimportance: should knowfreq 36%

answer

  1. who is accountable for this number?
  2. definitions in version control, reviewed
  3. certification status visible where people choose
  4. the governed path must beat the workaround
  5. measure adoption, not metric count

basics

~20 s

Give every metric a named business owner, keep its definition in version control with review, publish certification status in a catalog, and make the governed path faster than writing private SQL. Governance that is slower than the workaround gets routed around.

solid answer

~50 s

Four things, in this order of importance. **Ownership.** Every published metric has a named business owner who decides what it means and a modelling owner who implements it. Without a person, disputes have no resolution and definitions drift by default. **One reviewed definition.** It lives in version control alongside the models, changes go through review with lineage-based impact analysis, and consumers reference it rather than copy it. **Visible status.** A catalog shows each metric's definition, owner, lineage and certification tier — certified, experimental, deprecated — so a consumer can tell whether the number they found is one anyone stands behind. **A fast governed path.** This is the part that actually determines success. If getting a metric added takes three weeks and writing your own SQL takes an hour, people write their own SQL. Small reviewed changes shipped quickly, plus a clearly-labelled uncertified sandbox for exploration, keep the certified layer authoritative. And when two definitions are both legitimate, name them distinctly rather than forcing one number.

code

yaml · 11 lines
yaml
metric:
  name: net_revenue
  status: certified            # certified | experimental | deprecated
  business_owner: controller
  modelling_owner: analytics-engineering
  source: mart_finance.fct_order_line
  definition: sum(gross_amount - discount_amount - refund_amount)
  excludes: [cancelled orders, internal test accounts]
  replaces: revenue_legacy
  replaced_by: null
  reviewed_on: 2026-07-01

go deeper

for a junior

Know that a published metric should have a stated owner and a visible definition, and that finding two similarly-named metrics means checking which one is certified before using it.

for a middle

Explain why definitions belong in version control with review, and what certification tiers communicate to a consumer choosing between two metrics with similar names.

for a senior

Show how lineage drives impact analysis on a definition change, how you migrate consumers rather than mutating a definition under them, and how scheduled reconciliation catches drift before a meeting does.

for a principal

Own the socio-technical reality: governance only holds if the certified path is faster than private SQL. Be ready to argue for measuring adoption, for accepting named plurality where the business genuinely has two measures, and for actually retiring metrics.

## Why this is a governance problem, not a tooling one Buying a semantic layer does not make numbers agree. It gives you a place to put the agreement once it exists. The failure mode in real companies is not "we had nowhere to define revenue" — it is "three people defined it, none of them was authorised to, and nobody removed the other two." So the design work is social as much as technical. ## Ownership: a name, not a team inbox Each published metric needs two owners: - A **business owner** who decides what it means. For revenue that is finance; for churn it is whoever is accountable for churn. This person resolves definitional disputes, and their authority is what makes the resolution stick. - A **modelling owner** who implements and maintains it, usually an analytics engineer. A metric with no named owner is by definition uncertified, and should be labelled that way in the catalog. The absence of an owner is itself information consumers need. ## Definitions as reviewed code Definitions belong in version control next to the models they read: text, diffable, reviewed. That gives you the ordinary software affordances — history of what the metric meant when, a review conversation attached to each change, and the ability to say precisely what changed and when a number moved. The review should include **impact analysis from lineage**: which dashboards, extracts and downstream metrics reference this definition. A change to `net_revenue` touching two hundred dashboards is a different decision from one touching two, and the reviewer cannot know which without the graph. For material changes, prefer publishing the new definition alongside the old under a distinct name, migrating consumers, then retiring the old one — rather than mutating a definition under live consumers and letting a board pack move overnight. ## Certification tiers make trust explicit Three tiers cover most needs: - **Certified** — owned, reviewed, tested, safe to use in reporting that leaves the team. - **Experimental** — someone's work in progress, visible so it can be reused and eventually promoted, explicitly not for external reporting. - **Deprecated** — still resolving but scheduled for removal, with the replacement named. The tier must be visible at the point of consumption, not buried in a wiki. A consumer choosing between two similarly-named metrics needs to see which one is certified while they are choosing. ```yaml metric: name: net_revenue status: certified business_owner: controller modelling_owner: analytics-engineering definition: sum(gross_amount - discount_amount - refund_amount) source: mart_finance.fct_order_line replaces: revenue_legacy notes: Excludes cancelled orders and internal test accounts ``` ## Make the governed path the fast path This is where most metric-governance programmes actually fail. Analysts are not adversaries; they are people with a deadline. If the certified path takes three weeks of queue and the private-SQL path takes an hour, private SQL wins every time, and no policy document changes that arithmetic. Practical levers: keep metric additions small and shippable in days, let analysts propose definitions themselves through review rather than filing tickets, and provide an explicit uncertified sandbox where exploration is legitimate and clearly labelled. Exploration is not the enemy — *unlabelled* exploration reaching a board deck is. ## Detect drift, don't just forbid it Add scheduled reconciliation: the certified metric versus the finance system of record, or two derived reports that should agree. Alert on divergence. Track adoption too — the share of dashboards built on certified metrics is a better health measure than the number of metrics defined, because it tells you whether governance is being used or bypassed. ## Accept legitimate plurality Sometimes two definitions are both correct because they answer different questions: recognised versus booked revenue, active users on a 7-day versus 30-day window. Forcing one number does not settle that; it drives the second definition into a spreadsheet where it is invisible and unversioned. Name both explicitly, publish both as certified, and document the expected relationship between them. What you are eliminating is *unnamed* plurality — two things called `revenue` — not the existence of two real business measures. ## Withdrawal is part of governance A metric nobody owns and nobody uses is a liability, because someone will eventually find it and trust it. Mark it deprecated, name the replacement, notify the consumers lineage identifies, give a notice period, then actually remove it. Governance programmes that only ever add definitions produce a catalog of thousands of metrics that is no more trustworthy than having none. ## In an interview Lead with ownership, because that is the part candidates skip. Then reviewed definitions, visible certification, and — the answer that shows you have run this rather than read about it — making the governed path faster than the workaround, and measuring adoption to find out whether you succeeded.

  • How do you know whether metric governance is actually working?
    Measure adoption, not inventory. The share of dashboards and extracts built on certified metrics tells you whether people use the governed path; the number of metrics defined tells you nothing. Add a scheduled reconciliation against the system of record so drift is detected automatically, and watch how often disputes still reach a meeting.
  • An analyst needs a new metric today and the review process takes two weeks. What do you do?
    Unblock them and fix the process. Let them build it in a clearly-labelled uncertified sandbox so the work happens in the open, and treat the two-week turnaround as the actual defect. If the governed path is slower than private SQL, people take the private path and the certified layer stops being authoritative — no policy fixes that arithmetic.
  • How do you retire a certified metric that dashboards still reference?
    Use lineage to find every consumer, mark the metric deprecated with the replacement named at the point of consumption, notify the owners with a dated deadline, and help migrate the high-traffic ones. Then remove it. Leaving it resolving indefinitely means the deprecation never happens and both definitions live on.
  • Two teams both insist their definition of active user is correct. How do you resolve it?
    First check whether they are answering different questions — a 7-day and a 30-day window are both valid and just need distinct names, published and documented with their relationship. If they genuinely mean the same thing, it is a decision, not a debate: the named business owner picks, it is written once, and the losing implementation is deleted rather than left running.

saying these in an interview costs you the question

  • Relies on a wiki of definitions with no owner or enforcement
  • Adds process without making the governed path faster
  • Counts metrics defined instead of measuring adoption
  • Forces one number when the business genuinely has two
  • Never deprecates, so the catalog fills with untrusted metrics

context