TL;DR
- Cost normalisation is the process of transforming heterogeneous billing data from different providers into a comparable form, so that 'spend' means the same thing wherever it came from.
- Differences arise across billing units (per-second vs per-hour), pricing-model granularity (on-demand vs commitments amortised), egress vs ingress treatment, currency, and tax handling.
- FOCUS provides the schema; normalisation provides the semantics. Both are needed for credible multi-cloud cost analysis.
- Without normalisation, a multi-cloud dashboard can mislead by tens of percent — typically against whichever provider has the most complex commitment structure.
Why Raw Provider Bills Are Not Comparable#
Each cloud and GPU provider invents its own billing semantics. Two services that look equivalent in name can be billed in radically different ways. A meaningful comparison requires lining up the units, the time windows, the discount treatment, and the currency before any analysis happens.
| Dimension | How providers differ |
|---|---|
| Billing granularity | Per-second (AWS, GCP), per-minute (Azure for some services), per-hour (some neoclouds). |
| Commitment amortisation | Upfront RI cost can show as one big spike or as daily amortisation depending on configuration. |
| Egress | AWS charges per-GB tiered by volume; GCP differentiates by destination; some neoclouds bundle egress in compute price. |
| Currency | Local-currency billing introduces FX variation; normalise to USD for unified reporting. |
| Tax | VAT, GST, sales tax are line items that may or may not be in scope for 'spend' analysis. |
| Credits and refunds | Promotional credits, EDP discounts, and refunds appear differently in each provider's exports. |
| Time zone | Billing periods can be provider-defined UTC, local, or a fiscal calendar. |
The Normalisation Pipeline#
A normalisation pipeline takes raw provider exports and emits a unified, analysis-ready dataset. With FOCUS, the schema work is largely done by the provider; the customer focuses on semantic alignment.
- Ingest — pull each provider's billing export to object storage on a fixed schedule.
- Conform — map provider columns to FOCUS where the provider does not already publish FOCUS exports.
- Amortise — convert one-time commitment purchases to per-day cost over the commitment term.
- Convert currency — apply a consistent FX rate (period-average, period-end, or transaction-day depending on policy).
- Strip or include tax — based on whether 'spend' for your analysis is gross or net of tax.
- Apply allocation rules — distribute shared costs across consumers, untagged costs to a default bucket.
- Publish — emit the conformed dataset to the analytics warehouse for downstream consumption.
Worked Example — GPU-Hour Comparison#
Suppose you want to compare the cost of an H100 GPU-hour across three providers. The naive comparison reads each provider's on-demand list price and stops there. A defensible comparison normalises along several dimensions before drawing conclusions.
- Confirm the GPU configuration — SXM5 vs PCIe, 80GB vs 94GB, NVLink topology — these affect performance per hour as well as price.
- Include reserved or committed pricing if you would realistically buy in that mode.
- Add egress assumptions — a training workload that pulls TBs from object storage may be cheaper on a provider with bundled egress even if the per-GPU-hour rate is higher.
- Include support tier costs if material — enterprise support can add a meaningful percentage.
- Convert to a single reporting currency.
- Compare the resulting total cost per training run or per inference batch, not the GPU-hour in isolation.
Compare total job cost, not unit price. A 20 % cheaper GPU-hour can easily become 30 % more expensive once egress, support, and idle reservation overhead are included.
Where FOCUS Helps and Where It Does Not#
FOCUS normalises the schema — column names, types, charge categories. It also defines EffectiveCost as the cost after commitment amortisation, which removes one of the larger sources of normalisation toil.
FOCUS does not normalise definitions of services or units. Two providers can label different things 'object storage' or 'compute', and FOCUS will not paper over the difference. That remains a customer responsibility, supported by mapping tables maintained internally.
Yobitel and Cost Comparability#
Yobitel publishes a FOCUS-conformant billing feed alongside its native API. EffectiveCost is reported after applying reserved-capacity amortisation, so Yobitel spend lines up directly with hyperscaler EffectiveCost columns in the same warehouse table — no provider-specific transformation required.
References
- FOCUS Specification · FinOps Foundation
- FinOps Foundation framework · FinOps Foundation
- AWS Cost and Usage Report · AWS Documentation