Separation Between Meaning and Implementation
Abstraction is the ability of a data model to hide technical complexity and expose to the user only clear, stable, and understandable concepts, independent of how they are internally implemented.
An abstract model allows thinking in terms of meanings,
not tables, columns, or formulas.
In Power BI, abstraction ensures that users interact with:
without needing to understand the physical structure of the model.
Semantic, cognitive, and architectural.
Abstraction does not eliminate complexity;
it encapsulates it.
It emerges when:
To reduce cognitive friction between the user and the data.
In practice, abstraction enables:
A model without abstraction exposes its mechanics;
an abstract model exposes its intent.
This is not transparency; it is unnecessary exposure.
The user builds visuals using direct columns:
Each visual implements its own logic.
Result:
👉 inconsistency and errors.
The model exposes clear measures:
The user only uses Net Sales.
Result:
👉 coherence, stability, and simplicity.
Abstraction is reinforced when:
Each layer fulfills its role without leaking into the next.
Without abstraction, the other properties become fragile.
Without abstraction (❌)
Users build visuals with columns:
Each visual decides how to calculate.
👉 Result: inconsistent metrics.
With abstraction (✅)
The model exposes a single conceptual measure:
📌 Result:
Users work with Net Sales, not internal logic.
Without abstraction (❌)
The model exposes:
Users must “guess” what to use.
With abstraction (✅)
📌 Result:
The model feels simple, even when complex.
Without abstraction (❌)
Logic is repeated in each visual:
With abstraction (✅)
The rule lives in a measure:
📌 Result:
The rule is single, stable, and reusable.
Today:
Tomorrow:
Without abstraction (❌)
All reports break.
With abstraction (✅)
Only the measure is adjusted:
📌 Result:
Users do not perceive the change.
Without abstraction (❌)
Users manually apply filters in each visual.
With abstraction (✅)
Context lives inside the measure:
📌 Result:
Meaning is encapsulated, not distributed.
❌ Antipattern — Overly transparent model
✅ Pattern — Abstract model
📌 Rule of thumb:
If users need to know how something is calculated in order to use it, abstraction is missing.
The user should not think about how something is calculated.
They should think about what it means.