← Back to Pattern Catalog
Interactive Pattern

Snapshot Reproducibility

Snapshot Reproducibility answers a simple question: if you rebuild last month’s report today, should it produce the same result or the corrected result?

Problem

The same month-end report produces different numbers when rebuilt later.

This usually happens when reports are rebuilt from mutable source data. Late-arriving records, corrected history, overwritten dimensions or changed relationships can alter the result even though the reporting date did not change.

Changing historical totalsNon-reproducible reportsAudit disagreementsIncorrect as-known results
Example

A March report was published. In June, corrected history changes the result.

Published March report
Snapshot date: 2024-03-31
Knowledge date: 2024-03-31
Premium total = 1.2M
June rebuild
Same snapshot date: 2024-03-31
Knowledge date: 2024-06-15
Premium total = 1.3M
?
Reporting question
Should the rebuilt report reproduce what was known in March, or show the corrected truth known in June?

Expected Result (Reproducible)

2024-03-31
As known on Mar 31
Premium total = 1.2M
2024-03-31
Rebuilt in Jun as known on Mar 31
Premium total = 1.2M
×

Common Wrong Result (Risk)

2024-03-31
Published in Mar
Premium total = 1.2M
2024-03-31
Rebuilt in Jun using current truth
Premium total = 1.3M
Key idea

A reproducible snapshot needs either persisted report state or visible time. Otherwise, old reports can silently change when source history is corrected later.

Test case

Try this Snapshot Reproducibility case in Target Table Validation

Use these sample target tables to test the validator:

  1. Copy one of the target tables below.
  2. Open Target Table Validation.
  3. Paste the copied table as your target output.
  4. Check whether the snapshot remains reproducible or only reflects the current rebuild.
Reproducible target table

Copy this table to validate the expected reproducible snapshot output.

contract_id,customer_key,premium_amount,snapshot_date,valid_from,valid_to,visible_from,visible_to,reproducibility_method
C-1001,Customer A,1200000,2024-03-31,2024-03-01,2024-03-31,2024-03-31,2024-06-14,as_known_snapshot
C-1001,Customer A,1300000,2024-03-31,2024-03-01,2024-03-31,2024-06-15,9999-12-31,corrected_after_publication
Wrong target table

Copy this table to validate a risky output that only stores the current rebuild result.

contract_id,customer_key,premium_amount,snapshot_date,valid_from,valid_to,reproducibility_method
C-1001,Customer A,1300000,2024-03-31,2024-03-01,2024-03-31,current_rebuild_only
Open Target Table Validation →
Why it happens

The model does not separate reporting date from knowledge date.

A report can be correct for a business date and still use information that was not known when the report was originally published. Snapshot Reproducibility makes that distinction explicit.

Late arriving factsCorrected source historySCD1 overwritesMissing visible timeChanged relationship history
Typical solutions

Decide whether the report should show current truth or what was known at the time.

Snapshot Facts
Persist one fact row per entity and reporting period so month-end reports do not depend on current source state.
Visible Time
Track when historical records became known so reports can be reproduced as they were seen at the time.
Frozen Report State
Store the exact reporting state used for published reports when audit reproducibility is required.
As-Known Joins
Join dimensions using both business-valid time and system-visible time to avoid using future knowledge.
Validation checks

Validate whether reports can be rebuilt consistently.

Snapshot reproducibility validationAs-known reporting validationLate arriving data validationHistorical correction validationPublished report comparison
Why it matters

Reproducible snapshots create trust in historical reporting.

Snapshot facts are often the bridge between complex historical source behavior and simple business reporting.

Without clear reproducibility rules, the same historical question may produce different results depending on when and how the query is rebuilt.

Related Patterns
Dimension CompletionAs-Known ReportingSnapshot Fact ModelingBitemporal ModelingHistorical Correction
Try it

Design reproducible historical reporting models.

Use the Historical Modeling Workbench to reason about reporting dates, knowledge dates, source corrections and snapshot validation risks.

Explore Snapshot Reproducibility →