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.

Semantic models inventory

Every semantic model from the scan — size, potential savings, refresh history, storage mode, best-practice score, and object counts — sortable to find the biggest cleanup wins.

What you get

Semantic models tab — every model with size, potential savings, refresh status, storage mode, and best practices score

Every semantic model from the scan, with columns for:

  • Name and workspace
  • Size — the in-memory model size
  • Used size / Potential savings — populated after running Analyze model usage (Phase 3)
  • Queries, Columns, Calc. Cols, Measures, Relationships, # of bi-directional — object counts, including how many of the relationships are bi-directional
  • Last refresh (UTC) — timestamp and success/failure status
  • Last modified by — who last changed the model
  • Avg. refresh duration — average refresh time
  • Storage mode — Import, DirectQuery, Direct Lake, composite
  • Best practices score — the model’s governance score from the best-practice analysis

Expand any model to drill into its tables, queries (including unloaded / auto date tables), relationships, and connected reports. The search bar — with Search all levels on by default — looks inside that expanded detail across every model at once: type a term and the list filters to just the models that contain it. After Phase 3, sort by Potential savings to find the biggest cleanup wins.

Right-click any model for several drill-ins:

  • View end-to-end lineage — its upstream data sources and downstream reports and models (see End-to-end lineage).
  • View refresh events — the model’s full refresh history (see Refresh events).
  • Best practices — the full list of best-practice violations for that model, with details (see Best-practice analysis).

Run the analysis

  1. Run a tenant-wide scan and complete Phase 2 by selecting models and clicking Analyze.
  2. Switch to the Semantic models tab.
  3. Optionally run Analyze model usage from the toolbar (Phase 3) to populate the Used size and Potential savings columns.

What the columns mean

  • Size — the in-memory footprint of the model. Import models show the VertiPaq size; DirectQuery and Direct Lake models show metadata size only.
  • Used size — how much of the model is actually referenced by reports, other measures, or downstream consumers. Populated after Phase 3.
  • Potential savings — the difference between Size and Used size — how much you could free by removing unused objects.
  • Best practices score — a weighted violation score: the higher the number, the worse the model. Each model is rated from Power BI Pro (cleanest) through Good, Ok, Poor and Awful to Power BI Criminal (worst). See Best-practice analysis.
  • Avg. refresh duration — average time for a full refresh. Long refresh times may indicate performance issues worth investigating.

Common workflows

  • Find the biggest cleanup wins. After Phase 3, sort by Potential savings (descending). The top rows are the models where removing unused objects frees the most space — and reduces refresh times and capacity cost.
  • Audit refresh health. Sort by Last refresh to find models with failed refreshes or stale data. Models that haven’t refreshed in weeks may be abandoned or broken.
  • Storage mode review. Filter by Storage mode to find which models consume a lot of CUs by sending tons of queries — e.g. those in DirectQuery or Direct Lake mode.
  • Best-practice triage. Right-click any model to see the full list of best-practice violations, with details, and fix them in priority order. Sort by the Best practices score column (higher = worse) to surface the worst offenders first.
  • Hunt down a pattern across the tenant. Search inside the expanded detail (Search all levels is on by default) — e.g. a LocalDateTable / auto date table, or a specific table or column name — and only the models containing it remain. To find models with bi-directional relationships, sort or filter by the # of bi-directional column. Either way you land straight on the offenders and can expand to see exactly what’s going on.
  • Drill into a single model. Select any model and click View model usage in the toolbar to see per-column, per-measure where-used detail — the same output a single-model online scan produces.

What to do with the findings

  • Export to Excel — click Export in the toolbar to export the full semantic model inventory to Excel for offline analysis or capacity planning.
  • Export as JSON — paid editions can also export as raw JSON for integration with governance dashboards, data catalogs, or capacity planning tools.
  • Clean up via XMLA — use 1-click cleanup to remove unused objects from models directly in the Service, without downloading.
  • Share the .measurekiller file — hand the scan to a colleague for review.