Updating reports to use FOCUS columns Update existing reports from Cost Management actual or amortized datasets to use FOCUS columns.

On this page

This document provides guidance for updating existing reports to use the columns defined by the FinOps Open Cost and Usage Specification (FOCUS). To learn more about FOCUS, refer to the FOCUS overview.


🔀 How to update existing reports to FOCUS

Use the following table to update existing automation and reporting solutions to use FOCUS.

Column Value(s) How to update
AccountName (All) Use x_AccountName
AccountOwnerId (All) Use x_AccountOwnerId
AdditionalInfo (All) Use x_SkuDetails
CostInBillingCurrency (All) For actual cost, use BilledCost; otherwise, use EffectiveCost
BenefitId (All) Use CommitmentDiscountId
BenefitName (All) Use CommitmentDiscountName
BillingAccountId (All) EA: Use BillingAccountId
MCA: Use x_BillingAccountId
BillingAccountName (All) EA: Use BillingAccountName
MCA: Use x_BillingAccountName
BillingCurrencyCode (All) Use BillingCurrency
BillingProfileId (All) EA: Use x_BillingProfileId
MCA: Use BillingAccountId
BillingProfileName (All) EA: Use x_BillingProfileName
MCA: Use BillingAccountName
BillingPeriodEndDate (All) Use BillingPeriodEnd and change comparisons to use less than (<) rather than less than or equal to (<=)
BillingPeriodStartDate (All) Use BillingPeriodStart
ChargeType “Usage”, “Purchase”, “Tax” Use ChargeCategory
ChargeType “UnusedReservation” Use ChargeSubcategory = “Unused Commitment” and CommitmentDiscountType = “Reservation”
ChargeType “UnusedSavingsPlan” Use ChargeSubcategory = “Unused Commitment” and CommitmentDiscountType = “Savings Plan”
ChargeType “Refund” Use ChargeSubcategory = “Refund”
ChargeType “RoundingAdjustment” Use ChargeSubcategory = “Rounding Error”
CostAllocationRuleName (All) Use x_CostAllocationRuleName
CostCenter (All) Use x_CostCenter
CostInUsd (All) For actual cost, use x_BilledCostInUsd; otherwise, use x_EffectiveCostInUsd
CustomerName (All) Use x_CustomerName
CustomerTenantId (All) Use x_CustomerId
Date (All) Use ChargePeriodStart
DepartmentName (All) Use x_InvoiceSectionName
EffectivePrice (All) Use x_EffectiveUnitPrice
ExchangeRatePricingToBilling (All) Use x_BillingExchangeRate
ExchangeRateDate (All) Use x_BillingExchangeRateDate
Frequency “OneTime” Use ChargeFrequency = “One-Time”
Frequency “Recurring” Use ChargeFrequency = “Recurring”
Frequency “UsageBased” Use ChargeFrequency = “Usage-Based”
InvoiceId (All) Use x_InvoiceId
InvoiceSectionId (All) Use x_InvoiceSectionId
InvoiceSectionName (All) Use x_InvoiceSectionName
IsAzureCreditEligible (All) Use x_SkuIsCreditEligible
Location (All) Use Region
MeterCategory (All) To group resources, use ServiceName; to group meters, use x_SkuMeterCategory
MeterId (All) Use x_SkuMeterId
MeterName (All) Use x_SkuMeterName
MeterRegion (All) Use x_SkuRegion
MeterSubcategory (All) Use x_SkuMeterSubcategory
OfferId (All) Use x_SkuOfferId
PartnerEarnedCreditApplied (All) Use x_PartnerCreditApplied
PartnerEarnedCreditRate (All) Use x_PartnerCreditRate
PartnerName (All) Use InvoiceIssuerName or x_PartnerName
PartnerTenantId (All) Use x_InvoiceIssuerId
PartNumber (All) Use x_SkuPartNumber
ProductName (All) Use ChargeDescription
ProductOrderId (All) Use x_SkuOrderId
ProductOrderName (All) Use x_SkuOrderName
PaygCostInBillingCurrency (All) Use ListCost
PayGPrice (All) Use ListUnitPrice / x_BillingExchangeRate
PricingCurrency (All) Use x_PricingCurrency
PricingModel “OnDemand” Use PricingCategory = “On-Demand”
PricingModel “Reservation” For all commitments, use PricingCategory = “Commitment Discount”; for savings plan only, use CommitmentDiscountCategory = “Usage”
PricingModel “SavingsPlan” For all commitments, use PricingCategory = “Commitment Discount”; for savings plan only, use CommitmentDiscountCategory = “Spend”
PricingModel “Spot” Use PricingCategory = “Dynamic” or x_PricingSubcategory = “Spot”
ProductId (All) Use SkuId
Quantity (All) Use UsageQuantity
ResellerMpnId (All) Use x_ResellerId
ResellerName (All) Use x_ResellerName
ReservationId (All) Use CommitmentDiscountId; split by “/” and use last segment for the reservation GUID
ReservationName (All) Use CommitmentDiscountName
ResourceGroupName (All) Use x_ResourceGroupName
ResourceLocationNormalized (All) Use Region
ResourceType (All) For friendly names, use ResourceType; otherwise, use x_ResourceType
ServiceFamily (All) To group resources, use ServiceCategory; to group meters, use x_SkuServiceFamily
ServicePeriodEnd (All) Use x_ServicePeriodEnd
ServicePeriodStart (All) Use x_ServicePeriodStart
SubscriptionId (All) For a unique value, use SubAccountId; for the subscription GUID, use x_SubscriptionId
SubscriptionName (All) Use SubAccountName or x_SubscriptionName
Tags (All) Use Tags but don’t wrap in curly braces ({})
Term (All) Use x_SkuTerm
UnitOfMeasure (All) For the exact value, use x_PricingUnitDescription; for distinct units, use PricingUnit or UsageUnit; for the block size, use x_PricingBlockSize


🙋‍♀️ Feedback about FOCUS columns

If you have feedback about our mappings or about our full FOCUS support plans, please start a thread in discussions. If you believe you’ve found a bug, please create an issue.

If you have feedback about FOCUS, please create an issue in the FOCUS repository. We also encourage you to consider contributing to the FOCUS project. The project is looking for more practitioners to help bring their experience to help guide efforts and make this the most useful spec it can be. To learn more about FOCUS or to contribute to the project, visit focus.finops.org.


🧐 See also



  • 🏦 FinOps hubs – Open, extensible, and scalable cost reporting.
  • 📊 Power BI reports – Accelerate your reporting with Power BI starter kits.
  • 🖥️ PowerShell module – Automate and manage FinOps solutions and capabilities.
  • 🌐 Open data – Data available for anyone to access, use, and share without restriction.



This site uses Just the Docs, a documentation theme for Jekyll.