FOCUS 1.4 Validator
Validate a FOCUS dataset against the 1.4 specification: mandatory columns, data types, nullability, allowed values and currency codes. Every finding quotes the specification line it came from. The official validator supports 1.3 and caps uploads at 10 MB; this has no cap and runs in your browser.
Before you start: what to have to handShow
- One billing export, in CSV or Parquet. AWS CUR 2.0 with the FOCUS columns enabled, an Azure Cost Management export, or a Google Cloud billing export. It is parsed here in your browser and never transmitted.
- 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.
- No need to redact. Nothing leaves this page, so there is no reason to strip account identifiers, and stripping them will produce false failures on the columns that require them.
Nothing is uploaded. This site has nothing that uploads it; the file is parsed by JavaScript in this tab, which your file is never transmitted. There is no file-size cap either; the limit is your browser’s memory.
Frequently asked questions
Does the official FOCUS validator support 1.4?
Not yet. The FinOps Foundation's validator supports 1.3 conformance testing, and 1.4 support is scheduled for later in Q3 2026. 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, and it is a deliberately temporary one, when the Foundation ships 1.4 support, theirs is the canonical implementation and you should use it.
What is new in FOCUS 1.4?
Forty-seven columns across two 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
The questions this one tends to raise next.
Cost Allocation Score
Grade your tagging against the FinOps Foundation KPI, in one file drop.
OpenCloud Bill Diff
Why did the bill go up? Separate the rate change from the usage change.
OpenWarehouse Cost Translator
What would this BigQuery workload cost on Snowflake or Databricks?
OpenEvery tool on this site that touches billing data, allocation and governance, across every cloud.
Conformance is the beginning, not the end.
Finitizer ingests FOCUS from every provider you run, normalises what they still disagree about, and reports cost, commitment coverage and allocation across all of it, without you maintaining the pipeline.
