Slowly Changing Dimensions in Master Data Management
Last week, we unpacked When and Why to Build a Master Data API. We covered the tipping points, like when systems compete for the latest values or downstream teams need just-in-time access to clean attributes. If your golden record isn’t easily accessible, you’re inviting shadow pipelines.
This week, we’re going deeper into what makes that golden record trustworthy over time: how you manage change.
Welcome to the real work: slowly changing dimensions (SCDs) in Master Data Management.
What Are Slowly Changing Dimensions (SCDs)?
SCDs describe how systems track changes to dimensional data (like customers, products, or vendors) over time. While originally a data warehousing concept, SCD patterns are essential for any MDM platform that needs to manage historical changes, track lineage, or serve analytics and operational systems alike.
In MDM, SCDs control:
- Which changes overwrite the current state
- Which changes preserve history
- How consumers know which record is current
- How downstream systems interpret these changes
The 7 Types of SCDs (0–6)
| Type | Description | MDM Use | Analytics Use |
|---|---|---|---|
| Type 0 | No changes allowed | Good for tax IDs, immutable keys | Snapshot accuracy |
| Type 1 | Overwrite with new value | Cleanups, corrected data | No history |
| Type 2 | Add new row with versioning | Track full history | Time-based reporting |
| Type 3 | Add new column for previous value | Useful for current + previous | Limited history |
| Type 4 | Store changes in a history table | Separate audit store | Clean golden record |
| Type 5 | Combine Type 1 and 4 | Overwrite + audit trace | Hybrid design |
| Type 6 | Combine 1, 2, 3 | Full lineage, flexible views | Time-aware dashboards |
In practice, Type 1 and Type 2 dominate the field, but a hybrid (Type 6) is often needed when your MDM hub feeds both ops and analytics.
Operational vs Analytical SCDs
Operational MDM favors current values. Users care about “what is true now” (e.g., the active customer address or product price).
Analytical systems prioritize lineage and visibility. BI teams ask, “What was true on this date?” or “How has this changed over time?”
| System | Priority | Common SCD Types |
|---|---|---|
| MDM Hub | Current state, survivorship | Type 1, Type 4 |
| Data Warehouse | Change tracking, trend analysis | Type 2, Type 6 |
| APIs | Light payloads | Type 1, Type 3 |
A smart MDM strategy separates storage (store full history) from serving (serve the right view).
MDM and Change Management
In MDM, changes come from many sources:
- Upstream systems (CRM, ERP)
- Manual stewardship
- External enrichments
Each must obey field-level survivorship logic. You decide:
- Which source wins?
- When do nulls override values?
- What counts as a change?
Key fields to define SCD policy for:
- Status (active/inactive)
- Address and contact details
- Classification codes (customer tier, product category)
- Hierarchies (store → region)
And yes, you need different policies for each.
Best Practices for Managing SCDs in MDM
- Use semantic defaults. Avoid nulls. Use values like
UNKNOWN,NOT_PROVIDED, orPENDING_APPROVAL. - Log every change. Even if your golden record overwrites values, track the delta in a side table.
- Version records. Use
EffectiveStartDateandEffectiveEndDateor aVersionNumber. - Mark current rows. Use a
IsCurrent = 1flag for querying ease. - Validate source trust. Don’t let low-trust sources trigger high-impact changes.
- Design for purpose-built views. APIs and analytics consumers don’t need the full record.
Tool-Specific Implementation Tips
SQL Server (T-SQL):
- Use
MERGEstatements with versioning logic - Add system-versioned temporal tables for audit
MERGE dbo.Customer AS Target
USING staging.Customer AS Source
ON Target.CustomerID = Source.CustomerID
WHEN MATCHED AND Target.Email <> Source.Email
THEN UPDATE SET Target.Email = Source.Email;
Informatica MDM:
- Leverage trust scores per source system
- Use the Change Tracking feature for Type 2 behavior
Azure Data Factory:
- Use
Data FlowSCD transformations (Type 1, Type 2 built-in) - Connect to Delta Lake or SQL DB for history tables
Real-World Use Cases
Type 1: Correct a customer’s name typo. No need to keep the old misspelling.
Type 2: Keep historical product category assignments for reporting periods.
Type 3: Store both current and previous region for active store routing.
Type 6: Track changes to customer status and tier while preserving contact details.
MDM Architecture Patterns for SCDs
Store once, serve many.
- Keep a core record with full history
- Serve different views to consumers
Split history storage from serving layer.
- Analytics pulls Type 2-like history
- APIs get flattened Type 1 or 3
Audit-first design.
- Log deltas before applying updates
- Use triggers or pipelines to populate audit tables
Final Thought
SCDs aren’t just a BI topic, they’re central to whether your master data earns trust. The moment your MDM platform stops respecting time, it stops being useful for analytics.
Define your SCD rules. Apply them intentionally. And serve data that reflects reality, both past and present.


