Webinar

From Fragmented Patient Records to an AI-Ready Healthcare Foundation

📅 AUG 27, 2026 · 9–10 AM PT | 12–1 PM ET

Register Now

Summarize with AI

Not enough time? get the key points instantly.

Every Fabric migration plan is a list of what moves: pipelines, semantic models, reports, workspaces, each with an owner and a target date. What rarely gets scoped is what stays behind, because migrating an object is a task somebody can be assigned and deleting one is a judgment somebody has to defend.

Deferring that judgment used to be the correct call. Under per-resource Azure billing, an idle pipeline stays visible as its own line item so that you could move first, hit the date, and rationalize later from better instrumentation.

Fabric removes the line item. Every workspace assigned to a capacity draws from one shared pool of Capacity Units, which means the cleanup you deferred is now funded by the workloads you kept. Four decisions determine how much of it you carry across.

Retire reports on a window that matches your reporting cycle, not Power BI’s

What this decision entails

Which Power BI reports earn a Fabric workspace and which get archived. Microsoft treats this as a defined lifecycle stage with published guidance for retiring content at the end of its life.

Nuances and trade-offs

The window is where teams get this wrong. A quarterly board pack reads as unused for eleven weeks out of thirteen. Take 30 days literally, and you retire the reports with your most senior readers while keeping whatever somebody left open in a browser tab.

Case in point

Microsoft’s auditing guidance recommends storing a tenant inventory snapshot every week or every month and comparing it against the activity log to find items nobody has opened.

The reason that snapshot matters sits in the modern usage metrics report, which carries a rolling 30 days and deletes anything older unless you export it first. The window Microsoft ships and the cycle your business runs on are different lengths, and only one of them is adjustable.

How can you decide

Start the snapshot now, before scoping, so history accumulates while the plan is still being written. Set the threshold at zero unique viewers across a full reporting cycle, 90 days at minimum and twelve months for anything tied to close, audit, or statutory filing.

Stay updated with Simform’s weekly insights.

 

Cut pipelines with no consumer before your capacity prices them in

What this decision entails

Deciding which ingestion and transformation jobs still have something downstream. Purview lineage runs source through dataflow, dataset, report, and dashboard, so a producer can see which reports consume a dataset and which datasets feed nothing.

Nuances and trade-offs

Throttling never names the culprit. It applies at the capacity level, so when a dead nightly refresh tips a capacity into overload, the person who feels it is whoever is running a live query at that moment. The complaint arrives as slow reports, and the reflex answer to slow reports is a bigger SKU.

Case in point

An F64 holds a fixed daily budget of 1,536 CU hours, and background operations that completed up to 24 hours earlier still count toward whether the capacity is overloaded.

Throttling then continues until unused capacity pays off every carryforward CU. A refresh nobody reads is competing for headroom with month-end close, a day after it ran.

How can you decide

Run the Purview scan before you scope, then treat an empty downstream as a question and not a verdict. Confirm it against refresh history and the activity log before anything moves to the retirement list.

When the symptom is throttling, hold the SKU upgrade until that list is settled, because sizing around dead weight prices it in for the life of the commitment.

Replace duplicate datasets with pointers before you argue about deleting them

What this decision entails

The near-identical tables that arrived through acquisitions, independent department tool choices, and manual copies that outlived their reason for existing.

Nuances and trade-offs

No approved-source figure exists for how much of a data estate is duplicated, and anyone quoting one is quoting healthcare records research or a vendor blog.

That absence is the useful part. Two similar tables can be a true duplicate or two departments with legitimately different definitions of the same noun, and no scan settles it.

Case in point

Fabric gives you a third option that did not exist on the legacy estate. OneLake shortcuts reference data in place instead of copying it, and Microsoft positions them explicitly to eliminate edge copies and remove the staleness that redundant copies introduce. The copy disappears while the access path survives, which means most of this list never reaches a deletion argument.

How can you decide

Sort candidates into three buckets. Shortcut the ones that exist only because a team needed its own access. Retire the ones nobody can attach to a consumer.

Route what is left to a named domain owner, because a definitional disagreement between finance and sales will not resolve inside a migration backlog.

Drop transformation rules nobody can explain in one sentence

What this decision entails

The calculated measures, business rules, and warehouse code whose meaning nobody on the current team can restate.

Nuances and trade-offs

Duplicates at least announce themselves as duplicates. Business logic does not. The migration task list absorbs it without argument, because moving a rule takes less effort than convening the people who could explain it, and the cost lands later.

Every transformation carried across becomes another parity test that must be reconciled before cutover, and validation is where a three- to five-person data team runs out of capacity.

Case in point

The lineage you leaned on for pipelines stops short here, and Microsoft documents exactly where. Stored procedures containing drop or create statements are not captured. Lineage is recorded only when a procedure execution moves data from one table to another, and it is not extracted for functions, triggers, or temporary tables.

Views used as a source surface as table assets, so the same object can appear twice in the catalog. For the one category where automated proof matters most, the automation has published blind spots.

How can you decide

This decision ends with a person. Require a named business owner to restate what each rule computes and why, in one sentence, before it enters scope. Rules nobody claims come off the list, and each one you drop is a parity test you no longer have to staff.

Fabric is about to remove the signal that forces this decision

Everything above rests on throttling being the thing that eventually makes dead weight visible. Microsoft is in the process of making that optional.

Capacity overage, in preview since FabCon in March, lets an admin opt into automatic billing for excess usage instead of throttling. Jobs keep running, nothing gets delayed, and the overage bills at three times the pay-as-you-go rate.

For a genuine seasonal spike, that is a reasonable trade. For a capacity-carrying asset that should never have moved, it converts a visible performance problem into a quiet invoice at triple the rate.

Microsoft’s own FAQ is blunt about the attribution that goes with it, answering the question of which workload caused an overage with the accumulation of everything running on the capacity. The documentation is equally direct that the feature complements capacity management instead of replacing it.

Which turns the retirement decision into a question about your defaults. If an admin flips that switch during a busy quarter and nobody revisits it, when does anyone find out what you brought across?

Simform’s Microsoft Fabric practice starts mid-market engagements by scoping what moves and what stays behind, before the first workspace goes live.

Stay updated with Simform’s weekly insights.

Hiren is CTO at Simform with an extensive experience in helping enterprises and startups streamline their business performance through data-driven innovation.

Sign up for the free Newsletter

For exclusive strategies not found on the blog

Revisit consent button
How we use your personal information

We do not collect any information about users, except for the information contained in cookies. We store cookies on your device, including mobile device, as per your preferences set on our cookie consent manager. Cookies are used to make the website work as intended and to provide a more personalized web experience. By selecting ‘Required cookies only’, you are requesting Simform not to sell or share your personal information. However, you can choose to reject certain types of cookies, which may impact your experience of the website and the personalized experience we are able to offer. We use cookies to analyze the website traffic and differentiate between bots and real humans. We also disclose information about your use of our site with our social media, advertising and analytics partners. Additional details are available in our Privacy Policy.

Required cookies Always Active

These cookies are necessary for the website to function and cannot be turned off.

Optional cookies

Under the California Consumer Privacy Act, you may choose to opt-out of the optional cookies. These optional cookies include analytics cookies, performance and functionality cookies, and targeting cookies.

Analytics cookies

Analytics cookies help us understand the traffic source and user behavior, for example the pages they visit, how long they stay on a specific page, etc.

Performance cookies

Performance cookies collect information about how our website performs, for example,page responsiveness, loading times, and any technical issues encountered so that we can optimize the speed and performance of our website.

Targeting cookies

Targeting cookies enable us to build a profile of your interests and show you personalized ads. If you opt out, we will share your personal information to any third parties.