Unused Columns
What It Detects
Section titled “What It Detects”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
Why It Matters
Section titled “Why It Matters”- 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.
Trigger Conditions
Section titled “Trigger Conditions”A column is flagged as unused when all of the following are true:
- The column is not referenced in any DAX measure expression.
- The column does not participate in any relationship.
- The column is not used as a sort-by-column for another column.
- The column is not used in any report visual, filter, or slicer.
- The column is not referenced in any calculated column or calculated table expression.
- The column is not a row-number or key column required by the storage engine.
Threshold: Zero references across all criteria above.
Output
Section titled “Output”| Field | Description |
|---|---|
columnName | Name of the unused column |
tableName | Parent table of the column |
dataType | Data type (String, Int64, DateTime, etc.) |
estimatedSizeBytes | Estimated in-memory size contribution |
cardinality | Number of distinct values |
datasetName | Semantic model name |
workspaceName | Workspace name |
Notes and Edge Cases
Section titled “Notes and Edge Cases”- 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.
Related Flags
Section titled “Related Flags”- 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.