Migration notes 2.1
This page explains the changes required to migrate to the stated version of the Market Risk Accelerator.
Migrate to 2.1
Upgrading from version 2.0.0 - see Market Risk Accelerator 2.1 Release Notes.
-
The Accelerator uses ActivePivot 5.9.6 and ActiveUI 4.3.17. For new features and fixes included in these releases, please see the ActiveUIdocumentation and ActiveUI Migration Notes, and the release notes for ActivePivot.
-
For clients licensed to use ActiveMonitor, a skeleton module based on version 5.9.6 is included with the MRA Accelerator 2.1.0 release.
Headline announcement
- New dimension for sign-off features : A Sign-off dimension containing two hierarchies - one for the sign-off status, one for handling adjustments
- Day count computation: The day count computation is now calculated differently. See the Calendar Improvement feature on the What’s New page for details.
Input file formats
Added
File | Details |
---|---|
cube-adjustments.csv | Contains data representing the definition of cube-level adjustments. This file is generated when data is exported after the sign-off process for a sign-off process instance is completed. |
Configuration files
Files Added
None
Files Modified
signoff.properties
New properties:
Property Name | Value | Comment |
---|---|---|
sign-off.level.members | INTRA-DAY,TOTAL REVIEWABLE,UNAPPROVED | The level member names for live, snapshot and unapproved task status |
sign-off.var.levels | AsOfDate@Date@Dates,Book@Books@Booking,Desk@Desks@Booking | List of the levels eligible for filtering in the sign-off task definition for the Var-ES Cube |
sign-off.sensi.levels | AsOfDate@Date@Dates,Book@Books@Booking,Desk@Desks@Booking | List of the levels eligible for filtering in the sign-off task definition for the Sensitivity Cube |
sign-off.pnl.levels | AsOfDate@Date@Dates,Book@Books@Booking,Desk@Desks@Booking | List of the levels eligible for filtering in the sign-off task definition for the PnL Cube |
sign-off.adjustments.cube.adjustableMeasures.VaR-ES\u0020Cube | ES,VaR | List of measures eligible for cube-level adjustment in the VaR-Es Cube |
sign-off.adjustments.cube.adjustableMeasures.Sensitivity\u0020Cube | Delta,Gamma,Vega | List of measures eligible for cube-level adjustment in the Sensitivity Cube |
sign-off.adjustments.cube.adjustableMeasures.PLCube | DTD PnL | List of measures eligible for cube-level adjustment in the PLCube |
sign-off.adjustments.cube.asOfDateLevel.VaR-ES\u0020Cube | AsOfDate@Date@Dates | The asOfDate level, used by the cube-level adjustment in the VaR-Es Cube |
sign-off.adjustments.cube.asOfDateLevel.Sensitivity\u0020Cube | AsOfDate@Date@Dates | The asOfDate level, used by the cube-level adjustment in the Sensitivity Cube |
sign-off.adjustments.cube.asOfDateLevel.PLCube | AsOfDate@Date@Dates | The asOfDate level, used by the cube-level adjustment in the PL Cube |
sign-off.adjustments.cube.hierarchiesToExclude.VaR-ES\u0020Cube | Date@Dates,MarketDataSets@MarketData,Quantiles@Quantiles,RoundingMethods@Rounding,Scenario Sets@Risk,Sign-off Status@Sign-off,CalculationIds@Risk | The hierarchies that are not part of the cube-level adjustment location in the VaR-ES Cube |
sign-off.adjustments.cube.hierarchiesToExclude.Sensitivity\u0020Cube | Date@Dates,MarketDataSets@MarketData,Quantiles@Quantiles,RoundingMethods@Rounding,Scenario Sets@Risk,Sign-off Status@Sign-off | The hierarchies that are not part of the cube-level adjustment location in the Sensitivity Cube |
sign-off.adjustments.cube.hierarchiesToExclude.PLCube | Date@Dates,MarketDataSets@MarketData,Sign-off Status@Sign-off,Types@PnL | The hierarchies that are not part of the cube-level adjustment location in the PnL Cube |
sign-off.adjustments.cube.marketDataSetLevel.VaR-ES\u0020Cube | MarketDataSet@MarketDataSets@MarketData | The market data set level, used by the cube-level adjustment to handle the FX rate in the VaR-Es Cube |
sign-off.adjustments.cube.marketDataSetLevel.Sensitivity\u0020Cube | MarketDataSet@MarketDataSets@MarketData | The market data set level, used by the cube-level adjustment to handle the FX rate in the Sensitivity Cube |
sign-off.adjustments.cube.marketDataSetLevel.PLCube | MarketDataSet@MarketDataSets@MarketData | The market data set level, used by the cube-level adjustment to handle the FX rate in the PL Cube |
sign-off.adjustments.cube.signOffFeedLevel.VaR-ES\u0020Cube | Feed@Sign-off Status@Sign-off | The path of the first level of the sign-off analysis hierarchy. It contains the first two members defined by sign-off.level.members. This is used to set up the hierarchy in the Var-Es Cube |
sign-off.adjustments.cube.signOffFeedLevel.Sensitivity\u0020Cube | Feed@Sign-off Status@Sign-off | The path of the first level of the sign-off analysis hierarchy. It contains the first two members defined by sign-off.level.members. This is used to set up the hierarchy in the Sensitivity Cube |
sign-off.adjustments.cube.signOffFeedLevel.PLCube | Feed@Sign-off Status@Sign-off | The path of the first level of the sign-off analysis hierarchy. It contains the first two members defined by sign-off.level.members. This is used to set up the hierarchy in the PL Cube |
sign-off.adjustments.cube.signOffStatusLevel.VaR-ES\u0020Cube | Status@Sign-off Status@Sign-off | The path of the second level of the sign-off analysis hierarchy. It will contains the last member defined by sign-off.level.members, and other status coming from the sign-off. This is used to set up the hierarchy in the Var-Es Cube |
sign-off.adjustments.cube.signOffStatusLevel.Sensitivity\u0020Cube | Status@Sign-off Status@Sign-off | The path of the second level of the sign-off analysis hierarchy. It will contains the last member defined by sign-off.level.members, and other status coming from the sign-off. This is used to set up the hierarchy in the Sensitivity Cube |
sign-off.adjustments.cube.signOffStatusLevel.PLCube | Status@Sign-off Status@Sign-off | The path of the second level of the sign-off analysis hierarchy. It will contains the last member defined by sign-off.level.members, and other status coming from the sign-off. This is used to set up the hierarchy in the PL Cube |
sign-off.adjustments.cube.signOffTaskLevel.VaR-ES\u0020Cube | Task@Sign-off Status@Sign-off | The path of the third level of the sign-off analysis hierarchy. It will contains the task IDs coming from the sign-off. This is used to set up the hierarchy in the Var-Es Cube |
sign-off.adjustments.cube.signOffTaskLevel.Sensitivity\u0020Cube | Task@Sign-off Status@Sign-off | The path of the third level of the sign-off analysis hierarchy. It will contains the task IDs coming from the sign-off. This is used to set up the hierarchy in the Sensitivity Cube |
sign-off.adjustments.cube.signOffTaskLevel.PLCube | Task@Sign-off Status@Sign-off | The path of the third level of the sign-off analysis hierarchy. It will contains the task IDs coming from the sign-off. This is used to set up the hierarchy in the PL Cube |
sign-off.adjustments.cube.signOffAdjustmentSourceLevel.VaR-ES\u0020Cube | Source@Adjustment@Sign-off | The path of the first level of the adjustment hierarchy. This is used to set up the hierarchy in the VaR-Es Cube |
sign-off.adjustments.cube.signOffAdjustmentSourceLevel.Sensitivity\u0020Cube | Source@Adjustment@Sign-off | The path of the first level of the adjustment hierarchy. This is used to set up the hierarchy in the Sensitivity Cube |
sign-off.adjustments.cube.signOffAdjustmentSourceLevel.PLCube | Source@Adjustment@Sign-off | The path of the first level of the adjustment hierarchy. This is used to set up the hierarchy in the PL Cube |
Datastores
Added stores
Store | Details |
---|---|
SignOffDigestStore | Contains the definition of cube-level adjustments. |
Cube schema
Added
Cube | Dimension | Hierarchy | Levels | Datastore fields | Details |
---|---|---|---|---|---|
VaR-ES Cube | Sign-off | Sign-off Status | Feed, Status, Task | Analysis hierarchy | Used to handle the status of the sign-off tasks |
VaR-ES Cube | Sign-off | Adjustment | Source, Input type | Source, Input type | Used to distinguish between unadjusted and adjusted facts |
Sensitivity Cube | Sign-off | Sign-off Status | Feed, Status, Task | Analysis hierarchy | Used to handle the status of the sign-off tasks |
Sensitivity Cube | Sign-off | Adjustment | Source, Input type | Source, Input type | Used to distinguish between unadjusted and adjusted facts |
PLCube | Sign-off | Sign-off Status | Feed, Status, Task | Analysis hierarchy | Used to handle the status of the sign-off tasks |
PLCube | Sign-off | Adjustment | Source, Input type | Source, Input type | Used to distinguish between unadjusted and adjusted facts |
Measures
Added
Cube | Measure | Details |
---|---|---|
Sensitivity Cube | \Taylor HD VaR> | Harrell-Davis Taylor VaR, the Harrell-Davis quantile estimator applied on the Taylor VaR |
Other changes
Datastore definition
The datastore configuration has been cleaned up to align with the respective cubes.
The new package com.activeviam.risk.ref.cfg.common
has been created for common stores.
The stores have been moved under the right cube package.
Please see Activating and de-activating cubes for information on which store belongs to which cube. Stores belonging to several cubes are in the common package.
ETL Source and Azure
The ETL is now compatible with Azure storage. This has lead to a re-factorization of the Source
class tree.
The Source
classes have been moved to the packages : com.activeviam.risk.ref.cfg.[scope].impl.source
with [scope]
. The result is as follows:
Value | Related Cube | Source name | Meaning |
---|---|---|---|
common | All | common-Source | Handles the loading of common data such as FX, booking hierarchy,and so on |
pnl | PnL cube | PnL-Source | Handles the loading of the PNL-specific data |
sensi | Sensi cube | Sensi-Source | Handles the loading of the Sensitivity-specific data |
var | Var-ES cube | VaR-Source | Handles the loading of the VaR-specific data |
The cube-specific ETL is only active if the related cube is active. See Activating and de-activating cubes.
ETL Structure
For each source there is the following structure (the structure is more complex for the sensitivity as it handles the vector and scalar specificity) :
Class name | Ancestor | Responsibility |
---|---|---|
scopeAzureCsvSourceConfig | scopeCsvSourceConfig IAzureCsvSourceConfig | The source Spring configuration for the target scope on Azure storage |
scopeLocalCsvSourceConfig | scopeCsvSourceConfig ILocalCsvSourceConfig | The source Spring configuration for the target scope on local storage |
scopeCsvSourceConfig | ACSVSourceConfig | The target-specific configuration of the source |
scopeSourcePatternsConfig | Definition of the source file patterns | |
scopeSourceConfiguration | Spring import file that carries on all required dependencies for this target |
The source configurations also depends on common classes:
Class name | Ancestor | Responsibility |
---|---|---|
IAzureCsvSourceConfig | ISourceConfiguration | Defines all the specific code needed to setup Azure storage |
ILocalCsvSourceConfig | ISourceConfiguration | Defines all the specific code needed to setup local storage |
ACSVSourceConfig | ISourceConfiguration | Defines the common code to setup a storage |
ISourceConfiguration | The base interface used to create the configuration | |
LocalSourceConfig | The bean that setup the local specific configuration (such as local path), injected on all local configurations | |
AzureSourceConfig | The bean that setup the Azure specific configuration (Azure connection for instance), injected on all local configurations |
The configurations are based on a diamond class pattern. IAzureCsvSourceConfig and ILocalCsvSourceConfig are interfaces, but they define code for the second branch of the diamond.
Activation
A specific spring profile must be activated to specify local or Azure storage:
azure-dataloading
for Azure storagelocal-file-system
for local storage
If no profile is defined, an error will be raised.
Maturity Converter / Day count computation
The Maturity Converter service now shares some code with the other accelerators through the common library (shared*.jar
).
To avoid any mistakes when a class in the common library has the same name as an MRA one but with a slightly different behavior, the MRA-specific classes are renamed with the prefix “MRA”.
Old name | New name | Difference from the common lib |
---|---|---|
SimpleMaturityConverter | MraSimpleMaturityConverter | Handles the moneyness axis-specific conversion |
SimpleTenorConverter | MraSimpleTenorConverter | Handles the default values as zero days |
PeriodActualTenorConverter | removed | The behavior is covered by the current SimpleTenorConverter |
Interfaces are now defined in the common library.
See the Calendar Improvement section on the What’s New page for information about calendar computation changes. The calendar convention is now more clearly defined as it is handled by the IDayCountConvention
implementation.