← Back to Learn
ELEMENTARY PATTERN

Bitemporal Modeling

Separates business-valid time from system-visible time so historical reports remain reproducible after corrections, backfills and late-arriving data.

Use it when the model must preserve both corrected business truth and what the platform knew at an earlier point in time.

Problem

Corrected history can silently rewrite the past.

Traditional historized models usually track when a record was valid in the business. Historical reporting often also needs to know when that record became visible to the reporting system.

Without this second timeline, corrected or late-arriving history can change past reports even though those reports could not have known the corrected information at the time.

A rebuilt report may therefore be accurate as current truth and still be wrong as an as-known historical result.

Future knowledge leakageLate-arriving historyNon-reproducible reportsAudit ambiguity
Example

A January business fact only becomes known to the platform in March.

The same record has one business-valid interval and a different system-visible interval.

Business-valid timeline
Valid from 01 Jan
Customer segmentPremium

The corrected business truth says the segment was Premium from the beginning of January.

System-visible timeline
Visible from 10 Mar
Known by platformPremium

Before 10 March, an as-known query must not use this correction. After 10 March, the platform can explain both the corrected truth and the earlier knowledge state.

Key idea

valid_from / valid_to describe when the record is true. visible_from / visible_to describe when that version is known. Both are required to rebuild historical reports without future knowledge leakage.

Core concepts

Business truth and system knowledge are two different timelines.

Valid time describes when a record is true in the business. Visible time describes when a particular version is known by the system.

Valid time
When the record is true in the business.
Visible time
When that version becomes known to the data platform.
Bitemporal query
Resolve both a business date and a knowledge date.
Preserved knowledge
Keep prior visible versions instead of overwriting them.

Keeping both axes makes it possible to query current corrected truth, historical business state and historical system knowledge without collapsing those perspectives into one answer.

Test case

Analyze this Bitemporal Modeling example

Compare a correctly preserved knowledge history with a target table where the earlier visible version was overwritten.

  1. Select one of the target tables below.
  2. Start an investigation with the example data.
  3. Assume closed-open semantics for both temporal intervals.
  4. Check what the platform knew before and after the correction arrived.
Preserved bitemporal history

ScenarioA business correction says customer C1 was Premium from January 1, 2024 onward, but the platform only received the correction on March 10, 2024.What HDA should verifyConfirm that the target preserves both the corrected business-valid truth and the platform's earlier knowledge. An as-known query before March 10 must resolve to Standard, while a query from March 10 onward must resolve to Premium.

customer_id,segment,valid_from,valid_to,visible_from,visible_to
C1,Standard,2024-01-01,9999-12-31,2024-01-01,2024-03-10
C1,Premium,2024-01-01,9999-12-31,2024-03-10,9999-12-31
Overwritten knowledge history

ScenarioThe same correction arrived on March 10, 2024, but the earlier Standard knowledge version is no longer stored. Only the corrected Premium version remains.What HDA should identifyExplain why an as-known report from February can no longer be reproduced, identify the exact lost visible-time version, and recommend restoring it as the safest corrective action. The expected diagnosis is Visible-time history loss.

customer_id,segment,valid_from,valid_to,visible_from,visible_to
C1,Premium,2024-01-01,9999-12-31,2024-03-10,9999-12-31
Why it happens

Business-valid time and system-visible time often diverge.

Source systems can correct records retrospectively, reload old history or deliver changes long after the business period began.

The business statement may therefore be valid from January while the data platform only learns about it in March. Overwriting the old row removes the evidence of what the platform knew before March.

Backdated correctionsSource reloadsDelayed ingestionRetrospective fixesCorrected dimensionsSnapshot rebuilding
Common modeling approaches

Store both the business timeline and the knowledge timeline.

Valid-time interval
Use valid_from and valid_to to represent when a record is true in the business.
Visible-time interval
Use visible_from and visible_to to represent when the system knew that version.
Bitemporal as-of query
Query with both a reporting date and a knowledge date.
Preserve old knowledge
Close previous visible versions instead of overwriting them with corrected history.

Bitemporal modeling does not replace ordinary state history. It adds the knowledge history required for reproducible as-known reporting.

Validation checks

Validate both timelines independently and together.

Valid-time intervals are consistentVisible-time versions are preservedCorrections do not overwrite prior knowledgeFuture knowledge does not leak backwardAs-known reports remain reproducibleCurrent corrected truth remains queryable
Why it matters

Bitemporal Modeling preserves truth and knowledge.

It allows one model to answer both the corrected business truth and what was known at an earlier point in time.

This is especially important when reports must be reproducible, corrections must remain auditable or source history arrives late.

Without the visible-time axis, historical reconstruction can unintentionally use knowledge that did not exist when the original report was produced.

RELATED TEMPORAL MODELS

How this pattern relates to other temporal models

Bitemporal Modeling is the foundation for advanced historical architectures that must distinguish corrected truth from as-known truth.

As-Known Reporting
Uses visible time to reproduce what the platform knew at an earlier knowledge date.
Historical Correction
Preserves corrected truth without erasing the previously visible version.
Snapshot Reproducibility
Combines reporting cutoffs with preserved visible-time history.
Publication-Time Modeling
Adds a third timeline for officially released or published outputs.

The pattern is rarely used alone. It normally supports snapshot, correction, event and reporting models that require defensible historical reconstruction.

Related Patterns
As-Known ReportingHistorical CorrectionSnapshot ReproducibilityPublication-Time ModelingState Modeling
Try it

Design or review a bitemporal historical model.

Use the Historical Data Assistant to reason about valid time, visible time, corrections, late-arriving data and reproducible as-known reports.

Open Historical Data Assistant →