Explanation
Why the waste happens and who it affects.
Production capacities that serve Power BI reports, pipelines, warehouses and Spark jobs typically run around the clock at the same SKU for months, and for that usage a one- or three-year reservation replaces the pay-as-you-go rate for the reserved capacity units (CUs). Microsoft's Fabric pricing page states that a 1 or 3 year reservation can save about 41% compared with pay-as-you-go.
Reservations are easy to miss when Fabric capacity is bought and managed by analytics or BI teams outside the organization's usual Azure reservation process, and because a capacity keeps working normally with or without one. Azure Advisor flags the gap with the High-impact recommendation 'Consider Microsoft Fabric reservations to save over your pay-as-you-go costs'. Pausing and scaling, covered separately, reduce the cost of variable capacity; a reservation is the lever for the steady baseline that stays on.
Billing model
The pricing dimensions that drive this cost.
Fabric capacity can be billed two ways.
- Pay-as-you-go capacity
- F-SKU capacities from F2 to F8192 are billed per hour for their provisioned CUs while running
- Fabric capacity reservation
- A 1- or 3-year commitment bought in 1-CU increments for a region, applied automatically to Fabric capacity usage in that region and scope
- Hourly application
- The reservation discount is applied to CUs hourly; reserved CUs with no matching usage in an hour are lost and do not carry over
- Excluded charges
- Reservations cover capacity usage only; OneLake storage, networking and Autoscale Billing for Spark stay at pay-as-you-go rates
How to detect
4 checks to find it in your estate.
- Review Azure Advisor Cost recommendations for 'Consider Microsoft Fabric reservations to save over your pay-as-you-go costs'
- List Fabric capacities in the Azure portal by region and SKU and identify those that have run at a constant SKU without pausing for at least the last 30 days
- In Cost Management, check whether Fabric capacity usage is charged at pay-as-you-go rates rather than covered by a reservation, and whether any existing Fabric reservation (purchase shown as Dataflows Standard Compute Capacity Usage CU with tier Fabric Cap) is close to expiry, since reservations do not renew automatically unless renewal is enabled
- Use the Microsoft Fabric Capacity Metrics app Compute page to confirm the sustained CU baseline over 14 days before sizing a commitment
How to fix
5 ways to remove the waste.
- Buy a Fabric capacity reservation for the number of CUs equal to the steady baseline in each region (for example 64 CUs for a capacity that always runs as F64), and leave temporary scale-ups above the baseline on pay-as-you-go
- Use shared or management group scope so the reserved CUs apply to matching capacities across subscriptions; several smaller capacities can consume one reservation (two F32s use a 64-CU reservation)
- Right-size, pause or schedule non-production and variable capacities first; once reserved, pausing or scaling below the reserved CUs no longer reduces cost for those units
- Turn on automatic renewal for reservations covering long-lived capacities so coverage does not lapse back to pay-as-you-go
- If you hold Azure Synapse Analytics dedicated SQL pool reserved capacity and are migrating to Fabric, exchange it for a Fabric capacity reservation instead of buying new
Documentation
Vendor references for pricing and configuration.