Definition
Persistence is the ability of a data model to preserve the meaning, stability, and reliability of its metrics over time, regardless of technical changes, business evolution, or transformations in data sources.
A persistent model does not reinterpret the past every time the system changes.
In Power BI, persistence ensures that:
- a KPI today,
- the same KPI tomorrow,
- and that KPI one year from now,
mean exactly the same thing when compared over time.
Nature
Temporal, semantic, and structural.
Persistence is not about immobility,
but about controlled continuity.
It emerges when:
- business concepts are stabilized,
- changes are versioned rather than overwritten,
- and the model respects history as part of the analysis.
Function
To protect historical comparability and analytical trust.
In practice, persistence allows:
- trends to be real, not rewritten,
- historical analysis to remain valid,
- decisions to be based on stable facts.
Without persistence, time becomes unreliable.
Consequence
- Coherent time-based comparisons.
- Long-term reliable KPIs.
- Auditability and analytical traceability.
- Institutional trust in data.
A model without persistence contradicts its own past.
Signals of Persistence
- Historical metrics do not change without explicit reason.
- Definition changes are versioned.
- The past is preserved even as the present evolves.
- Users trust long-term trends.
- The model “remembers” what metrics meant.
Signals of Lack of Persistence
- Historical values change without explanation.
- KPIs are redefined without control.
- A monthly close cannot be reproduced.
- Year-over-year comparisons raise doubts.
- Users lose trust in historical data.
This is not agility: it is temporal instability.
Conceptual Example in Power BI
Without persistence (❌)
- The entire history is recalculated with new rules.
- A 2022 KPI changes in 2025.
The user asks: “Why is it different now?”
Result:
👉 loss of credibility.
With persistence (✅)
- Historical rules are preserved.
- New rules apply from a defined point forward.
- The past remains intact.
Result:
👉 continuity and trust.
Persistence and Model Design
Persistence is strengthened when:
- Clear temporal dimensions exist.
- Recalculation of the past is avoided without control.
- Business rules are versioned.
- Historical snapshots are defined.
- The model distinguishes historical state vs current state.
Persistence is an architectural decision,
not just a calculation choice.
Interactions
- Consistency → stable meaning.
- Equivalence → comparable results.
- Semantic Elasticity → controlled adaptation.
- Integrability → evolution without rupture.
- Informational Scarcity → temporal focus.
- Abstraction → separation from implementation.
- Persistence → memory of the model.
Without persistence, time loses analytical value.
🔧 Samples — Persistence applied in Power BI
🔹 Sample 1 — Immutable historical KPI
Problem (❌)
The KPI Net Sales 2022 changes when logic is updated.
Persistence applied (✅)
The historical definition is frozen:
Net Sales v1 :=
SUM(FactSales[Amount])
New definition:
Net Sales v2 :=
SUM(FactSales[Amount]) - SUM(FactSales[Discount])
📌 Result:
History preserves its original meaning.
🔹 Sample 2 — Metric versioning
Without persistence (❌)
A single measure changes over time.
With persistence (✅)
Explicit versions:
- Net Sales v1 (up to 2022)
- Net Sales v2 (from 2023)
📌 Result:
Clear and auditable comparisons.
🔹 Sample 3 — Temporal snapshots
Without persistence (❌)
Historical data reflects the current state.
With persistence (✅)
Snapshots are stored:
- portfolio at monthly close,
- customer status at a given date,
- balance at period end.
📌 Result:
Analysis reflects the real past, not a projected present.
🔹 Sample 4 — Reproducible closes
Without persistence (❌)
January close cannot be reproduced in March.
With persistence (✅)
The model can recalculate the exact same close.
📌 Result:
Accounting and analytical trust.
🔹 Sample 5 — Context persistence
Without persistence (❌)
Historical filters change when dimensions change.
With persistence (✅)
Original historical context is preserved:
Sales at Close :=
CALCULATE(
[Net Sales],
DimDate[IsClosedMonth] = TRUE()
)
📌 Result:
Analysis respects historical state.
🔹 Sample 6 — Antipattern vs Pattern (Persistence)
❌ Antipattern — Amnesic model
- Rewrites the past.
- Changes KPIs without trace.
- Breaks comparisons.
✅ Pattern — Persistent model
- Versions rules.
- Preserves history.
- Enables auditability.
📌 Rule of thumb:
If the past changes without explanation, the model is not persistent.
Synthesis
A model without persistence has no memory.
And a model without memory cannot explain time.