There are typically three ways to create/edit/archive an object in Xplain:
- manually through the user interface;
- by importing the data with a .CSV file;
- via the API.
Overview
For auditing and backtesting purposes, all entities that may affect valuation are versioned in Xplain. A new version will typically be saved when creating, editing or archiving an object. The prevailing version can then be retrieved by reference to the anchor date, which can be controlled at the right of the menu item bar.

There are three types of versioning:
- Major/minor: objects such as curves can have several major versions which will be applicable over a specific period. When a major version is amended, a minor version will be created. The latest minor version of the relevant major version will automatically be used by reference to the anchor date. The first version of an object is referred to as the Root version.
- Minor: objects such as market or valuation data will only have one main version for a given date. When their value is amended, a minor version will be created.
- Audit only: changes in objects such as data providers will only be recorded in Xplain’s database.
Major/minor Versioning
Objects with major/minor versioning are typically objects whose configuration may change over time and which may need to be amended retrospectively.
In respect of
The key attributes of a major/minor version are:
- validFromDate attribute (which will define the applicability of the version); and
- status.
A version can be “ACTIVE”, “ARCHIVED” or “DELETED”. The key difference between “ARCHIVED” and “DELETED” is that the object will effectively not be accessible when in archived mode while the version will simply be ignored when deleted.
Versioning will be driven by the user’s choice upon:
The ability to control the anchor date (or system date) is very useful for backtesting. However, safeguard features in Xplain such as transparency via a full history of all existing versions, alongside generic deletion rules in respect of existing future versions, have been implemented to prevent unintended consequences that may be linked to a bi-temporal model.
1. Creating a new object
When creating a new object, the default option will be to create the Root version, which will be applicable regardless of the anchor date.


Alternatively, through the advanced versioning options, instead of a Root version, you can choose to create a major version as at the anchor date (e.g. 30-NOV-2022). In this case, a Root version with the status “ARCHIVED” will be created at the same time and the object will only be accessible from the anchor date onwards.


2. Editing an object
When editing an object, the default option will be to create a minor version of the prevailing major version.


Alternatively, through the advanced versioning options, you can choose to create a major version as at the anchor date (e.g. 30 Nov 2022).
In the worked example below, you will need to update the Root Version with the new Major Version.


3. Archiving an object
When archiving an object, the default option will be to create a new major version with the status “ARCHIVED” as at the anchor date (e.g. 15-DEC-2022).



Alternatively, through the advanced versioning options, you can choose to archive the prevailing major version by updating its status from “ACTIVE” to “ARCHIVED” with a new minor version.


Safeguard Features
When archiving, the default option will be to delete all existing future versions (if any) by updating their status from “ACTIVE” or “ARCHIVED” to “DELETED” with a new minor version, resulting in the object being archived going forward. Alternatively, through the advanced versioning options, you can choose to preserve all future versions by only archiving the prevailing version.
When editing, the default option will be to insert such changes without impacting the future versions (if any). Alternatively, through the advanced versioning options, you can choose to delete all future versions, by updating their status from “ACTIVE” or “ARCHIVED” to “DELETED” with a new minor version, resulting in the new version to be applicable going forward.