Skip to content

Unused Tables

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

  • Any measure (DAX expression)
  • Any relationship (active or inactive)
  • Any report visual or filter
  • Any calculated column or calculated table expression

A table is flagged only when none of its columns are used anywhere in the model or reports.


  • Wasted memory — Every table loaded into the VertiPaq engine occupies RAM, even if no report ever queries it. Removing unused tables frees capacity for active workloads.
  • Slower refresh — Unused tables are still refreshed on schedule, consuming CUs and extending the refresh window unnecessarily.
  • Model clutter — Extra tables increase cognitive load for developers browsing the model and make impact analysis harder.
  • Larger model size — Bloated models hit capacity size limits sooner, potentially triggering the Model Size / Bloat flag.

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

  1. No column in the table is referenced in any DAX measure expression.
  2. No column in the table participates in any relationship (active or inactive).
  3. No column in the table is used in any report visual, filter, slicer, or page-level/report-level filter.
  4. The table itself is not referenced in any CALCULATETABLE, FILTER, or row-context function.
  5. The table is not a calculated table whose expression references other active tables.

Threshold: A table with zero references across all of the above criteria is flagged.


When this flag triggers, Soterre PBI Analyzer returns:

FieldDescription
tableNameName of the unused table
rowCountNumber of rows in the table
columnCountNumber of columns in the table
sizeBytesEstimated in-memory size of the table
datasetNameName of the semantic model containing the table
workspaceNameName of the workspace

  • Staging tables — Tables used only as intermediate steps in Power Query but exposed to the model are flagged. Consider hiding or removing them.
  • Auto date/time tables — Hidden system-generated date tables are handled separately by the Automatic Hidden Tables flag and are excluded from this check.
  • Tables used only in RLS — If a table is referenced only in a Row-Level Security expression, it may still be flagged because RLS expressions are not always visible to the scanning API. Verify manually before removing.

  • Unused Columns — Individual columns within an otherwise-used table that are not referenced.
  • Automatic Hidden Tables — System-generated hidden tables that are a specific subset of potentially unused tables.

Video Tutorial