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.
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.
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.
The corrected business truth says the segment was Premium from the beginning of January.
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.
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.
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.
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.
Analyze this Bitemporal Modeling example
Compare a correctly preserved knowledge history with a target table where the earlier visible version was overwritten.
- Select one of the target tables below.
- Start an investigation with the example data.
- Assume closed-open semantics for both temporal intervals.
- Check what the platform knew before and after the correction arrived.
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.
Store both the business timeline and the knowledge timeline.
Bitemporal modeling does not replace ordinary state history. It adds the knowledge history required for reproducible as-known reporting.
Validate both timelines independently and together.
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.
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.
The pattern is rarely used alone. It normally supports snapshot, correction, event and reporting models that require defensible historical reconstruction.
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 →