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.

Power BI reports inventory

Every Power BI report in the tenant — pages, views, load times, custom visuals, report-level measures, and subscriptions — with 28-day consumption data.

What you get

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

Every Power BI report scanned, with columns for:

  • Name and workspace
  • Connected semantic model — which model the report reads from (see Semantic models inventory)
  • Page count — number of pages in the report
  • Owner / last modified by
  • Views and page views — 28-day consumption (if activity logs were fetched). This data is stored in a local SQLite database in %APPDATA% and accumulates across scans, so your history grows beyond the 28-day API window. See Report views & opens for the full breakdown of page-level consumption data and long-term retention
  • Average load time — how long the report takes to fully render, averaged per user. See Report load times for the performance deep-dive
  • 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 — open the Subscriptions button for a tenant-wide list of subscriptions, owners and recipients. See Report subscriptions

Run the analysis

  1. Run a tenant-wide scan and complete Phase 2 by selecting items and clicking Analyze.
  2. Switch to the Power BI reports tab.
  3. Sort, filter, or search by any column.

Common workflows

  • Find unused reports. Sort by Views (ascending) to find reports with zero opens in the last 28 days. Cross-reference with the connected semantic model — if the model is also unused, both are candidates for cleanup.
  • Identify slow reports. Sort by Average load time (descending) to find reports that take the longest to render. Reports above 5–10 seconds are worth investigating. See Report load times for the full performance workflow.
  • Audit report-level measures. Filter for reports with report-level measures. These measures are defined inside the report rather than in the semantic model, making them invisible to other reports and harder to govern. Consider moving them to the model.
  • Custom visual compliance. Review which reports use custom visuals and whether those visuals are certified. Non-certified custom visuals may pose security or support risks. See Custom visual consumption for the full security, licensing and compliance workflow.
  • Subscription audit. Open the Subscriptions button to see who receives each report — including external / unresolved recipients who may not have access — and the high-frequency subscriptions that quietly consume capacity. See Report subscriptions.

What to do with the findings

  • Export to Excel — click Export in the toolbar to export the full report inventory to Excel for usage reviews or governance reporting.
  • Export as JSON — paid editions can also export as raw JSON for integration with governance dashboards or usage analytics.
  • Run report similarity — use Report similarity to find duplicate or near-duplicate reports across the tenant.
  • Share the .measurekiller file — hand the scan to a colleague for review.