Update reports to use FOCUS columns

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.


Update existing reports to FOCUS

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

Column Values 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) • Enterprise Agreement: Use BillingAccountId

• Microsoft Customer Agreement: Use x_BillingAccountId
BillingAccountName (All) • Enterprise Agreement: Use BillingAccountName
• Microsoft Customer Agreement: Use x_BillingAccountName
BillingCurrencyCode (All) Use BillingCurrency
BillingProfileId (All) • Enterprise Agreement: Use x_BillingProfileId

• Microsoft Customer Agreement: Use BillingAccountId
BillingProfileName (All) • Enterprise Agreement: Use x_BillingProfileName

• Microsoft Customer Agreement: 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 CommitmentDiscountStatus = Unused and CommitmentDiscountType = Reservation
ChargeType UnusedSavingsPlan Use CommitmentDiscountStatus = Unused and CommitmentDiscountType = Savings Plan
ChargeType Refund Use ChargeClass = Correction
ChargeType RoundingAdjustment Use ChargeCategory = Adjustment (might include other charges)
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 RegionName or RegionId
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 = Standard
PricingModel Reservation For all commitments, use PricingCategory = Committed; for reservations only, use CommitmentDiscountCategory = Usage
PricingModel SavingsPlan For all commitments, use PricingCategory = Committed; for savings plans only, use CommitmentDiscountCategory = Spend
PricingModel Spot Use PricingCategory = Dynamic or x_PricingSubcategory = Spot
ProductId (All) Use SkuId
Quantity (All) For the usage amount, use ConsumedQuantity; for the amount you were charged for after accounting for pricing block size, use PricingQuantity
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 RegionName or RegionId
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 ConsumedUnit; for the block size, use x_PricingBlockSize
UnitPrice (All) Use ContractedUnitPrice or ContractedCost

Feedback about FOCUS columns

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

If you have feedback about FOCUS, 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 it the most useful spec it can be. To learn more about FOCUS or to contribute to the project, visit focus.finops.org.


Related resources:

Related products:

Related solutions: