Free — no signup required

The Core Schema: Speaking the Same Language

2 min read

What a Schema Standard Actually Defines

A schema standard is a contract about structure. FOCUS does not tell cloud providers how to price their services — it tells them how to describe those charges in an export file. Think of it like a universal plug adapter: the underlying electricity (billing data) is the same, but the shape of the connector (column names, data types, value formats) is standardized so any device (tool) can plug in.

Normalizing the Key Columns

The FOCUS specification defines mandatory columns that every provider must populate. Here are the most important categories:

1. Identity — Who is being charged?

Provider Native Column FOCUS Column
AWS LinkedAccountId SubAccountId
Azure SubscriptionId SubAccountId
GCP project.id SubAccountId

2. Location — Where did the resource run?

Provider Native Column FOCUS Column
AWS product/region (e.g., us-east-1) RegionId
Azure ResourceLocation (e.g., East US) RegionId
GCP location.region (e.g., us-east1) RegionId

FOCUS also defines RegionName as a human-readable display name, separate from the machine-readable RegionId.

3. Service — What was used?

Provider Native Column FOCUS Column
AWS lineItem/ProductCode (e.g., AmazonEC2) ServiceName
Azure ConsumedService (e.g., Microsoft.Compute) ServiceName
GCP service.description (e.g., Compute Engine) ServiceName

FOCUS also introduces ServiceCategory — a higher-level grouping with standardized values like Compute, Storage, Database, Networking, AI and Machine Learning. This lets you ask "how much did we spend on databases?" without knowing that AWS calls it AmazonRDS and Azure calls it Microsoft.Sql.

4. Time — When did the charge occur?
Every provider formats timestamps differently. FOCUS standardizes this with ChargePeriodStart and ChargePeriodEnd, both in ISO 8601 UTC format (2024-01-15T00:00:00Z).

5. Resource — What specific thing was charged?
FOCUS defines ResourceId (the provider's unique identifier for the resource, like an EC2 instance ARN or Azure resource ID) and ResourceName (the human-readable name or tag).

The Provider and Publisher Columns

FOCUS also adds two columns that seem redundant but are critical for multi-cloud and SaaS scenarios:

  • ProviderName: The company that sold you the service (e.g., Amazon Web Services, Microsoft Azure, Google Cloud).
  • PublisherName: The company that built the service. For first-party cloud services these are the same. But for AWS Marketplace purchases, the ProviderName is Amazon Web Services while the PublisherName might be Datadog, Inc. This distinction lets you track third-party SaaS spend that flows through cloud marketplaces.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free