Salesperson Snapshot
Gold row = one stored row in the modelDynamic Measure Results
Same data, filter-responsive answersStored classification
0Count of visible rows that already carry the stored calculated-column label Above Target.
Dynamic target achievement
0%A measure that recalculates using only the currently visible rows in the report.
What would go wrong?
StaticIf you expected a stored column to behave like a report-time KPI, it would not recalculate with slicers.
When to use which
Practical guidanceUse a calculated column when
- You need a row-level value stored in the model.
- You want to slice, group, sort, or relate data using that result.
- Examples: banding, flags, concatenated keys, date parts, static classifications.
Sales[Performance Band] =
IF(
Sales[SalesAmount] >= Sales[TargetAmount],
"Above Target",
"Below Target"
)Use a measure when
- You need the result to change with filters, slicers, or visual context.
- You want aggregated report logic rather than stored row logic.
- Examples: total sales, achievement %, YTD, rankings, dynamic comparisons.
Target Achievement % :=
DIVIDE(
SUM(Sales[SalesAmount]),
SUM(Sales[TargetAmount])
)Real-life difference
A calculated column is prepared during model refresh, then saved. A measure is computed only when the report asks for it.
- Calculated column: increases model size, but useful for slicing and row-based attributes.
- Measure: does not store row results, but gives dynamic answers for reports.
Common mistakes
- Creating a calculated column for something that should react to slicers.
- Trying to put a measure on an axis or use it directly as a relationship key.
- Using calculated columns for every report KPI and bloating the model.