Measure Killer Measure Killer

Tenant Analysis UI — tabs and toolbar reference

What every tab, sidebar item, and toolbar action does in Measure Killer's Tenant Analysis screen. Use this as a glossary when other docs reference a specific name.

Last updated · June 12, 2026

Names match what you see in the app exactly — this doc is the single source of truth for those labels. Other how-to docs link here whenever they reference a specific tab or toolbar action.

Measure Killer Tenant Analysis UI — toolbar, tab strip, and Selection table

The left sidebar of the Tenant Analysis window has three tabs that control the scan and what comes out of it.

Execution log

A running history of what the current scan loaded or attempted, with timestamps for each step. Shows which workspaces were scanned, which items were fetched, and any errors or warnings encountered. The “File loaded: …” line at startup confirms a saved .measurekiller file was restored successfully. Useful for troubleshooting when a scan takes longer than expected or when specific items fail to load.

Exports

The full list of raw JSON exports Measure Killer can write from a completed scan — DAX expressions, M queries, lineage, refresh events, RLS, report consumption (opens / page views / load times), best-practice violations, activity logs, and more. See Exports overview below for the full list.

Exports are written to a folder you choose via a save dialog. All exports are JSON files, grouped by type. You can export individual slices or use Full export to get everything in one bundle.

Pre-filters

The window that lets Admin-mode users narrow the crawl before the scan runs — Premium / Pro / personal / deleted workspace toggles, optional capacity filter, performance toggle for page views and load times. See Run a tenant-wide scan for the full walkthrough.

Tenant summary panel

A panel titled Tenant summary that aggregates every Power BI and Fabric item type across the tenant (in full Tenant Analysis) or across the workspaces you selected (in Limited Tenant Analysis). Lists workspace types, all Power BI item types, and every Fabric item type in one scannable column. See Tenant summary (workspaces, items, owners).

The Tenant summary panel is visible as a collapsible section on the left side, accessible from any right-side tab. It populates after Phase 1 completes.

Tenant summary panel — aggregate counts of every Power BI and Fabric item type

Right-side tabs (analysis results)

These tabs sit along the top of the main pane after a scan finishes. Each one is a different slice of the scanned tenant.

Selection

The main workspace overview table. Shows every workspace in scope with columns for:

  • Name — workspace name, expandable to see individual items
  • Type — Premium, Pro, or personal
  • Status — Analyzed, Not analyzed, or a percentage (e.g. “46% analyzed”) showing Phase 2 progress
  • Domain — the workspace’s Fabric domain, if assigned
  • Item counts — Reports, Models, Dataflows, Paginated Reports, Fabric items
  • Access — your access level (Admin, Contributor, Viewer)
  • Capacity — the capacity ID the workspace is assigned to

This is where you tick workspaces and items for Phase 2. The toolbar buttons (Analyze model usage, Model similarity, etc.) activate based on what you’ve selected and analyzed here.

Workspaces

A detailed inventory of every workspace in scope — same workspaces as the Selection tab but with different columns focused on governance: owners, users, creation date, last activity, workspace state, and capacity assignment. Selection is for picking what to scan; Workspaces is for reviewing the inventory after scanning. See Workspaces inventory.

Workspaces tab — detailed inventory with owners, item counts, and capacity assignments

Settings

Tenant-level Power BI and Fabric admin settings pulled from the admin API. Shows every tenant setting configured in the Power BI admin portal — export policies, sharing policies, developer settings, capacity assignments, embed settings, and more. This gives you a snapshot of how the tenant is configured without opening the admin portal. See Tenant settings audit.

Settings tab — every tenant-level Power BI and Fabric admin setting with group, enabled status, and search

Lineage

End-to-end lineage at the item level — from data sources through semantic models and dataflows down to every connected Power BI report, paginated report, Excel consumer, and downstream semantic model. A dropdown in the top-left corner switches between two views. See End-to-end lineage for the walkthrough and workflows.

Data sources — starts from every data source and traces downstream: which semantic models and reports depend on it.

Lineage tab — data sources view showing downstream models and reports per source

Models and dataflows — starts from every semantic model and dataflow and shows both directions: upstream sources that feed into it and downstream reports, Excel files, and chained models that consume it.

Lineage tab — models and dataflows view showing upstream sources and downstream consumers

Access

Who can access which workspace and item — every principal (user, security group, service principal) with their role on each workspace and on individual items. Full Tenant Analysis only — this tab is not present in Limited Tenant Analysis. See Access & permissions tracking. To change access rather than audit it, use Workspace access (admins only).

Access tab — user-level view showing each principal with their access to workspaces, models, reports, apps, and dataflows

Access tab — report-level view filtered to personal workspaces, showing per-report access rights

Apps

Every Power BI app in the tenant — including organizational apps — with the workspaces each app publishes from, the audiences defined inside each app, 28-day consumption data (opens), contact information, and the users/groups who can access each audience. Useful for understanding app adoption and for license-compliance audits (who is consuming which content through which app). See Apps & audiences.

Apps tab — every Power BI app with audiences, 28-day consumption, contacts, and access details

Semantic models

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 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
  • CUs (new in v2.9.5) — the model’s Capacity Unit consumption, populated after fetching Capacity metrics
  • # of DAX errors (new in v2.9.5) — how many DAX expressions in the model currently contain errors

Expand any model to drill into its tables, queries (incl. unloaded / auto date tables), relationships, and connected reports. The search bar (Search all levels on by default) filters to just the models containing your term. Right-click a model for View end-to-end lineage, View refresh events, or Best practices (its full list of violations with details). After Phase 3, sort by Potential savings to find the biggest cleanup wins. See Semantic models inventory.

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

Dataflows

Every dataflow (Gen1 and Gen2) from the scan — type, workspace and workspace type, last refresh (UTC) with status, queries, last modified by, average refresh duration, refresh schedule, and capacity, plus the full M/Power Query code. Searchable across all M expressions — useful for finding which dataflows reference a specific data source or table. Right-click a dataflow and choose View end-to-end lineage to see its upstream sources and downstream models. See Dataflows inventory.

Dataflows tab — Gen1 and Gen2 dataflows with type, last refresh status, queries, last modified by, avg refresh duration, schedule and capacity, plus expandable M queries

Power BI reports

Every Power BI report scanned, with columns for:

  • Name and workspace
  • Connected semantic model — which model the report reads from (see Semantic models)
  • Page count — number of pages in the report
  • Owner / last modified by
  • Views and page views — 28-day consumption, if activity logs were fetched (see Report views & opens)
  • Average load time — how long the report takes to render (see Report load times)
  • Custom visuals — count of certified vs. non-certified custom visuals (see Custom visual consumption)
  • Report-level measures — count of measures defined at the report level (rather than in the model)
  • Report subscriptions — the Subscriptions button opens a tenant-wide list of every subscription, its owner and recipients. See Report subscriptions
  • Broken visuals (new in v2.9.5) — how many visuals in the report currently render an error instead of data, drillable per page and per visual. Right-click a report or page for View broken visuals — the detail list shows each broken visual with the reason (missing artifact, broken DAX, broken visual-level filter). See Find broken visuals

See Power BI reports inventory.

Power BI reports tab — reports with pages, views, and consumption data

Notebooks

Fabric notebooks across the tenant — workspace and workspace type, average run and session durations, last run (UTC) with success/failure status, run schedule, and lines of code per notebook. Searchable across all notebook content — useful for finding which notebooks reference specific packages, libraries, or keywords. See Fabric notebooks inventory.

Notebooks tab — Fabric notebooks with run and session durations, last run status, run schedule, lines of code, and searchable content

DAX expressions

Every DAX measure, calculated column, and calculated table expression from every scanned semantic model — browsable and filterable. Use the search bar to find specific function calls (e.g. USERELATIONSHIP), table references, or variable names across the entire tenant’s DAX codebase in seconds. See DAX expressions.

DAX expressions tab — every DAX expression across all scanned models, searchable and filterable

DAX expression violations — highlighted unused variables and best-practice violations within a measure

Duplicate DAX expressions — measures with identical definitions across models

M Expressions

Every M / Power Query expression from every scanned semantic model and dataflow — browsable and filterable. Search for specific data source references, table names, transformation functions, or connection strings across all models and dataflows in the tenant. See M Expressions.

M Expressions tab — expanded view showing Power Query code for each query

M Expressions tab — searching for a specific table or view across all models and dataflows

Row Level Security

Every RLS role in every scanned model, the DAX filter expression behind it, and the principals (users, security groups) assigned to each. See Row-level security (RLS).

Row Level Security tab — every RLS role with filter expressions and assigned users/groups

Top toolbar — actions

The toolbar above the tabs has buttons for running the scan and launching the cross-scan analyses.

Back

Return to the workspace / dataset picker before the scan — useful if you want to change the scope and re-run without quitting Measure Killer.

Analyze

Kick off the scan with the current selection / filters.

Stop

Cancel an in-progress scan.

Save

Writes the current scan state to a .measurekiller file on disk — every workspace, item, and bit of metadata Measure Killer has fetched so far. Open the file later (or share it with a colleague) and every populated tab is restored exactly as it was, with no re-fetch needed.

This is the foundation for the “incremental scan” pattern on large tenants: scan a batch, Save, come back tomorrow, Load, scan the next batch, Save again. See Resume an interrupted scan.

The file is also useful for handoff — a colleague without your admin rights can open the saved .measurekiller and see exactly the same data, since the scan results travel with the file.

Activity logs

Pull Fabric activity logs for a date range you specify, then drill into who did what — refreshes, Excel connections, Analyze-in-Excel sessions, report opens. You can select which activity types to fetch (e.g. only Excel activities or only connection activities) — fetching fewer types speeds up the scan on large tenants. Activity-log API is admin-only (28-day window, with a local SQLite database in %APPDATA% extending history beyond that — each scan merges fresh results with what’s already stored). See Identify Excel users.

Report views

Aggregated report and page views over the last 28 days, pulled from the activity logs. Shows open counts per report and per page, so you can identify which reports and pages are actually being used — and which have zero consumption. This data feeds into the Clean your model suggestions for reports and pages without recent consumption (suggestions 8 and 9).

Like activity logs, report views, opens, and average load times are stored in the local SQLite database in %APPDATA% — each scan merges fresh data with what’s already there, so your history accumulates beyond the 28-day API window. See Report views & opens for the full walkthrough on building long-term consumption history and exporting page-level data.

Capacity metrics

(New in v2.9.5.) Opens the Capacity metrics window, which fetches Capacity Unit (CU) consumption for the Fabric / Premium capacities in scope. It has its own Fetch data step (the CU data comes from a different API than the rest of the scan), a View data tab with the per-capacity → workspace → item type → item → operation breakdown, and an Instructions tab. Needs Capacity Admin on the capacity — not full tenant admin. Fetching also populates the CUs column in the Semantic models tab, so each model’s consumption shows up right in the inventory. Like activity logs and report views, results merge into the local SQLite database in %APPDATA%, so history accumulates beyond Microsoft’s 14-day window. See Capacity metrics for the full walkthrough.

Workspace access

A bulk workspace-access action, available to tenant / Fabric admins only. Unlike the Access tab (a read-only audit of existing permissions), the Workspace access window changes permissions: pick Add access or Remove access, choose a User (by email) or an AD Group, set the workspace role when adding (Admin, Member, Contributor, or Viewer), select one or more workspaces, and Execute — Measure Killer calls the admin API to apply the change in one operation (up to 200 workspaces per hour). See Grant or remove workspace access in bulk.

Workspace access window — bulk add or remove a user or AD group across selected workspaces

Remove access

The Remove access mode of the Workspace access window (above) — bulk-revoke a user or AD group from the selected workspaces. There is no automatic rollback, so if you remove someone by mistake, re-add them with Add access.

Analyze model usage

Runs the core Measure Killer used/unused analysis across every scanned semantic model in the tenant — locally, on the metadata Phase 2 already pulled, with no extra API calls. This is the tenant-scale equivalent of the Clean your model tab from the single-model scan: once it finishes, every semantic model gets a % unused figure and an estimated size that can be freed, both surfaced in the Semantic models tab. Sort by either column to spot the biggest cleanup wins across the tenant.

This is Phase 3 of a tenant scan — see Run a tenant-wide scan → Phase 3.

View model usage

Drills into a single semantic model at a time to see the full per-column / per-measure where-used detail — the same level of metadata a single-model online scan produces, but for any model already pulled into the tenant scan. Run Analyze model usage first to get the tenant-wide % unused / freeable size summary, then View model usage to drill into whichever model you want to clean up.

Model similarity

Compute similarity scores across every scanned semantic model — table / column / measure / relationship overlap — and surface duplicates and near-duplicates worth consolidating. See Semantic model similarity score.

Report similarity

Same concept as Model similarity but applied to Power BI reports. Compares reports across pages, visuals, filters, bookmarks, report-level measures, custom visuals, and mobile layouts. Each pair gets a similarity score — the higher the score, the more likely the reports are duplicates or near-duplicates worth consolidating. See Report similarity score.

Custom visual consumption

Lists every custom (non-Microsoft) visual in use across the scanned tenant — which visual, which reports use it, how many instances, and which users have built or consumed reports containing it. Useful for license-compliance checks (some custom visuals require per-user licenses), for identifying deprecated or unsupported visuals before Microsoft removes them, and for standardizing which visuals your organization allows.

Exports overview

The Exports sidebar (left side, second tab) writes raw JSON files you can hand to a downstream tool — your data warehouse, a governance dashboard, or an AI model.

Measure Killer Tenant Analysis Exports sidebar — full list of raw JSON exports including DAX, M, refresh events, RLS, report opens / page views / load times, subscriptions, activities, capacity metrics, and more

ExportWhat’s in it
Full exportEvery dataset listed below, in one bundle
Full without DAX and MThe bundle minus the DAX and M expression dumps (smaller file)
Custom visualsCustom visuals from fetched reports
DAX ExpressionsAll DAX from analyzed models
M ExpressionsAll M queries from analyzed models
Refresh eventsRefresh history for semantic models and dataflows
Row-level securityRLS expressions and member assignments
Model best practicesBest-practice violations on models
Report best practicesBest-practice violations on reports
Report opensAggregated report opens (not views) by date
Report page viewsAggregated page views by date
Report load timesLoad times (seconds) for each report analyzed
Report subscriptionsReport subscriptions from fetched reports
Report activitiesReport activities from the activity logs
Excel activitiesExcel users connecting to Power BI models
Connection activitiesConnections from external apps to models
NotebooksNotebooks metadata and content
Users access rightsDetailed user / group access permissions
SettingsTenant settings configured in the service
AppsAll apps in the tenant
LineageFirst-level connections for all items
Workspace InfoOriginal content from the Scanner API
Capacity metricsCU consumption, per-item cost breakdown, and historical capacity usage