top of page

Measure Killer

an external tool for Microsoft Power BI

logo 2048.png

Cleaning up your Power BI tenant

Measure Killer can help you clean and optimize your tenant and datasets. This can drastically reduce dataset refresh times and thus lower the memory and CPU usage of your Premium capacity. Since we use XMLA endpoints, the dataset can remain in the service. Additionally, we only analyze metadata of any semantic model or report.

Tenant Analysis

This mode shows you on a tenant level in which reports custom visuals are used or what is going on in personal workspaces. It can analyze the whole tenant in a short time and provide unique insights regarding report-level measures, calculated columns, local date tables or many-to-many relationships.

Deleting unused measures

Measure Killer can identify and remove unused measures. The tool can write to the model directly to remove them. Don't worry if you made a mistake, the restore feature can help you out.

Deleting unused columns

Measure Killer will generate an M-Code to delete unused columns. This code can be pasted into Power Query's Advanced Editor to remove these columns from the model. Calculated columns can be removed directly by writing to the model (locally or in the Power BI Service)

Analyzing reports

For every report analyzed, Measure Killer will generate a comprehensive Excel file to show where an artifact is used. This can be in: Measures, Visuals, Filters, Conditional Formatting, joins in Power Query, or other parts of a Power BI Report such as Relationships.


What does Measure Killer detect?

  • Visuals - including filters applied to visuals, on pages or the whole report.

  • Artifacts only used in custom visuals (see compatibility matrix below for details)

  • Any kind of measure or relationship

  • Columns used exclusively in Power Query, e.g. in joins, appends, references etc.

  • Calculated columns

  • Calculated tables

  • Conditional formatting

  • Visual calculations

What does not work?

  • If you copy whole reports and then only do some minor changes, this can lead to false references.

  • DAX expressions like COUNTROWS that only reference a table are not considered unless there is a column or measure referenced as well.

  • Default titles and subtitles (created by Power BI / default) will not be recognized. If you change the titles in any way they will be detected though.

  • Restrictive sensitivity labels might produce errors.

Measure Killer Compatibility


fully compatible

 ?   limited compatibility

 ✗  currently not working


 .pbix (Desktop and Desktop RS)

 .pbix (Uploaded to PBI Service)

 .pbip (paid versions only)

 .pbir (paid versions only)

 .pbit (paid versions only)

 Thin files


 Composite models

Paginated reports (paid versions only)

Analyze in Excel (paid versions only)

All reports in the service can now be analyzed (paid versions only)

 Full compatibility with SSAS and AAS coming soon (paid versions only)

✗ Thin files only (in mode 1 not possible, in other modes yes) for mode 1 switch to DQ to make it work!


Any type of live connection (SSAS, AAS, Datamarts) - create a local mode (DQ) to make it work!

.bim files / models stored in a folder etc.

Metrics (Goals)

Feature compatibility:

 Row-level security

 Calculation groups

 Field parameters

 Dynamic format strings

 Visual calculations

✗ KPIs (created in the tabular model)

✗ Object-level security (When an artifact is only used in OLS, Measure Killer will not detect it)

Compatibility of visuals:

 Standard visuals (all, unless listed below)

 Icon Map

 Zebra BI visuals

 HTML VizCreator Cert

 HTML VizCreator Flex

 Balance Sheet Visual

?  Other custom visuals (We have not tested Measure Killer for all custom visuals)

Q&A visual

✗ Paginated report visual

✗ Metrics (Goals) visual

Measure Killer pricing
All offline features are free to use personally and commercially.
Go to the Download section to get started

The online capabilities of Measure Killer (running in the Power BI Service) like shared models online, Tenant Admin Mode or Tenant Analysis are paid upgrades.

To unlock these modules/features or to get priority support from the Measure Killer team, please purchase a license.
The Basic license is only for PPU organizations and does not include support.

How to use "Measure Killer" (will be updated for version 2 soon)

Blog post or YouTube video

Shared datasets on local machine mode

Shared datasets online (in the Power BI Service)

Measure Killer - Download and Changelog

Current version 2.2.0

Stay up to date

Thanks for subscribing!

The store version requires admin rights.

Release Notes for 05/23/2024

Version 2.2.0

- Visual Calculations
- Plots are back!
- We can now automatically find Analyze In Excel users by querying activity logs
- New to Tenant Analysis: report views, data sources, Fabric items, datasets average refresh time and refresh schedule
- Better error handling in all modes
- Custom BASE URL for US government cloud (Preview)
- New export options added to Tenant Analysis
- DAX and M expressions tabs in all modes
- Export feature for ‘What if? Analysis’
- Execution getting stuck due to mobile view issues
- 'Workspace not found' error in Tenant Analysis and Admin modes
- Visual level filter false negative
- DAX expressions not showing for calculated tables in the exports
- Minor UI bug fixes
- Restoring artifacts will now keep their original format string and data type

Older versions

Release Notes for 04/12/2024

Version 2.1.0

- Measure killer will now also analyze artifacts only used in the mobile layout
- Added 2 new usage categories: “Used as key column” and “Used as Row Label”
- New Semantic models tab in the main window (see here)
- New type of license: enterprise limited (no "killing" in online modes for normal users)
- Drastically improved speed in tenant analysis
- Minor improvements to Tenant Analysis (Visuals aggregation, Apps can be turned off etc.)

- Custom visuals in Tenant Analysis are split into certified and uncertified

- Generating C# scripts is back in all modes
- Sudden crashes in modes 3, 4 and Tenant Analysis
- Tenant Analysis top hierarchy “select all” button behavior bug
- Portable Installer will now add a start menu icon
- Multiple 'let' statements caused an error in the generation of the last step in kill columns

Release Notes for 02/27/2024

Version 2.0.1

- Added usage status for field parameters and calculation groups

- Capacity column in Tenant Analysis empty bug
- Tenant Analysis lineage bug after running Tenant admin mode
- Dark mode tree icons not showing when the app is opened as an external tool
- Backup folder error upon formatting PC
- Execution summary tooltip was considering Report Level Measures, fixed the calculation
- Report level measures breaking upon table deletion with a reference
- Paginated reports duplicated usage for dataset fields
- Added better error handling for dataset selection in mode 1 and 2
- Wrong classification for personal workspaces built for the one drive and share point lists
- "Manage Backups" button leads to the wrong directory
- Desktop shortcut not being created for the admin installer
- Error opening measurekiller for some users with older versions

- Edit instructions in Tenant Analysis

Release Notes for 02/13/2024

Version 2.0.0

-Completely new UI
-New mode "Tenant Analysis" 
-Finding all unused artifacts in one run
-Ability to run multiple semantic models at once
-Analysis 5-10x faster
-Added downstream semantic models (composite/child models) and personal workspaces
-Removing and restoring artifacts via XMLA to models online
-Added "What if analysis"
-Added full .json export and new excel report
-Huge improvements to logic and usability
-Added logs/traces to debug and to increase transparency
-Massive reduction of bugs, too many to list here

Release Notes for 10/10/2023

Version 1.2.1


 -Fixed connection error in offline modes

Release Notes for 10/05/2023

Version 1.2.0


-Removing measures and calculated columns in the online mode is now possible
-Added 'Used in' option to search artifacts
-Added clear search button on all text search fields
-Minor UI improvements


-Visual filters with aggregations false negative is fixed
-Power Query references bug fixed
-Fixed report size bugs when all artifacts were used or unused
-Changed authentication workflow to avoid MK getting stuck if authentication failed
-MK now asks to run again after artifacts have been restored
-Fixed a bug where MK would crash if the backup folder didn't exist

Release Notes for 08/14/2023

Version 1.1.0

-All Power BI and Paginated reports in the Service can now be analyzed
-New dark mode theme
-Release notes displayed in MK
-Users can now copy the rows, details, and the entire table directly from the main window.
-Analytics section with expanded artifact hierarchy in calculations.

-Small fixes in shared dataset on local machine mode
-Empty layout issue for older reports
-Minor UI bug fixes


Release Notes for 07/19/2023

Version 1.0.0


Admin Mode: For tenant admins, Measure Killer can now search your entire tenant for reports connected to a respective datasets. It temporarily grants you permission and then removes them again.

Excel File Analysis: Measure Killer now extends its analysis capabilities to Excel files linked to your dataset (you need to add them manually in all modes)

Paginated Reports: These reports can be analyzed just like Power BI reports now.


Measure Killer Analytics: An advanced analytics approach, providing unique information about your reports and datasets.

-Putting a cost on measures (in terms of storage they consume via columns they reference)

-Showing total storage used by an individual report, page in a report or visual.

-Giving you the distinct size of an artifact consumed (meaning this is what you can save if you removed it)

Other features:
-Advanced Console: A robust command set for printing and displaying metadata, results, and more has been added.
-Automated Removal of Calculated Columns: Measure Killer can now automatically detect and remove calculated columns.
-Hiding Unused Columns: Functionality to hide unused columns has been added to Measure Killer.
-Support for .pbip and .pbit file formats (Preview feature): Measure Killer can now read the new .pbip file extension as well as template extensions.
-Bulk Restoration of Deleted Measures: Users can now restore multiple previously deleted measures simultaneously from Measure Killer backups.
-Improved Shared Dataset on Local Machine Mode: We've made this mode more user-friendly.
-Drag and Drop feature: You can now use drag and drop for adding themes, analyzing in Excel, and other file extensions.
-Usage Count in Results: To enhance result visualization, we've included a 'number of uses' metric in the output.


[Bug Fixes]
-Shared Dataset on Local Machine Mode: Fixed the issue of window minimizing when selecting the port. Now, the window stays open.
-Duplicate Entries: Fixed the issue of duplicate entries in row by row result documents.
-Theme Selection Bug: Fixed a bug where, in some instances, the theme selection wouldn't change as expected.

Release Notes for 05/19/2023

Version 0.9.10


-Fixed an issue that prevented all reports from being removed from the report list.
-Implemented a "Stop" button to end the process running in a separate thread, preventing it from continuing if the window is closed -after "Run".
-Improved error handling for instances where ".pbix" file paths were incorrect (moved or deleted), which caused a "Could not retrieve filters data" bug.
-Resolved a bug with page-level filters.
-Stopped automatic report downloads after closing Measure Killer in online mode.
-Fixed an issue causing the page for page-level filters in the main window to be blank.
-Corrected a false negative issue with the TopN Filter of visuals.
-Improved workspace sorting (first dropdown in the process/UI) for accuracy.
-Corrected a false negative when referencing tables with specials characters in thin/live reports.
-Enforced a requirement for at least one valid report to run Measure Killer in online mode.


-Auto-check for new versions of Measure Killer.
-Tooltips for buttons, providing explanations for their functionalities.
-Reverse sorting (Z-A) for lists and dropdowns in the online mode.
-Removed "Show Results" button for a streamlined experience.
-Implemented a progress label, providing real-time count of artifacts analyzed.
-Enhanced excel export by including visual title and subtitle for visuals.
-Included multiple notebooks in the main window: Information, Execution, and Killing logs for better organization and tracking.
-Added auto-copying of C# script for deleting measures to the clipboard.
-Displayed the dataset name in the main window for online mode.

Release Notes for 04/24/2023

Version 0.9.9

Resolved "Measure" key issue in live/thin reports with broken measures.


-Enhanced Shared Datasets Online Mode UI (Basic/Enterprise).
-Use [DEL] & [ENTER] to include/exclude reports in Shared Dataset Online Mode.
-Workspace search & sort options added.
-Report names now included in layout errors.

-More sorting options in online mode.

Release Notes for 04/07/2023

Version 0.9.8


-Resolved an issue where measures or columns in the rule option for conditional formatting were not being detected.

-Fixed the "Delete selected" button bug in the "Edit reports" section for live connections on local machines.

-Addressed the Group ("Single visual") bug when grouping visuals.

-Prevented the Settings window from opening twice.

-Removed the "MK_" prefix from the beginning of the saved results Excel file name.

-Corrected a bug where some columns were omitted from the report.


-Added the ability to backup and restore measures deleted by Measure Killer.

-Implemented a new and more secure authentication (license) method.

-Introduced an "Expand All" option in the main window.

Release Notes for 03/20/2023

Version 0.9.7


-Added the ability to configure proxy options for API calls and Azure identity verifier.


-Online mode now takes users back to the Workspace and Dataset window, rather than resetting the Measure Killer tool to its initial state.

-Dataset and Workspace selection window is now resizable, giving users more control over the size and layout of the window.

Release Notes for 03/15/2023

Version 0.9.6


-Improved error handling

-Smart narrative visual fixed

Release Notes for 03/08/2023

Version 0.9.5


-Added Shared/golden Dataset online mode.

Users can now select a dataset and Measure Killer will detect all connected reports in workspaces that the user has access to. For this mode, no local files are needed anymore.
-Enhanced detection of artifacts in visuals.

-Significantly reduced number of false positives

-Strongly improved Power Query M logic

-The user interface has been improved with rearranged buttons, reduced windows, and a menu bar has been added.

-Users can choose to either "Remove other columns" or "Remove columns" to "kill" columns.

-Added a menu for Measure Killer's main window (less buttons).
-Users now have the option to choose one of 11 color themes for the entire Measure Killer application.


-False positives for substrings in visuals have been fixed.

-Fixed duplicates in where artifact are used.
-The main window no longer becomes "not responding" in bigger reports.
-Fixed multiple steps with the same name, "Columns removed by Measurekiller"
-Fixed calendar artifacts usage bug.

Release Notes for 01/05/2023

Version 0.9.2


-Fixed a bug with "filter on this page" and "filter on all pages"

​Release Notes for 12/07/2022
Version 0.9.1

- Updated the installer

- Fixed offline bug where Measure Killer was not loading

​Release Notes for 12/05/2022
Version 0.9


- Added connection to shared datasets and live/thin reports (offline and via XMLA endpoint for premium workspaces)
- Improved results table

- rearranged buttons and added some functional buttons e.g "back button"

- changed formatting of results table

Release Notes for 10/17/2022
Version 0.8



- Added option to kill measures directly in Measure Killer without using Tabular Editor
- Added feature to sort columns 
- Added detection of columns used only by incremental refresh
- Added (DAX) expression column for Excel output
- Added new report option (row by row) when saving the results file
- Self-update after killing measures (the user doesn’t have to click on run again)


- Added error handling for blank file selection
- var. smaller bug fixes

Release Notes for 10/06/2022
Version 0.7

-You can now see how costly (in terms of storage space) your unused columns are
-Table overview of unused artifacts
- var. bugfixes and performance improvements

Release Notes for 9/16/2022
Version 0.5

- Rearranged Buttons.
- Fixed an error that caused false positives if measure names would contain " and '.

Release Notes for 9/7/2022
Version 0.4

- Added M code to automatically remove columns.
- Improved UI and added colored buttons.

Release Notes for 8/27/2022
Version 0.3

- Added C# script to remove measures.
- Added option to plot results.
[ MISC ]
- Removed info page on startup.

Measure Killer Security Information and Documentation
Version 2.0.0

This document outlines the security details and data handling practices of Measure Killer.

Data handlingd Privacy Assurance

Measure Killer is meticulously designed with user privacy and data security as paramount concerns. It is important for users to understand the scope and way that Measure Killer interacts with Power BI.

Metadata-Only Interaction

Measure Killer only interacts and utilizes metadata from Power BI Desktop or the Power BI Service. At no point does Measure Killer read, store, or process actual data contained within Power BI reports or models. This strict limitation to metadata ensures that sensitive data remains confidential and secure.

What is considered Metadata?

Metadata is considered the following (examples):
•    Names or artifacts (report, semantic models, workspaces, users/email addresses)
•    DAX and M expressions including comments
•    Names of measures, tables, calculated columns, calculated tables, calculation groups, field parameters etc.
•    Uncompressed size of columns
•    All definitions (e.g. name of reports, pages, visuals, visual titles, visual size and other metadata)

Local processing of metadata

All processing and analysis of metadata conducted by Measure Killer is performed locally on the user's machine through the installed client software. This approach ensures that the operations on metadata do not involve or require any external processing or storage facilities. By doing so, Measure Killer upholds a high standard of data protection and minimizes potential security risks. There is no database that is hosted, managed, or used to process any kind of information, everything is done on the user’s machine and not transmitted anywhere besides when using XMLA or REST API calls with Microsoft directly.

XMLA Endpoint Connection

To retrieve metadata from semantic models in the Power BI Service, XMLA endpoints are used. The authentication happens via the entered Microsoft account (see adomd client for more specifics on this).

API Calls to Microsoft for Metadata Acquisition

The only other external interaction Measure Killer undertakes involves REST API calls to Microsoft’s Power BI Service for the acquisition of metadata. These API calls are made in compliance with all relevant security protocols. Authentication happens via browser interaction (OAUTH2). Once metadata has been acquired, all subsequent analyzes and operations are carried out locally. See the list at the bottom of this document for a list of REST API calls done.

Online/Offline Modes

Measure Killer is designed to be able to operate both online and offline:
•    In the offline modes, Measure Killer connects to the local instance of Analysis Services to retrieve the metadata it needs (Modes 1 and 2). In these modes the only time there is an interaction with the internet is upon launch to verify valid licensing (see License Verification below for details)
•    Online modes (Modes 3, 4 and 5) are triggered when an active internet connection is detected and when the user has a valid license. In these modes there are external connections happening (only REST API calls and XMLA connections to Microsoft as outlined above).

License Verification and Datetime Check 

•    Measure Killer uses API calls to acquire the current date and time: GET or, as a fallback, GET current/zone?timeZone=Europe/London to ensure the license has not expired.

Version Check and User Notification

•    To inform users about available updates, Measure Killer queries GET to compare the installed version against the most recent version available the website.
•    There is one additional GET request to extract text and write it in the main UI window from this URL GET
API Endpoints and Security Measures
•    Secure requests (HTTPS) are made to Power BI API endpoints, ensuring data in transit is encrypted.
•    Access tokens are securely passed in request headers, with responses parsed as JSON for internal processing.

List of REST API calls

•  GET{id}/datasets
•    GET{id}/reports
•    GET{id}/users
•    GET{}/reports/{}/datasources
•    GET{}/reports/{}/Export 
•    GET
•    GET
•    GET
•    GET
•    POST
•    POST{}/users
•    DELETE{}/users/{}

•    GET{}/artifactAccess?artifactTypes=” Workspaces”



There are two different versions. An "admin" version and a "non-admin" or portable version. In order to be able to install the admin version, the user must have administrator rights in the system. But basically the two versions work exactly the same. The only disadvantage of the "non-admin" version is that Measure Killer will not be automatically added to the "External Tools" in Power BI Desktop. Measure Killer in the Microsoft store is the "admin" version.

The documentation will soon be updated to show Measure Killer 2.0

bottom of page