Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Python | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Python | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA | Python |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA | Python
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Databricks | Power Apps | Power Automate |
Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables | Power Apps | Power Automate
Power BI | Power Apps | Power Automate | SQL | VBA | Python | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables
Power BI | Power Apps | Power Automate | SQL | VBA | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
LEARN THIS HANDS ON
Microsoft Fabric & Power BI
You finally got budget for Microsoft Fabric, turned on a capacity, and… either everything crawls at 9:00am or your finance director is asking why the monthly bill exploded. The F2/F8/F64 choice feels like guesswork, but it doesn’t have to be. This article walks through three concrete viewer counts and shows how to size Fabric capacity without overpaying.
We’ll use one recurring scenario: a BI team running Power BI reports in Fabric for a mix of business users. Same datasets, different viewer populations (10, 80 and 300). We’ll look at what changes between F2, F8 and F64, how concurrency and refresh affect costs, and the trade-offs you actually feel day-to-day.
Imagine a central BI team that has:
The only thing that changes between our three cases is how many people regularly view the reports:
We’ll assume Fabric is used primarily for:
If your environment is heavy on data engineering (Spark, Dataflows Gen2, notebooks) the same logic applies, but the breakpoints move up because you burn more capacity on compute.
Fabric capacities scale mostly along three axes:
Some key behaviours that matter for sizing:
The exact numeric limits (memory per capacity, max concurrent queries, background jobs, etc.) are documented and vary by SKU. Rather than reproduce tables, we’ll focus on typical impact for the three viewer sizes.
Before talking F2 vs F8 vs F64, you need a rough load profile.
For our scenario, we’ll define three dimensions:
Peak concurrent viewers
Model size and type
Refresh and background workloads
The more these overlap with report viewing, the more capacity you need.
Profile
Why F2 typically works
For a small team, the key is avoiding Premium‑like overkill while still unlocking Fabric features.
An F2 capacity gives you:
In practice, with 10 viewers:
When F2 is too small
You’ll feel F2 strain when:
Symptoms:
If that happens, first:
If you still see pain, scaling to F4 is usually enough; jumping straight to F8 for only 10 viewers is rarely cost‑effective.
Profile
Here, the team has matured: more models, more viewers, more refreshes. The pain point is concurrency.
On F2, you will likely hit:
Why F8 is a good default for ~80 viewers
An F8 capacity increases compute, concurrency and memory enough that:
For our scenario, on F8 you can typically:
Practical setup on F8 for 80 viewers
To make F8 work well:
Separate workloads by workspace
Schedule refreshes away from known peaks
Use aggregations and incremental refresh where appropriate
When F8 isn’t enough
You might need to move beyond F8 if:
In those cases, options are:
For a typical 80‑viewer reporting scenario without extreme data engineering, F8 is usually the cost/performance sweet spot.
Profile
At this scale, the pain is both concurrency and background workload overlap.
On F8 or F16, you will often see:
Why F64 is a realistic choice for 300 viewers
An F64 capacity significantly increases available compute and concurrency. For a large viewer population that mostly consumes reports (not running huge Spark jobs), F64 gives you:
In practice, for our scenario on F64:
Alternative: multiple mid‑tier capacities instead of a single F64
For some teams, splitting into multiple capacities is more cost‑effective and operationally cleaner than a single big F64.
Patterns that work:
Benefits:
Trade‑offs:
If your 300 viewers are mostly in one time zone with synchronized peaks, a single F64 for reporting plus a smaller capacity for engineering is often simpler.
The core risk with Fabric capacities is over‑provisioning “just in case” and then never using the extra headroom. A few practical ways to avoid that:
For each viewer band:
Then rely on:
If metrics show sustained high utilization and users complain, scale up. If metrics show plenty of idle time, consider scaling down or splitting workloads.
Regardless of capacity size:
This avoids a single big ETL job degrading report performance for hundreds of viewers.
Before you add more capacity:
These reduce memory and compute pressure and often postpone the need for a bigger SKU.
If you have capacities dedicated to:
Use capacity pause features to stop them outside operating hours. This can materially reduce cost without impacting users.
When you’re choosing between F2, F8 or F64, don’t start from a SKU table; start from peak concurrent viewers plus refresh overlap. For roughly 10, 80 and 300 report viewers, F2, F8 and F64 are sensible defaults, but only if you monitor capacity, separate noisy workloads, and fix model design before you reach for a bigger bill.
This article reflects how Fabric capacity sizing is shifting from rough guesswork to load-based planning, especially for teams moving mixed Power BI and data engineering workloads into shared capacities.
Professionals who want to apply these patterns to their own data can explore Excelgoodies' Microsoft Fabric & Power BI programme - taught live by instructors, with certification awarded once a real project is running at work.
Insights compiled through ongoing industry research and discussions within the Excelgoodies Analytics Community.
Microsoft Fabric
New
Next Batches Now Live
Power BI
SQL
Power Apps
Power Automate
Microsoft Fabrics
Azure Data Engineering