Dimensions by Scope
Dimension availability matrix for the Cost Management Query API, organized by scope type and agreement type.
Scope URL Patterns
| Scope | URL Pattern |
|---|---|
| Subscription | /subscriptions/<subscription-id> |
| Resource Group | /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> |
| Management Group | /providers/Microsoft.Management/managementGroups/<management-group-id> |
| Billing Account | /providers/Microsoft.Billing/billingAccounts/<billing-account-id> |
| Billing Profile | /providers/Microsoft.Billing/billingAccounts/<billing-account-id>/billingProfiles/<billing-profile-id> |
| Invoice Section | /providers/Microsoft.Billing/billingAccounts/<billing-account-id>/billingProfiles/<billing-profile-id>/invoiceSections/<invoice-section-id> |
| Department (EA) | /providers/Microsoft.Billing/billingAccounts/<billing-account-id>/departments/<department-id> |
| Enrollment Account (EA) | /providers/Microsoft.Billing/billingAccounts/<billing-account-id>/enrollmentAccounts/<enrollment-account-id> |
| Customer (Partner) | /providers/Microsoft.Billing/billingAccounts/<billing-account-id>/customers/<customer-id> |
Common Dimensions
The following dimensions are available across most scopes:
⚠️ Warning:
ResourceIdgrouping is only supported at subscription and resource group scopes. At higher scopes (billing account, management group, billing profile, etc.), useServiceName,SubscriptionName, or another supported dimension instead. See guardrails.md for the full scope restriction table.
| Dimension | Description |
|---|---|
ResourceGroupName | Resource group containing the resource. |
ResourceId | Full Azure resource ID. |
ResourceLocation | Azure region where the resource is deployed. |
ServiceName | Azure service name (e.g., Virtual Machines, Storage). |
ServiceFamily | Service family grouping (e.g., Compute, Storage, Networking). |
ServiceTier | Service tier or SKU tier (e.g., Standard, Premium). |
MeterCategory | Top-level meter classification. |
MeterSubCategory | Meter sub-classification. |
Meter | Specific meter name. |
ChargeType | Type of charge (e.g., Usage, Purchase, Refund). |
PublisherType | Publisher type (e.g., Azure, Marketplace, AWS). |
PricingModel | Pricing model (e.g., OnDemand, Reservation, SavingsPlan, Spot). |
SubscriptionName | Subscription display name. |
SubscriptionId | Subscription GUID. |
TagKey | Azure resource tag key (use with TagKey column type in grouping). |
Product | Product name from the price sheet. |
BenefitName | Reservation or savings plan name. |
BillingPeriod | Billing period identifier. |
Scope-Specific Dimensions
Additional dimensions available only at certain scopes:
| Scope | Additional Dimensions |
|---|---|
| Subscription | (common dimensions only) |
| Resource Group | (common dimensions only) |
| Management Group | DepartmentName, EnrollmentAccountName |
| Billing Account | BillingProfileName, DepartmentName, EnrollmentAccountName, InvoiceSectionName, Customer |
| Billing Profile | InvoiceSectionName, Customer |
| Invoice Section | (common dimensions only) |
| Department (EA) | EnrollmentAccountName |
| Enrollment Account (EA) | (common dimensions only) |
| Customer (Partner) | (common dimensions only) |
Agreement Type Dimension Sets
Available dimensions vary by agreement type. Only dimensions listed for your agreement type are valid in GroupBy and Filter expressions.
EA (Enterprise Agreement)
| Dimension | Available |
|---|---|
ResourceGroupName | ✅ |
ResourceId | ✅ ⚠️ |
SubscriptionName | ✅ |
Product | ✅ |
ResourceLocation | ✅ |
ServiceName | ✅ |
ServiceFamily | ✅ |
TagKey | ✅ |
MeterSubCategory | ✅ |
PublisherType | ✅ |
PricingModel | ✅ |
ChargeType | ✅ |
ServiceTier | ✅ |
BenefitName | ✅ |
BillingProfileName | ✅ |
DepartmentName | ✅ |
EnrollmentAccountName | ✅ |
BillingPeriod | ✅ |
MCA (Microsoft Customer Agreement)
| Dimension | Available |
|---|---|
ResourceGroupName | ✅ |
ResourceId | ✅ ⚠️ |
SubscriptionName | ✅ |
Product | ✅ |
ResourceLocation | ✅ |
ServiceName | ✅ |
ServiceFamily | ✅ |
TagKey | ✅ |
MeterSubCategory | ✅ |
PublisherType | ✅ |
PricingModel | ✅ |
ChargeType | ✅ |
ServiceTier | ✅ |
BenefitName | ✅ |
BillingProfileName | ✅ |
InvoiceSectionName | ✅ |
MOSP (Microsoft Online Services Program / Pay-As-You-Go)
| Dimension | Available |
|---|---|
ResourceGroupName | ✅ |
ResourceId | ✅ ⚠️ |
SubscriptionName | ✅ |
Product | ✅ |
ResourceLocation | ✅ |
ServiceName | ✅ |
ServiceFamily | ✅ |
TagKey | ✅ |
MeterSubCategory | ✅ |
PublisherType | ✅ |
PricingModel | ✅ |
ChargeType | ✅ |
ServiceTier | ✅ |
BenefitName | ✅ |
⚠️
ResourceIdis available as a dimension but only works in GroupBy at subscription and resource group scopes. At billing account or management group scopes, useServiceNameorSubscriptionNameinstead.
Comparison Summary
| Dimension | EA | MCA | MOSP |
|---|---|---|---|
ResourceGroupName | ✅ | ✅ | ✅ |
ResourceId | ✅ ⚠️ | ✅ ⚠️ | ✅ ⚠️ |
SubscriptionName | ✅ | ✅ | ✅ |
Product | ✅ | ✅ | ✅ |
ResourceLocation | ✅ | ✅ | ✅ |
ServiceName | ✅ | ✅ | ✅ |
ServiceFamily | ✅ | ✅ | ✅ |
TagKey | ✅ | ✅ | ✅ |
MeterSubCategory | ✅ | ✅ | ✅ |
PublisherType | ✅ | ✅ | ✅ |
PricingModel | ✅ | ✅ | ✅ |
ChargeType | ✅ | ✅ | ✅ |
ServiceTier | ✅ | ✅ | ✅ |
BenefitName | ✅ | ✅ | ✅ |
BillingProfileName | ✅ | ✅ | ❌ |
DepartmentName | ✅ | ❌ | ❌ |
EnrollmentAccountName | ✅ | ❌ | ❌ |
InvoiceSectionName | ❌ | ✅ | ❌ |
BillingPeriod | ✅ | ❌ | ❌ |
Scope Resolution Priority
When multiple scope identifiers are available in context, use the following priority order (highest first):
| Priority | Scope | Notes |
|---|---|---|
| 1 | Management Group | Broadest organizational scope. |
| 2 | Resource Group | Narrowest resource scope. |
| 3 | Subscription | Default scope for most queries. |
| 4 | Billing Profile + Invoice Section | MCA billing hierarchy. |
| 5 | Billing Profile | MCA billing scope. |
| 6 | Department | EA organizational unit. |
| 7 | Enrollment Account | EA enrollment scope. |
| 8 | Customer | Partner/CSP customer scope. |
| 9 | Invoice Section | Standalone invoice section. |
| 10 | Billing Account | Top-level billing scope. |
💡 Tip: When a user provides both a subscription and a resource group, prefer the Resource Group scope (priority 2) over Subscription (priority 3) for more targeted results.
Required Context Variables
The following context variables are needed to resolve scope and validate dimensions:
| Variable | Description | Used For |
|---|---|---|
AgreementType | The agreement type (EA, MCA, MOSP). | Determines valid dimension set. |
AccountType | Account type within the agreement. | Refines scope-specific behavior. |
CallScopeId | The fully qualified scope URL for the API call. | Builds the request URL path. |