Skip to content

Duplicate Measures

This flag identifies DAX measures that have identical expressions — either within the same semantic model or across different models in the scanned workspaces.


  • Inconsistency risk — If one copy of a measure is updated and the other is not, reports will show conflicting numbers for the same metric.
  • Maintenance overhead — Fixing a bug or changing a business rule requires finding and updating every duplicate.
  • Governance issue — Indicates a lack of shared datasets or a central measures layer, leading to metric sprawl.

Two measures are flagged as duplicates when:

  1. Expression match — The DAX expressions are identical after normalization (whitespace, line breaks, and casing are ignored).
  2. The measures reside in different tables, different datasets, or both.

Measures with the same name but different expressions are not flagged by this check (that would be a naming conflict, not a duplicate).

Threshold: 100% normalized expression match.


FieldDescription
measureNameMeasure name
expressionHashHash of the normalized DAX expression
datasetAFirst dataset containing the measure
tableAHome table in dataset A
datasetBSecond dataset (or same dataset, different table)
tableBHome table in dataset B
workspaceNameWorkspace(s) involved

  • Cross-dataset duplicates — The most common and impactful case. Consider migrating to a shared dataset model where one “golden” dataset holds the canonical measures.
  • Trivial measures — Very simple measures like SUM(Table[Column]) will frequently match across models. Use the expression length or complexity as a filter when triaging — prioritize longer, more complex duplicates.

  • Duplicate Tables — Often accompanies duplicate measures: the same table loaded into multiple models, each with copies of the same measures.
  • Unused Measures — One copy of a duplicated measure may be unused.

Video Tutorial