
Founder | CEO @ RADACAD | Coach | Power BI Consultant | Author | Speaker | Regional Director | MVP
Reza Rad (RADACAD) [MVP] recently published a YouTube video that demonstrates a practical way to reduce Microsoft Fabric costs by automating capacity changes with PowerShell. The piece explains why many organizations pay for peak capacity around the clock and shows a pattern to match capacity to demand. Consequently, this method aims to cut unnecessary spend while preserving background workloads. In addition, the video walks through a live setup so viewers can reproduce the approach in their own tenants.
First, Reza outlines how the F SKU billing model actually works and why a flat reserved commitment can be expensive if your usage peaks only part of the time. He contrasts pay-as-you-go behavior with older fixed-capacity pricing to show where wasted hours occur. Moreover, he explains why many teams either over-provision for nights and weekends or under-provision for business hours, creating either wasted spend or throttled reports. Therefore, the video frames the problem clearly before moving to a solution.
Next, he proposes a practical pattern: keep a small baseline capacity running 24/7 for ETL and background jobs, and schedule scale-ups for interactive workloads during business hours. The example uses F2 for the baseline and F8 for daytime spikes, though Reza notes the pattern applies to other sizes as well. This hybrid approach preserves refreshes and pipelines while giving users extra compute when they need it. As a result, organizations can often beat the cost of a large reserved contract.
Then the video dives into a live, end-to-end demo that builds an Azure Automation runbook and a PowerShell script to change Fabric capacity via management endpoints. Reza walks through the script line by line and shows the capacity SKU update happening in the Fabric admin portal in real time. In addition, the automation runs on a schedule so the environment shifts back to the baseline overnight and scales up before work hours. This makes the pattern repeatable and easy to adapt.
In practice, the automation calls Fabric management APIs or the Fabric CLI behind the scenes, and the video shows how to authenticate and trigger those operations safely. Reza emphasizes that you do not need advanced developer skills to implement the runbook; copying the provided script and setting a recurring trigger suffices for many teams. However, he also points out how the same script could be extended to trigger from usage thresholds rather than time-based schedules. Thus, it suits both predictable calendars and more dynamic needs.
Reza builds the Automation Account from scratch during the demo, demonstrating setup steps, required permissions, and the PowerShell modules used to interact with Fabric. He validates the schedule by showing a capacity shift occurring before teams start work and reverting overnight and during weekends. Furthermore, he shows how the admin portal reflects the change so administrators can audit the behavior. This level of detail helps administrators follow along and test the pattern safely.
The video also makes clear why the baseline must stay running: scheduled refreshes, dataflows, and ETL jobs rely on continuous compute. Consequently, scaling down to zero is not the intended goal; instead, you minimize the always-on footprint while preserving background tasks. Reza uses real pricing comparisons to show expected savings against a constant reserved SKU. Therefore, the viewer gains both technical steps and financial context.
While the approach can lower costs, Reza discusses several tradeoffs and operational risks organizations should weigh before adopting it. For example, frequent resizing may affect in-progress operations or hit throttling limits for management calls, so administrators should avoid overly aggressive schedules. In addition, automation introduces operational overhead: runbooks require credentials, monitoring, and change control to prevent accidental misconfiguration. Thus, teams must balance savings with the effort needed to maintain safe automation.
Moreover, the current Fabric platform does not offer built-in automatic autoscaling for F SKUs, so this pattern depends on custom automation rather than a native cloud autoscale feature. That means organizations must carefully test timing, recovery behavior, and permission scopes, and they should plan for edge cases such as end-of-month processing or unplanned load. Nevertheless, many organizations will find the savings justify the effort, particularly when usage shows clear peaks and troughs. Ultimately, the key is to combine monitoring, sensible schedules, and governance.
Reza positions this pattern for data platform leads, Power BI administrators, FinOps teams, and consultants who manage Fabric capacity and licensing costs. He notes that many teams can implement the runbook in an afternoon and start saving within a week, especially when their usage follows business hours. For teams with more complex calendars, Reza shows how the schedule can adapt to 24/5 patterns or multiple daily peaks. Consequently, the idea scales from small organizations to mid-sized deployments.
For readers ready to move forward, the video supplies a full script and a clear runbook design that you can customize to your environment. In closing, Reza encourages testing in a non-production tenant, monitoring capacity metrics, and documenting runbook governance to avoid surprises. If implemented carefully, scheduled scaling with PowerShell and Azure Automation can deliver meaningful cost savings without disrupting critical data pipelines or user experience.
Microsoft Fabric autoscale, Autoscale capacity PowerShell, Save money Microsoft Fabric, Fabric cost optimization, PowerShell Fabric scaling, Microsoft Fabric auto-scaling tutorial, Optimize Fabric costs with PowerShell, Automated Fabric scaling best practices