TL
The short answer

Microsoft Fabric is licensed as a single pool of capacity units, the F SKUs, and every Fabric workload draws from that one pool, so capacity sizing is the whole cost decision. The right size is the SKU that covers your sustained load at roughly the ninety fifth percentile, not your highest momentary peak, because Fabric smoothing spreads interactive spikes over a short window and background jobs over 24 hours so a well sized capacity rides through bursts without throttling. Once the SKU fits the sustained load, a one year reservation takes around 40 percent off the rate, pausing pay as you go capacity off hours stops the meter entirely, and moving bursty experimentation to its own small capacity stops it from inflating the production SKU. Read the capacity from the Microsoft Fabric Capacity Metrics app, never from guesswork.

Most Fabric overspend is a capacity bought for a peak that smoothing already absorbs, left running through nights and weekends, on pay as you go rates. Here is how the billing works and how to size it down without losing headroom.

How does Fabric capacity actually get billed?

Fabric capacity comes in F SKUs sized by capacity units, from F2 at the small end up through F64, F128, and beyond, and you pay per hour the capacity runs regardless of how many workloads use it. The important detail for cost is that the capacity is shared: Power BI reports, a Data Warehouse, Spark notebooks in Data Engineering, Real Time Intelligence, and Data Science models all consume from the same pool. That means adding a workload does not add a line item, it adds load to the capacity you already pay for, and the question is always whether the current SKU has the capacity units to carry the combined demand. F64 is also the threshold where report consumers do not each need a per user Power BI license, which can change the math for a wide audience and should be weighed against the SKU cost rather than treated as free.

Why size to sustained load instead of peak?

Fabric does not bill the instantaneous peak, it smooths consumption. Interactive operations such as a report query are smoothed over a short window of a few minutes, and background operations such as a scheduled data pipeline are smoothed over 24 hours. The effect is that a sharp spike does not require a SKU large enough for the spike, only one large enough for the average once the spike is spread out. Sizing to the absolute peak therefore buys capacity you never sustain. The correct input is the capacity unit consumption over a representative week read from the Capacity Metrics app, sized to the sustained P95 with a modest margin. Throttling only begins when smoothed consumption stays above 100 percent for long enough to exhaust the carry forward, so a P95 fit with headroom rarely throttles.

What are the sizing and savings levers?

The table sets out the levers in the order you should apply them, from sizing the SKU to cutting the rate and stopping the meter.

LeverWhat it doesEffect on the bill
Rightsize the F SKU to sustained P95Picks the smallest capacity that carries smoothed load with headroomRemoves capacity bought for peaks that smoothing already absorbs
One year reservationCommits steady capacity for a year at a fixed lower rateAround 40 percent below pay as you go, indicative of current pricing
Pause and resume pay as you go capacityStops the meter when no one is using the capacity, such as nights and weekendsCuts hours billed for non production and batch only capacities
Separate bursty experimentationRuns ad hoc Spark and trials on a small dedicated capacityStops trials from forcing the production SKU a tier larger
Autoscale billing for SparkBills excess Spark to a serverless meter instead of upsizingHandles occasional heavy jobs without a permanently larger SKU

Reservations and pausing do not combine on the same hours, because a reservation pays for the capacity whether it runs or not. Reserve the capacity that genuinely runs all year, and keep pause and resume for pay as you go capacities that have real idle windows.

A worked sizing example

Worked example

A European SaaS company ran all analytics on a single F64 bought for its busiest morning hour. The Capacity Metrics app showed sustained consumption sitting near an F32 with brief interactive spikes that smoothing already absorbed, plus a nightly Spark job that ran for two hours. We moved production to F32, put a one year reservation on it for around 40 percent off, pushed ad hoc data science trials onto a small separate pay as you go capacity that pauses outside working hours, and left the nightly batch on autoscale billing. The combined Fabric bill fell by more than half with no loss of report performance, and the change was verified against billing data and anonymized.

The buyer test

Open the Capacity Metrics app and compare your SKU size to sustained P95 consumption. If the capacity sits well below 100 percent for most of the week and is on pay as you go, you are paying for peak headroom that smoothing makes unnecessary and for idle hours you could pause.

Where this fits in the Azure estate

Fabric sits alongside the rest of your Azure data platform spend, where the same discipline of sizing to real demand applies. Compare the warehouse and lakehouse economics in the economics of Azure data lakes, govern the Spark heavy alternative in Databricks on Azure cost control, and watch the telemetry that quietly accumulates in Azure Monitor cost discipline. The full estate view lives in the Azure cost optimization guide.

Frequently asked questions

How is Microsoft Fabric capacity billed?
Fabric is billed by a capacity unit SKU, the F SKUs from F2 upward, charged per hour the capacity is running. One capacity is a shared pool that every Fabric workload draws from, including Power BI, Data Warehouse, Data Engineering, Real Time Intelligence, and Data Science, so you pay for the SKU size, not per workload.
How do you size a Fabric capacity?
Use the Microsoft Fabric Capacity Metrics app to read your capacity unit consumption over a representative period, then size to the sustained P95 rather than the absolute peak. Smoothing spreads interactive spikes over a short window and background jobs over 24 hours, so a correctly sized capacity rides through bursts without a larger SKU.
How do you cut a Fabric bill without a bigger SKU?
Buy a one year reservation for steady capacity, which is around 40 percent cheaper than pay as you go and is indicative of current Azure pricing, pause pay as you go capacities when no one is using them such as nights and weekends, and split bursty experimentation onto a separate small capacity so it never forces the production SKU larger.

Get the buyer side Fabric sizing playbook

We size, reserve, and govern Microsoft Fabric capacity so it carries your real load without paying for peaks smoothing already absorbs. Our guarantee: we reduce your cloud spend or we reimburse our service fee. Pricing is either a Fixed Fee scoped up front or Gainshare, a share of verified savings with no retainer and no risk.

Independent · buyer-side

Put a defensible number on your cloud spend.

No provider in the room, no published price list. Tell us your footprint and we will scope the savings against your billing data — we reduce your cloud spend or we reimburse our service fee.

Buyer-side intelligence, monthly.

The Cloud Spend Navigator: what changed in cloud pricing, commitments, and FinOps — no vendor spin.