Skip to content
Finitizer

FOCUS 1.4 Validator

Check a billing export against the FOCUS 1.4 standard and get every column that fails, with the rule it breaks.

Multi-cloudReads your own dataBring a file
New here? See what this tool does, how to use it and how to get your data.

Learn more

FOCUS 1.4 Validator

What this free tool does for you

Before finance, reports or a cost tool rely on your FOCUS billing export (the open standard format for cloud bills), check it is complete and correct. Get a score and every rule it breaks.

How to use it

  1. Click Choose a FOCUS file and pick your billing export. To see a passing result first, click Try a conformant sample.
  2. Read the conformance score out of 100, with the count of errors and warnings.
  3. Check Mandatory columns: a missing one is the first thing to fix.
  4. Work through Findings. Each one names the column and quotes the rule it breaks.

Good to know

  • Private, with no size limit. No upload needed. The file is checked in this tab, so the only limit is your browser's memory.
  • Use a full billing period. Some rules apply only to certain rows, so a short sample can pass checks the full file would fail.
  • Extra columns are fine. FOCUS allows custom columns, so they never count as errors.

Not sure where to get the data? .

Before you start: what to have readyShow
  • One FOCUS export, as CSV. From AWS, the Data Exports type “FOCUS 1.2 with AWS columns”; from Azure, the Cost Management FOCUS export; from Google Cloud, one month of the FOCUS export table in BigQuery, saved as CSV.
  • A full billing period, not a sample. Conditional requirements only fire on the rows that trigger them, so a truncated file passes checks it would otherwise fail.
  • The header row intact. Every rule in the specification is keyed to a column name, so a file whose headers were rewritten by a spreadsheet will report far more failures than it has.
  • Account IDs left in. Some columns require them, so removing them causes false failures. The file stays on this page either way.

No upload needed. The file is read by JavaScript in this tab and leaves your computer only if you choose to share it for a review. There is no file-size cap; the limit is your browser’s memory.

Want this done on your real bill?

FinOps-as-a-Service: A FinOps practitioner works with your team every month, so cost reviews happen without you hiring one. From $1,500 a month. Nothing paid upfront.

See the service

About this tool

Checks a billing export against FOCUS 1.4, 123 columns across 4 datasets, of which 47 are new in this version. Rules are derived from the specification rather than written by hand, so every finding quotes the requirement it came from. Browse the column dictionary or read what changed in 1.4.

Questions

Does the official FOCUS validator support 1.4?

The FinOps Foundation's validator was built for 1.3 conformance testing; check its page for the versions it supports today. Its hosted build also caps uploads at 10 MB and is positioned for sample data rather than production exports. That gap is why this exists. Once the Foundation's validator checks 1.4, it is the canonical implementation and you should use it.

What is new in FOCUS 1.4?

47 new columns across 4 datasets, 28 of them in 2 new datasets. Invoice Detail carries invoice charges, payment terms and purchase order numbers so finance can reconcile against the same data FinOps uses; Billing Period carries period boundaries and status. Contract Commitment gained substantial detail on commitment models, payment structures and lifecycle status. The column dictionary on this site documents every one of them.

Is my billing data uploaded anywhere?

No. The file is read and checked by JavaScript in the page and is never transmitted. That is a property of how the tool is built rather than a promise in a policy, and it is why there is no file-size cap: the only limit is your browser's memory.

Why does an unknown column not count as an error?

Because FOCUS permits custom columns. A provider carrying its own identifiers alongside the standard ones is conformant, and flagging those as errors would make almost every real export look broken. Unknown columns are reported as information, and the report notes which of them do not use the conventional "x_" prefix: that prefix is what lets a consumer skip them safely.

Why does a missing Conditional column not count as an error?

Because the condition lives in the provider's circumstances rather than in the file. A Conditional column is required only when the situation it describes applies, a commitment discount column is not required of a bill with no commitments on it. Only Mandatory columns are checked for presence.

How is the conformance score calculated?

Coverage of the mandatory columns, less a capped penalty for value-level errors. A missing mandatory column weighs far more heavily than a handful of malformed values, because an export missing BillingCurrency cannot be consumed at all whereas a few bad timestamps are fixable in place. Warnings and custom columns are deliberately excluded, neither makes a file non-conformant.

Related tools

More tools for: Billing data, allocation and governance

Conformance is the beginning, not the end.

Finitizer ingests FOCUS from every provider you run, normalizes what they still disagree about, and reports cost, commitment coverage and allocation across all of it, without you maintaining the pipeline.

See how Finitizer works

Rate this tool

How would you rate the FOCUS 1.4 Validator?