Validation Guide

atlon.io validates cost and usage data against the FOCUS specification, an open specification that normalizes billing datasets across cloud, SaaS, data center, and other technology vendors to reduce complexity for FinOps Practitioners.

The validation engine is based on the official FOCUS Validator, developed and supported by the FinOps Foundation.

Supported versions and datasets

atlon.io validates against both FOCUS 1.2 and FOCUS 1.3.

FOCUS 1.3 introduces a second dataset alongside CostAndUsage: ContractCommitment. The two datasets share BillingCurrency but otherwise describe different shapes of data. CostAndUsage covers consumption and charges, ContractCommitment describes the contracts and commitments those charges roll up to. When you validate a 1.3 file, atlon.io picks the dataset you select and only runs rules scoped to it. FOCUS 1.2 has only CostAndUsage as an option.

1. Upload

Upload a FOCUS dataset by dragging and dropping a file or selecting one from disk.

  • Formats: CSV and Parquet
  • File size: up to 50 MB
  • File must be non-empty

Pick the FOCUS version and (for 1.3) the dataset you're validating against:

  • FOCUS version: 1.2 or 1.3. Defaults to the latest.
  • Dataset: CostAndUsage (default) or ContractCommitment (1.3).

Validation mode:

  • Schema: checks column presence only. Near-instant on any file size (no data loaded).
  • Full: runs all validation rules including format, nullability, and business logic checks.

2. Validate

During validation, atlon.io evaluates your dataset against FOCUS conformance requirements.

It verifies:

  • Columns exist: are all required columns present?
  • Data types are correct: is a cost column numeric, a date column a timestamp?
  • Values match expected formats: are currency codes 3-letter ISO codes, dates in UTC?
  • Business rules hold: are required fields non-null, do cross-column relationships make sense?

For the full rule structure and model semantics, see the FOCUS Requirements Model.

Rule counts by version:

MetricFOCUS 1.2FOCUS 1.3
Total rules621933
Datasets1 (CostAndUsage)2 (CostAndUsage, ContractCommitment)
Applicability criteria1820
Presence rules6395
Rule typeFOCUS 1.2FOCUS 1.3Purpose
Presence6395Column exists in dataset
Type5693Column has correct data type
Format84127Values match required patterns
Nullability103160Null handling requirements
Validation172248Business logic checks
Composite143210Logical grouping of other rules

A run only touches the rules scoped to your selected version and dataset, so the active rule count for any given file is smaller than the totals above.

3. Result

Validation summary

After validation, atlon.io shows:

  • Overall status (passed vs issues found)
  • Rule support summary (passed, failed, skipped)
  • Total applicable rule count
  • Row counts (total, valid, invalid) for full validation mode

Views

The result screen provides three views:

  • Column View: best for troubleshooting a specific column, with structure checks (Presence/Type) and value checks grouped together.
  • Entity View: grouped by entity (dataset, columns, attributes), useful for scanning pass/fail/skipped status by entity.
  • Rule View: grouped by rule function (Presence, Type, Format, Validation, Composite, Nullability), useful for spotting category-level failure patterns.

Extra columns

Your dataset may contain columns that are not part of the FOCUS specification, for example, provider-specific fields or internal tracking columns. These are called extra columns.

Extra columns do not affect your quality score or rule results. They appear in the Column View under the Extra Columns category filter, so you can review which non-FOCUS columns are present in your file.

Rule statuses

Each validation rule produces one of three statuses:

StatusMeaning
PassedYour data satisfies this requirement
FailedYour data violates this requirement, check the error details for specifics
SkippedThis rule was not evaluated (see below for reasons)

Rules can be skipped for several reasons:

  • The rule is dynamic (requires human judgment, not automatable)
  • The rule is optional (MAY/OPTIONAL keyword, not a requirement)
  • The rule is not applicable to your provider's capabilities, atlon.io by default selects all capabilities for completeness.
  • A prerequisite rule failed (e.g., if a column is missing, all value checks for that column are skipped)

Requirement levels

FOCUS uses RFC 2119 keywords to indicate how strict each requirement is:

KeywordWhat it meansTypical status behavior
MUST / MUST NOTAbsolute requirementEvaluated and expected to pass
SHOULD / SHOULD NOTRecommended practiceEvaluated when applicable
RECOMMENDEDBest practiceEvaluated in applicable contexts
MAY / OPTIONALEntirely optionalMarked as skipped in this validator

Applicability criteria

Not all rules apply to every provider. FOCUS defines applicability criteria: provider capabilities like commitment discount support, region support, or tagging support (See Applicability criteria table)

When a criterion does not apply to your data, related rules are marked not applicable and skipped. For example, if your provider does not support commitment discounts, CommitmentDiscount rules are skipped.

By default, this validator enables all applicability criteria during validation. That means capability-gated rules are treated as applicable.

Exports

After a validation run completes, you can export results in multiple formats:

FormatWhat it containsBest for
JSONOfficial FOCUS conformance output (entities, rules, statuses)Automation, interoperability, downstream processing
CSVFlattened rule-level rowsSpreadsheet analysis and ad-hoc filtering
HTMLHuman-readable report with summary + detailsSharing results with stakeholders
JUnit XMLTest-suite style validation outputCI/CD pipelines and test tooling