Validation
Trust every curve and timeseries before anyone uses it
Check every curve and timeseries as it arrives, keep a record of every data point, and only send on the data you can trust.
The Data Quality Challenge
The Challenge
Bad market data rarely announces itself. It arrives looking like any other update:
- A settlement price that is a hundred times too big
- A tenor missing from this morning's forward curve
- A curve that is the same as yesterday's because the source did not update
- A timeseries with a gap over a holiday nobody expected
- A spike that is real, but needs someone to confirm it
By the time anyone notices, the data has already gone into a valuation, a risk report or a customer price. Checks that do exist live in spreadsheets and scripts, run at different times, and leave no trace of what was checked or who let a problem through.
Our Solution
Validation gives every curve and timeseries on OpenDataDSL a set of checks, written in ODSL, that run automatically whenever the data is saved or rebuilt.
Every data point gets a validation record: the result of each check and a timeline of what happened, from the first run to an override with its reason.
Failures show up as issues to review, fix, or override, and automations can send on only the data that passed, while the team is told straight away about the data that did not.
Validation: Data You Can Trust, With the Proof
Key Benefits
Catch bad data before it reaches your models, reports and customers, and know exactly what was checked and why it was let through.
Checks on Every Update
Automatic, the moment data arrives.
Checks run when a curve or timeseries is saved, and when a smart, event or composed curve or timeseries is rebuilt. Public and common data is checked in your own environment, with your own checks.
Suggested From Your Data
Limits that fit, tried before you use them.
Point Validation at a set of curves and it reads the last 30 days of each one, suggests checks with limits that fit the data, and tries them on that history first, so you start with checks that would not have raised false alarms.
A Record for Every Data Point
What was checked, and what happened next.
Each curve ondate and each observation has a validation record with the result of every check, every tenor, and a timeline of runs, comments, overrides and sends.
Overrides With a Reason
Real moves pass, and the decision is kept.
When a spike is genuine, override the failure with a reason. The override belongs to that data: if the data changes, it is checked again from scratch.
Only Validated Data Downstream
Automations on passing or failing data.
Send a curve or timeseries on only when it passes validation or a failure is overridden, and email the team, with every failing check, the moment data fails.
Checks in Your Own Language
A library of checks, and your own in ODSL.
Use the validation library of 19 ready-made checks for ranges, moves, outliers, stale values, gaps and curve structure, or write your own checks as ODSL functions.
How Validation Works
Set It Up
Validation is set up once for each curve or timeseries, on its own Validation tab or for hundreds at a time with bulk changes.
Value checks: missing, zero or negative values, a range, the change from the previous value, outliers against recent history, and stale values.
Curve checks: gaps between delivery periods, the tenors that must be on the curve, the number of contracts, and quarters that do not match their months.
Your own checks: any ODSL expression, or a function in one of your scripts.
Severity: each check fails, warns, or is severe, so a small move can be a warning while a missing curve is a failure.
Keep It Running
Once set up, Validation looks after itself:
Dashboard: pass rates, open issues, warnings and overrides, day by day.
Issues: every failing data point in one place, to override, comment on, run again, or adjust the checks of in place.
Adjust Checks: when a limit is a little too tight, Validation works out the smallest change that lets the data pass and shows how many failures it would have avoided over the last 30 days.
History: every change to the checks is kept as a version, so you can see who changed what, and restore it.
Checks for Every Kind of Data
Start with the checks that matter for each kind of market data, and add your own as you go.
Forward Curves
The Question: Is this morning's curve complete and sensible?
The Checks
- Every tenor has a value
- No gaps between delivery periods
- The tenors you rely on are there
- No tenor moved more than 5% from yesterday
Result: A curve is only used once every tenor has passed.
Settlement Prices
The Question: Is today's settlement a real price?
The Checks
- Within a sensible range
- Not zero or negative
- Not more than 4 standard deviations from recent history
Result: Fat-finger prices and unit mistakes are caught on arrival.
Stale Data
The Question: Did the source actually update?
The Checks
- A curve the same as the one before it
- A timeseries value unchanged for several days
- Tenors dropped from yesterday
Result: A feed that silently stopped is spotted the same day.
Timeseries Gaps
The Question: Is the history complete?
The Checks
- No missing observations
- No gap longer than expected, weekends and holidays allowed
Result: Holes in a daily series are found before they reach a model.
Curve Structure
The Question: Does the curve hang together?
The Checks
- At least 12 months, 4 quarters and 2 years
- Quarters match the average of their months
Result: Built curves are internally consistent before they are used.
Derived Data
The Question: Are the curves we build ourselves right?
The Checks
- Smart, event and composed curves and timeseries checked every time they are rebuilt
Result: Your own spreads and built curves get the same checks as market data.
From Hoping the Data Is Right to Knowing It
Validation moves data quality from scattered scripts and spreadsheet checks onto the platform, where every curve and timeseries is checked the same way, every time, the moment it arrives.
Your team spends less time chasing bad data after the fact, and when an auditor or a trader asks why a number was used, the answer is in the record: what was checked, what failed, and who let it through and why.
See Validation on Your Data
Book a demo and we will suggest checks for your own curves and timeseries from their last 30 days of data, and show you what they would have caught.
Get Started TodaySmart Curves
How about a demo?
Our team is here to find the right solution for you, contact us to see this in action.
Fill out your details below and somebody will be in contact with you very shortly.