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.

Dataflows inventory (Gen1 + Gen2)

Every dataflow in the tenant (Gen1 + Gen2) — type, workspace, queries, last refresh status, average refresh duration, schedule, owner, and capacity — with full M/Power Query code searchable across all M expressions.

What you get

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

Every dataflow (Gen1 and Gen2) from the scan — its M/Power Query code, query count, refresh health, schedule, owner, and hosting capacity. Searchable across all M expressions — useful for finding which dataflows reference a specific data source or table.

For each dataflow you see:

  • Name — expand to see Dataflow Queries and each individual M Query
  • TypeDataflow (Gen. 1), Dataflow (Gen. 2), or Dataflow (Gen. 2 CI/CD)
  • Workspace and Workspace type (e.g. Premium)
  • Last refresh (UTC) — timestamp with a success/failure status icon (green check, red ✗, or N/A)
  • Queries — number of Power Query queries inside the dataflow
  • Last modified by — who last edited the dataflow
  • Avg. refresh duration — average refresh time (HH:MM:SS)
  • Refresh schedule — the configured schedule (e.g. Every day at 9:00), or Disabled
  • Capacity — the capacity hosting the dataflow (name + ID)

Expand any dataflow to see its full M/Power Query code. Right-click any dataflow for two drill-ins:

  • View end-to-end lineage — all upstream data sources and downstream models and dataflows (see End-to-end lineage).
  • View refresh events — the dataflow’s full refresh history (see Refresh events).

Run the analysis

  1. Run a tenant-wide scan and complete Phase 2 by selecting items and clicking Analyze.
  2. Switch to the Dataflows tab.
  3. Use the search bar to find specific data sources, table names, or M functions across all dataflow code.

Common workflows

  • Find every dataflow that references a data source. Use the search bar to search across all M expressions — type a server name, database name, or connection string fragment to find every dataflow that connects to it.
  • Identify unused dataflows. Right-click a dataflow and choose View end-to-end lineage — one with no downstream models or dataflows may be abandoned and safe to delete.
  • Audit refresh health. Sort by Last refresh (UTC) to find dataflows with failed refreshes, or by Avg. refresh duration to spot the slowest. Expand to see the M code and diagnose connection or transformation issues.
  • Plan a data source migration. Before retiring a data source, search for its name to find every dataflow (and model) that references it. Build the migration plan from the results.

What to do with the findings

  • Export to Excel — click Export in the toolbar to export the full dataflow inventory to Excel for documentation or migration planning.
  • Export as JSON — paid editions can also export as raw JSON, including M code, for downstream analysis or documentation.
  • Share the .measurekiller file — hand the scan to a colleague for review.