TL;DR
- FOCUS — the FinOps Open Cost and Usage Specification — is the open, vendor-neutral schema that normalises billing data across every cloud and GPU provider. FOCUS 1.1 is the production version as of 2026; FOCUS 1.2 is in late draft.
- Mandatory columns include BillingAccountId, ChargePeriodStart, ChargePeriodEnd, BilledCost, EffectiveCost, ListCost, ServiceName, ServiceCategory, ChargeCategory, RegionId, and the customer-controlled Tags column. Naming and semantics are identical across providers.
- AWS CUR 2.0, Azure Cost Management exports, GCP Cloud Billing BigQuery exports and OCI Cost Reports all ship FOCUS-conformant feeds natively. Datadog, Vantage, Cloudability, Apptio and most modern cost platforms consume FOCUS as a first-class source.
- Yobitel Omniscient Compute publishes a FOCUS-conformant cost stream across every indexed provider, and Yobibyte emits hourly FOCUS 1.1 Parquet to the customer's S3, Azure Blob or GCS bucket — so multi-provider spend lands in one warehouse with zero custom ETL.
- This entry helps you assemble a defensible, FOCUS-compliant multi-cloud cost pipeline, map your existing billing exports to the standard, and decide where Yobitel's FOCUS feeds fit alongside hyperscaler spend.
Overview#
Before FOCUS, every cloud and GPU provider invented its own billing semantics. AWS Cost and Usage Reports (CUR) shipped roughly 160 columns under one set of names; Azure Cost Management exports used different names for the same concepts; GCP Cloud Billing exported to BigQuery with its own labelling conventions; Oracle, Alibaba and the neocloud cohort each added another dialect. Multi-cloud customers spent two to four engineering quarters building and maintaining brittle per-provider ETL just to put 'spend' from three providers into one comparable table — and that work never finished, because providers changed their schemas on their own cadence.
FOCUS — the FinOps Open Cost and Usage Specification — replaces that bespoke work with a single open schema, governed by the FinOps Foundation under the Linux Foundation. A FOCUS-conformant export from any provider joins directly to FOCUS-conformant exports from any other on shared columns: BillingAccountId, ChargePeriodStart, ChargePeriodEnd, BilledCost, EffectiveCost, ListCost, ServiceName, ServiceCategory, ChargeCategory, RegionId and Tags. Downstream dashboards, allocation engines, chargeback systems and FinOps platforms learn the FOCUS schema once instead of N provider quirks.
FOCUS matters for AI-era spend specifically because GPU bills now make up the largest single category in most cloud invoices, and GPU spend is the easiest category to spread across providers — H100 capacity rented from one neocloud, B200 from another, hyperscaler bursts for spillover, plus a sovereign-region partner for regulated workloads. Without a normalised schema, a FinOps team cannot tell whether they are spending $4.20/GPU/hr or $11.80/GPU/hr on a portfolio basis. Yobitel built Omniscient Compute and Yobibyte's customer-facing billing surface around FOCUS for exactly this reason.
This entry helps you understand FOCUS at the schema and semantic level, map your existing AWS, Azure, GCP and neocloud billing exports onto it, decide whether to ingest provider-emitted FOCUS feeds directly or normalise yourself, and place Yobitel's FOCUS-conformant Omniscient Compute and Yobibyte feeds alongside your hyperscaler streams.
Scope — what FOCUS standardises and what it does not#
FOCUS sets out the schema and semantics for cost and usage records emitted by any cloud, SaaS or compute provider. It is intentionally narrow: it standardises the contract between provider and consumer of billing data, not the underlying pricing, the underlying services, or the customer's tagging discipline.
- In scope — column names, data types, allowed values for enumerated columns (e.g. ChargeCategory), the meaning of cost columns (BilledCost vs EffectiveCost vs ListCost vs ContractedCost), the meaning of period columns, and the rules for how providers must amortise commitments.
- In scope — the relationship between BilledCost (what arrived on the invoice) and EffectiveCost (what should be attributed to the day the resource was consumed after spreading commitments), so dashboards do not show a $400,000 spike on the day an annual reservation was prepaid.
- Out of scope — how each provider defines a 'GPU-hour', whether bandwidth is metered by GB transferred or peak Mbps, or how a managed-service price relates to its underlying compute.
- Out of scope — your tagging taxonomy. FOCUS reserves the Tags column for customer metadata; what you put there is your discipline, not the standard's.
- Out of scope — currency conversion. FOCUS reports each row in the billing currency the provider invoices in; reporting-currency conversion remains a customer-side step. Yobitel publishes Omniscient Compute in USD across every indexed provider for that reason — see [[cost-normalisation]] for the broader semantic-alignment story.
FOCUS is necessary but not sufficient. Pair it with a tagging policy ([[cost-allocation-tagging]]), an allocation model ([[showback-chargeback]]) and unit-economics metrics ([[unit-economics]]) — FOCUS makes those workstreams cheaper, not automatic.
The specification — mandatory and conditional columns#
FOCUS 1.1 defines around 50 columns, classified as Mandatory (every conformant export must populate them), Conditional (must be populated when the underlying construct exists) and Recommended. The mandatory set is what downstream consumers can rely on; the conditional set carries the discount, commitment and tagging detail most analytics need.
| Column | Class | Purpose |
|---|---|---|
| BillingAccountId | Mandatory | Stable identifier for the account that received the invoice. The unit of cost ownership. |
| BillingAccountName | Mandatory | Human-readable name for the billing account. |
| SubAccountId / SubAccountName | Conditional | Sub-account, project, subscription or workspace where the charge originated. Populated whenever the provider has that construct. |
| ChargePeriodStart / ChargePeriodEnd | Mandatory | Inclusive start, exclusive end of the period the row covers. Hourly granularity is standard for FOCUS-conformant cost feeds. |
| BillingPeriodStart / BillingPeriodEnd | Mandatory | The invoice period the row rolls up into. |
| ServiceName | Mandatory | Normalised service identifier. AWS EC2, Azure Virtual Machines and GCP Compute Engine all map to a comparable ServiceName/ServiceCategory pair. |
| ServiceCategory | Mandatory | Higher-level grouping — Compute, Storage, Networking, AI and Machine Learning, Databases, Analytics, Security, Management and Governance, Other. |
| ServiceSubcategory | Recommended (1.1+) | Finer split such as 'GPU Compute' under Compute. Increases comparability of GPU spend across providers. |
| ChargeCategory | Mandatory | One of Usage, Purchase, Tax, Credit, Adjustment. Treating all five as 'spend' is the most common reconciliation mistake. |
| ChargeClass | Conditional | Distinguishes regular charges from corrections. |
| ChargeDescription | Mandatory | Human-readable line description as supplied by the provider. |
| BilledCost | Mandatory | Amount actually invoiced after discounts, credits and commitments are applied — the number that lands on the invoice. |
| EffectiveCost | Mandatory | Cost after amortising commitments across the period they cover. The column most dashboards aggregate on. |
| ListCost | Mandatory | What the same usage would have cost at public list price. Drives discount-percentage reporting. |
| ContractedCost | Mandatory (1.1+) | What the usage would have cost at the customer's negotiated contract rate, before commitment discounts. |
| BillingCurrency | Mandatory | ISO 4217 currency code of the invoice (e.g. USD, JPY); Yobitel surfaces USD across consumer-facing rankings. |
| PricingQuantity / PricingUnit | Mandatory | Quantity in the provider's pricing unit (GB-month, vCPU-hour, GPU-hour, request). |
| ConsumedQuantity / ConsumedUnit | Conditional | Quantity in the underlying usage unit, which may differ from the pricing unit. |
| CommitmentDiscountType | Conditional | Reserved Instance, Savings Plan, Committed Use Discount, Sustained Use Discount, Spot Discount. |
| CommitmentDiscountId / Name / Status / Category | Conditional | Identifies the specific commitment instrument and whether it is currently used or unused. |
| RegionId / RegionName | Conditional | Provider-defined region. Critical for sovereign-residency reporting against NCSC OFFICIAL, EU Data Boundary and similar regimes. |
| AvailabilityZone | Conditional | Provider-defined AZ within the region. |
| ResourceId / ResourceName / ResourceType | Conditional | Identifies the underlying resource the charge belongs to. Mandatory for fine-grained allocation. |
| Tags | Mandatory | Customer-defined cost-allocation tags propagated from the resource as a JSON map. |
| ProviderName / PublisherName / InvoiceIssuerName | Mandatory | Distinguishes provider (AWS), publisher (a marketplace seller) and invoice-issuing entity (an AWS reseller). |
Build dashboards on EffectiveCost, not BilledCost. EffectiveCost correctly amortises a one-time $480,000 three-year reservation purchase across 1,096 days instead of dropping it as a single-day spike — every other column behaves as you would expect once that one is right.
ChargeCategory and ChargeClass — the column most teams misuse#
ChargeCategory is the column that prevents the most common reconciliation mistakes. Every row in a FOCUS-conformant export falls into exactly one of five categories, and aggregating them all as 'spend' produces numbers that disagree with finance.
- Usage — consumption-based charges for resources actually used. The dominant category by row count; the one most dashboards genuinely want.
- Purchase — one-time or recurring fees for commitments, licences, marketplace subscriptions, support plans. Includes the upfront cost of a Savings Plan or Reserved Instance.
- Tax — VAT, GST and equivalent indirect taxes. Sometimes excluded from 'cost optimisation' analysis, sometimes included, but always called out explicitly.
- Credit — promotional credits, support credits, refunds applied against invoices. Negative cost; should reduce reported spend only if the analysis cares about cash impact.
- Adjustment — corrections, rebates, true-ups, retroactive discount applications. Usually small in volume but materially affects reconciliation against finance.
ChargeClass is the partner column to ChargeCategory in FOCUS 1.1 — it distinguishes regular charges from corrections, so a refund applied two months after the fact does not silently inflate Credit aggregates for the current period.
Provider conformance — who ships FOCUS today#
All four major hyperscalers ship native FOCUS-conformant exports as a single switch in the billing console. Coverage among neoclouds and GPU clouds is thinner but growing — and Yobitel's Omniscient Compute fills the gap by republishing every indexed provider's spend as FOCUS.
| Provider | FOCUS surface | Notes |
|---|---|---|
| AWS | Cost and Usage Report 2.0 — Data Exports console | Enable 'Standard data export' with FOCUS 1.0 column set. Parquet, hourly, into S3. |
| Microsoft Azure | Cost Management — Exports, FOCUS dataset | Daily or hourly Parquet/CSV into ADLS Gen2 or Blob. FOCUS 1.0 GA, 1.1 in preview as of mid-2026. |
| Google Cloud | Cloud Billing FOCUS export to BigQuery | Native BigQuery table with FOCUS columns; legacy detailed-usage export remains available in parallel. |
| Oracle Cloud (OCI) | OCI Cost Reports — FOCUS conformance | FOCUS-conformant CSV in the standard cost-reports bucket. |
| Alibaba Cloud | Cost Center FOCUS export | FOCUS 1.0 export available in supported regions. |
| Snowflake, Databricks, MongoDB Atlas, Confluent | FOCUS-conformant cost feed | Major SaaS data platforms adopting FOCUS through 2025-26. |
| Datadog, New Relic | FOCUS-conformant usage export | Treats observability spend as a peer of compute spend in the warehouse. |
| Neoclouds (CoreWeave, Lambda, Crusoe, Voltage Park, others) | Mixed | Some publish FOCUS directly; others publish provider-specific CSV that customers normalise themselves or via Yobitel Omniscient Compute. |
| Yobitel NeoCloud / Yobibyte | FOCUS 1.1 Parquet, hourly | Delivered to customer-owned S3, Azure Blob or GCS bucket. EffectiveCost reported after reserved-capacity amortisation, RegionId tagged with NCSC tier where applicable. |
| Yobitel Omniscient Compute | FOCUS-conformant unified stream | Republishes every indexed provider — hyperscaler, neocloud and Yobitel NeoCloud — under a single FOCUS schema for the customer's portfolio view. |
Mapping to other frameworks and downstream tools#
FOCUS sits at the data-contract layer; almost every modern FinOps tool now consumes it directly. The legacy CUR/Cost Management/BigQuery-native pipelines remain available, but greenfield work should pick FOCUS first.
| Downstream consumer | How it uses FOCUS |
|---|---|
| Datadog Cloud Cost Management | Native FOCUS connector for AWS, Azure, GCP. Custom FOCUS uploads for any other provider. |
| Vantage | FOCUS-first ingest across hyperscaler and neocloud sources. |
| IBM Apptio Cloudability | FOCUS-conformant ingest path alongside legacy provider connectors. |
| Flexera One | Adopting FOCUS as the canonical schema for the cost lakehouse. |
| OpenCost / Kubecost | FOCUS-conformant external cost API, plus Kubernetes-aware allocation on top. |
| Yobitel Omniscient Compute | FOCUS in, FOCUS out — every consumer-facing dashboard, ranking and TCO comparison reads from the FOCUS layer. |
| Yobibyte billing surface | FOCUS 1.1 emitted directly to the customer's bucket; same data drives the in-product cost view. |
| FinOps Framework — Allocation capability | FOCUS Tags column is the canonical input to allocation, showback and chargeback workflows. |
| FinOps Framework — Anomaly Management | EffectiveCost time series per ServiceCategory is the standard signal for anomaly-detection models. |
Implementation pattern — a FOCUS warehouse in one diagram#
A typical FOCUS-based FinOps pipeline collapses to four stages: every provider lands a FOCUS export in object storage, a single ingest job loads them into a unified warehouse table, and analytics, allocation and chargeback all read that one table. Customers using Omniscient Compute receive a pre-conformed feed; customers normalising themselves follow the pattern below.
-- Unified portfolio spend by ServiceCategory across providers
-- Reads a single warehouse table fed by FOCUS-conformant exports
-- from AWS, Azure, GCP, Yobitel NeoCloud and Yobibyte.
SELECT
ProviderName,
ServiceCategory,
ServiceName,
SUM(EffectiveCost) AS spend_usd,
SUM(ListCost) AS list_usd,
1 - SUM(EffectiveCost)/NULLIF(SUM(ListCost), 0)
AS effective_discount_pct
FROM focus_billing
WHERE BillingPeriodStart = DATE_TRUNC('month', CURRENT_DATE)
AND ChargeCategory IN ('Usage', 'Purchase')
AND BillingCurrency = 'USD'
GROUP BY 1, 2, 3
ORDER BY spend_usd DESC;
-- GPU-hour rate across providers, normalised
SELECT
ProviderName,
RegionId,
ResourceType,
SUM(EffectiveCost) / SUM(PricingQuantity) AS effective_usd_per_gpu_hour,
SUM(ListCost) / SUM(PricingQuantity) AS list_usd_per_gpu_hour
FROM focus_billing
WHERE ServiceSubcategory = 'GPU Compute'
AND ChargeCategory = 'Usage'
AND ChargePeriodStart >= DATE_TRUNC('month', CURRENT_DATE)
GROUP BY 1, 2, 3
HAVING SUM(PricingQuantity) > 0
ORDER BY effective_usd_per_gpu_hour;Self-assessment — is your pipeline FOCUS-defensible?#
Use the following checklist before claiming a FOCUS-compliant cost stack. Each item below has bitten teams in production.
- Every provider in scope publishes a FOCUS-conformant export, or has a documented mapping into FOCUS via Omniscient Compute or equivalent.
- Exports are at hourly granularity for compute-heavy services; daily for SaaS spend where hourly is unavailable.
- EffectiveCost is the default aggregation column in every dashboard. BilledCost is reserved for finance reconciliation.
- ChargeCategory is filtered explicitly in every analytic query — never an implicit 'sum everything'.
- Tags column is populated for at least 95 % of cost lines, measured per the [[cost-allocation-tagging]] hygiene KPI.
- Currency is normalised to a single reporting unit (USD across the Yobitel surface) before any cross-provider comparison.
- Commitments are amortised consistently — both in the provider's FOCUS export and in any custom commitments (e.g. Yobitel NeoCloud reserved capacity) ingested separately.
- RegionId is preserved end-to-end so sovereign-residency reporting against NCSC OFFICIAL, EU Data Boundary or sector-specific regimes is mechanical, not manual.
- Lineage from raw provider record to dashboard number is auditable; finance can trace a number back to the source row.
UK, EU and US considerations#
FOCUS is geography-neutral by design, but the surrounding compliance and procurement context matters. Yobitel's customers operate under UK NCSC, EU and US frameworks, and FOCUS slots into each one cleanly.
- UK — RegionId values for NCSC OFFICIAL workloads are tagged with the data-residency tier in Omniscient Compute's republished feed, so sovereignty audits against NCSC Cloud Security Principles ([[ncsc-cloud-security-principles]]) read from the same warehouse as cost reports.
- EU — FOCUS preserves the provider's RegionId, which is sufficient to evidence EU Data Boundary residency claims when paired with sub-processor attestations.
- US — FedRAMP-equivalent regions and FedRAMP Moderate/High capacity are tagged through Tags and RegionId; ChargeCategory split keeps Marketplace purchases (which often need separate ATO review) distinct from Usage.
- Currency — even when an invoice is denominated in a local currency, Yobitel reports the consumer surface in USD across Omniscient Compute and Yobibyte ([[cost-normalisation]] covers the FX normalisation pattern).
Common implementation gaps#
The recurring gaps that block teams from getting value out of FOCUS, in rough order of frequency.
- Tagging discipline never reaches the FOCUS Tags column because IaC and console-created resources are not gated at creation. Allocation accuracy collapses regardless of how clean the schema is.
- Custom commitments (private-pricing agreements, sovereign-region reservations, Yobitel reserved capacity) are not amortised into EffectiveCost the same way the provider amortises its standard commitments — dashboards drift from finance.
- Marketplace purchases land under PublisherName rather than ProviderName, and naive joins treat them as direct provider spend. Pivot on PublisherName and InvoiceIssuerName explicitly.
- Credits and refunds are summed with Usage. The right answer depends on whether the analysis is cash-impact or consumption-impact; pick one consciously.
- Multi-currency invoices are converted at inconsistent FX rates between the warehouse load and the dashboard. Convert at load time, store the rate, freeze the analytic view.
- GPU-cloud providers with no FOCUS support are normalised inconsistently across teams. Centralise the mapping — Omniscient Compute is one option; an internal mapping table maintained by FinOps is another.
Cost of compliance#
Implementing FOCUS is cheap relative to the bespoke ETL it replaces. Most of the cost is in the underlying warehouse and tagging discipline, not in the schema itself.
| Cost component | Typical range (USD) | Notes |
|---|---|---|
| Provider FOCUS exports | $0 — included | AWS, Azure, GCP, OCI all ship FOCUS as part of the standard billing surface. |
| Object storage for exports | $50 — $300 / month | Hourly Parquet across a multi-cloud estate. |
| Warehouse ingest + storage | $500 — $5,000 / month | BigQuery, Snowflake, Databricks; scales with row count and query volume. |
| FinOps platform (Vantage / Cloudability / Apptio / Flexera) | $30,000 — $250,000 / year | Optional; native warehouse queries can substitute for many teams. |
| Yobitel Omniscient Compute consumption | Included with NeoCloud / Yobibyte; standalone tier on request | FOCUS feed across every indexed provider; no per-row charge. |
| FinOps engineering time | 0.5 — 2.0 FTE | Tagging discipline, allocation rules, anomaly tuning, chargeback design. |
Where this fits in the Yobitel stack#
Yobitel uses FOCUS as the single source of cost truth across its commercial surfaces. Omniscient Compute republishes every indexed provider — hyperscaler, neocloud and Yobitel NeoCloud — under one FOCUS-conformant feed so customers comparing options see normalised numbers from the same column set. Yobibyte emits FOCUS 1.1 Parquet hourly to a customer-owned S3, Azure Blob or GCS bucket, with EffectiveCost reported after reserved-capacity amortisation and RegionId tagged with the relevant sovereign tier (NCSC OFFICIAL, EU Data Boundary, FedRAMP-equivalent).
Yobitel NeoCloud's reserved-capacity instrument behaves like a FOCUS Savings Plan: customers commit at the compute-spend envelope rather than per-SKU, the discount is spread daily into EffectiveCost, and the underlying GPU mix (H100, H200, B200) can move within the envelope without re-papering the commitment. Cross-link to [[reserved-vs-spot]] and [[savings-plans]] for the commercial model.
Managed Operations engagements consume the same FOCUS feed when running 24x7 NOC duty over a customer-owned estate, so anomaly detection, chargeback proposals and unit-economics rollups read from the warehouse the customer already trusts. Together, FOCUS-conformant Omniscient Compute and Yobibyte feeds give Yobitel customers a portfolio-grade cost lakehouse without the per-provider ETL tax the standard was created to eliminate.
References
- FOCUS Specification · FinOps Foundation
- FinOps Foundation · Linux Foundation
- AWS Cost and Usage Report 2.0 — FOCUS · AWS Documentation
- Microsoft Cost Management — FOCUS exports · Microsoft Learn
- Google Cloud Billing — FOCUS export to BigQuery · Google Cloud
- OCI Cost Reports — FOCUS conformance · Oracle Cloud