Skip to main content

What is Validation?

Validation checks your curves and timeseries with checks written in ODSL, and keeps a record of every result. For example:

  • Is today's settlement price missing, zero or negative?
  • Did any tenor of the forward curve move by more than 20% overnight?
  • Is a value an outlier compared with the last 30 observations?
  • Has the curve got gaps between its delivery periods, or has it lost tenors since yesterday?
  • Has a price not changed for five days in a row?

Each curve or timeseries you validate has a validation configuration holding its checks. Every data point that is checked gets a validation record: the result of each check, the status that applies, and a timeline of everything that happened to it. When a check fails, you can fix the data and run it again, comment on it, or override it so the data can be used.


What gets checked​

DataA record for eachRecord id
TimeseriesobservationDATA_ID:TIME, for example AHDB.HAY:PRICE:2026-10-01
CurveondateDATA_ID:ONDATE, for example ICE.IFEU.B:SETTLE:2026-10-12

A curve has two kinds of checks: tenor checks run on every contract (is the M03 value missing? did Q1 move by more than 20%?) and curve checks run once on the whole curve (are there gaps? are the expected tenors there?). The record of a curve shows the result of every tenor, which tenors failed or warned, and the result of each check. Any failing tenor fails the whole curve.


When checks run​

WhenWhat is checked
A curve or timeseries is saved, private or publicThe ondate saved, or the observations in the update
A smart curve, event curve or event timeseries is rebuilt because its inputs or events changedThe ondate built, or the observations built
A composition is built, for its composed curves and composed timeseriesThe ondate built, or the observations of that build
You run the checks in the extension, or through the REST APIThe latest data point, a date or a range

Automatic runs are automations: each validation that runs on update has an automation on its curve or timeseries, created and removed for you when you save or delete the validation. When public data, or a curve built from public or common events, is updated, the checks run in your own tenant as a background task, so every tenant that validates the same public data checks it in its own pool. The automation log shows each run and how many data points it checked.

Checks never run when data is only read, and not during history loads. You can switch automatic runs off for a configuration and only run it by hand.


Statuses​

The status of a record is the worst result of its checks.

StatusMeaning
ValidEvery check passed
WarningA check found something worth a look; the data can be used
FailedA check failed
SevereA check failed badly
ErrorA check could not run, for example because of an unknown function. It counts as failing, because the data was not checked
SkippedThere was nothing to check, for example no previous value to compare with
OverriddenThe checks failed and someone let the data pass, with a reason

Valid, warning, skipped and overridden records pass. Failed, severe and error records are open issues.

When a record is checked, the quality status of the data is updated too (for a curve, the worst status of all the records of its ondate), so other screens and reports can see whether the data passed.


Where to find it​

  • Information > Validation: the dashboard, issues, records, configurations, check functions and bulk changes.
  • The insights Validation by Data Item, Validation by Check, Validation by Day and Validation Configurations: reports with CSV export.
  • The Validation tab on the Data screen: the checks and records of the selected curve or timeseries.

In this section​

PageWhat it covers
Getting startedSet up, test and run the checks of a timeseries, and look at the results
Checks and settingsValidation configurations: checks, scopes, severity, settings
Check functionsThe functions in the validation library
Writing your own checksPrivate check functions in ODSL
Dashboard, issues and overridesThe dashboard, issues, records, the timeline, overrides and reports
Bulk changesAdd, replace or remove checks on many curves or timeseries at once
ReferenceThe records, automations and the REST API
note

Dataset quality checks and curve quality groups work as before. Validation is a separate registry for curves and timeseries, and the functions of a curve quality group script can be used as validation checks.