Measure Killer Measure Killer

These docs are still being polished — a few sections and screenshots are on the way. Spotted something off? Let us know.

How Measure Killer defines used and unused

What counts as 'used' and 'unused' in a Measure Killer scan — the exact rules, the three statuses (green, yellow, red), and how scan scope affects confidence.

Breaking, not consumption

Measure Killer’s definition is about breaking things, not about consumption or popularity. A column that one visual on one page references is “used” — even if nobody has opened that report in months. Whether anyone actually looks at a report is a separate question answered by consumption data.

The rule: if removing an object would break a report or change any visible output — even a subtle effect like a conditional-formatting rule that turns a cell background a different color — it counts as used. If nothing in the analyzed scope depends on it that way, it’s unused.

The 26 categories of usage

Measure Killer checks every way Power BI can wire a column or measure into a report, model, or security rule — at 99.99% reference-detection accuracy, the highest in the industry. Each column and measure is tested against all 26 categories:

The 26 categories of usage Measure Killer checks for every column and measure

CategoryWhat it covers
VisualsDirect references in any visual on any page of any connected report
Visual-level filtersFilters applied to individual visuals
Page-level filtersFilters scoped to a report page
Report-level filtersFilters applied across the entire report
SortingSort-by-column references (e.g. sort Month Name by Month Number)
Conditional formattingBackground color, font color, icons, data bars, web URLs — all driven by field references
Default labelsDefault summarization and label settings on columns
RelationshipsActive and inactive model relationships. An inactive relationship is flagged as unused if no DAX expression activates it via USERELATIONSHIP
MeasuresReferences from other measures (including report-level measures)
Calculated columns and tablesDAX-defined columns and tables that reference the object
Calculation groups and itemsCalculation group references and calculation item expressions
Field parametersField parameter definitions that include the object
Row-level securityRLS filter expressions that reference the object
Object-level securityTables governed by OLS
Power Query / MJoins, appends, and column references in M queries
HierarchiesHierarchy level definitions
KPIsKPI base value, target, and status expressions
KeysPrimary and alternate key definitions
CalendarsAuto date/time and custom fiscal calendar tables
Mobile layoutsMobile-optimized report layouts
Paginated reportsField references in connected paginated reports
Excel filesPivotTable fields and connection definitions from .xlsx files
Downstream modelsReferences from composite or chained semantic models
Model extensionsReport-level measures and other model extension objects
Visual calculationsVisual-scoped DAX calculations
Dynamic M parametersDynamic M parameter bindings
DAX UDFsUser-defined DAX functions
Change detectionIncremental refresh change-detection expressions

The four statuses

Measure Killer Where-used table showing all four statuses — used, unused, unused (remove manually), and used by unused

Measure Killer assigns one of four statuses to every column and measure:

  • Green — used. At least one reference exists in the analyzed scope. Removing this object would break something.
  • Red — unused. No reference exists in scope. This object can be safely removed (subject to the scope caveat below).
  • Yellow — used by unused. The object is only referenced by other objects that are themselves unused. For example, a measure that is only consumed by another measure that nothing in any report hits. Once the red items are removed, the yellow items become genuinely unused too.
  • Unused (remove manually). The object is unused, but Measure Killer cannot remove it automatically. The most common case is an unused column that belongs to a calculated table — removing a single column would require rewriting the DAX expression that defines the table, which Measure Killer will not do. Calculated tables are only removed automatically when all their columns are unused. Objects with this status need manual intervention in Power BI Desktop.

The batch removal methods — Clean TMDL and 1-click cleanup — remove red, yellow, and fully-unused calculated tables in one pass. “Remove manually” items are left in place for you to handle.

Scope affects confidence

The bigger the scope you analyzed, the more confident you can be that an “unused” row really is unused:

  • Desktop scan (free) — only knows about the current .pbix file. A measure flagged as unused here might still be consumed by another report connected to the same shared model.
  • Online scan (Enterprise) — sees every report, paginated report, Excel file, and downstream semantic model connected to the shared model. Much higher confidence.
  • Tenant-wide scan (Enterprise) — the broadest scope. Every report and downstream consumer across the entire tenant is in the analysis.

You can also drag and drop local files into any analysis to widen the scope — Power BI reports (.pbix), Paginated reports (.rdl), and Excel files (.xlsx). This is especially important for Excel: Measure Killer reads their connection definitions and PivotTable fields so columns and measures that Excel users depend on are correctly marked as “used” rather than flagged for removal. See Find what your Excel users are consuming.

Things to keep in mind

  • Artifacts you can’t access. When running an online scan without admin permissions, Measure Killer may detect artifacts connected to the model in workspaces you don’t have access to. It warns you explicitly — these artifacts won’t be included in the analysis, so columns they reference could appear as “unused” when they aren’t. Run in admin mode (Shared model online → admin, or Tenant Analysis) to include everything — a Fabric Admin sees every artifact across the entire tenant, including personal workspaces.

Artifacts with no access warning — Measure Killer found artifacts connected to the model where you do not have access

  • Cross-workspace consumers. If the online lineage shows reports in workspaces you don’t own, give those owners a heads-up before removing anything they might depend on.
  • Excel users. Columns consumed only by Excel pivot tables won’t show as used unless you include the Excel files in the scan (online mode pulls activity-log data; for full column-level detection, drag the actual .xlsx files into the analysis).

What’s out of scope

Not every Power BI artifact type is supported. For the full list of what Measure Killer can and cannot analyze — file types, storage modes, visual support, and known limitations — see the compatibility page.