Skip to main content

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-prod or ai-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:

RoleVisibilityRecommendation
Fabric AdministratorGlobalMonitors usage at tenant level
Capacity AdminCapacity-ScopedAssign to area responsible persons
Workspace AdminWorkspaceLet 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.

Contributors