A licensing deadline that became an infrastructure project
This is not an optional modernization. Microsoft's own Power BI Premium to Microsoft Fabric migration overview (opens in new tab) states that the Premium per-capacity P SKUs are being retired, that new P SKUs are no longer sold, and that each subscription ends at the end of its current agreement term. It also spells out what happens if you miss the date: the capacity enters a 30-day grace period, interactive operations are throttled from day 31, and from day 91 all operations are rejected — your data is retained but unreachable until the workspaces are moved to a Fabric capacity or the capacity is deleted. Customers with an active Enterprise Agreement can generally keep renewing existing P capacity until the EA term ends, which is worth confirming with your Microsoft account contact before you pick a date.
Two things are explicitly out of scope of the retirement, and both save a lot of unnecessary worry: per-user Power BI Pro and Premium Per User licenses continue unchanged, and the EM and A embedded SKUs are not part of it. If your question is which per-user licenses to buy rather than which capacity to move to, our guide to Power BI licensing for small business is the page you want — it compares Pro, Premium Per User, and capacity for a team that is choosing. This page is for an estate that already exists and has to move.
Sizing the capacity before you buy it
The most expensive mistake here is guessing the SKU. Fabric capacity is measured in capacity units, and the SKU table maps them onto the Premium sizes you already know — F64 carries the same compute as P1, F128 as P2, F256 as P3 — but a like-for-like swap is a starting hypothesis, not an answer. The Microsoft Fabric Capacity Metrics app (opens in new tab) gives a fourteen-day view of what your workspaces genuinely consume, including the throttling events nobody reported, and Microsoft's capacity planning guidance (opens in new tab) sets out how to read that baseline against a SKU. Where the picture is unclear, a 60-day trial capacity lets us run the workloads that worry you before any money is committed.
One threshold drives most of the decision. On F64 or larger, users holding only a Fabric free license and a Viewer role can read Power BI content, exactly as they could on Premium. On the smaller SKUs — F2 through F32 — every person viewing that content needs a Pro or Premium Per User license, so a capacity that looks cheaper can quietly cost more once you count the viewers. The Fabric licensing documentation (opens in new tab) holds the current rules, and Microsoft publishes the rates on its Fabric pricing page (opens in new tab); we do not quote capacity prices, because they are regional and Microsoft's to set. What we quote is the fixed fee for the migration work itself. If you are still building the budget case rather than the project, our article on Microsoft Fabric licensing cost works through the published CU-hour rate, reserved against pay-as-you-go, and what the F64 viewer rule is actually worth against Pro seats.
What changes, and what your users never notice
Most of the estate carries across untouched. The table below separates the parts that genuinely change from the parts that only feel risky, and it is the checklist we validate against during cutover.
| Area |
Changes? |
What it means on the new capacity |
| Reports, semantic models, dashboards |
No |
Continue working as they are; nothing is rebuilt, re-authored, or re-pointed as part of the licensing move |
| Pro, Premium Per User, and free licenses |
No |
Unchanged. On F64 and above, free-license viewers still read content; on F2–F32 each viewer needs Pro or PPU |
| Workspaces, apps, pipelines, Git integration |
No |
Workspaces are reassigned to the new capacity; deployment pipelines, workspace apps, and Git connections keep working |
| Scheduled refreshes and data pipelines |
No |
They run on the new capacity on the same schedule; a refresh in flight during reassignment can be interrupted, so waves are timed around them |
| Purchasing and billing |
Yes |
Moves from a Microsoft 365 commitment to Azure billing — pay-as-you-go by default, with yearly or multiyear reservations available |
| Capacity administration |
Yes |
Workspace assignment and capacity settings stay in the Fabric portal; pause, resume, and resize move to the Azure portal under Azure role-based access control |
| Autoscale |
Yes |
Premium-style autoscale does not exist on F SKUs. You resize on demand instead, which is why the baseline and the alerting matter |
| Cost governance |
New |
Workspace-level surge protection and capacity overage protection become available, along with Azure budgets, tags, and cost reporting |
How complicated your move actually is
Complexity is decided almost entirely by two questions: does the tenant change, and does the Azure region change. Everything else is scheduling. We establish which row you are in during scoping, because the difference between the first row and the last is the difference between a fortnight and a rebuild.
| Scenario |
Complexity |
What it adds to the work |
| Same tenant, same region |
Low |
The recommended default. Workspaces are reassigned to the new capacity with no expected downtime beyond refreshes running at that moment |
| Same tenant, different region |
Moderate to high |
Large-storage-format semantic models must be backed up and restored or converted first; Fabric items such as lakehouses, warehouses, and notebooks have to be captured and recreated, and reports rebound to the new model IDs |
| Multiple regions, one tenant |
Moderate |
A capacity is purchased per target region and content governance is planned per region, but each individual move follows the standard steps |
| Across tenants |
High |
Not a reassignment at all. Workspaces, gateways, semantic models, reports, apps, and dashboards are recreated by hand; we scope this separately and say so plainly |
Cross-region moves are chosen, not stumbled into — data residency is usually the only reason worth the extra work. If yours is driven by where the underlying data platform lives rather than by the reporting layer, that conversation belongs with our Azure migration and cost optimization consulting, since the capacity, the region, and the bill all sit in the same Azure subscription.
Cost behaviour after cutover
Fabric capacity is an Azure resource billed per second, which changes how you manage it. Microsoft's guidance is candid that pay-as-you-go rates typically run higher than the equivalent Premium SKU if you simply leave a capacity running around the clock, so the savings come from the levers Premium never had. Reservations discount steady, predictable workloads. Pause and resume (opens in new tab) stops billing on a capacity that is genuinely idle overnight or at weekends — with the important caveat that content on a paused capacity is unavailable, so we only schedule it where nobody is looking. Budgets, alerts, and tags on the capacity resource make the spend visible to whoever owns it.
We track daily spend with you through the first weeks and compare consumption against the baseline captured before the move. Where a capacity looks overloaded afterwards, the usual cause is a change in workload — a new refresh schedule, a batch of new content — rather than the migration itself, and that is worth establishing before anyone scales up and pays for it.
Modernization is the next project, not this one
Landing on Fabric opens doors that were previously shut: mirroring and shortcuts to bring existing data into OneLake, unified OneLake security, and Direct Lake storage mode (opens in new tab), which queries Delta tables in OneLake with import-mode performance and a refresh that updates metadata rather than copying data. All of it is genuinely useful. None of it belongs inside a migration with a subscription deadline attached, and Microsoft's own guidance treats these as optional follow-ups that should not extend the timeline.
So we keep them separate on purpose. The migration gets your estate onto supported capacity by a date. Anything you then want built on top — a Direct Lake model, a lakehouse layer, new reporting for a team that has been waiting — is scoped afterwards as its own fixed-fee piece of work, which is what our fixed-fee Power BI dashboard development service exists for. If you are also carrying an older reporting estate alongside Power BI, our SSRS to Power BI migration service handles that consolidation on the same terms, and if a QlikView estate is still reloading alongside your Power BI content, our QlikView to Power BI migration service brings those documents onto the same semantic model before capacity has to carry both. And if what feeds those reports is a set of Alteryx Designer workflows running on somebody's desktop, that is a conversion project rather than a capacity move: our Alteryx to Microsoft Fabric migration services rebuild those workflows as Fabric dataflows and pipelines and reconcile the output against the originals.
Who this is for
It fits organizations already running Power BI at capacity scale who have received a renewal notice, an end-of-term date, or an internal question nobody can answer about what happens next. It also fits teams on per-user licensing who have decided capacity is now the right shape and want it provisioned and governed properly rather than clicked into existence. It is sized as a single fixed-fee project with a stated end date, not a rolling program.
Everything produced is yours from the first day. The capacity lives in your Azure subscription, the workspaces in your tenant, the documentation in your hands. If you want the reasoning behind the fixed-fee model before you talk to anyone, how our process works covers scoping, delivery, and what happens after handover.
Delivery in three phases
The table shows scope and typical timeline rather than prices, because an honest number needs your workspace inventory and consumption baseline first. Fabric capacity itself is billed to you by Microsoft through Azure and never through us.
| Phase |
Scope |
Typical timeline |
Fee |
| Phase 1 — baseline and decision |
Workspace and item inventory, capacity metrics app installed, fourteen-day consumption baseline, SKU and region decision, licensing implications documented, and the Azure resource provider registered |
About the first week |
Fixed fee — scoped after your free consultation |
| Phase 2 — provision, move, validate |
Capacity provisioned in your Azure subscription with tags and role assignments, pilot workspace moved and checked, remaining workspaces reassigned in waves, then refreshes, gateways, pipelines, and apps validated against the old capacity |
Weeks 2–3 |
Fixed fee — scoped after your free consultation |
| Phase 3 — stabilize and decommission |
Consumption monitored against the baseline, capacity workload settings and surge protection reapplied, budgets and alerts configured, pause schedules set where useful, and the written decommission checklist handed over for the retiring subscription |
Week 4 and close-out |
Fixed fee — scoped after your free consultation |