Visual diff for Power BI just got three additions: dependency tracking that now reaches notebooks, connections, and environment items in Fabric; a change history that filters out format-conversion and refresh noise; and a diff viewer built directly into the report page via the Motio extension. None of this requires setup — it's already live for existing customers. Full details and version numbers are in the post, and you can see it in action in a live demo or this week's webinar.
It's been a full few months at Motio. We're at Big Data London today, next week we're in Barcelona for FabCon Europe (booth 7), and after that we're in Atlanta for Tech Exchange (booth 679). In between, we launched an entirely new website, unveiled a new brand top to bottom, and published more than a dozen case studies from teams running Motio in production.
This month's launch starts with Power BI, one of the four platforms BI Ops covers. If you want to go deeper, we're hosting a webinar tomorrow at 10am CT, "What Your Power BI Governance Is Missing" — register here.
Visual diff itself is not new, and neither is versioning your reports and models. What this release rounds out is how far the comparison reaches: dependencies across Fabric, a change history that filters out the noise, and a diff viewer that lives right on the report page.
Visual diff for Power BI
Visual diff already lets you pick any two versions of a report or a semantic model and see exactly what moved, down to the page, the visual, and the measure, with who changed it and when. Successive releases have extended what that comparison reaches.
Dependencies across Fabric
A diff tells you a column was renamed. It doesn't tell you that four reports and a notebook use that column, which is what you need to know before you approve it. Dependency coverage now goes past reports and semantic models to notebooks, connections and environment items (3.3.0; dependency capture since 3.2.2).
A change history that says what actually happened
Format conversions recorded as one event instead of several hundred file edits. Automated refreshes separated from the work people actually did. Finding the two versions worth comparing now takes seconds (3.2.17, 3.2.2, 3.2.18).
The diff, in Motio for Power BI Extension
The extension puts the timeline, the diff viewer, merge, and restore right where you're working in Power BI. No second tab, no matching report IDs by hand (v1.98.87 and v1.98.91).
Current state beside v6. Profit by Category is outlined because its series order changed, and the changes can be merged back one visual at a time.
A number moved, and nobody can tell you why
A report that worked last week looks different today. Somebody notices a figure is off, and the investigation starts. Open both versions, put the windows side by side, squint. Ask around to find out who touched it last. On a report with forty visuals and a model with three hundred measures, that's guesswork with extra steps.
The same problem shows up before anything breaks. A review that can't say what's different between two versions isn't a review, so promotions go out on trust and somebody's name goes on the approval anyway. And when the question comes from outside the team, trust runs out fast. An audit asks about a change from two years ago, and the native history doesn't reach back that far.
Why now
Self-service worked. That's the problem. Power BI became the enterprise standard because anyone can build in it, and the number of people changing production content went up by an order of magnitude while the tooling for tracking those changes stayed where it was. Most of the reports in a large tenant were built by people the BI team has never met.
Fabric widened the surface again. Notebooks, dataflows, environment items and connections now sit between a semantic model and the report on somebody's screen. Every one of them is another way for a number to change without anyone noticing. That's the pressure all three of these answer.
The consequences got more expensive at the same time. Finance and compliance cycles ask for years of change history, not a rolling quarter, and "we think someone edited the model in March" is not an answer anyone accepts twice. Price that out. The investigation costs a senior person the better part of a week, the audit costs months of reconstruction by hand, and the wrong number in the board deck costs something harder to put a figure on. None of it shows up as a line item, which is why it runs for years before anyone fixes it.
And the tools teams reach for instead were built for software development. They cover the people who set up a repository and commit their work. Report authors don't, so their reports aren't covered.
How it works in Power BI
The diff reads the definitions, not the files
A PBIX file is a package. Report layout, model information and connection details all travel together inside it, stored the way the service wants to read them rather than the way a person would. Compare two of those and you get a result back you can't do anything with. Microsoft has been moving that metadata into text: reports use PBIR, semantic models use TMDL. We store those definitions as comparable text rather than binary, which is what makes a readable comparison possible (3.2.22; TMDL stored as comparable text from 3.3.0).
Dependencies tell you what else it touches
Say the diff shows a column was renamed in a semantic model. That tells you what the change is. It doesn't tell you what else breaks.
Motio captures the relationships between reports and their semantic models, and coverage now goes past both to notebooks, connections and environment items in Fabric (3.3.0; dependency capture since 3.2.2). On a model a dozen teams rely on, that's the difference between approving a change and hoping.
It works the same way after something breaks. Instead of starting at the failed report and asking around until somebody remembers touching the model last month, you start at the change and look at everything connected to it.
Everything that reads from the Sales semantic model: four reports, a notebook and a connection, with the source file underneath. Profit by Category is flagged because it uses the renamed column.
A change history that says what actually happened
Two versions are only worth comparing if you can find the two that matter. When an older binary report converts to PBIR, hundreds of files disappear and hundreds of new text files take their place. Nothing changed for anyone using the report, but the history makes it look like somebody rebuilt the thing from scratch. We record a conversion as one event and say what it was.
Refreshes are the other kind of noise. They run on a schedule with no person involved and still land in the history under the service account, so every one is a line to check sitting between the changes you're looking for. We keep them separate (3.2.17, 3.2.2, 3.2.18).
Timeline with a people-only filter. Four human changes and one format conversion recorded as a single event, with 412 refreshes from the same week filtered out.
It all lives where you're working
Reading the history used to mean a second tab and matching report IDs by hand to be sure you had the right artifact.
Motio for Power BI Extension puts the whole thing right where you're working (v1.98.87 and v1.98.91). A timeline runs alongside the report, down to the page, the visual and the measure. Save a version on the spot, restore an older one, or tag one with a comment or a ticket number while you still remember why you changed it. The diff viewer opens the live page beside any past version, and you can merge back a single visual instead of the whole report. Deployment history sits in the same place.
The comments and tickets tend to surprise people. Captured at the moment of the change, by the person making it, they turn a change log into something an auditor can follow.
The timeline runs across the report page, with versions grouped by who saved them. Pick one and the live page opens beside it, with the changed visual outlined.
Every version is a restore point
Finding the bad edit is most of the work. It isn't the whole job. Pick any version, days or years back, and restore the live artifact in one click. No re-uploads, no rebuilding by hand, no asking the author what it used to look like.
Also in this release
Semantic model parameters versioned from the model definition (3.3.0)
Environment items and their publish details added to the search index (3.3.0)
Multi-word search fixed against multi-valued text fields (3.3.0)
Report connection type criteria updated for PBIR, with semantic model added as an option (3.3.0)
Datasource connection type exposed as a non-artifact resource (3.2.2)
Report Usage Metrics added to the implicitly excluded list (3.2.9)
What this looks like when something breaks
Somebody says a number looks wrong. You open the report's history, see the two changes people made this week, and compare them. The diff shows a measure was edited on Monday afternoon and who edited it. The dependencies show the same model feeds three other reports, so you know who else to warn. You roll back the measure and the number comes right.
A few minutes, and none of it depends on anyone having remembered to save a version. The blast radius collapses from a week of investigation to an afternoon.
What makes it different
Most of what exists for this was built for code.
Pro-code and capacity-gated, it covers the people who already work like developers. The report authors aren't being careless. They're being asked to set up a repository, learn how branches work, and remember to commit before closing the lid, which is a code workflow bolted onto a job that isn't writing code. Manual version control fails for the same reason. It's admin burden with no payoff for the person doing it.
So we took the person out of it. Motio watches Power BI and stores every change as a new version the moment it happens. No exports, no commits, nothing different for the people building. By the time you need to compare two versions, they're already sitting there, which is the only reason the diff is worth anything.
Getting started
If you're already a Motio customer, all of this is on in your environment right now. Open any report, dataset, or dashboard, pick two versions from the timeline, and compare.
Want to see any of this on your own reports? Book a demo.
We're a platinum sponsor of FabCon Europe in Barcelona, September 28th to October 1st. If you'd rather walk through it in person, come find us at booth 7.
Or join us tomorrow at 10am CT for "What Your Power BI Governance Is Missing", a live webinar on the gaps this release closes. Register here.