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.

Business question

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.