Microsoft Fabric is billed by capacity, not by user. You buy an F SKU rated in Capacity Units at $0.18 per CU-hour pay-as-you-go, or $938 per CU per year reserved — a 40.5% discount. EPC Group models the break-even, the throttling risk, and the storage meters before you buy. 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 |
|---|---|
| Billing unit | Capacity Units (CU), billed per second, F2 to F2048 |
| Pay-as-you-go rate | $0.18 per CU-hour (US West 2, July 2026) |
| One-year reserved rate | $938.00 per CU/year (≈$78.17 per CU-month) |
| Reserved discount | 40.51% versus 24×7 pay-as-you-go |
| Break-even utilization | 5,211.1 CU-hours/year — 59.5% of wall-clock time |
| Can you pause? | Yes, F SKUs only. Pausing bills accumulated smoothed usage at once |
| Is storage included? | No. OneLake storage is a separate, unreserved meter |
| Free viewer licences | F64 and above only |
| Trial | 60 days, F4 or F64, 1 TB OneLake, no Copilot, no Private Link |
Fabric bills you on four meters, not one
Almost every Fabric budget that fails was built from one number — the F SKU monthly rate. Fabric charges on four independent meters.
Capacity compute. Every workload — Power BI, Warehouse, Spark, pipelines, Eventhouse, Copilot, OneLake operations — draws from the same CU pool. Microsoft publishes more than eighty distinct Fabric consumption meters in the Azure retail price list and every one is priced at $0.18 per CU-hour. You buy one pool of compute; the meters exist for attribution, not differential pricing.
OneLake storage. Billed per GB per month, and it does not consume CU. Microsoft states it directly: OneLake storage “doesn’t consume Fabric Capacity Units (CUs).”
Per-user licensing. Below F64, Power BI consumption still needs Pro at $14.00 or Premium Per User at $24.00 per user per month, paid yearly, as published at time of writing (July 2026). See our Power BI cost and licensing guide and Premium versus Premium Per User.
The exception pool — capacity overage at 3×, Autoscale Billing for Spark, OneLake cache. Each is opt-in, and each is where an admin setting becomes an invoice nobody forecast.
The complete F SKU table
US West 2, USD, from the Azure retail price list, as published at time of writing (July 2026). Monthly figures use a 730-hour month; reserved figures are the one-year term at $938.00 per CU per year.
| SKU | CU | Power BI SKU | PAYG / hour | PAYG / month | Reserved / month | Reserved / year |
|---|---|---|---|---|---|---|
| F2 | 2 | — | $0.36 | $262.80 | $156.33 | $1,876 |
| F4 | 4 | — | $0.72 | $525.60 | $312.67 | $3,752 |
| F8 | 8 | A1 | $1.44 | $1,051.20 | $625.33 | $7,504 |
| F16 | 16 | A2 | $2.88 | $2,102.40 | $1,250.67 | $15,008 |
| F32 | 32 | A3 | $5.76 | $4,204.80 | $2,501.33 | $30,016 |
| F64 | 64 | P1 | $11.52 | $8,409.60 | $5,002.67 | $60,032 |
| F128 | 128 | P2 | $23.04 | $16,819.20 | $10,005.33 | $120,064 |
| F256 | 256 | P3 | $46.08 | $33,638.40 | $20,010.67 | $240,128 |
| F512 | 512 | P4 | $92.16 | $67,276.80 | $40,021.33 | $480,256 |
| F1024 | 1k | P5 | $184.32 | $134,553.60 | $80,042.67 | $960,512 |
| F2048 | 2k | — | $368.64 | $269,107.20 | $160,085.33 | $1,921,024 |
Two caveats the vendor blogs skip. Microsoft’s licensing table also lists F4096 and F8192, absent from the published price list — treat them as negotiated. And prices vary by region: the arithmetic below holds everywhere, the constants do not.
Pay-as-you-go versus reservation: the break-even, derived
Step 1 — annualise pay-as-you-go for one CU. $0.18 × 8,760 = $1,576.80 per CU/year.
Step 2 — compare. $1,576.80 − $938.00 = $638.80 saved per CU/year. $638.80 ÷ $1,576.80 = 40.51%.
Step 3 — break-even hours. $938.00 ÷ $0.18 = 5,211.1 CU-hours/year.
Step 4 — as utilization. 5,211.1 ÷ 8,760 = 59.49% of wall-clock time, or 434.3 hours of a 730-hour month.
The rule is exact: run a capacity more than roughly 59.5% of the year and reserve it; run it less and leave it on pay-as-you-go and pause it. A 24×7 production capacity sits at 100% and should always be reserved. A development capacity at 10 hours a day, 5 days a week sits at 29.7% and should never be. Four reservation mechanics change how you apply that rule, and none of the competing articles state them:
- Reservations are bought in 1-CU increments, not SKU sizes. You can reserve 64, 80, or 137 CU.
- They are scoped to a region, not a capacity. Microsoft’s example: buy 64 CU, deploy two F32s, and the discount covers both.
- They do not cover storage or networking. Microsoft: “A reservation doesn’t cover storage or networking charges.”
- Unused reserved hours do not carry forward. Reserve 64 CU, run an F32, and half the commitment is gone.
The three-year term at $2,814.00 per CU buys rate protection, not a deeper discount.
The pause-and-resume model for non-production capacity
Pause and resume works on F SKUs, not P SKUs. It is the highest-return, lowest-effort lever in Fabric and it is almost always unused. Take an F16 development capacity needed 10 hours a day, 5 days a week — 2,600 hours a year.
- F16 running 24×7 on pay-as-you-go: 16 × $0.18 × 8,760 = $25,228.80/year
- F16 reserved for one year: 16 × $938.00 = $15,008.00/year
- F16 on pay-as-you-go, paused off-hours: 16 × $0.18 × 2,600 = $7,488.00/year
Pausing beats the reservation by $7,520.00 a year and always-on pay-as-you-go by $17,740.80 — a 70.3% cut. Reserving a development capacity is a common and expensive mistake; that is the arithmetic behind it.
Two operational notes. Pausing bills accumulated overages and smoothed operations immediately, so the first invoice after you start looks strange. And pausing revokes the mirroring free-storage entitlement, so replica storage becomes billable. Automate it with an Azure Automation runbook or the Fabric suspend/resume REST APIs; manual pausing does not survive contact with a delivery team.
The Capacity Ladder: EPC Group’s five-rung method for buying Fabric capacity
Most organisations buy a Fabric SKU the way they bought a P SKU: pick a size, sign for a year, learn the truth in month four. The Capacity Ladder replaces that with a sequence where each rung produces the evidence for the next.
Rung 1 — Trial and instrument (days 1–60). A trial capacity runs 60 days at F4 or F64 with 1 TB of OneLake, excluding Copilot, AI functions, Trusted Workspace Access and Private Link. Install the Capacity Metrics app on day one. The trial exists to produce a CU utilization curve, not to prove the product works.
Rung 2 — Measure on pay-as-you-go, never on a commitment (days 30–120). Microsoft’s guidance is explicit: use trial or pay-as-you-go capacity “to measure the actual capacity size required before purchasing an F SKU reserved instance.” Run a full business cycle. The Fabric SKU Estimator is a cross-check, but Microsoft says to “trust your actual usage metrics first and foremost.”
Rung 3 — Split production from everything else (day 90). Provision at least two capacities: production, and one for development and self-service. Scaling up always doubles the SKU, so a shared capacity forces a 2× step to protect one team’s dashboard from another team’s notebook. Two capacities cost less than one over-provisioned one, and they contain blast radius.
Rung 4 — Reserve the floor, burst the peak (day 120). Reserve only the CU count you run continuously; leave everything above it on pay-as-you-go. Production F64 at 24×7 plus development F16 at 2,600 hours a year:
- All pay-as-you-go, both always on: 80 × $0.18 × 8,760 = $126,144.00/year
- All reserved: 80 × $938.00 = $75,040.00/year
- Ladder: reserve 64 CU ($60,032.00) + F16 paused on PAYG ($7,488.00) = $67,520.00/year
The Ladder saves $58,624.00 a year against the naive pay-as-you-go position and $7,520.00 against the naive reserved position, on identical compute.
Rung 5 — Govern the ceiling (ongoing). Set capacity notifications at 100% utilization, configure surge protection from your observed background percentage, decide deliberately whether capacity overage is on, and re-derive the floor quarterly. A reservation set once and never revisited is wrong within two quarters.
How to size before you buy
- Convert the SKU to a per-timepoint budget. Fabric evaluates capacity in 30-second timepoints, so multiply CU by 30: an F64 has 1,920 CU per timepoint, an F2 has 60.
- Run a representative peak — your heaviest concurrent load, not a demo.
- Read the Utilization visual. Spikes above 100% are overages, not automatically throttling; smoothing may absorb them.
- Read the Throttling charts separately. They show when smoothed usage crossed a limit. Above 100% with no throttling means smoothing worked; 95% with sustained throttling means it did not.
- Drill to the timepoint page. The SKU card and Capacity CU card give the number that is actually your SKU.
- Size so peak sits below 100% — Microsoft’s phrasing is “high but not maxed-out usage.”
- Add the workloads you have not built yet. Planned lakehouses, warehouses, notebooks and pipelines are absent from a pre-migration baseline, and our Fabric consulting practice models that delta separately.
The F64 cliff, in dollars
The most consequential number in Fabric pricing is not a price — it is the SKU at which viewers stop needing a paid licence. For 400 report viewers:
- F32 reserved + 400 Pro licences: $2,501.33 + (400 × $14.00) = $8,101.33/month
- F64 reserved, viewers on free licences: $5,002.67/month
F64 — twice the compute — is $3,098.66 a month cheaper, or $37,183.92 a year. The break-even is exact: the F32→F64 reserved step costs $2,501.34 more per month, which at $14.00 per Pro licence is 179 viewers. Above 179 viewers, F64 is cheaper even if you need none of the extra compute. On pay-as-you-go the step is $4,204.80 and the break-even is 301 viewers.
What throttling actually does to your users
Fabric does not throttle the moment you cross 100%. Bursting lets operations temporarily exceed the SKU’s compute; smoothing spreads the resulting CU consumption forward — interactive operations over a minimum of five minutes and up to 64 minutes, background operations over 24 hours. That is why you size for average rather than peak, and why a spike above 100% is not by itself a problem. Throttling begins when smoothed usage consumes all capacity available in a forward window. Four stages:
| Forward capacity consumed | Stage | What users experience |
|---|---|---|
| ≤ 10 minutes | Overage protection | Nothing — 10 minutes of future capacity is free |
| 10–60 minutes | Interactive delay | Every interactive job delayed 20 seconds at submission. Reports feel broken; nothing errors |
| 60 min – 24 hours | Interactive rejection | Interactive jobs rejected; background jobs still run, so refreshes succeed while users cannot open reports |
| > 24 hours | Background rejection | All requests rejected. Refreshes, pipelines and reports fail |
The middle two stages are dangerous because they do not look like capacity problems. Interactive delay produces a help desk full of “Power BI is slow” tickets with no errors in any log. Interactive rejection is the reverse: monitoring stays green because refreshes complete, while the business cannot open anything.
During rejection users see status code CapacityLimitExceeded and one of two messages: “Your organization’s Fabric compute capacity has exceeded its limits. Try again later” or “Cannot load model due to reaching capacity limits.” Put both strings in your service desk knowledge base.
Three behaviours matter when sizing. Real-Time Intelligence skips the delay stage and does not throttle until the 60-minute threshold. Almost all Warehouse operations are classified as background, so they get 24-hour smoothing. In-flight operations are never throttled.
To stop throttling: scale up temporarily; pause and resume, which bills accumulated future capacity and returns the capacity to zero debt so it accepts work at once; or enable capacity overage at 3×. Long term: optimise, scale up, or scale out — and isolate mission-critical workloads on their own capacity, which is Microsoft’s own recommendation.
Hidden costs most Fabric budgets miss
| Cost | Published rate (US West 2, July 2026) | Why budgets miss it |
|---|---|---|
| OneLake storage — hot / cool / cold | $0.023 / $0.0125 / $0.004 per GB-month | Not covered by a reservation. 50 TB hot = $1,177.60/month |
| OneLake cache | $0.20 per GB-month | 8.7× the hot rate. The most surprising line on a Fabric invoice |
| SQL and Cosmos DB in Fabric — storage / backup | SQL $0.22115 / $0.088462; Cosmos $0.13269 / $0.263848 per GB-month | ~9.6× hot OneLake for SQL; Cosmos backup costs twice its data |
| Capacity overage | $0.54 per CU-hour (3× PAYG) | Opt-in preview. A 240 CU-hour daily ceiling is $129.60/day, to $3,888 a month |
| Mirroring beyond entitlement, or while paused | $0.023 per GB-month | Free to 1 TB per CU. Mirror 80 TB on an F64 and 16 TB bills at $376.83/month |
| Copilot and AI | $0.18 per CU-hour | Not a separate licence — it competes with your reports for the same CU |
Two more behave like line items. Autoscale Billing for Spark moves Spark to a separate serverless pool where bursting and smoothing do not apply, so a job once absorbed silently now bills directly. And soft-deleted OneLake data bills at the active-data rate.
What breaks: failure modes on a Fabric capacity
| Symptom | Root cause | Fix |
|---|---|---|
| Reports slow, nothing errors, no failures in logs | Interactive delay — 20 seconds added at submission | Read the Throttling charts, not Utilization. Scale up temporarily, or pause and resume to clear carryforward |
| Refreshes succeed all night but users cannot open reports | Interactive rejection — background jobs run while interactive ones are rejected | Same diagnosis, then move refresh-heavy workspaces to a second capacity |
| Invoice jumps with no change in usage | OneLake cache at $0.20/GB-month, or mirroring storage billing after a pause | Pull the Metrics app Storage tab and the per-item OneLake storage report |
| Reserved capacity bought, bill barely moves | Reservations cover compute only — storage, networking and licences are unaffected | Re-forecast across all four meters; reserve the floor CU count only |
| Free users suddenly prompted for a Pro licence | Capacity scaled below F64, or a licence update still propagating | Licence updates can take a day. Below F64 the prompt is correct behaviour |
| P SKU capacity stops working after the agreement ends | P SKU retirement: 30-day grace, throttled days 31–90, rejected from day 91 | Buy the F SKU first, reassign and validate workspaces, then cancel the P SKU |
What changed in 2026
- Power BI Premium P SKUs are retired. Microsoft no longer sells them and they cannot be added or renewed through an expiring agreement. Each retires at term end: 30-day grace, throttled from day 31, rejected from day 91. Migration is not automatic.
- Capacity overage entered preview — opt-in, pays for excess usage instead of throttling, billed at 3× pay-as-you-go ($0.54 per CU-hour), set as a 24-hour CU-hour ceiling in multiples of 48 CU, recommended for F16 and above.
- Workspace-level surge protection caps CU consumption per workspace over a rolling 24 hours, with Mission Critical exemption and manual blocking.
- A three-year Fabric reservation appeared in the Azure price list effective 1 April 2026 at $2,814.00 per CU — three times the one-year rate, no extra discount.
- OneLake security and data access roles reached GA in May 2026, adding folder-, row- and column-level security, on by default for supported items by month end.
- OneLake–Snowflake Iceberg interoperability reached GA in February 2026, changing the build-versus-shortcut calculation mid-migration — see our Snowflake to Fabric migration guidance.
Frequently asked questions
How much does Microsoft Fabric cost per month?
An F2 costs $262.80 per month pay-as-you-go or $156.33 reserved. An F64 — the smallest SKU that lets free users view Power BI content — costs $8,409.60 pay-as-you-go or $5,002.67 reserved. Figures are US West 2 as published at time of writing (July 2026), excluding storage.
What is a Capacity Unit in Microsoft Fabric?
A Capacity Unit is Fabric's unit of compute, and the SKU number is the CU count: an F64 provides 64 CU. Fabric evaluates consumption in 30-second timepoints, so an F64 has 1,920 CU per timepoint. Every workload draws from that same pool at $0.18 per CU-hour.
Is reserved Fabric capacity worth it?
Reserve if the capacity will run more than 59.5% of wall-clock hours. The break-even is $938.00 ÷ $0.18 = 5,211.1 CU-hours per year. Production capacities running 24×7 should always be reserved. Development capacities that can be paused outside business hours should not — pausing an F16 saves $7,520 a year against reserving it.
Do I still need Power BI Pro licences with Fabric?
Only below F64. At F64 and above, users with a free Fabric licence and a viewer role can view Power BI content. Below F64, every viewer needs Pro at $14.00 or PPU at $24.00 per user per month. Creating and sharing Power BI content still requires Pro or PPU at any SKU.
What happens when a Fabric capacity is throttled?
Four stages. Up to 10 minutes of future capacity is free. From 10 to 60 minutes, every interactive request is delayed 20 seconds. From 60 minutes to 24 hours, interactive requests are rejected while background jobs still run. Beyond 24 hours, everything is rejected. Users see CapacityLimitExceeded.
Can I pause a Fabric capacity to save money?
Yes, on F SKUs. Pausing stops compute billing and is the fastest way to clear a throttled capacity, because it resets future-capacity debt to zero. It triggers an immediate billing event for accumulated smoothed usage, and it suspends the mirroring free-storage entitlement.
Is OneLake storage included in the F SKU price?
No. OneLake storage is a separate pay-as-you-go meter and does not consume Capacity Units. Hot is $0.023 per GB per month, cool $0.0125, cold $0.004, cache $0.20. A reservation covers compute only — Microsoft states it does not cover storage or networking.
How do I size a Fabric capacity before buying?
Run the real workload on a trial or pay-as-you-go capacity through a full business cycle, then read the Capacity Metrics app: the Utilization visual for overages, the Throttling charts for actual impact, and the timepoint page for the CU number. Size so peak sits below 100%, then add the workloads you have not built yet.
Do Power BI Premium P SKUs still exist?
No new ones. Microsoft no longer sells P SKUs and they cannot be added or renewed through an expiring agreement. Each retires at the end of its term, with a 30-day grace period, throttled access from day 31, and all operations rejected from day 91. Buy the F SKU first, reassign workspaces, then cancel the P SKU.
Work with EPC Group on your Fabric capacity decision
Sizing a first Fabric purchase, migrating off a retiring P SKU, or explaining a capacity invoice to a CFO? EPC Group runs the measurement, builds the four-meter forecast, and sets throttling policy before the commitment is signed. Start with Microsoft Fabric consulting services, the Fabric consulting guide, or the Power BI consulting practice.
Related: Fabric vs Databricks · Power BI Premium · Power BI Gateway · Power BI, Houston · Data governance · Azure migration · Microsoft consulting firms · Power Platform firms · Epic/Cerner Power BI · CFO AI governance · Frontier Company · Power BI pricing and licensing.
Sources and verification
- Microsoft Learn — Understand Microsoft Fabric licenses (SKU-to-CU table, F64 viewer rule) — https://learn.microsoft.com/fabric/enterprise/licenses
- Microsoft Learn — Fabric features by SKU and capacity type (pause/resume, Spark autoscale billing) — https://learn.microsoft.com/fabric/enterprise/fabric-features
- Microsoft Learn — Buy a Microsoft Fabric subscription (per-second billing, yearly reservation) — https://learn.microsoft.com/fabric/enterprise/buy-subscription
- Microsoft Learn — The Fabric throttling policy (bursting, smoothing, four stages, error strings) — https://learn.microsoft.com/fabric/enterprise/throttling
- Microsoft Learn — Pause and resume your Fabric capacity — https://learn.microsoft.com/fabric/enterprise/pause-resume
- Microsoft Learn — Save costs with Fabric Capacity reservations (1-CU increments, region scope) — https://learn.microsoft.com/azure/cost-management-billing/reservations/fabric-capacity
- Microsoft Learn — Enable capacity overage (preview) (3× rate, 48 CU multiples, F16+) — https://learn.microsoft.com/fabric/enterprise/enable-capacity-overage
- Microsoft Learn — Capacity overage (preview) in Microsoft Fabric — https://learn.microsoft.com/fabric/enterprise/capacity-overage-overview
- Microsoft Learn — Surge protection (capacity- and workspace-level thresholds) — https://learn.microsoft.com/fabric/enterprise/surge-protection
- Microsoft Learn — Plan your capacity size (30-second CU use table, SKU Estimator) — https://learn.microsoft.com/fabric/enterprise/plan-capacity
- Microsoft Learn — Evaluate and optimize your Microsoft Fabric capacity — https://learn.microsoft.com/fabric/enterprise/optimize-capacity
- Microsoft Learn — Scale your Fabric capacity (licence update propagation) — https://learn.microsoft.com/fabric/enterprise/scale-capacity
- Microsoft Learn — Try Microsoft Fabric for free (60-day trial, F4/F64, 1 TB, exclusions) — https://learn.microsoft.com/fabric/fundamentals/fabric-trial
- Microsoft Learn — What is Mirroring in Fabric? (one free TB per CU, paused-capacity behaviour) — https://learn.microsoft.com/fabric/mirroring/overview
- Microsoft Learn — OneLake compute and storage consumption (storage does not consume CU) — https://learn.microsoft.com/fabric/onelake/onelake-consumption
- Microsoft Learn — Autoscale Billing for Spark (bursting and smoothing do not apply) — https://learn.microsoft.com/fabric/data-engineering/autoscale-billing-for-spark-overview
- Microsoft Learn — P SKU to F SKU migration decision guide (retirement timeline) — https://learn.microsoft.com/power-bi/support/premium-migration-decision-guide
- Microsoft Learn — Power BI Premium to Microsoft Fabric migration FAQ — https://learn.microsoft.com/power-bi/support/premium-migration-faq
- Microsoft Learn — What's new in Microsoft Fabric (OneLake security GA, Iceberg interoperability GA) — https://learn.microsoft.com/fabric/fundamentals/whats-new
- Microsoft Azure — Microsoft Fabric pricing (mirroring free-storage statement, reservation saving) — https://azure.microsoft.com/en-us/pricing/details/microsoft-fabric/
- Azure Retail Prices API — serviceName eq 'Microsoft Fabric', armRegionName eq 'westus2', USD. Source of every dollar figure here, as published July 2026 — https://prices.azure.com/api/retail/prices
- Microsoft — Power BI pricing (Pro $14.00, PPU $24.00 per user/month paid yearly, July 2026) — https://www.microsoft.com/en-us/power-platform/products/power-bi/pricing
- Microsoft Learn — Compute page in the Fabric Capacity Metrics app (throttling charts) — https://learn.microsoft.com/fabric/enterprise/metrics-app-compute-page
- Microsoft Learn — Fabric capacity planning guide: plan your first deployment — https://learn.microsoft.com/fabric/enterprise/capacity-planning-plan-deployment
