06-reference

book adwd ch3 modeling business dimensions 2026 04 13

Sun Apr 12 2026 20:00:00 GMT-0400 (Eastern Daylight Time) ·reference ·source: Agile Data Warehouse Design (book) ·by Lawrence Corr, Jim Stagnitto

“Chapter 3: Modeling Business Dimensions” — Corr & Stagnitto

Why this is in the vault

This chapter is the practitioner’s playbook for turning event story details (from BEAM* modelstorming) into fully defined dimensions. It fills the gap between Kimball’s conceptual guidance on star schemas and the hands-on facilitation work we do with clients: how to sit with stakeholders, draw hierarchy charts on a whiteboard, and systematically discover attributes, hierarchies, and SCD policies using concrete data stories instead of abstract ER diagrams. For any Ray Data Co engagement that touches dimensional modeling — dbt semantic layers, warehouse redesigns, analytics engineering — this is the reference for how to run the modeling session, not just what the output should look like.

Key concepts

Dimension stories

Dimensions lack the narrative punch of event stories (events have active verbs; dimensions have static “has” and “is” relationships). To compensate, BEAM* modelers inject drama through two plot devices:

  1. Hierarchy charts — ask stakeholders how they organize dimension members into groups, which surfaces low-cardinality grouping attributes and exposes informal data sources (spreadsheets, personal databases) that OLTP systems never capture.
  2. Change stories — ask stakeholders how dimension members change over time, which reveals SCD policies and can uncover auxiliary business processes worth modeling as separate events.

Discovering and documenting dimensions

Each event detail with additional descriptive attributes becomes a candidate dimension. The chapter walks through a repeatable sequence:

Hierarchies

Three structural types, each available in single-parent or multi-parent form:

TypeLevelsDepthExample
BalancedFixed count, each with a unique nameUniform across all pathsCalendar: Day > Month > Quarter > Year
RaggedKnown max count with named levelsSome paths skip levels (nulls)Product hierarchy where some items have no subcategory
Variable depthUnknown count, unnamed levelsArbitrary nestingOrg chart (recursive manager-employee relationship)

Multi-parent hierarchies arise when a member rolls up to more than one parent (e.g., a product belonging to multiple product types). These require careful fact allocation to avoid double-counting at higher roll-up levels. Variable-depth and multi-parent hierarchies cannot be modeled in plain dimension tables — they need hierarchy maps (covered in Chapter 6).

Hierarchy charts are the whiteboard tool: a vertical bar per dimension, tick marks for levels, annotations for cardinality, optional levels (brackets), multi-parent relationships (double bars), and recursive loops. They double as query-definition diagrams when annotated with X (WHERE clause) and O (GROUP BY) markers across an event’s dimensions.

Key modeling heuristics:

SCD history — CV, FV, HV (and hybrids)

The chapter reframes Kimball’s SCD types in stakeholder-friendly language:

Change stories

Change stories are documented by adding a row to the BEAM* dimension table and filling it with stakeholders. The process per attribute:

  1. Ask: “Can the [attribute] of a [dimension] change?”
  2. If NO — label FV, copy the typical example value into the change row.
  3. If YES — ask: “Will you need its historic values for grouping/filtering?” If YES — label HV, ask for a new changed-value example, leave the typical example untouched. If NO — label CV, update both the typical and change rows to the new value so the overwrite is visually obvious.

Group change rules help ETL distinguish corrections from genuine changes. The example given: if a customer’s street address changes but ZIP stays the same, treat it as a correction; if both change together, treat it as a real move and preserve history.

Mapping against Ray Data Co