DevOps Peach

FinOps Foundations · Understand Usage and Cost · Lesson 1 of 4

Cost Data and the FOCUS Specification

Detailed billing exports (AWS CUR 2.0 / Data Exports, Azure cost exports, GCP BigQuery billing export) are the raw material of FinOps; FOCUS gives them one common schema with columns such as BilledCost and EffectiveCost.

Practice interactively →

Dashboards in the console are fine for a quick look, but FinOps needs the line-item billing data: one row per resource, per hour or day, per charge.

flowchart LR
  AWS["AWS Data Exports (CUR 2.0 / FOCUS)"] --> L["Storage: S3, Blob, BigQuery"]
  AZ["Azure Cost Management exports"] --> L
  GCP["GCP billing export to BigQuery"] --> L
  SAAS["SaaS and licence invoices"] --> L
  L --> N["Normalise to FOCUS"]
  N --> Q["Query, report, allocate"]
  %% step AWS: AWS delivers detailed exports to S3, including a FOCUS-format export.
  %% step AZ: Azure exports actual and amortized cost, and also offers a FOCUS export.
  %% step GCP: Google Cloud writes standard and detailed billing data to BigQuery datasets.
  %% step SAAS: SaaS and licence spend often arrives as invoices or vendor APIs.
  %% step N: FOCUS gives every source the same column names and meanings.
  %% step Q: With one schema, one query answers "cost by team" across every provider.

Why a common schema

Each provider names things differently: UnblendedCost, costInBillingCurrency, cost. Comparing them by hand is slow and error-prone. FOCUS (FinOps Open Cost and Usage Specification), maintained by the FinOps Foundation, defines one schema that AWS, Azure, Google Cloud, Oracle and many SaaS vendors can export natively.

Key FOCUS columns

Column Meaning
BilledCost What is invoiced for this row (upfront fees appear when paid)
EffectiveCost Amortized cost after discounts — best for comparing and allocating
ListCost Cost at public list price — shows savings from discounts
ContractedCost Cost at your negotiated rates before commitment effects
ChargeCategory Usage, Purchase, Tax, Credit, Adjustment
ServiceCategory / ServiceName e.g. Compute / Amazon EC2
ResourceId, RegionId, SubAccountId What, where, and which account or subscription
Tags Key–value tags as JSON
ChargePeriodStart / BillingPeriodStart When the usage happened / which invoice it belongs to

Savings can be read straight from the data: ListCost − EffectiveCost is everything discounts and commitments saved you.

Data you need besides the bill

Traps: building reports on console screenshots instead of exports; comparing BilledCost across months when large upfront purchases happened (use EffectiveCost); and forgetting that billing data can change for a few days after month end as credits and refunds land.

Practice interactively →