← Back to Learn
DECISION GUIDE

SCD2 vs Bitemporal Modeling

Choose the simplest historical model that still satisfies the reporting, correction and audit requirements.

SCD2 preserves business-valid history. Bitemporal modeling also preserves when each version became known to the platform.

Problem

Version history alone does not always preserve historical knowledge.

SCD Type 2 is often enough when reports only need to resolve which business state was valid on a reporting date.

It becomes insufficient when historical records can be corrected, backdated or delivered late and reports must still be reproduced exactly as they were originally known.

The modeling decision therefore depends on whether the requirement is only business-valid history or also knowledge history.

Point-in-time reportingLate correctionsAs-known reconstructionAudit requirements
Interactive example

A March report changes after a later correction unless knowledge time is preserved.

Compare the original report, an SCD2 rebuild and two bitemporal query perspectives.

Scenario
March report
Originally knownStandard
Later correction
Corrected business truthPremium
Reporting perspective
March report as originally known
Customer segmentStandard

In March, the platform only knew the customer segment as Standard. The correction to Premium had not arrived yet.

Rule of thumb

If you only need historical business state, SCD2 is usually enough. If you must reproduce historical knowledge, use bitemporal modeling.

Core concepts

SCD2 and bitemporal modeling answer different historical questions.

SCD2 creates a new version whenever a tracked attribute changes and uses valid-time intervals to resolve the row for a reporting date.

Bitemporal modeling adds a second axis that records when each version became visible to the system. This separates corrected business truth from historical system knowledge.

SCD2
Best when business-valid state is enough and corrections do not need separate knowledge history.
Bitemporal
Best when the model must reproduce what the platform knew before later corrections arrived.
Valid time
Answers when a state was true in the business.
Visible time
Answers when a particular version became known to the platform.
Comparison

The practical difference between SCD2 and bitemporal modeling.

Main question
SCD2
What was true in the business timeline?
Bitemporal
What was true, and what was visible at the time?
Time axes
SCD2
Usually valid_from and valid_to
Bitemporal
Valid time plus visible or transaction time
Corrections
SCD2
Often resolves the corrected valid-time version
Bitemporal
Preserves when the correction became visible
Best for
SCD2
Historical attributes and point-in-time reporting
Bitemporal
Auditability, reproducibility and corrected history
Why it happens

Corrections change the difference between current truth and past knowledge.

A customer segment may be corrected from Standard to Premium after the original report was produced.

SCD2 typically resolves the corrected valid-time version. That is useful for current historical truth, but it can change a rebuilt report that originally showed Standard.

Bitemporal modeling preserves both answers by storing when the correction became visible.

Backdated changesLate-arriving dimensionsRestated historyRegulatory reconstructionRebuilt snapshots
Decision guide

Choose SCD2 unless the reporting requirement needs historical knowledge.

Choose SCD2
When reports only need the valid business state for each reporting date.
Choose bitemporal
When reports must reproduce what was known before corrections arrived.
Prefer simplicity
Do not introduce visible-time history unless the business requirement justifies it.
Make correction semantics explicit
Define whether rebuilt reports should show corrected truth or original as-known truth.
Validation checks

Validate that the chosen model matches the reporting semantics.

One valid version per key and reporting dateNo unintended valid-time overlapsNo missing historical coverageCorrection behavior is explicitAs-known reports are reproducible when requiredComplexity is justified by the business need
Why it matters

The wrong model can either lose auditability or add unnecessary complexity.

Using SCD2 for an as-known requirement can silently rewrite past reports after corrections arrive.

Using bitemporal modeling for a simple valid-time requirement can add storage, query and maintenance complexity without delivering additional business value.

The best design is the simplest one that preserves the historical perspective the business actually needs.

RELATED TEMPORAL MODELS

How this decision connects to other historical modeling patterns

The SCD2-versus-bitemporal decision influences correction, reporting and snapshot behavior across the entire historical architecture.

State Modeling
Defines the business-valid state history that both approaches rely on.
As-Known Reporting
Usually requires the visible-time history provided by a bitemporal model.
Historical Correction
Determines whether corrections overwrite, restate or preserve previous knowledge.
Snapshot Reproducibility
Depends on whether a snapshot should reflect corrected truth or the original knowledge state.
Related Patterns
State ModelingBitemporal ModelingAs-Known ReportingHistorical CorrectionSnapshot Reproducibility
Try it

Choose the right historical model for your reporting requirement.

Use the Historical Data Assistant to decide whether SCD2 or bitemporal modeling better fits your correction, audit and reproducibility needs.

Open Historical Data Assistant →