Track Costs in Microsoft Fabric Across Business Units, Environments, or Projects
To establish a cost-conscious organization in the context of Microsoft Fabric, transparency about usage data, responsibilities, and clear governance structures is needed. This section presents best practices on how to implement cost accountability and traceability in Fabric environments – even if the means for this are more indirect than with classic Azure resources.
Overview: Challenges and Target Picture
Fabric does not allow cost breakdown at the classic Azure subscription level or individual resources like VMs. Instead, Fabric costs are based on Capacity Units (CU), which are assigned to a Tenant and then one or more Capacities. The usage of workspaces and items within these capacities can be analyzed via the Performance Report Dashboard.
The goal is:
- to keep track of Fabric usage,
- to assign this usage to organizational units (teams, projects, environments),
- and to derive conclusions about the causers of capacity consumption and costs.
Recommendations for Fabric Cost Tracking
1. Enable and Use the Fabric Performance Dashboard
The Performance Report Dashboard enables administrators to:
- analyze workspace- and user-based consumption,
- aggregate usage profiles over time, workload, and tool,
- identify workspaces with high resource consumption.
More information:
Monitor usage with the Fabric Performance Report
✳️ Currently, this dashboard is the only native way to analyze cost and usage data in Fabric in a granular way.
2. Structure with Workspaces and Naming Conventions
To clearly assign consumption to organizational units, you should:
- define workspaces per project/team/environment,
- provide them with clear naming conventions (e.g.,
fin-accounting-prodorai-team-ml-lab), - maintain metadata such as description, contact person, and responsibilities.
This structure will help you later with analysis in the Performance Dashboard and API queries.
3. Use Group-Based Assignment of Permissions and Capacities
Use Microsoft Entra ID Groups to control access to workspaces and items. Combined with workspace naming, this can create an indirect mapping of responsibilities and cost causation.
4. Supplementary Methods with Tags in External Systems
Since Fabric itself does not offer native tagging like Azure Resource Tags, you can additionally maintain the following information in a CMDB or project catalog system (e.g., Azure DevOps, Jira, ServiceNow, Excel, YAML files in the Git repo):
- Responsible team
- Project name
- Billing unit (Cost Center)
- Target environment (Dev, Test, Prod)
- Relevant workspaces
🔁 You can manually reconcile this information with data from the Fabric Admin Portal or the Admin APIs.
Roles and Access Control
The view on costs in Fabric is not done via classic RBAC roles, but via:
- Power BI Admins (see all usage),
- Capacity Admins (see usage of their capacities),
- Workspace Admins (see usage within their workspace).
A possible model:
| Role | Visibility | Recommendation |
|---|---|---|
| Fabric Administrator | Global | Monitors usage at tenant level |
| Capacity Admin | Capacity-Scoped | Assign to area responsible persons |
| Workspace Admin | Workspace | Let teams be responsible for usage |
Outlook: Automated Cost Reporting (Custom)
An automated, daily extraction of data from the Admin Monitoring APIs (e.g., GetActivityEvents or GetWorkspaceUsage) and their further processing in Power BI is mid-term advisable to build a centralized reporting.
👉 More on this at:
Monitor usage with Power BI activity log APIs
Next Steps
- Enable the Performance Report Dashboard in your Fabric tenant.
- Enforce workspace naming conventions.
- Explicitly assign capacities to teams or business units.
- Develop centralized reporting based on the Fabric Admin APIs.