Business question
Data modeling tool
SCD Design Lab
Practice how customer, product, and membership changes should land in a dimension table. Choose a strategy, inspect the rows, and see how the reporting answer changes.
Before
After preview
Reporting impact
Knowledge guide
What each SCD type means.
Use this as the quick reference while practicing. The type is only correct when it matches the business-time question.
Type 0
Retain original
Keep the first value and ignore later changes.
- Use when
- The attribute is immutable or should not change analytically.
- Avoid when
- The business expects corrected or current values.
- Example
- Original signup channel, first acquisition source.
Type 1
Overwrite
Update the row in place and keep only the latest value.
- Use when
- The change is a correction or only current state matters.
- Avoid when
- Historical reports must reflect the value at transaction time.
- Example
- Correcting a misspelled email or customer name.
Type 2
Add history row
Expire the old row and insert a new current row with effective dates.
- Use when
- Facts need point-in-time joins to historical dimension state.
- Avoid when
- The attribute changes too often or history adds no value.
- Example
- Customer tier, store region, account ownership.
Type 3
Previous value
Store the current value and one previous value on the same row.
- Use when
- The business only compares current vs immediately previous value.
- Avoid when
- More than one historical transition must be reconstructed.
- Example
- Current product category plus previous product category.
Type 6
Hybrid
Combine Type 1, Type 2, and Type 3 patterns in one dimension.
- Use when
- Teams need both point-in-time history and current-state rollups.
- Avoid when
- The model does not have strong ownership and test coverage.
- Example
- Membership plan history plus latest plan on every version.