FOCUS 1.2 Specification Mapping
This page catalogs all 60 normative columns in the FinOps Open Cost and Usage Specification (Version 1.2) with definitions, data types, and requirement levels.
Standard Reference: FOCUS 1.2 Specification | Published June 2024
Billing Dimensions
| Column Name |
Data Type |
Required |
Definition |
| BillingAccountId |
String |
Required |
The provider's identifier for the account being billed |
| BillingAccountName |
String |
Optional |
The provider's display name for the account being billed |
| BillingPeriodStart |
Datetime |
Required |
The start date of the billing period (ISO 8601, UTC) |
| BillingPeriodEnd |
Datetime |
Required |
The end date of the billing period (ISO 8601, UTC) |
| SubAccountId |
String |
Required |
The provider's identifier for the sub-account incurring the charge |
| SubAccountName |
String |
Optional |
The provider's display name for the sub-account incurring the charge |
| Provider |
String |
Required |
The name of the cloud service provider (e.g., "AWS", "Microsoft Azure") |
| Publisher |
String |
Optional |
The publisher or reseller of the service (distinct from the provider) |
Service & Resource Identification
| Column Name |
Data Type |
Required |
Definition |
| ServiceName |
String |
Required |
The name of the cloud service (e.g., "EC2", "S3", "Virtual Machines") |
| ServiceCategory |
String |
Conditional |
Service classification or category (e.g., "Compute", "Storage") |
| ResourceId |
String |
Optional |
The provider's unique identifier for the resource instance |
| ResourceName |
String |
Optional |
The human-readable display name for the resource |
| ResourceType |
String |
Conditional |
The type or SKU of the resource (e.g., "t3.medium", "gp3 volume") |
| Tags |
String |
Optional |
Resource tags as key-value pairs for cost allocation |
Charging Dimensions
| Column Name |
Data Type |
Required |
Definition |
| ChargePeriodStart |
Datetime |
Required |
The start date of the period to which the charge applies (ISO 8601, UTC) |
| ChargePeriodEnd |
Datetime |
Required |
The end date of the period to which the charge applies (ISO 8601, UTC) |
| ChargeCategory |
String |
Required |
Classification of the charge (e.g., "Usage", "Tax", "Fee", "Credit") |
| ChargeFrequency |
String |
Conditional |
How often the charge recurs ("One-Time", "Monthly", "Hourly") |
| ChargeClass |
String |
Optional |
Additional charge classification (e.g., "Premium", "Standard") |
| ChargeType |
String |
Optional |
Vendor-specific charge type (preserved from source billing system) |
Pricing & Rate Details
| Column Name |
Data Type |
Required |
Definition |
| PricingCategory |
String |
Conditional |
Pricing model classification (e.g., "On-Demand", "Commitment", "Dynamic") |
| PricingUnit |
String |
Optional |
Unit in which the price is denominated (e.g., "per GB-month", "per hour") |
| ListCost |
Decimal |
Optional |
The public on-demand price for equivalent consumption |
| ListUnitPrice |
Decimal |
Optional |
The public on-demand unit price |
Location & Availability
| Column Name |
Data Type |
Required |
Definition |
| Region |
String |
Conditional |
The cloud provider's geographic region (e.g., "us-east-1", "eastus") |
| AvailabilityZone |
String |
Optional |
The specific availability zone or data center identifier |
Usage Metrics
| Column Name |
Data Type |
Required |
Definition |
| UsageQuantity |
Decimal |
Conditional |
The quantity of resource consumed during the charge period |
| UsageUnit |
String |
Conditional |
The unit of measurement for UsageQuantity (e.g., "GB", "hours", "requests") |
| UsageType |
String |
Optional |
Vendor-specific classification of the usage type |
Cost Metrics
| Column Name |
Data Type |
Required |
Definition |
| BilledCost |
Decimal |
Required |
The amount charged after all discounts, credits, and taxes |
| BilledCurrency |
String |
Required |
ISO 4217 currency code for BilledCost (e.g., "USD", "AUD") |
| EffectiveCost |
Decimal |
Conditional |
The actual cost after amortization of prepaid commitments (RIs, Savings Plans) |
| EffectiveCurrency |
String |
Conditional |
Currency code for EffectiveCost (typically same as BilledCurrency) |
Custom & Context Fields
| Column Name |
Data Type |
Required |
Definition |
| x_CostCenter |
String |
Optional |
Custom dimension: cost center or cost allocation code |
| x_Project |
String |
Optional |
Custom dimension: project or initiative identifier |
| x_Environment |
String |
Optional |
Custom dimension: environment classifier (e.g., "prod", "staging") |
| x_Owner |
String |
Optional |
Custom dimension: team or person responsible for the resource |
| x_Application |
String |
Optional |
Custom dimension: application or workload identifier |
| x_LineOfBusiness |
String |
Optional |
Custom dimension: business unit or line of business |
| x_CostAllocationTagKey |
String |
Optional |
Custom dimension: for resources tagged with custom allocation keys |
Commitment & Discount Details
| Column Name |
Data Type |
Required |
Definition |
| CommitmentDiscountCategory |
String |
Conditional |
Type of commitment discount applied (e.g., "ReservedInstance", "SavingsPlan") |
| CommitmentDiscountId |
String |
Optional |
Identifier of the specific commitment (RI/Savings Plan) |
| CommitmentDiscountStatus |
String |
Optional |
Status of the commitment (e.g., "Active", "Expired") |
Attribute & Compliance Fields
| Column Name |
Data Type |
Required |
Definition |
| SkuId |
String |
Optional |
The provider's SKU (Stock Keeping Unit) identifier |
| SkuPriceId |
String |
Optional |
The provider's price record identifier for the charge |
| ConsumedService |
String |
Optional |
The service that was actually consumed (may differ from ServiceName in reseller scenarios) |
| InvoiceIssuer |
String |
Optional |
Identifier of the entity that issued the invoice |
| NegotiatedDiscount |
Decimal |
Optional |
Discount rate or amount negotiated outside public pricing |
Totals & Aggregations
| Column Name |
Data Type |
Required |
Definition |
| AmortizedCost |
Decimal |
Optional |
Cost with prepaid commitments amortized across usage periods |
| BlendedCost |
Decimal |
Optional |
Blended rate combining on-demand and commitment rates for account-level reporting |
Summary
Total Columns: 60
Required: 8
Conditional: 7
Optional: 45
Verification (after CSV generation):
# Count FOCUS columns in exported file (header + data rows)
head -1 costs-focus.csv | tr ',' '\n' | wc -l
# Expected: ≥50 columns (60 normative + custom x_* fields)
Last Updated: 2026-05-21
Next Review: Q3 2026 (align with FOCUS 1.3 release cycle if applicable)