April 8, 2025 · Alex Badiu
External Tools - Their role in Documentation - Part 2
Table of Contents
External Tools - Their Role in Documentation - part 2
1. Measure Killer
2. PowerOps
2.1 Bookmark Documentation
3. TMDL Explorer
4. SQL Server Profiler
Quick Recap
If you’re in charge of Power BI development and documentation is “your territory”, you’re the one who makes things happen. You need the right tools to keep your things clean, efficient and under control.
A reminder from the previous post:
| :exclamation: When we finalize documentation, we document excellence. |
|---|
To achieve this, we need the right:
- Mindset
- Knowledge
- Tools
- Approach
This sequence is intentional. The primary driver is mindset paired with business knowledge and needs. While technical discussions about methods and tools are valuable, organizations invariably follow a BUSINESS - PROCESS - PEOPLE hierarchy. Business needs create the foundation for processes, and only then do people require tools and actions to support them.
This week, we continue our conversation about the role of external tools in documentation. We’ll review other external tools we have at our disposal, examine various options, and explore how to leverage them to create not only more polished reports, but also enhance visual documentation, or simply assess our current progress.
[!Warning] A word of caution: Don’t expect an exhaustive list of all tools available —there are many other tools inside or outside the Microsoft ecosystem. I have no allegiances, no strings attached. The opinions are entirely my own. What I’m sharing are practical insights drawn from my actual field experience, deliberately focusing on a highly curated selection of tools.
Before diving in, I must emphasize the golden rule: Process is king! No tool performs miracles without a solid process behind it.
Let’s be honest: Expecting developers to maintain documentation solely out of goodwill is simply unrealistic. We require strong, well-defined processes.
Robust processes: The documentation enforcer
One example of a typical process to enforce documentation is the code review process. It is typically part of a broader CI/CD ( Continuous Integration/Continuous Deployment workflow triggered by Pull Requests. This is where documentation transforms from a nice to have to a critical requirement.
No documentation? Bye bye Go to Prod. Straightforward and non-negotiable.
| :exclamation: It’s not personal, it’s strictly business |
|---|
This being clarified, let’s meet our “team”.
1. Measure Killer
This external tool doesn’t negotiate - it eliminates! And what’s the target? The Power BI threat is the Data Clutter.
In the world of Power BI, clutter is one of the main enemies. It’s always there, waiting to sneak inside the projects.
Unnecessary elements always have the habit of creeping into the semantic model, and gradually:
- Slow down report performance
- Complicate the development process
- Make semantic models difficult to understand
- Create a snowball effect of complexity
Without a strong hand to control it, this clutter can transform your once-efficient project into a nightmare that ultimately costs you money.
Why Measure Killer?
Measure Killer helps keep your Power BI environment clean and efficient. Its main purpose is to identify and remove unnecessary measures, columns, and tables from your semantic model.
During code reviews, having only essential elements in your model is a key requirement. This is especially important in self-service semantic model datasets, because removing unused elements becomes much harder once reports are built on your dataset.
While Measure Killer’s free version provides fundamental cleanup capabilities, their paid version offering delivers advanced features addressing, among others, the before mentioned challenges. Measure Killer | Brunner BI
An example of “Measure Killer” audit.
Another feature I appreciate using is the integration and the scoring methodology built on top of Best Practice Analyzer.
Ensure your reports avoid the “blood red” classification of “Power BI criminal”! ;)
[!NOTE] One of the main advantages of Measure Killer is its ability to pinpoint inconsistencies and unused elements in your Power BI report. This makes it an excellent tool for managing your work effectively. The premium version expands these capabilities to cover your entire Power BI Service environment.
2. PowerOps
Overview of the external tool
Powerops
Learn more - I recommend reading the following article for a more in depth overview: Meet Powerops - Your New Best Power BI “External Friend”! - Data Mozart
This tool functions as your “intelligence agent”. Imagine inheriting a report with zero documentation and needing to understand its entire ecosystem quickly. That’s where PowerOps becomes your secret weapon. It helps you visually and intuitively find the information you are searching for.
[!TIP] In my assessment, this external tool is excellent to enhance your documentation visually. By incorporating well-defined visual analyses in addition to text, you improve documentation readability by making key elements more prominent and memorable, facilitating easier reference when seeking specific data later.
Consider the following jobs:
- Visualize Measure Dependencies: Discover measure branching patterns and measure-to-column relationships
[!Warning] Measure branching is a powerful strategy to break down complex calculations into smaller, more reusable parts. It typically improves readability and maintainability, but if taken to an extreme, it can become a maze of dependencies that’s difficult to troubleshoot and optimize.
There’s no “official” rule from Microsoft or the community stating a strict limit. A common recommendation is to keep branching at a max of 2–3 layers deep. Beyond that, you risk confusion and performance overhead if measures are heavily nested.
Why keep it modest:
- Performance: Each measure reference can add overhead, especially in complex or large models.
- Readability: Deeply nested measure references become difficult for other developers (and even you, months later) to follow.
- Debugging & Optimization: Tracing an issue through multiple layers of measures is time-consuming.
[!TIP] Recommendations:
- Group common logic into “base measures” that are used repeatedly (e.g., “Base Sales,” “Base Costs,” etc.).
- Build a second layer of measures that do simple transformations on those base measures (e.g., YTD, MTD, Growth Rate, etc.). Consider building calculation groups if the pattern is often used. Reserve a third layer for exceptional scenarios only.
Example of more complex measure branching
- Trace Measure Usage: Identify which measures power each graph or page
-
Understand Power Query Dependencies : Easily visualize your sources
-
Best Practices Comparison: Automatically benchmark reports against industry standards
This tool also incorporates Best Practice Analyzer. What I value in this experience is the concise explanation of why each rule constitutes a best practice.
- Comprehensive Overview:
- Page-level insights
- Most frequently used visuals
- Action tracking
- Custom visual identification
These views offer a wealth of information in a user-friendly format.
- Detailed Analysis: Allows you to inspect each page—including hidden visuals—to understand layout, utilized fields, applied filters, active measures, synced slicers, and more.
- Thorough Documentation: Captures and integrates a wide range of details into your Power BI report documentation, serving as an excellent resource for verifying every component.
- Optimized Element Management: Helps you check that all components are properly renamed and only the essential ones are kept.
- Dashboard-Like Transparency: Provides a clear, dashboard-style overview of your report’s underlying components, enhancing client transparency and demonstrating your meticulous, organized, and detail-oriented approach.
- Bookmarks: PowerOps accomplishes what most tools cannot, it helps document bookmarks!
Let’s briefly discuss Power BI bookmarks for context before exploring how PowerOps assists with bookmark documentation.
Bookmark documentation
[!WARNING] Bookmarks are the weakest point of Power BI reports. While they offer great flexibility for report building, they present significant documentation challenges. When problems occur, even minor ones, bookmarks typically require complete reconstruction rather than simple fixes. This makes knowledge transfer and handover processes particularly difficult.
Why bookmarks are difficult to document?
1. Not enough metadata
Bookmarks capture the visual state (i.e., filters, slicers, and selected visuals) at a particular moment, but they don’t store detailed metadata about why certain settings were chosen, the underlying data relationships, or the business logic behind them. Also, there’s no built-in way to search through bookmarks to find which ones contain specific visuals or settings.
2. Maintenance Challenges:
Since bookmarks are manually created, any change in the report (like renaming visuals, modifying filters, or updating data models) might break the bookmark’s intended context. This makes ongoing maintenance time-consuming and error-prone especially if testing is manual.
3. Static Nature vs. Dynamic Data:
Bookmarks only capture fixed snapshots. When working with changing data, you may need more dynamic controls. In these situations, you can quickly encounter bookmark limitations.
[!IMPORTANT] Microsoft’s Direction:
Microsoft has been moving toward reducing reliance on bookmarks by introducing enhanced visual interactions and native features (such as field parameters and better filtering options) that provide more dynamic and context-aware ways to manage visuals. This evolution indicates a preference for more robust, self-documenting features over bookmarks.
What are the best practices to document Bookmarks today?
- Create a dedicated hidden page inside your Power BI report
- Inventory: List each bookmark with its name, purpose, and the specific page/visuals it affects.
- Visual representation: Include screenshots or thumbnails of the report state that each bookmark represents. This visual cue helps users quickly understand the context of each bookmark.
- Manual descriptions
Since Power BI doesn’t provide a native description field for bookmarks, create a table on your documentation page where you can detail:
- Purpose: What the bookmark is intended to highlight or achieve.
- Components Affected: Which visuals, filters, or slicers are included.
- Usage Scenarios: When and why a user should select that bookmark (e.g., “Used for end-of-month summary” or “Focus on product category breakdown”).
[!IMPORTANT] Including bookmarks in your documentation is crucial as it serves as a training resource for new team members and handover materials. This reduces dependence on original creators and maintains consistency over time.
[!TIP]
- Don’t use too many bookmarks Keep it simple with just a max of 5-10 essential bookmarks per report. Too many bookmarks make your report hard to maintain.
- Choose bookmarks carefully Use bookmarks only for important navigation and storytelling. Group and name them logically by how they’re used (like “Overview” or “Detailed Analysis”). Also, rename and group visual elements on your page - this makes selection easier when creating bookmarks. For example, grouping 10 related visuals into one named group lets you select them all at once instead of individually.
- Clean up regularly Check your bookmarks often. Delete ones you don’t use much or that could be created differently as new features are introduced. This makes your report simpler and easier to test.
Let’s come back to PowerOps now and see how it helps us document bookmarks: I created three bookmarks in the demo file.
1st Bookmark is a straightforward one, it impacts all visuals on the page and their underlying data.
2nd Bookmark is a bit more complex. Only 1 visual slicer is impacted by the selected visual
UI limits today: what is the selected visual used for the second bookmark?
3rd Bookmark is what I call “the documentation nightmare”. Multiple visuals are impacted by the bookmark, data is not ticked, selection items not renamed or grouped in an intuitive way.
PowerOps provides a very useful view where we can see the settings chosen. It’s the same information we can obtain if we check the individual bookmarks on Power BI, but in a format we can snip or export easily.
export excel
What we cannot find is information about which visuals were selected in bookmarks. External tools like PowerOps can help document some bookmark aspects, but they still can’t fully compensate for Power BI’s lack of searchable bookmark metadata, particularly regarding which visuals were selected in each bookmark. This limitation reinforces why proper documentation is essential.
[!NOTE] PowerOps’ greatest strength, in my view, lies in its clean interface and visually engaging insight summaries that integrate perfectly into documentation. Combining meaningful images with contextual text follows the ‘Show and Tell’ best practice employed in Power BI reports (data storytelling). This substantially enhances overall documentation value.
3. TMDL Explorer
This is an innovative app, the first I discovered to harness TMDL. As the potential of TMDL continues to be uncovered and the community shares new, practical use cases, we can expect a growing array of tools designed to help us visualize data relationships and/or create scripts that accelerate Power BI development. We’re still in the early stages, so the scope for innovative new tools is vast.
TMDL Explorer allows one to:
- Visualize the connections between measures in your semantic model
- Easily identify both upstream and downstream dependencies
How to use it
- Go to your TMDL view
- Copy table TMDL to clipboard
- Paste into the app
- Explore your measures
4. Visualize Model Refresh - SQL Server Profiler
Ever wondered why a Power BI dataset refresh takes so long? Phil Seamark presents a method for capturing events during a Power BI refresh and transforming this data into visual reports that illustrate these events.
In his article Visualise your Power BI Refresh, Phil provides comprehensive details. Below is a condensed overview highlighting key steps and the documentation value of this output. For deeper insight into graph interpretation, I recommend reading Phil’s complete blog post.
Process overview:
1. Launch the Traces
Begin by initiating the traces to capture events.
2. Trigger the Semantic Model Dataset Refresh and Save XML file
Start the refresh process and save the resulting traces.
Save the trace file
3. Update Parameters
Use the provided Power BI PBIX (developed by Phil Seamark) and update parameters.
4. The results
Visualize and Document Model Refresh
Why Visualize and Document Model Refresh?
-
Transparency and Clarity:
When you can see the refresh process, it’s easier to understand how different data sources work together. Adding this to your documentation helps all parties involved understand how data moves and depends on other data. -
Troubleshooting and Optimization:
Visuals make it easier to spot where things might be slowing down or breaking. When something goes wrong, having these diagrams helps you quickly find the problem area, which saves a lot of time fixing it. -
Knowledge Transfer and Onboarding:
Good refresh process documents are really helpful when new people join the team or when handing over projects to someone else. -
Performance Monitoring:
Having documents about your refresh process lets you track how well it’s performing over time. -
Stakeholder Communication:
It helps non-technical people understand how data updates work, which makes them trust your reports more. -
Audit and Compliance:
Detailed visual maps of your refresh process help meet compliance requirements and create audit trails. They make each step transparent for any needed reviews.
Integration with Power BI Documentation:
Incorporating visual model refresh diagrams into your overall project documentation aligns with best practices by providing a comprehensive view of your Power BI solution. This complements documentation on data sources, transformations, and visualizations, creating a complete picture of end-to-end data flow. It also enhances maintainability and scalability while establishing a foundation for continuous improvement.
Quick Recap
In Issue #10, we explored various tools that not only enhance your work but also ensure the quality of your output. We discussed their advantages, what they bring to the table, and how best to leverage them. However, I want to stress again that these tools are not a replacement for proper documentation, they act as accelerators and aides. In a broader sense, they are part of a process driven by a genuine need.
💬 Let’s discuss:
What’s your go-to tool for Power BI documentation? What’s the biggest challenge you’ve faced in keeping reports well-documented? Drop your thoughts in the LinkedIn post: We’d love to keep the discussion going! LinkedIn post: #Issue 10 - External Tools - Their Role in Documentation - Part 2