← All writing
Data Modeling7 min read · Blog

Metrics that survive reorgs

Every reorg comes with a new leader who has opinions about what "active user" means. Without a model that holds the line, those opinions become forks — a tweak here, a filter there — and within two quarters no two teams report the same number. The metric didn't get more complicated. The model just had nowhere to anchor it.

Durable metrics aren't a governance problem you solve with a policy. They're a modeling problem you solve with structure. Here's the structure.

Conformed dimensions: define each noun once

A conformed dimension is a dimension that means the same thing everywhere it's used. One customer dimension, one date dimension, one product dimension — shared across every fact table in the warehouse. Orders, support tickets, and usage events all join to the same customer table.

This sounds obvious and is constantly violated. The common failure is each team building its own "customer" — sales from the CRM, product from the event stream, finance from billing — each subtly different. Three customer concepts means three versions of every per-customer metric, and a reorg is just the moment someone finally notices they disagree. Conform the dimension once and the disagreement has nowhere to live.

Stable grain outlives the org chart

Org charts are politics; grain is physics. "One row per user per day of activity" is true regardless of who owns the dashboard or how the team is sliced this quarter. When your facts are pinned to a stable grain, a reorg changes who looks at the number, not what the number is.

The metrics that shatter in a reorg are almost always the ones whose grain was implicit — defined by whatever query the old team happened to run. New team, new query, new grain, new number. Pin the grain in the model and that whole failure mode disappears.

Define it once, downstream of politics

The canonical definition of "active user" should live in exactly one place — a modeled metric or semantic definition — and everything else should reference it, not re-implement it. The goal is an economic one:

  • Make the canonical definition cheap to reuse. One import, one join, done. Reaching for the official number is the path of least resistance.
  • Make a private fork expensive. Redefining the metric should mean writing real SQL against raw tables and owning the difference in review. Friction in exactly the right spot.

When the right answer is also the easy answer, drift stops on its own. You're not policing definitions — you've made the correct one the lazy one.

Build for the reorg you can't see coming

You can't predict the next reorg, but you can make your model indifferent to it:

  • Conform the dimensions so every team shares the same nouns.
  • Pin the grain so the numbers don't depend on who's asking.
  • Centralize the definitions so there's one place to change and one place to trust.

Do that, and the new VP's opinion about "active user" becomes a one-line change in one place — applied everywhere, instantly, consistently — instead of a two-quarter archaeology project. That's the real payoff of modeling: not that the numbers are right today, but that they stay right after the org chart that made them is gone.

Also asListensoonSlidessoonPodcastsoonVideosoon

Have data that should be doing more?

Tell me about the pipeline that breaks, the metric nobody trusts, or the analysis stuck in a notebook. Let's operationalize it.