Microsoft is retiring Power BI Premium per-capacity SKUs (P1–P5) at the end of each customer’s current agreement term, and the migration to Fabric F SKUs is manual. EPC Group’s runbook sequences it: buy the F SKU first, triage workspaces by blast radius, reassign in batches, validate, then cancel. Never the reverse. EPC Group is a Houston-based Microsoft consulting firm operating since 1997, with six Microsoft Solutions Partner designations and 216+ M&A tenant migrations covering 1.83 million users.
Quick facts
| Question | Answer |
|---|---|
| What is retiring? | Power BI Premium per-capacity SKUs P1–P5 only |
| When? | End of each customer’s current agreement term |
| Is it automatic? | No — manual F SKU purchase plus per-workspace reassignment |
| Equivalent SKU for P1 | F64 (64 CUs); also the minimum for free viewers |
| Reassignment time per workspace | Typically seconds |
| Safe cancel point | Only after every workspace is reassigned and validated |
| Point of no easy return | Day 91 after subscription end — all operations rejected |
| Pay-as-you-go rate | $0.18 per CU-hour (US East, July 2026) |
| Reservation rate | $938.00 per CU per year, 1-year term (US East, July 2026) |
| Can you pause an F SKU? | Yes. P SKUs cannot be paused |
| Typical enterprise elapsed time | 4–8 weeks, single-region estate |
What Microsoft actually retired — and what it did not
Read the scope precisely; most internal panic here is misdirected. The retirement applies to per-capacity SKUs. Power BI Pro ($14.00 per user/month, paid yearly) and Premium Per User ($24.00) continue unchanged. Embedded EM and A SKUs are out of scope. Our Power BI Premium and Premium versus Premium Per User pages cover the per-user side.
What changes is the ownership model. A P SKU was bought in the Microsoft 365 admin center against an M365 commitment, priced globally, fixed in size for the term. An F SKU is an Azure resource: bought in the Azure portal, priced regionally, resizable on demand, pausable, taggable for chargeback, countable against a Microsoft Azure Consumption Commitment, and visible in Microsoft Cost Management. Trusted workspace access, managed private endpoints and Azure Monitor become available. Power BI Premium autoscale — the P SKU feature that added v-cores billed per 24-hour period — does not exist on F SKUs; the equivalents are on-demand resizing and capacity overage.
Two consequences follow. Your Power BI cost centre moves from the M365 bill to the Azure bill, usually a different approver and budget line — start that conversation in week one. And Power BI Report Server changes footing: on F SKUs it comes through a Fabric capacity reservation of F64 or higher, or SQL Server Enterprise Edition with Software Assurance. Verify that licence before you cancel.
The renewal-date trap
The renewal date is the forcing function. Everything else is scheduling around it.
Microsoft’s grace and throttled-access windows are a safety net, not a migration window. If your subscription ends with no F SKU in place, the estate degrades on a published clock: 30 days of free grace, 60 days of interactive delay, then a hard block on day 91. Your data is retained, but that block is a full business outage for every consumer on the capacity.
- Enterprise Agreement still active? You can keep running existing P SKU capacity and renew it annually through the agreement until the EA term ends. Confirm your contract terms with your Microsoft account representative — this is contractual, not product, behaviour. Set the migration date at EA term end minus 90 days.
- EA or Microsoft Cloud Agreement expiring? You cannot add or renew P SKU capacity through it. Migrate now; do not wait for the renewal conversation.
- Baseline consumption data in hand? With 30–45 days of Capacity Metrics history on the P SKU you are ready to size and buy. Without it, install the app today — that collection is the long pole.
- Mid-year with no renewal pressure? Migrate anyway. Every P capacity is now on a dead commercial path, and migrating on your schedule costs a fraction of migrating on a deadline.
- Sovereign cloud? Unaffected for now. Revisit when Microsoft publishes sovereign guidance.
Renewal minus 90 days gives you a four-to-eight week execution window plus a real buffer, and keeps the grace period as untouched reserve.
The Dual-Run Handover Model
The Dual-Run Handover Model is EPC Group’s framework for this migration. Its governing idea: for a defined window you pay for both capacities at once, and the project should be designed to make that window short, cheap and safe rather than to avoid it. Teams that eliminate the overlap by cancelling early end up in the day-91 block. Durations below are typical for a single-region estate of 40–120 workspaces.
| Phase | What happens | Owner | Typical duration |
|---|---|---|---|
| 1 — Baseline | Install the Capacity Metrics app. Capture 30–45 days of CU consumption on the P SKU, including Premium autoscale. Run the Fabric SKU Estimator. | Power BI / Fabric platform lead | 30–45 days elapsed, ~8 hours effort |
| 2 — Inventory and triage | Enumerate every workspace: owners, business contact, items and storage formats, Fabric items, refresh windows, gateways. Score into the Triage Grid. | Platform lead + workspace owners | 3–5 days |
| 3 — Provision | Register the Microsoft.Fabric resource provider. Confirm regional CU quota. Buy the F SKU. Add capacity admins before any reassignment. | Azure subscription owner + capacity admin | 1–2 days plus quota lead time |
| 4 — Pilot | Move one low-impact workspace with a report, a scheduled refresh and a gateway connection. Validate fully. Fix everything before proceeding. | Capacity admin | 2–3 days |
| 5 — Dual-run batches | Reassign in waves per the Triage Grid. Validate each wave before the next. Both capacities bill throughout. | Capacity admin + workspace admins | 2–4 weeks |
| 6 — Handover and decommission | Confirm zero workspaces remain on P. Verify Report Server licensing. Cancel the P SKU in the M365 admin center. Stand up Cost Management monitoring. | Billing admin + FinOps | 2–3 days |
Two rules are non-negotiable: the F SKU is purchased before any workspace moves, and the P SKU is cancelled only after the last workspace is validated on F. Every catastrophic version of this project violates one of them.
Workspace triage: which workspaces move first, and why
Reassignment takes seconds, which makes it tempting to move everything at once. Do not. The risk is not in the reassignment; it is in what you discover afterwards, and you want to discover it on a workspace nobody is watching.
Score each workspace on two axes. Blast radius — who notices if it breaks: distinct viewers over 30 days, executive audience, whether it backs an app or embedded surface. Item complexity — how many things can fail: large storage format models, Fabric items (Lakehouse, Warehouse, Notebook, pipeline, Eventstream, KQL database, Dataflow Gen2), gateways, deployment pipelines, XMLA write clients, paginated reports.
| Quadrant | Profile | Wave | Why |
|---|---|---|---|
| Low radius / low complexity | Sandbox, personal analytics, retired projects | 1 (pilot) | Proves prerequisites at zero business cost |
| Low radius / high complexity | Data engineering, dev Lakehouses, Fabric trial residue | 2 | Surfaces hard technical defects while nobody is watching |
| High radius / low complexity | Departmental reporting, import models, no Fabric items | 3 | Simple mechanics; the comms plan carries the load |
| High radius / high complexity | Enterprise semantic models, executive reporting, embedded | 4 (last) | Move only after every failure mode is known and fixed |
Two triage rules repeatedly save projects. Run discovery against every workspace, not just the ones you expect to hold Fabric items — users create them during trials, and those are exactly the items that do not survive a cross-region move. And treat cross-region changes as a separate project: standard Power BI items survive a cross-region reassignment, but large storage format models and all Fabric items do not, and restored models get a new GUID that forces report rebinding. Migrate same-region, then run consolidation, resizing and regional moves as separate Fabric workstreams.
The cost-delta worksheet
You cannot get this number from a pricing page, because the P SKU side is contractual — P SKU list pricing is no longer published on Microsoft’s Power BI pricing page. The worksheet starts with your invoice, not a rate card. Build one row per capacity.
| Line | Where it comes from | Example (one P1) |
|---|---|---|
| A. Current P SKU annual spend | M365 invoice or EA price sheet — actual contracted rate | your figure |
| B. Equivalent F SKU | P1 → F64 | 64 CUs |
| C. F SKU PAYG monthly | CUs × $0.18/CU-hour × 730 hours | 64 × 0.18 × 730 = $8,409.60 |
| D. F SKU reserved monthly | (CUs × $938 per CU-year) ÷ 12 | (64 × 938) ÷ 12 = $5,002.67 |
| E. Reservation saving | C − D | $3,406.93/month (40.5%) |
| F. Dual-run overlap cost | Line C or D × overlap months | e.g. 1.5 months |
| G. Pro/PPU liability below F64 | Viewers × $14 (Pro) or $24 (PPU) monthly | Only at F32 and below |
| H. OneLake storage | GB × $0.026/GB/month (hot) | Not covered by the reservation |
| I. Overage exposure | Capacity overage bills at 3× PAYG — $0.54/CU-hour | Opt-in |
| J. Net annual delta | (C or D × 12) + F + G + H − A | The number your CFO wants |
All rates are US East, as published at time of writing (July 2026), from the Azure Retail Prices API and Microsoft’s Fabric pricing page. F SKUs are priced regionally and P SKUs were priced globally, so the delta is not uniform across a multi-region estate. Three things this worksheet exposes that a rate-card comparison never does:
Line F is real money. A six-week dual-run on an F256 at reserved rates is roughly $30,000 no vendor comparison table shows you. Budget it, and shorten it by batching aggressively once the pilot is clean.
Line G is the sizing cliff. Right-sizing a P1 down to an F32 looks like a 50% compute saving until you count the viewers who lose free access. At 400 viewers, Pro licences at $14/user/month cost $5,600/month — more than the compute saved. Below F64, do the licence arithmetic first.
Line D is a commitment, not a discount. A reservation is a one- or three-year commitment for a quantity of CUs in a region. It does not cover storage or networking, and it does not renew automatically unless you enable renewal. It also interacts badly with the pause-and-resume savings play: pausing stops the compute billing meters, but a reservation is prepaid capacity. Reserve your always-on floor, run the variable tier pay-as-you-go, and confirm the interaction with your Microsoft account team. Our Power BI cost and licensing guide works the per-user side, and Fabric capacity FinOps and right-sizing takes over once you are live.
Sizing from evidence, not from the mapping table
P1→F64 is a compute-equivalence reference. Microsoft is explicit that it should not be read as functional or licensing equivalence.
Open the Capacity Metrics app against the P capacity and review the maximum period available, accounting for Premium autoscale — autoscale on P inflates what you appear to need on F, because it was compute you bought separately. Sustained periods near 100% CU utilization justify the equivalent or larger SKU; long low-utilization stretches justify a smaller SKU plus a pause schedule. Then add the Fabric workloads you plan to introduce after migration using the Fabric SKU Estimator, which models forward consumption from a workload profile rather than history. The F SKU cost model derives the reserved break-even in full.
If you plan to split one P1 into a production F SKU plus a smaller dev/test F SKU you pause when idle, check total consumption first. Splitting a capacity already near 100% utilization creates overloads on both halves. Scale up before you split. See our Fabric consulting services guide for the post-go-live discipline.
The rollback plan
Most teams skip this because reassignment is fast and reversible. It is reversible — until it isn’t.
Reversible states. While the P SKU is active and paid, you can reassign a workspace back to it — the entire reason the P capacity stays alive through Phase 5. If a wave fails validation, reassign it back to P, fix, re-run. Keep the P capacity’s admin list intact.
Irreversible states. Three actions cross the line. Cancelling the P SKU starts the grace/throttle/block clock with no path back — make it a change-controlled event with a named approver. Cross-region reassignment of a workspace holding Fabric items or large storage format models removes those items; recovery is from your backup, not from Fabric. Git-syncing a migrated workspace against a repository missing items can delete them — restore Fabric items into a separate workspace and verify counts before moving them across.
Pre-conditions before any wave. Capture item definitions to Git through Fabric Git integration; Git captures definitions, not data. Copy Lakehouse files and Warehouse tables outside the workspace. Back up large storage format models via XMLA tooling or Premium backup/restore, and record report-to-model bindings so you can rebind after the GUID changes. Record item counts per workspace — comparing counts after discovery is your most reliable validation signal.
Abort criteria. Roll the wave back if refreshes fail on more than one workspace for an unisolated cause, or if item counts do not reconcile. Sustained 100% CU utilization in the first 24–48 hours is a sizing signal, not a correctness failure — scale up on demand before continuing.
Communications plan for report consumers
Capacity migration is invisible when it works, so the only messages people remember are about failures. Send fewer, more specific ones.
| Audience | When | Message | Channel |
|---|---|---|---|
| Workspace owners | Phase 2 | Confirm business contact, refresh windows, gateway dependencies, and whether Fabric items exist. Deadline. | Direct email, one per owner |
| Executive sponsors | Phase 3 | What is changing, the cost delta, the dual-run overlap, the cancellation approval you will be asked for | One-page brief |
| Report consumers in a wave | 5 days before | Your reports move on date. No action required. URLs do not change. Brief interruption possible. | Teams announcement + app banner |
| Report consumers in a wave | Day of | Move complete. If a report fails to load, refresh once, then contact named channel. | Same channels |
| Gateway and data-source owners | 5 days before | Refresh credentials may need reauthorization. Be available on date. | Direct email |
| All Power BI users | Phase 6 | Migration complete. Where to raise performance issues. | Single closing note |
Put two details in every pre-move message: report URLs do not change, and per-user licences do not change. Those two questions generate most ticket volume. Our Power BI gateway guidance covers the refresh-path checks.
What breaks — failure modes
| Symptom | Root cause | Fix |
|---|---|---|
| Cannot reassign a workspace to the new capacity | Not a capacity admin on the target, or Microsoft.Fabric resource provider not registered | Add yourself as capacity admin; register the provider on the subscription |
| Reassignment fails with a region error | Workspace holds large storage format models or Fabric items that cannot cross regions | Back up and recreate per the cross-region path, or migrate same-region |
| Free users can no longer view reports | New capacity is F32 or smaller, where free-viewer access does not exist | Scale to F64 or larger, or assign Pro/PPU to every viewer |
| Scheduled refreshes fail after the move | Gateway unreachable or credentials need reauthorization | Reauthorize the data source in model settings; verify the gateway binding |
| Reports load slowly immediately after the move | F SKU undersized for current workload | Confirm CU utilization in the Metrics app; scale up on demand in the Azure portal |
| Users cannot create Fabric items in a migrated workspace | Expected — the Fabric workload initializes on the new capacity | Wait up to one hour and retry |
| A refresh was killed mid-run during reassignment | Active refreshes and queries are interrupted at reassignment | Reassign outside refresh windows; re-trigger the refresh |
| Reports render blank after a cross-region model restore | Restored models get a new GUID; reports point at the old one | Rebind every dependent report before releasing the wave |
| Item count does not match inventory | Items lost in a cross-region move or a Git sync | Restore from backup; never Git-sync into the migrated workspace |
What changed in 2026
- Microsoft published a dedicated P-to-F migration doc set — overview, decision guide, how-to and FAQ under
power-bi/support/. Previously the only official guidance was the licensing page and a blog post. If you scoped this project in 2025, re-scope it. - The retirement timeline is now explicit. The 30-day grace / day-31 throttle / day-91 block sequence is documented, making the renewal date a plannable milestone.
- The bulk path is scripted. Microsoft’s
semantic-link-labsCapacity Migration notebook handles many-workspace and split-across-capacity scenarios. - The Capacity Metrics app gained a Health page and the Chargeback app went generally available in May 2026. Health surfaces utilization, throttling and cumulative debt across every capacity you administer; Chargeback allocates CU consumption by workspace, item, domain and user.
- Capacity overage entered preview — an opt-in way to pay through a spike at 3× the pay-as-you-go rate instead of throttling. Not a substitute for correct sizing.
- Workspace-level surge protection entered preview, adding per-workspace CU limits, auto-blocking and a mission-critical exemption — controls that did not exist on P SKUs.
Frequently asked questions
Is Power BI Premium being discontinued entirely?
No. Only the per-capacity SKUs P1 through P5 are retiring. Power BI Pro and Premium Per User remain active and unchanged, and your users need no licence change as part of this migration. Embedded EM and A SKUs are also unaffected.
When exactly does my P SKU stop working?
Your P SKU subscription ends at the end of your current agreement term. After that you get a 30-day grace period at no charge, then throttled access from day 31 to day 90, then a full block from day 91 onward until you migrate the workspaces or delete the capacity.
Which F SKU replaces my P1?
F64. The mapping is P1→F64, P2→F128, P3→F256, P4→F512 and P5→F1024, based on capacity units, where each P SKU v-core corresponds to 8 CUs. Treat it as a starting point and right-size from measured consumption in the Capacity Metrics app.
Is the migration automatic at renewal?
No. You purchase a Fabric F SKU capacity in Azure yourself and reassign each workspace from the P capacity to the F capacity. Fabric does not decommission your P SKU automatically either — cancellation is a separate manual step in the Microsoft 365 admin center.
Can I cancel the P SKU first to avoid paying twice?
No. Purchase the F SKU first, reassign all workspaces, validate, and only then cancel. Cancelling first starts the grace/throttle/block clock and removes your rollback path. Budget the dual-run overlap as a project cost.
What happens if I size down below F64?
Free users lose the ability to view content with the Viewer role, and Power BI Premium features are no longer available. Every report viewer then needs a Power BI Pro or Premium Per User licence. Price that liability before choosing an F32 or smaller.
Do report URLs change after migration?
No. Workspaces keep their identity through reassignment; only the capacity they are hosted on changes. Users generally see nothing, though active refreshes and queries can be interrupted at the exact moment of reassignment.
Should I move regions while I migrate?
Almost never. Standard Power BI items survive a cross-region reassignment, but large storage format semantic models and all Fabric items do not — they must be backed up, deleted, and recreated, and restored models get new GUIDs that force report rebinding. Migrate same-region, then treat a regional move as a separate project.
How long does a typical enterprise migration take?
For a single-region estate of 40–120 workspaces, four to eight weeks of execution, preceded by 30–45 days of consumption baselining. The baseline is the long pole; start the Capacity Metrics app collection first.
Is a reservation worth it?
Usually, for the always-on portion of your estate. At US East rates in July 2026, an F64 costs $8,409.60 per month pay-as-you-go versus $5,002.67 per month on a one-year reservation — about 40.5%. But a reservation is a commitment for a quantity of CUs in a region and does not cover storage. Reserve your floor, run the variable tier pay-as-you-go.
Sources and verification
Every figure above is a Microsoft list price or a Microsoft-published behaviour, traceable to one of these. Rates are US East as published July 2026; F SKUs are priced regionally, so confirm your own region before modelling.
- Microsoft Learn — Power BI Premium to Microsoft Fabric migration overview
- Microsoft Learn — P SKU to F SKU migration decision guide (retirement timeline, grace/throttle/block)
- Microsoft Learn — Migrate workspaces from Power BI Premium to Microsoft Fabric (step order, troubleshooting)
- Microsoft Learn — Power BI Premium to Microsoft Fabric migration FAQ
- Microsoft Learn — Understand Microsoft Fabric licenses (SKU-to-CU table, F64 viewer rule)
- Microsoft Learn — Microsoft Fabric features by SKU and capacity type
- Microsoft Learn — What is the Microsoft Fabric Capacity Metrics app?
- Microsoft Learn — Understand the metrics app Health page
- Microsoft Learn — Microsoft Fabric Chargeback app
- Microsoft Learn — What is the Fabric SKU Estimator (preview)?
- Microsoft Learn — Save costs with Microsoft Fabric Capacity reservations
- Microsoft Learn — Pause and resume your Fabric capacity
- Microsoft Learn — The Fabric throttling policy
- Microsoft Learn — Capacity overage (preview) in Microsoft Fabric
- Microsoft Learn — Surge protection
- Microsoft Learn — Manage your Fabric capacity
- Microsoft Learn — Reassign a workspace to a different capacity
- Microsoft Learn — Plan your capacity size
- Microsoft — Microsoft Fabric pricing
- Microsoft — Power BI pricing (Pro $14.00, PPU $24.00 per user/month paid yearly, July 2026)
- Azure Retail Prices API — serviceName eq 'Microsoft Fabric', armRegionName eq 'eastus'. Source of every dollar figure here, as published July 2026
- Microsoft — semantic-link-labs Capacity Migration notebook (bulk and split scenarios)
Where to go next
If your Enterprise Agreement renews in the next twelve months, the migration date is already fixed — you just haven’t written it down. EPC Group runs the baseline, triage grid and cost-delta worksheet as a fixed-scope assessment and hands you a dated runbook. Start with Microsoft Fabric consulting or Power BI consulting.
Related: Power BI Premium · Premium vs PPU · Fabric vs Databricks · Snowflake to Fabric · Data governance firms · Microsoft consulting firms · Power Platform firms · Houston · Phoenix · Microsoft Frontier Company · CFO AI governance · Power BI pricing and licensing
