M365 Show -  Microsoft 365 Digital Workplace Daily
M365 Show with Mirko Peters - Microsoft 365 Digital Workplace Daily
I Replaced 500 Measures Instantly—Here’s How
0:00
-16:46

I Replaced 500 Measures Instantly—Here’s How

Ever stared at a Power BI model with 500 measures, all named like a toddler smashing a keyboard? That endless scroll of “what-does-this-even-mean” is a special kind of pain. If you want fewer helpdesk tickets about broken reports, hit subscribe now—future you will thank you when it’s cleanup time.

The good news? Power BI now has project- and text-first formats that let you treat models more like code. That means bulk edits, source-control-style safety nets, and actual readability. I’ll walk through a real cleanup: bulk renaming, color find-and-replace, and measure documentation in minutes.

And it all starts with seeing how bad those 500 messy names really are.

When 500 Measures Look Like Goblin Script

It feels less like data modeling and more like trying to raid a dungeon where every potion is labeled “Item1,” “Item2,” “Item3.” You know one of them heals, but odds are you’ll end up drinking poison. That’s exactly how scrolling through a field list packed with five hundred cryptic measures plays out—you’re navigating blind, wasting time just figuring out what’s safe to click.

Now swap yourself with a business analyst trying to build a report. They open the model expecting clarity but see line after line of nonsense labels: “M1,” “Total1,” “NewCalc2.” It’s not impossible to work with—just painfully slow. Every choice means drilling back, cross-referencing, or second-guessing what the calculation actually does. Seconds turn into minutes, minutes add up to days, and the simple act of finding the right measure becomes the real job.

With a handful of measures, sloppy names are irritating but tolerable. Scale that up, and the cracks widen fast. What used to be small friction balloons into a major drag on the entire team’s productivity. Confusion spreads, collaboration stalls, and duplicated effort sneaks in as people re-create calculations instead of trusting what’s already there. Poor naming doesn’t just clutter the field list—it reshapes how people work with the model.

It’s a bit like Active Directory where half your OUs are just called “test.” You can still hunt down users if you’re patient, but you’d never onboard a new hire into that mess. The same goes here. New analysts try to ramp up, hit the wall of cryptic names, and end up burning time deciphering the basics instead of delivering insights. Complexity rises, learning curves get steeper, and the whole workflow slows to a crawl.

You feel the tax most clearly in real-world reporting. Take something as simple as revenue. Instead of one clean measure, you’ve got “rev_calc1,” “revenueTest2,” and “TotalRev_Final.” Which one is the source of truth? Everyone pauses to double-check, then re-check again. That delay ripples outward—updates arrive late, dashboards need extra reviews, and trust in the reports slides downhill.

So people try to fix it the hard way: renaming by hand. But manual cleanup is the natural 1 of measure management. Each rename takes clicks, dialog boxes, and round-trips. It’s slow, boring, and guaranteed to fall behind before you’ve even finished. By the time you clean up twenty labels, two more requests land on your desk. It’s spoon-versus-dragon energy, and the dragon always wins.

The point isn’t that renaming is technically difficult—it’s that you’re locked into brittle tools that force one painful click at a time. What you really want is a spell that sweeps through the entire inventory in one pass: rename, refactor, document, done. That curiosity is the opening to a more scalable approach.

Because this isn’t just about sloppily named measures. It’s about the container itself. Right now, most models feel like sealed vaults—you tap around the outside but never see inside. And that’s why the next move matters. When we look at how Power BI stores its models, you’ll see just how much the container format shapes everything, from version control to bulk edits. Ever try to diff a PBIX in Git? That’s like comparing two JPEGs—you don’t see the meaning, just the noise.

Binary Black Box vs. Human-Readable PBIP

That’s where the real fork in the road shows up—binary PBIX files versus the newer project-style PBIP format. PBIX has always been the default, but it’s really just a closed container. Everything—reports, models, measures—is packed into one binary file that’s not designed for human eyes. You can work with it fine in Power BI Desktop, but the moment you want to peek under the hood or compare changes over time, the file isn’t built for that. PBIX files aren’t friendly to textual diffs, which makes them hard to manage with modern developer workflows. Quick note: if you’re documenting or teaching this, confirm the exact constraints in Microsoft’s official docs before stating it absolutely.

Now picture trying to adjust a set of measures spread across dozens of reports. With PBIX, you’re clicking dialogs, hunting through dropdowns, copy-pasting by hand. You don’t have a reliable way to scan across projects, automate changes, or track exactly what shifted. It works at small scale, but the overhead stacks up fast.

PBIP changes the layout completely. Instead of one sealed file, your work expands into a structured project folder. The visuals and the data model are each split into separate files, stored as text. The difference is night and day—now you can actually read, edit, and manage those pieces like source code. Microsoft has moved toward reusability before with templates (.PBIT) that let you standardize reports. PBIP takes the same idea further, but at the level of your whole project and model.

Once your files are text, you can bring in standard tools. Open a measure in VS Code. Wire the folder to Git. Suddenly, a change shows up as a clean side-by-side diff: the old formula on the left, the new one on the right. No binary sludge, no guesswork. That transparency is the keystone.

But it’s not only about visibility. You also gain revertability. A mistake no longer means “hope you made a manual backup.” It’s a matter of checking out a prior commit and moving on. And because the files are text, you gain automation. Need to apply formatting standards or swap a naming convention across hundreds of measures? Scripts can handle that in seconds.

Those three beats—visibility, revertability, automation—are the real payoff. They turn Power BI projects from isolated files into artifacts that play by the same rules as code, making your analytics far easier to manage at scale. It doesn’t turn every business user into a software engineer, but it does mean that anyone managing a large model suddenly has options beyond “click and pray.”

In practice, the shift to PBIP means ditching the black-box vibe and picking up a kit that’s readable, testable, and sustainable. Instead of stashing slightly different PBIX versions all over your desktop, you carry one source-controlled copy with a clean history. Instead of hoping you remember what changed last sprint, you can point to actual commits. And instead of being the bottleneck for every adjustment, you can spread responsibility across a team because the files themselves are transparent.

Think of PBIX as a locked chest where you only get to see the loot after hauling it back to one specific cave. PBIP is more like a library of scrolls—open, legible, and organized. You can read them, copy them, or even apply batch changes without feeling like you’re breaking the seal on sacred text.

The bottom line is this: PBIP finally gives you the clarity you’ve been missing. But clarity alone doesn’t fix the grunt work. Even with text-based projects, renaming 500 messy measures by hand is still tedious. That’s where the next tool enters, and it’s the one that actually makes those bulk edits feel like cheating.

Why TMDL Is Basically a Cheat Code

Now enter TMDL—short for Tabular Model Definition Language—a format that lays out the guts of your semantic model as plain text. Think of it less like cracking open a black box and more like spreading your entire character sheet on the table. Measures, columns, expressions, relationships—they’re all there in a standard syntax you can read and edit. No hidden menus, no endless scrolling. Just text you can parse, search, and modify.

It’s worth a quick caution here: the exact behavior depends on your file format and tooling. Microsoft documentation should always be your source of truth. But the verified shift is this—where PBIP gives you a project folder, a tabular definition file exposes that model in editable text. That’s a major difference. It turns model management into something any text editor, automation script, or version-control workflow can help with, instead of limiting you to clicks inside Power BI Desktop.

And that solves a big limitation. If you’ve ever tried renaming hundreds of fields using only the UI, you know the grind—each tiny rename chained to point-and-click loops. Even in PBIP without a model definition layer, the structure isn’t designed to make massive, organized replacements easy. TMDL fills that hole by laying the whole framework bare, so you're no longer stuck in click-by-click combat.

Here’s a straightforward example. Suppose your reports all use a specific shade of blue and it needs to change. Before, you’d open every formatting pane, scroll menus, and repeat—hours gone. In a text-based model file, those values exist as editable strings. You can global-replace “#3399FF” with “#0066CC” in seconds. That’s the kind of move that feels like rolling double damage on a tedious chore. Of course, confirm that your file format supports those edits and always keep a backup before you script a bulk change.

This is where the design shows. The format is structured and consistent, not ad hoc. By representing your model in neatly organized text, you can scan for patterns, see dependencies, and clean up inconsistent names without guesswork. Bulk refactoring suddenly looks like a safe, reversible operation instead of a nightmare. And you gain a standard pattern that both humans and tools can process with confidence.

Copilot in Power BI even builds on this by helping with documentation. Once your model is exposed in text, Copilot can add measure descriptions or generate summaries—another layer of automation that was nearly impossible when everything was sealed inside binary files. That means you’re not just speeding up renames, you’re also improving transparency for analysts who need to trust what they see.

Think about how you used to dread renaming conventions across an entire model. Want to change every prefix “Rev_” to “Sales_”? With text definitions, that’s a highlight, a find-and-replace, and a commit. No babysitting the interface, no waiting for spinning cursors, no fear of random breakage. And because it’s all under source control, the moment something looks off, you roll back to the previous version. That blend—fast changes with a safety net—is what makes the approach sustainable.

The comparison I like is Group Policy. Before, you were manually tweaking local settings one machine at a time. Now you’re writing a standard, applying it at scale, and trusting the system to enforce it consistently. The more scale you’re dealing with—five hundred measures, dozens of relationships—the more that structured, rule-based approach saves time and sanity.

The one caveat? You still need discipline. Bulk find-and-replace is powerful, but power comes with risk. Always branch, run a test commit, and validate that visuals still render as intended before you merge changes downstream. It’s a little extra step, but it’s what keeps you from turning a naming fix into a broken dashboard.

So when you roll back and look at the bigger picture, this isn’t just about renaming. It’s about shifting model management from guesswork and UI clicks into something organized, testable, and reversible. And that’s the real punchline: text turns messy chaos into a manageable system.

Which brings us to the next step. Imagine starting with a model where every measure looks like a keyboard smash and ending up, in one focused session, with clear and consistent names. That’s not abstraction—that’s the practical payoff you’re about to see in action.

From Keyboard Smash to Crystal Clarity

From Keyboard Smash to Crystal Clarity starts with this simple reality: messy names waste time, clear names save it. Going from “ABX001” to “Sales_Revenue_Monthly” isn’t about typing faster—it’s about using the right workflow. PBIP and TMDL formats turn what used to be nearly impossible in the UI into a few straightforward steps.

The flow is clean. Export a PBIX into a PBIP project. Open the TMDL or model definition file. Run your search-and-replace or script pass. Commit changes into Git, then validate your dashboards still look right. That’s the entire cycle—what once stretched into days of clicks shrinks to minutes.

If you try the old way inside Power BI Desktop, every rename is a detour through menus and dialog boxes. One or two? No problem. Five hundred? That’s a week-long slog. The difference shows instantly in a before-and-after list of names. On the left: “Calc1,” “Measure18,” “TestRev2.” On the right: “Sales_Total,” “Finance_Expense_Ratio,” “Ops_Turnover_Annual.” One side reads like goblin script, the other like a professional catalog. That shift alone raises trust, speeds onboarding, and makes the model usable at scale.

Of course, the uneasy moment hits when you commit a huge rename in one pass. Did you just torch the model? Here’s the safeguard: Git tracks every line, and it’s reversible. Microsoft even emphasizes this in their enterprise-scale guidance—governance and versioning aren’t add-ons, they’re expected features for managing Power BI artifacts in a team setting. If your naming script goes sideways, the rollback is already there. That kind of insurance is what makes bulk edits safe, not reckless.

Picture the commit log after a cleanup: thousands of line changes flipping from random fragments to clear business terms. It feels less like data entry and more like flipping on the lights in a cluttered room. Auditable, visible, and logical. The real gain isn’t only readability, it’s that everyone can now see exactly what changed—and trust it.

And naming with intent matters. Prefixes group measures by domain, suffixes show scale, and descriptive names reduce cognitive strain. It’s the gap between “Rev1” and “Sales_Revenue_Annual”—one makes you second-guess, the other tells you exactly what it is. Microsoft’s own best practices push for meaningful names because it reduces helpdesk calls and smooths report usability. What sounds like polish turns into real productivity.

Here’s a quick visual test. Scroll a “before” list: lines of “M1,” “NewCalc27,” “TestValue.” Then scroll the “after” view: “Finance_OperatingCost,” “Sales_ConversionRate,” “Ops_Headcount.” Instantly, any new analyst knows where to look and what it means. That clarity slashes onboarding time and builds confidence across the team.

The process is both efficient and safe. Efficiency is text edits that collapse hours of UI drudgery into one sweep. Safety is in version control: mistakes are simply commits you roll back. Together, they give you confidence to enforce standards at scale rather than dodging the problem until it grows bigger.

But renaming is just the entry point. Once your model sits in text, everything opens up: shared templates, consistent standards across projects, and collaboration without the chaos of one person holding the only copy. That’s where the real power builds—not just fixing names, but running your models like team assets instead of one-off files.

Quick checklist before we hit the demo: export, open, search, commit, validate dashboard visuals. That’s the practical loop. One pass through, and a wall of cryptic code turns into a navigable catalog of measures.

And if naming transforms that much, imagine what happens the moment multiple people start editing models together. That’s where the story shifts—because it’s not only about clarity for one person, it’s about resilience for the whole team.

Collaboration Level-Up with Source Control

Collaboration level-ups start when you stop trading files like cursed relics and move into source control. Before PBIP, teamwork on a PBIX often meant juggling endless “final.pbix” versions across email or shared drives. Two people editing at once was a gamble—one tweak to visuals could silently wipe out someone else’s measure changes. It wasn’t collaboration, it was file roulette.

PBIP and TMDL flipped the setup. Instead of one sealed binary, everything breaks into text-based project files that sit neatly in a folder. Reports, models, measures—all flattened into a structure you can drop into a repo. If you store those text files in Git, collaboration stops being fragile guesswork and starts following the same patterns that developers use daily. Branching, merging, and diffing become natural moves. No more blind edits, no more silent overwrites.

Think about it this way: without source control, even a simple renaming pass can be risky. Rename fields today and you might wipe out a colleague’s update from yesterday—work gone without warning. With Git, the playbook changes. Each branch works like an individual save slot. You grab one, make your changes in isolation, and don’t stomp on anyone else’s progress. When you merge, Git shows exactly which lines moved. It’s not conflict-free, but at least you can see the overlap instead of blindly overwriting someone else’s work.

Picture a team dividing up tasks. One person refactors old revenue measures. Another adds calculated ratios for a department roll-up. A third fixes model relationships. In PBIX days, three sets of edits in one file was a recipe for overwrites. In PBIP with TMDL, each task lives in a branch. Once complete, all three merge clean into the main project. You can even review each line before approving. What used to be hidden inside binary mush is now visible, structured, and safe to coordinate.

And it’s not just workflow—it’s governance. Every commit has context: who made the change, when it happened, and why. If “Rev_Test2” turned into “Sales_Profit,” there’s no mystery. The log records the event, and that log doubles as your audit trail. Enterprises already expect this kind of visibility in Power BI, since the platform emphasizes secure sharing, governed datasets, and cross-service integration. Doing model management with text and source control isn’t just convenient—it aligns with the governance standards most organizations already follow.

Rolling back mistakes also becomes painless. If a naming change breaks a dashboard, you revert the commit and reopen the model in seconds. The only rule: test in a branch first. That single safety net encourages experimentation because even a failed idea isn’t fatal—you can always roll back and try again.

Source control also supports scale. When more developers join, you don’t multiply chaos—you multiply speed. Branches handle parallel development, merges bring it together, and the log keeps the story straight. This structure is what turns ad hoc edits into a maintainable practice. Models stop being brittle artifacts and become living projects that evolve while staying under control.

The big picture is simple: PBIP and TMDL make your project readable, and Git makes it collaborative. Instead of local copies drifting apart, you get one shared repo with reproducible history. Instead of invisible overwrites, you gain line-level clarity. And instead of fragile files, you get auditable assets that satisfy both your engineers and your compliance team.

You end up with reproducible, auditable model changes instead of fragile accidental overwrites.

Conclusion

The messy sprawl of unreadable measures is the real problem. PBIP and TMDL give you a practical way out by exposing your models as text, which means faster edits, safer versioning, and workflows your whole team can trust when you use source control.

Here’s your next step: try exporting one PBIX to a project format, or spin up a .PBIT template and document a single measure with Copilot. That small test shows the difference.

And if this helped you roll a natural 20 on cleanup, hit subscribe like it’s a critical save against chaos GPOs—ring the bell for more Power BI tactics.

Discussion about this episode

User's avatar