Persistence

Continuity of Meaning Over Time

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:

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:

Function

To protect historical comparability and analytical trust.

In practice, persistence allows:

Without persistence, time becomes unreliable.

Consequence

A model without persistence contradicts its own past.

Signals of Persistence

Signals of Lack of Persistence

This is not agility: it is temporal instability.

Conceptual Example in Power BI

Without persistence (❌)

The user asks: “Why is it different now?”

Result:
👉 loss of credibility.

With persistence (✅)

Result:
👉 continuity and trust.

Persistence and Model Design

Persistence is strengthened when:

Persistence is an architectural decision,
not just a calculation choice.

Interactions

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:

📌 Result:
Clear and auditable comparisons.


🔹 Sample 3 — Temporal snapshots

Without persistence (❌)
Historical data reflects the current state.

With persistence (✅)
Snapshots are stored:

📌 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

✅ Pattern — Persistent model

📌 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.