Skip to content

Slowly Changing Dimensions

How to track changes to descriptive attributes over time in data warehouses, with SCD types explained.

Editorial team 1 min read

Dimension attributes — customer address, product category, sales region — change over time. Slowly changing dimension (SCD) techniques decide how warehouses handle this.

Type 1: Overwrite

Replace the old value. Simple, but history is lost: past sales appear under the current region.

Type 2: Add a Row

Insert a new row for each change, with valid-from and valid-to dates and a current flag. Facts link to the version valid at the time. Preserves full history; most common for important attributes.

Type 3: Add a Column

Keep current and previous values in separate columns. Limited history.

Choosing

  • Corrections of errors → Type 1.
  • Changes that matter for historical analysis → Type 2.
  • Occasional before-and-after comparison → Type 3.

Implementation

Tools such as dbt snapshots automate Type 2 tracking.

Pitfalls

  • Joining facts to the current dimension row when history matters.
  • Type 2 tables growing large when attributes change often.
  • Missing surrogate keys.

More in Data engineering

All Data engineering guides →
Data engineering Guide · 2 min

What Is Data Engineering?

What data engineers do, how data flows from source systems to analysis and AI, and the core skills involved.

Data engineering 2 min read 20 Jan 2026

Data engineering Guide · 2 min

ETL Versus ELT

The difference between transforming data before loading and after, and why modern warehouses shifted the default to ELT.

Data engineering 2 min read 19 Jan 2026

Data engineering Guide · 1 min

Data Warehouses, Data Lakes and Lakehouses

The three main architectures for analytical data storage, what each is good for and how they are converging.

Data engineering 1 min read 18 Jan 2026

Data engineering Guide · 2 min

Data Modelling for Analytics

Star schemas, facts and dimensions: how to design tables that make analysis fast, consistent and easy to understand.

Data engineering 2 min read 17 Jan 2026