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.
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
Schema-only option:
- Enable Schema-only validation to check only structural requirements (column presence and data types).
- Value-level checks (format, nullability, business logic) are excluded from schema-only output.
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.
Quick reference (FOCUS 1.2):
| Metric | Value |
|---|---|
| Total rules | 621 |
| Executable rules | 420 |
| Presence rules | 63 |
| Check functions | 22 |
| Rule type | Rule count | Purpose |
|---|---|---|
| Presence | 63 | Column exists in dataset |
| Type | 56 | Column has correct data type |
| Format | 84 | Values match required patterns |
| Nullability | 103 | Null handling requirements |
| Validation | 172 | Business logic checks |
| Composite | 143 | Logical grouping of other rules |
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.
If an extra column name closely matches a FOCUS column — due to a casing difference, wrong separator, or typo — atlon.io shows a "Did you mean X?" suggestion. This helps catch near-miss column names that were likely intended to be FOCUS-conformant (e.g., billing_account_id instead of BillingAccountId).
Rule statuses
Each validation rule produces one of three statuses:
| Status | Meaning |
|---|---|
| Passed | Your data satisfies this requirement |
| Failed | Your data violates this requirement — check the error details for specifics |
| Skipped | This 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:
| Keyword | What it means | Typical status behavior |
|---|---|---|
| MUST / MUST NOT | Absolute requirement | Evaluated and expected to pass |
| SHOULD / SHOULD NOT | Recommended practice | Evaluated when applicable |
| RECOMMENDED | Best practice | Evaluated in applicable contexts |
| MAY / OPTIONAL | Entirely optional | Marked 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:
| Format | What it contains | Best for |
|---|---|---|
| JSON | Official FOCUS conformance output (entities, rules, statuses) | Automation, interoperability, downstream processing |
| CSV | Flattened rule-level rows | Spreadsheet analysis and ad-hoc filtering |
| HTML | Human-readable report with summary + details | Sharing results with stakeholders |
| JUnit XML | Test-suite style validation output | CI/CD pipelines and test tooling |