Skip to main content

Curve Management

This guide explains how to effectively manage forward curves within OpenDataDSL.

Curve Types

There are 3 types of curves in OpenDataDSL which are designated by how they are created and where the data originates from.

  • Market Curves

    These are market provided curves and can generally be seen as raw, but reliable curves.

  • Internal Curves

    These are internally provided curves from traders or analysts.

  • Smart Curves

    These are curves that are derived using your own custom logic

Curve Dependencies

There is a natural hierarchy of curves which is defined by the inputs or curve dependencies and potential curve dependents.

Example

In the diagram below, we see that:

  • The smart ALL_TRADERS curve is built from 2 internal curves; TRADER1 and TRADER2.
  • The smart MONTHLY curve is built from the market CURVE curve.
  • The ALL_TRADERS and MONTHLY curves then become inputs into the COMBINED curve.

Visualising the hierarchy

It is important to understand the relationships between curves especially when things stop working. The ability to easily traverse through the curve family tree aids failure diagnosis and reparations.

Curve Dashboard

The curve dashboard has a few fundamental purposes which are explained in the section.

Curve monitoring

For end-of-day curves, monitoring of curves is focussed on a specific day, usually the previous working day.

Curve status

For each day that a curve needs to be built, it has a status which reflects the health of the curve.

  • Initially, a curve is in a Waiting state.
  • When it has all the data it requires in order to built, then it progresses to either a Built or a Failed state.
  • If it builds successfully and there is validation configured for it, then it will progress from there to either a Complete or Invalid state.

Curve status flow:

Curve status additional information

With each status, there is additional contextual information as shown in the table below:

StatusAdditional Context
WaitingInformation about which input(s) the curve is waiting for
BuiltAny log information or warnings provided by the build process
FailedError information about why the build failed in order to rectify it
InvalidInformation about the build process, what checks were performed and which ones failed
CompleteInformation about the build process and the validations performed

Build failure investigation

Inevitably, curves occasionally fail to build, so this prompts an investigation into why the curve didn't build and what can be done to prevent it happening again.

This section details the tools and information we provide to help with this investigation.

Failure message

The error information context displayed in the failed curve version gives you the actual reason for failure which may be able to pinpoint how to fix it.

Build log

The next stage of investigation is the build log, these are information, warning and error messages which your custom build script can output which will allow you to trace through the build code.

Audit log

The final stage of investigation is to use audit records which may show further error information outside of the actual build process.

Curve insights and analytic reports

There are a number of predefined insights and reports which can help you gain a deeper understanding of your curves.

Popularity/Usage

The popularity insight highlights the most actively read curves by your users and systems, this helps to understand the overall usage of your curves.

This report is a drill-down report with 3 levels of reporting: commodity, market and curve, e.g.

Management

The management report provides some fundamental information about your curve universe which is extremely useful for answering questions from new users, such as:

  • Which commodities do we cover?
  • Which markets of a specific commodity do we cover?
  • How must history do we have for a specific curve or market?

Build statistics

The build statistics report provides an aggregated build performance chart enabling you to:

  • Direct resources onto improving the reliability of problematic curves.
  • Easily see if overall build reliability is improving or degrading.

This report is a drill-down report with 3 levels of reporting: commodity, market and curve, e.g.

Curve Contingency

Curve contingency is a process that deals with situations where a curve is not created when we expect it to be or the structure of a curve that has been created is incorrect.

Issues fixed by curve contingency

Curves not built

There are various reasons why a curve is not created or is not created correctly for a specific day.

  • Missing Data

    A curve generally requires input data, usually from prices sources or other curves. If this is not available, then we cannot build the curve.

  • Partial or Badly Structured Data

    If the input data for a curve is not complete or has tenors which are not handled in the curve logic, this could create a bad curve or cause an exception.

  • Bad Curve Logic

    If the code to build the curve has an error, this could build a bad curve or throw an exception.

Incorrect curve structure

Generally, forward curves will be fed into a downstream system that would expect the curve to conform to a certain structure. Part of curve contingency is to ensure that the curves we create conform to pre-defined rules regarding the type and number of tenors contained in the curve.