Skip to content
Back to challenges
Conformed Dimensions and the Bus MatrixQuick Decisionintermediate5 min

The conformance trap

Recognize the conformance trap: building one customer dimension per process instead of sharing one.

How this preview works
Preview this problem before signing in. Sign in to save progress and submit work.

Concept

conformed-dimensions

The primary modeling idea this problem reinforces.

Requirements

1

Business needs the model must satisfy.

Scenario

Two teams each built their own customer table (dim_customer_orders and dim_customer_support) with mostly the same attributes. Analysts now get different customer counts depending on which table they join, and cross-process funnels do not reconcile.

Why this matters

Duplicated lookalike dimensions are the most common conformance failure. They drift apart, double-count, and make cross-process metrics impossible to trust.

Requirements
  • Pick the modeling fix that restores one consistent customer identity.
What success looks like
  • The answer consolidates to one conformed customer dimension.
  • The explanation states that both facts should reference the same dimension.
Hints
  • Two dimensions with the same meaning are a conformance smell, not a feature.
  • The fix points both facts at one dimension through foreign keys.
Common pitfalls
  • Keeping both customer tables and "reconciling" them downstream.
  • Merging the dimensions but leaving each fact pointed at its old copy.
  • Assuming duplicate dimensions are fine because the attributes look similar.
Reference approaches
These are valid approaches, not one absolute answer.

One conformed customer dimension

Consolidate to a single customer dimension and repoint both the orders and support facts at it through surrogate-key foreign keys. A Kimball conformed dimension.

Optimizes for

  • Consistent customer counts
  • Trustworthy cross-process funnels
  • Single source of customer truth

Trade-offs

  • Requires a migration to repoint existing facts
  • Needs governance so teams do not re-fork the dimension

Try the question first.

The discussion has other people's approaches and solutions. Give it a real attempt before you read them.