Skip to content

Unused Columns

This flag identifies individual columns in a semantic model that are not referenced by:

  • Any DAX measure expression
  • Any relationship (as either the source or target column)
  • Any sort-by-column configuration
  • Any report visual, filter, slicer, or conditional formatting rule
  • Any calculated column or calculated table expression

  • Memory waste — Each column is compressed and stored in the VertiPaq engine. High-cardinality text columns can consume hundreds of megabytes even when never queried.
  • Slower refresh — Columns are processed during refresh regardless of usage, adding time and CU consumption.
  • Model bloat — Unused columns inflate the model size, bringing it closer to SKU size limits.
  • Developer confusion — A model with many unused columns is harder to navigate and understand.

A column is flagged as unused when all of the following are true:

  1. The column is not referenced in any DAX measure expression.
  2. The column does not participate in any relationship.
  3. The column is not used as a sort-by-column for another column.
  4. The column is not used in any report visual, filter, or slicer.
  5. The column is not referenced in any calculated column or calculated table expression.
  6. The column is not a row-number or key column required by the storage engine.

Threshold: Zero references across all criteria above.


FieldDescription
columnNameName of the unused column
tableNameParent table of the column
dataTypeData type (String, Int64, DateTime, etc.)
estimatedSizeBytesEstimated in-memory size contribution
cardinalityNumber of distinct values
datasetNameSemantic model name
workspaceNameWorkspace name

  • Hidden columns — Columns hidden from the report view but still used in relationships or DAX are NOT flagged. Only truly unreferenced columns are flagged.
  • Columns used in Power Query only — If a column is used in a Power Query step but not exposed to the model, it is not flagged (it does not exist in the model).
  • Implicit measures — Columns that are only used via implicit aggregation (e.g., drag a numeric column onto a visual without an explicit measure) may still be detected as “used” if the scan captures report visual bindings.

  • Unused Tables — If every column in a table is unused, the entire table is flagged instead.
  • Unused Measures — Similar check but for measures rather than columns.

Video Tutorial