> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Updates since 5.4 pre-releases

This page explains the changes since [5.4.0-BETA](#changes-since-540-beta) and [5.4.0-BETA 2](#changes-since-540-beta-2), and explains any changes required to migrate from these early releases to the stated version of Atoti Market Risk:

* [Migrate from 5.4.0-BETA to BETA 2](#migrate-to-540-beta-2)
* [Migrate from 5.4.0-BETA 2 to 5.4.0](#migrate-to-540)

## Changes since 5.4.0-BETA 2

### Changed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/BAS-1395">BAS-1395</a></td><td>Appropriate datastore fields are now typed as LocalDate instead of String.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/BAS-1644">BAS-1644</a></td><td>Separated the formulas and configuration properties of PnL Explain and Taylor VaR. For details, see <a href="../../../../properties/config-properties/mr-common-config">Common module properties</a>.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1815">MR-1815</a></td><td>Changed Market Data API code based on feedback on MR 5.4.0-beta2</td></tr></tbody></table>

### Removed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1811">MR-1811</a></td><td>Removed the <code>FXRates</code> store.</td></tr></tbody></table>

### Fixed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1520">MR-1520</a></td><td>Querying the PnLExplain measure on the Sensitivity Cube is now faster than on previous versions.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1751">MR-1751</a></td><td>Made native currency measures in the sensitivity summary cubes visible and have the correct names.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1780">MR-1780</a></td><td>The continuous query handler of the FX post-processors is now configurable.</td></tr></tbody></table>

### Fixed issues introduced in 5.4.0-BETA 2

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1776">MR-1776</a></td><td>Properties to configure market data interpolation are available. However, for interpolators using pre- and post-interpolation functions, a custom implementation is needed. An example of such an implementation is provided in the application.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1777">MR-1777</a></td><td>Fixed FX risk computation from FX shifts and FX rates.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1778">MR-1778</a></td><td>The mapping between risk classes and types of market data retrieved is now configurable and is no longer hard-coded.</td></tr></tbody></table>

## Migrate to 5.4.0

Upgrading from version 5.4.0-BETA 2, see [Atoti Market Risk 5.4 Release
Notes](../../release-notes#540).

Atoti Market Risk uses Atoti Server 6.0.14-sb3 and Atoti UI 5.1.x.
For new features and fixes included in these releases, please see the [Atoti UI documentation](/products/atoti/ui/5.1/) and [Atoti UI Migration Notes](/products/atoti/ui/5.1/docs/changelog), and the [release notes for Atoti Server](https://docs.activeviam.com/products/atoti/server/6.0.14-sb3/docs/release/changelog/index.).

### Breaking Changes

* Default content server startup settings changed to reset its content to the content in `mr-application/src/main/resources/mr-bookmarks`. No persistence upon restart with new default properties.
* The properties beginning `mr.sensi.rules.<sensitivity-type>...` have been renamed `mr.sensi.rules.<sensitivity-type>.pnl-explain`. This is to accommodate the new `mr.sensi.rules.<sensitivity-type>.taylor-var` properties that allow Taylor VaR and PnL Explain calculations to be configured independently.
* The `ISensiRuleConfigurationService` interface has been replaced by the `IPnlExplainRuleConfigurationService` and `ITaylorVarRuleConfigurationService` interfaces.
* The `ISensiRuleConfigurationServicAware` interface has been removed.
* The method `getVaRExplainFormula` in `IPnLExplainFormulaProvider` has been renamed to `getPnlExplainFormulaForShift` as this method is now only used for PnL Explain calculations.
* The constructor for the `PnLExplainFormulaProvider` class now requires an `IPnlExplainRuleConfigurationService` instead of an `ISensiRuleConfigurationService`.
* The `InputSelector` class has been renamed to `PnlExplainInputSelector`. There is a corresponding `TaylorVarInputSelector` and they both implement `IInputSelector`. To autowire these beans you must now use the new qualifiers: `SP_QUALIFIER__PNL_EXPLAIN_INPUT_SELECTOR` and `SP_QUALIFIER__TAYLOR_VAR_INPUT_SELECTOR`.
* The `IInputSelectorAware` interface has been replaced by the `IPnlExplainInputSelectorAware` and `ITaylorVarInputSelectorAware` interfaces.
* The `APnlVectorFromRiskSensiPostProcessor` post-processor now implements the `ITaylorVarFormulaProviderAware` interface instead of the `IPnLExplainFormulaProviderAware` interface.
* The market data measures configuration has been changed to fix issues introduced in the MR 5.4.0-BETA 2 release.
* The Market Data API code has been changed based on feedback on MR 5.4.0-BETA 2. For details about the design and implementation suggestions, see [Market Data API](../../../dev-libraries/dev-market-data/atoti-market-data).

### Summary

* **Market Data bookmark removed**: The `Risk Factor History` bookmark under `Atoti MR & PL/Story-Telling Target Views` has been removed.
* **Content server reset on start**: The default behavior driven by the in-memory database properties in `application.yaml` has been changed to reset the content server on start with the bookmarks folder (mr-application/src/main/resources/mr-bookmarks).
* **Market Data API improvements**: The Market Data API has been modified based on feedback:
  * **Retriever factories**: Retriever factories have been split into containers holding table retrievers and coordinate translators associated with a name and factories leveraging these containers.
  * **New interpolation type added**: A new interpolation type (`InterpolationMode.VOL_TO_VARIANCE`) added to support a volatility-to-variance transformation applied to the input data and a variance-to-volatility transformation applied to the results of interpolation.
* **Scalar sensitivities using the Market Data API**: The scalar sensitivity measure chains have been migrated to use the new Market Data API:
  * **New market data configuration properties**: Properties have been added to configure the type of market data and the interpolation for each sensitivity.
  * **New measures**: Native interpolated market data measures are now created based on the market data configuration properties.
* **Added topic alias `AllMarketData`**: All the market data tables are regrouped under the new topic alias `AllMarketData`, used for loading the input files.

### Input file formats

No changes.

### Configuration

#### Configuration properties

##### Properties added

A number of properties have been added to the `mr-common-config` module beginning `mr.sensi.rules.<sensitivity-type>.taylor-var`. These properties mirror the previous `mr.sensi.rules` properties, allowing Taylor VaR and PnL Explain calculations to be configured independently. For full details of these properties, please see the [mr-common-config properties documentation](../../../../properties/config-properties/mr-common-config).
The following properties have been added to configure sensitivity calculations with the new Market Data API:

<table><thead><tr><th>Property</th><th>Default value</th><th>Description</th></tr></thead><tbody><tr><td>mr.sensi.market-data.correlation.any.any.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.correlation.any.any.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.correlation.any.any.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>correlation</td></tr><tr><td>mr.sensi.market-data.correlation.any.custom</td><td>Custom market data properties for specific risk classes. The key is the risk class name and the values are the properties for that risk class.</td><td /></tr><tr><td>mr.sensi.market-data.correlation.custom</td><td>Custom market data properties for specific sensitivity names and risk classes. The first key is the sensitivity name, the second is the risk class name and the values are the properties for that sensitivity name and risk class.</td><td /></tr><tr><td>mr.sensi.market-data.cross-gamma1.any.any.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.cross-gamma1.any.any.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.cross-gamma1.any.any.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>spot</td></tr><tr><td>mr.sensi.market-data.cross-gamma1.any.custom</td><td>Custom market data properties for specific risk classes. The key is the risk class name and the values are the properties for that risk class.</td><td /></tr><tr><td>mr.sensi.market-data.cross-gamma1.any.equity.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.cross-gamma1.any.equity.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.cross-gamma1.any.equity.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>eq spot</td></tr><tr><td>mr.sensi.market-data.cross-gamma1.custom</td><td>Custom market data properties for specific sensitivity names and risk classes. The first key is the sensitivity name, the second is the risk class name and the values are the properties for that sensitivity name and risk class.</td><td /></tr><tr><td>mr.sensi.market-data.cross-gamma2.any.any.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.cross-gamma2.any.any.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.cross-gamma2.any.any.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>spot</td></tr><tr><td>mr.sensi.market-data.cross-gamma2.any.custom</td><td>Custom market data properties for specific risk classes. The key is the risk class name and the values are the properties for that risk class.</td><td /></tr><tr><td>mr.sensi.market-data.cross-gamma2.any.equity.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.cross-gamma2.any.equity.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.cross-gamma2.any.equity.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>eq spot</td></tr><tr><td>mr.sensi.market-data.cross-gamma2.custom</td><td>Custom market data properties for specific sensitivity names and risk classes. The first key is the sensitivity name, the second is the risk class name and the values are the properties for that sensitivity name and risk class.</td><td /></tr><tr><td>mr.sensi.market-data.custom</td><td>Custom market data properties for specific sensitivity types, names and risk classes. The first key is the sensitivity type, the second is the sensitivity name, and the second is the risk class name and the values are the properties for that sensitivity name and risk class.</td><td /></tr><tr><td>mr.sensi.market-data.delta.any.any.interpolate</td><td>Whether to perform interpolation of market data.</td><td>true</td></tr><tr><td>mr.sensi.market-data.delta.any.any.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.delta.any.any.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>curve</td></tr><tr><td>mr.sensi.market-data.delta.any.custom</td><td>Custom market data properties for specific risk classes. The key is the risk class name and the values are the properties for that risk class.</td><td /></tr><tr><td>mr.sensi.market-data.delta.any.equity.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.delta.any.equity.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.delta.any.equity.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>eq spot</td></tr><tr><td>mr.sensi.market-data.delta.any.fx.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.delta.any.fx.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.delta.any.fx.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>fx spot</td></tr><tr><td>mr.sensi.market-data.delta.custom</td><td>Custom market data properties for specific sensitivity names and risk classes. The first key is the sensitivity name, the second is the risk class name and the values are the properties for that sensitivity name and risk class.</td><td /></tr><tr><td>mr.sensi.market-data.dividend.any.any.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.dividend.any.any.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.dividend.any.any.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>dividend</td></tr><tr><td>mr.sensi.market-data.dividend.any.custom</td><td>Custom market data properties for specific risk classes. The key is the risk class name and the values are the properties for that risk class.</td><td /></tr><tr><td>mr.sensi.market-data.dividend.custom</td><td>Custom market data properties for specific sensitivity names and risk classes. The first key is the sensitivity name, the second is the risk class name and the values are the properties for that sensitivity name and risk class.</td><td /></tr><tr><td>mr.sensi.market-data.gamma.any.any.interpolate</td><td>Whether to perform interpolation of market data.</td><td>true</td></tr><tr><td>mr.sensi.market-data.gamma.any.any.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.gamma.any.any.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>curve</td></tr><tr><td>mr.sensi.market-data.gamma.any.custom</td><td>Custom market data properties for specific risk classes. The key is the risk class name and the values are the properties for that risk class.</td><td /></tr><tr><td>mr.sensi.market-data.gamma.any.equity.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.gamma.any.equity.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.gamma.any.equity.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>eq spot</td></tr><tr><td>mr.sensi.market-data.gamma.any.fx.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.gamma.any.fx.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.gamma.any.fx.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>fx spot</td></tr><tr><td>mr.sensi.market-data.gamma.custom</td><td>Custom market data properties for specific sensitivity names and risk classes. The first key is the sensitivity name, the second is the risk class name and the values are the properties for that sensitivity name and risk class.</td><td /></tr><tr><td>mr.sensi.market-data.vanna1.any.any.interpolate</td><td>Whether to perform interpolation of market data.</td><td>true</td></tr><tr><td>mr.sensi.market-data.vanna1.any.any.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.vanna1.any.any.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>surface</td></tr><tr><td>mr.sensi.market-data.vanna1.any.custom</td><td>Custom market data properties for specific risk classes. The key is the risk class name and the values are the properties for that risk class.</td><td /></tr><tr><td>mr.sensi.market-data.vanna1.any.girr.interpolate</td><td>Whether to perform interpolation of market data.</td><td>true</td></tr><tr><td>mr.sensi.market-data.vanna1.any.girr.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.vanna1.any.girr.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>cube</td></tr><tr><td>mr.sensi.market-data.vanna1.custom</td><td>Custom market data properties for specific sensitivity names and risk classes. The first key is the sensitivity name, the second is the risk class name and the values are the properties for that sensitivity name and risk class.</td><td /></tr><tr><td>mr.sensi.market-data.vanna2.any.any.interpolate</td><td>Whether to perform interpolation of market data.</td><td>true</td></tr><tr><td>mr.sensi.market-data.vanna2.any.any.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.vanna2.any.any.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>curve</td></tr><tr><td>mr.sensi.market-data.vanna2.any.custom</td><td>Custom market data properties for specific risk classes. The key is the risk class name and the values are the properties for that risk class.</td><td /></tr><tr><td>mr.sensi.market-data.vanna2.any.equity.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.vanna2.any.equity.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.vanna2.any.equity.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>eq spot</td></tr><tr><td>mr.sensi.market-data.vanna2.any.fx.interpolate</td><td>Whether to perform interpolation of market data.</td><td>false</td></tr><tr><td>mr.sensi.market-data.vanna2.any.fx.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.vanna2.any.fx.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>fx spot</td></tr><tr><td>mr.sensi.market-data.vanna2.custom</td><td>Custom market data properties for specific sensitivity names and risk classes. The first key is the sensitivity name, the second is the risk class name and the values are the properties for that sensitivity name and risk class.</td><td /></tr><tr><td>mr.sensi.market-data.vega.any.any.interpolate</td><td>Whether to perform interpolation of market data.</td><td>true</td></tr><tr><td>mr.sensi.market-data.vega.any.any.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.vega.any.any.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>surface</td></tr><tr><td>mr.sensi.market-data.vega.any.custom</td><td>Custom market data properties for specific risk classes. The key is the risk class name and the values are the properties for that risk class.</td><td /></tr><tr><td>mr.sensi.market-data.vega.any.girr.interpolate</td><td>Whether to perform interpolation of market data.</td><td>true</td></tr><tr><td>mr.sensi.market-data.vega.any.girr.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.vega.any.girr.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>cube</td></tr><tr><td>mr.sensi.market-data.vega.custom</td><td>Custom market data properties for specific sensitivity names and risk classes. The first key is the sensitivity name, the second is the risk class name and the values are the properties for that sensitivity name and risk class.</td><td /></tr><tr><td>mr.sensi.market-data.volga.any.any.interpolate</td><td>Whether to perform interpolation of market data.</td><td>true</td></tr><tr><td>mr.sensi.market-data.volga.any.any.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.volga.any.any.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>surface</td></tr><tr><td>mr.sensi.market-data.volga.any.custom</td><td>Custom market data properties for specific risk classes. The key is the risk class name and the values are the properties for that risk class.</td><td /></tr><tr><td>mr.sensi.market-data.volga.any.girr.interpolate</td><td>Whether to perform interpolation of market data.</td><td>true</td></tr><tr><td>mr.sensi.market-data.volga.any.girr.interpolation-mode</td><td>The type of interpolator to use: linear, cubic, spline etc.</td><td>linear</td></tr><tr><td>mr.sensi.market-data.volga.any.girr.market-data-type</td><td>The type of market data. This is used to decide which market data store to retrieve the data from. For example, spot, curve, cube.</td><td>cube</td></tr><tr><td>mr.sensi.market-data.volga.custom</td><td>Custom market data properties for specific sensitivity names and risk classes. The first key is the sensitivity name, the second is the risk class name and the values are the properties for that sensitivity name and risk class.</td><td /></tr></tbody></table>

Properties in the `mr-common-config` module beginning `mr.sensi.rules` have been renamed to `mr.sensi.rules.<sensitivity-type>.pnl-explain`. Along with the new `mr.sensi.rules.<sensitivity-type>.taylor-var` properties, this allows Taylor VaR and PnL Explain calculations to be configured independently. For full details of these properties, please see the [mr-common-config properties documentation](../../../../properties/config-properties/mr-common-config)

#### Property files

##### Files Modified

###### [application.yaml](../../../../properties/property-files/application-yaml)

New properties:

<table><thead><tr><th>Property Name</th><th>Value</th><th>Description</th></tr></thead><tbody><tr><td>mr.application.content-server.db.file.name</td><td>null</td><td>Specifies the name of the file to which content server is persisted.</td></tr></tbody></table>

### Datastores

#### Modified stores

The types of the following store fields have been changed:

<table><thead><tr><th>Store</th><th>Field</th><th>Old type</th><th>New type</th><th>Old default</th><th>New default</th><th>Note</th></tr></thead><tbody><tr><td>TradeAttributes</td><td>MaturityDate</td><td>String</td><td>Date</td><td>N/A</td><td>1970-01-01</td><td /></tr><tr><td>TradeAttributes</td><td>TradeDate</td><td>String</td><td>Date</td><td>N/A</td><td>1970-01-01</td><td /></tr><tr><td>TradeSensitivities</td><td>MaturityDates</td><td>String</td><td>Date</td><td>N/A</td><td>1970-01-01</td><td>This change does not apply to the vectorized TradeSensitivities store.</td></tr><tr><td>TradeSensitivities</td><td>TenorDates</td><td>String</td><td>Date</td><td>N/A</td><td>1970-01-01</td><td>This change does not apply to the vectorized TradeSensitivities store.</td></tr></tbody></table>

### Database

#### Modified tables

The types of the following database table fields have been changed:

<table><thead><tr><th>Table</th><th>Field</th><th>Old type</th><th>New type</th><th>Old default</th><th>New default</th><th>Note</th></tr></thead><tbody><tr><td>TRADE\_ATTRIBUTES</td><td>MATURITY\_DATE</td><td>String</td><td>Date</td><td>N/A</td><td>1970-01-01</td><td /></tr><tr><td>TRADE\_ATTRIBUTES</td><td>TRADE\_DATE</td><td>String</td><td>Date</td><td>N/A</td><td>1970-01-01</td><td /></tr><tr><td>TRADE\_SENSITIVITIES</td><td>MATURITY\_DATES</td><td>String</td><td>Date</td><td>N/A</td><td>1970-01-01</td><td /></tr><tr><td>TRADE\_SENSITIVITIES</td><td>TENOR\_DATES</td><td>String</td><td>Date</td><td>N/A</td><td>1970-01-01</td><td /></tr><tr><td>TRADE\_SENSITIVITIES\_VECTOR</td><td>MATURITY\_DATES</td><td>String</td><td>Date</td><td>N/A</td><td>1970-01-01</td><td /></tr><tr><td>TRADE\_SENSITIVITIES\_VECTOR</td><td>TENOR\_DATES</td><td>String</td><td>Date</td><td>N/A</td><td>1970-01-01</td><td /></tr></tbody></table>

#### Deleted tables

FXRATES has been removed and replaced by the new Market Data API store [FxRateMarketData](../../../../datastore/marketdata).

### Cube schema

No changes.

### Measures

No changes.

### Context values

No changes.

### Other changes

* [PnL Explain and Taylor VaR Formula Split](./migrate-5.4#pnl-explain-and-taylor-var-formula-split)

## Changes since 5.4.0-BETA

### Added

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1715">MR-1715</a></td><td>Added a post-processor to retrieve data from the SpotMarketData store.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1716">MR-1716</a></td><td>Added a post-processor to retrieve data from the CurveMarketData store.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1717">MR-1717</a></td><td>Added a post-processor to retrieve data from the SurfaceMarketData store.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1718">MR-1718</a></td><td>Added a post-processor to retrieve data from the CubeMarketData store.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1739">MR-1739</a></td><td>Added support for DirectQuery with Databricks.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1740">MR-1740</a></td><td>Added scenario-indexed adjustments for the VaR-ES cube PnL vectors.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1749">MR-1749</a></td><td>Corporate Actions have been migrated to the new Market Data API.</td></tr></tbody></table>

### Changed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1721">MR-1721</a></td><td>Implemented FX post-processor with new market data API.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1723">MR-1723</a></td><td>Added <code>MeasureCreator</code> for new post-processors in <code>ISensitivityMarketDataMeasures</code>.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1725">MR-1725</a></td><td>Updated FX measures to use the new FX post-processor.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1731">MR-1731</a></td><td>The sensitivities vector data model format has been deprecated.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1732">MR-1732</a></td><td>The default data model for sensitivities changed from vector model to scalar model.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1742">MR-1742</a></td><td>Used fluent API for market data post-processor.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1750">MR-1750</a></td><td>Dividends have been migrated to the new Market Data API for scalar sensitivities.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1772">MR-1772</a></td><td>Updated SQL scripts for DirectQuery with Microsoft SQL Server and Snowflake, to match the schema of the new Market Data API.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1773">MR-1773</a></td><td>Rename <code>INSTRUMENT\_MARKET\_DATA\_STORE</code> to <code>SPOT\_MARKET\_DATA\_STORE</code>, along with all classes that refer to the <code>INSTRUMENT\_MARKET\_DATA\_STORE</code>.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1775">MR-1775</a></td><td>Removed “store” suffix in market data store names.</td></tr></tbody></table>

\| [MR-1775](https://activeviam.atlassian.net/browse/MR-1775) | Removed “store” suffix in market data store names. |

### Removed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1726">MR-1726</a></td><td>Removed the debug market data measures.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1774">MR-1774</a></td><td>Removed market data cube.</td></tr></tbody></table>

### Fixed

<table><thead><tr><th>Issue Key</th><th>Details</th></tr></thead><tbody><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1743">MR-1743</a></td><td>Upgraded to Solutions Tools BOM 2.2-AS6.0 to fix bug in DoctorPivot, leading to a failure to retrieve the measures in the application cubes.</td></tr></tbody></table>

### Fixed issues introduced in 5.4.0-BETA

None.

## Migrate to 5.4.0-BETA 2

Upgrading from version 5.4.0-beta, see [Atoti Market Risk 5.4 Release
Notes](../../release-notes#540).

Atoti Market Risk uses Atoti Server 6.0.12-sb3 and Atoti UI 5.1.x.
For new features and fixes included in these releases, please see the [Atoti UI documentation](/products/atoti/ui/5.1/) and [Atoti UI Migration Notes](/products/atoti/ui/5.1/docs/changelog), and the [release notes for Atoti Server](https://docs.activeviam.com/products/atoti/server/6.0.12-sb3/docs/release/changelog/index.).

### Breaking Changes

* Vectorized sensitivities have been deprecated: scalar sensitivities should be used instead of vectorized sensitivities.
* The default data model for sensitivities changed from vector model to scalar model.
* The CorporateAction store has been removed for scalar sensitivities, and deprecated for vectorized sensitivities: it is still used to handle dividends for vectorized sensitivities, but is not used anymore for scalar
  sensitivities.
* Stock splits are handled in a new store: the `SplitRatioMarketData` store is used for the handling of stock split ratios both for vectorized
  and scalar sensitivities.
* New input files for Dividends and stock Split Ratios have been created.
* New Market Data input files: spot, curve, surface, cube, and correlation market data files have been created to replace the previous market data input file.
* The Market Data Cube has been deleted : Market data measures in the Sensitivities Cube need to be used to display market data instead of the Market Data Cube.
* The debug market data measures have been removed.
* The modules `mr-market-data-lib` and `mr-market-data-config` have been removed. They were used for the configuration of the Market Data Cube.
* In the ThetaCopper class, some methods have been renamed. The `marketDataPostProcessor` and `scalarMarketDataPostProcessor` methods have been renamed.
* The `com.activeviam.accelerator.common.dates.IMaturityConverter` interface has been removed from the module `mr-common-lib` and has been replaced by the
  interface `com.activeviam.accelerator.common.dates.IMaturityConverter`.
* Some methods have been added to the `ISensitivityMarketDataMeasures` interface and the following methods have been changed: `scalarNativeIntermediateInterpolatedDividend`, `scalarNativeIntermediateInterpolatedTheta`, `vectorNativeIntermediateInterpolatedTheta`
* For the market data measure chains configuration: the classes names `*CurrentDateMarketDataChain`, `*NextDateMarketDataChain` and `*PreviousDateMarketDataChain` hae been changed to use the new market data API.
* The SQL scripts to create and load data for DirectQuery with Microsoft SQL Server and Snowflake have been modified to match the schema of the new Market Data API.

### Summary

* [Input file formats changed for market data](./migrate-5.4#modified).
* [Migration of market data measures to new Market Data API for scalar sensitivities](./migrate-5.4#migration-of-market-data-measures-to-new-market-data-api-for-scalar-sensitivities).
* [Removal of debug market data measures](./migrate-5.4#removal-of-debug-market-data-measures).
* [New Dividend and Split Ratio stores](./migrate-5.4#new-dividend-and-split-ratio-stores).
* [Maven dependencies](#maven-dependencies).
* [IMaturityConverterAware class](#imaturityconverteraware-class).
* [Theta: methods renamed](#theta-methods-renamed).
* [Market Data retriever names](#market-data-retriever-names).
* [Deletion of Market Data Cube](./migrate-5.4#deletion-of-market-data-cube).

### Input file formats

#### Added

#### New files

<table><thead><tr><th>File</th><th>Purpose</th></tr></thead><tbody><tr><td><a href="../../../../input-files/correlation-market-data">Correlation\_Market\_Data.csv</a></td><td>Stores the correlation market data.</td></tr><tr><td><a href="../../../../input-files/dividend">Dividend.csv</a></td><td>Stores the dividend market data.</td></tr><tr><td><a href="../../../../input-files/fx-rate-market-data">FX\_Rate\_Market\_Data.csv</a></td><td>Stores the FX rate market data.</td></tr><tr><td><a href="../../../../input-files/split-ratio">SplitRatio.csv</a></td><td>Stores the stock split ratio market data.</td></tr></tbody></table>

#### Modified

The file `Instrument_Market_Data.csv` has been renamed to `Spot_Market_Data.csv`

#### Removed

<table><thead><tr><th>File</th><th>Details</th></tr></thead><tbody><tr><td><code>FXRates.csv</code></td><td>The input file <code>FX\_Rate\_Market\_Data.csv</code> has to be used instead.</td></tr></tbody></table>

### Configuration

#### Configuration properties

##### Properties added

The following properties have been created in the `mr-sensi-config` module:

<table><thead><tr><th>Property</th><th>Default value</th><th>Description</th></tr></thead><tbody><tr><td>mr.sensi.file-patterns.split-ratio</td><td>“\*<em>SplitRatio</em>.csv”</td><td>Pattern for the Split Ratio input file.</td></tr><tr><td>mr.sensi.file-patterns.dividends</td><td>“\*<em>Dividends</em>.csv”</td><td>Pattern for the Dividend input file.</td></tr><tr><td>mr.sensi.file-patterns.correlation-market-data</td><td>“\*<em>Correlation\_Market\_Data</em>.csv”</td><td>Pattern for the Correlation market data input file.</td></tr></tbody></table>

##### Properties removed

the `"mr.enable.cubes.market-data` property has been removed.

#### Property files

No changes.

### Datastores

#### Added store configurations

<table><thead><tr><th>Store</th><th>Class</th><th>Details</th></tr></thead><tbody><tr><td><a href="../../../../datastore/sensitivities/correlation-market-data">CorrelationMarketData</a></td><td>CorrelationMarketDataStore</td><td>Contains Correlation market data.</td></tr><tr><td><a href="../../../../datastore/sensitivities/dividend-market-data">DividendMarketData</a></td><td>DividendMarketDataStore</td><td>Contains split ratio market data.</td></tr><tr><td><a href="../../../../datastore/marketdata">FxRateMarketData</a></td><td>FxRateMarketDataStore</td><td>A store that is part of the new Market Data API for FX Rate market data.</td></tr><tr><td><a href="../../../../datastore/sensitivities/split-ratio-market-data">SplitRatioMarketData</a></td><td>SplitRatioMarketDataStore</td><td>Contains dividend market data.</td></tr></tbody></table>

* The `CorporateAction` store has been deprecated. It is still used to handle dividends for vectorized sensitivities, but not for scalar
  sensitivities. The stores `DividendMarketData` and `SplitRatioMarketData` should be used instead.
* The `MarketData` store has been deprecated. It is still used to handle dividends for vectorized sensitivities, but not for scalar
  sensitivities. The stores `SpotMarketData`, `CurveMarketData`, `SurfaceMarketData`, `CubeMarketData` and `CorrelationMarketData` should be used instead.
* The `FXRates` store has been deprecated. It is not used anymore, and will be removed. The store `FxRateMarketData` needs to be used instead.

\*For details, see [New Dividend and Split Ratio stores](#new-dividend-and-split-ratio-stores).

#### Modified store configurations

* The `InstrumentMarketData` store has been renamed to [`SpotMarketData`](../../../../datastore/marketdata).
* The `CurveMarketDataStore` store has been renamed to [`CurveMarketData`](../../../../datastore/marketdata).
* The `SurfaceMarketDataStore` store has been renamed to [`SurfaceMarketData`](../../../../datastore/marketdata).
* The `CubeMarketDataStore` store has been renamed to [`CubeMarketData`](../../../../datastore/marketdata).

#### Marked for removal

<table><thead><tr><th>Name</th><th>Type</th><th>Module</th><th>Affected Class</th></tr></thead><tbody><tr><td>Market Data Store</td><td>Store configuration for vectors format</td><td>mr-sensi-config</td><td>VectorMarketDataStoreConfig</td></tr><tr><td>Trade Sensitivities Store</td><td>Store configuration for vectors format</td><td>mr-sensi-config</td><td>VectorTradeSensitivitiesStoreConfig</td></tr><tr><td>Sensitivities Aggregated Store</td><td>Store configuration for vectors format</td><td>mr-sensi-config</td><td>VectorSensiAggregatedStoreConfig</td></tr><tr><td>Sensitivities Flat Store</td><td>Store configuration for vectors format</td><td>mr-sensi-config</td><td>VectorSensiFlatStoreConfig</td></tr><tr><td>FXRates Store</td><td>Store configuration for FX rates that is not used any more t</td><td>mr-common-config</td><td>FxRateStoreConfig</td></tr></tbody></table>

### Database

Added tables

<table><thead><tr><th>Table</th><th>Details</th></tr></thead><tbody><tr><td><a href="../../../../database/correlation_market_data">CORRELATION\_MARKET\_DATA</a></td><td>Market data related to the correlation between risk factors</td></tr><tr><td><a href="../../../../database/cube_market_data">CUBE\_MARKET\_DATA</a></td><td>Market data defined along three axes (tenors, moneyness and underlying maturities).</td></tr><tr><td><a href="../../../../database/curve_market_data">CURVE\_MARKET\_DATA</a></td><td>Market data defined along a tenor axis.</td></tr><tr><td><a href="../../../../database/dividend_market_data">DIVIDEND\_MARKET\_DATA</a></td><td>Market data related to dividends.</td></tr><tr><td><a href="../../../../database/fx_rate_market_data">FX\_RATE\_MARKET\_DATA</a></td><td>FX rates.</td></tr><tr><td><a href="../../../../database/split_ratio_market_data">SPLIT\_RATIO\_MARKET\_DATA</a></td><td>Market data related to stock splits.</td></tr><tr><td><a href="../../../../database/spot_market_data">SPOT\_MARKET\_DATA</a></td><td>Spot price market data.</td></tr><tr><td><a href="../../../../database/surface_market_data">SURFACE\_MARKET\_DATA</a></td><td>Market data defined along two axes (tenors and moneyness).</td></tr></tbody></table>

### Cube schema

The Market Data Cube has been deleted.

### Measures

#### Added

<table><thead><tr><th>Cube</th><th>Measure</th><th>Details</th></tr></thead><tbody><tr><td>Sensitivity Cube</td><td><a href="../../../../cube/measures/sensi/market-data">Split Ratio 2 Current</a></td><td>Split of the secondary underlying instrument as of current date</td></tr><tr><td>Sensitivity Cube</td><td><a href="../../../../cube/measures/sensi/market-data">Split Ratio 2 Previous</a></td><td>Split of the secondary underlying instrument as of previous date</td></tr></tbody></table>

#### Removed

The following debug market data measures found in the `mr-sensi-config` module were removed:

<table><thead><tr><th>Measure removed</th><th>File location</th></tr></thead><tbody><tr><td>Current Market Data Native Intermediate Int Debug</td><td><code>CorrelationCurrentDateMarketDataChain.java</code>, <code>DeltaCurrentDateMarketDataChain.java</code>, <code>GammaCurrentDateMarketDataChain.java</code>, <code>VannaCurrentDateMarketDataChain.java</code>, <code>VegaCurrentDateMarketDataChain.java</code>, <code>VolgaCurrentDateMarketDataChain.java</code></td></tr><tr><td>Current Market Data 2 Native Intermediate Int Debug</td><td><code>CorrelationCurrentDateMarketDataChain.java</code>, <code>VannaCurrentDateMarketDataChain.java</code></td></tr><tr><td>Current Market Data Native Intermediate Filtered Int Debug</td><td><code>CorrelationCurrentDateMarketDataChain.java</code>, <code>DeltaCurrentDateMarketDataChain.java</code>, <code>GammaCurrentDateMarketDataChain.java</code>, <code>VannaCurrentDateMarketDataChain.java</code>, <code>VegaCurrentDateMarketDataChain.java</code>, <code>VolgaCurrentDateMarketDataChain.java</code></td></tr><tr><td>Current Market Data 2 Native Intermediate Filtered Int Debug</td><td><code>CorrelationCurrentDateMarketDataChain.java</code>, <code>VannaCurrentDateMarketDataChain.java</code></td></tr><tr><td>Current Market Data Native Expand Intermediate Int Debug</td><td><code>CorrelationCurrentDateMarketDataChain.java</code>, <code>DeltaCurrentDateMarketDataChain.java</code>, <code>GammaCurrentDateMarketDataChain.java</code>, <code>VannaCurrentDateMarketDataChain.java</code>, <code>VegaCurrentDateMarketDataChain.java</code>, <code>VolgaCurrentDateMarketDataChain.java</code></td></tr><tr><td>Current Market Data 2 Native Expand Intermediate Int Debug</td><td><code>CorrelationCurrentDateMarketDataChain.java</code>, <code>VannaCurrentDateMarketDataChain.java</code></td></tr><tr><td>Current Market Native Debug</td><td><code>CorrelationCurrentDateMarketDataChain.java</code>, <code>DeltaCurrentDateMarketDataChain.java</code>, <code>GammaCurrentDateMarketDataChain.java</code>, <code>VannaCurrentDateMarketDataChain.java</code>, <code>VegaCurrentDateMarketDataChain.java</code>, <code>VolgaCurrentDateMarketDataChain.java</code></td></tr><tr><td>Current Market Native 2 Debug</td><td><code>CorrelationCurrentDateMarketDataChain.java</code>, <code>VannaCurrentDateMarketDataChain.java</code></td></tr><tr><td>Previous Market Native Debug</td><td><code>CorrelationPreviousDateMarketDataChain.java</code>, <code>DeltaPreviousDateMarketDataChain.java</code>, <code>GammaPreviousDateMarketDataChain.java</code>, <code>VannaPreviousDateMarketDataChain.java</code>, <code>VegaPreviousDateMarketDataChain.java</code>, <code>VolgaPreviousDateMarketDataChain.java</code></td></tr><tr><td>Previous Market Native 2 Debug</td><td><code>CorrelationPreviousDateMarketDataChain.java</code>, <code>VannaPreviousDateMarketDataChain.java</code></td></tr></tbody></table>

For additional changes related to this, see [Removal of debug market data measures](./migrate-5.4#removal-of-debug-market-data-measures).

### Context values

#### Removed

<table><thead><tr><th>Name</th><th>Details</th></tr></thead><tbody><tr><td>EnableMDStringDebug</td><td>The context value was removed as part of removing the Debug measures.</td></tr></tbody></table>

### Modules removed

The modules `mr-market-data-lib` and `mr-market-data-config` have been removed. They were used for the configuration of the Market Data Cube.

### Other changes

#### Maven dependencies

The following test dependency has been added to the `mr-sensi-lib` module:

```
    <dependency>
        <groupId>com.activeviam.apps</groupId>
        <artifactId>market-data-api</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
    </dependency>
```

#### IMaturityConverterAware class

The `com.activeviam.accelerator.common.dates.IMaturityConverter` interface has been removed from the module `mr-common-lib` and has been replaced by the
interface `com.activeviam.accelerator.common.dates.IMaturityConverter`.

#### Theta: methods renamed

In the class `ThetaCopper`, the following methods have been renamed:

<table><thead><tr><th>New method name</th><th>Old method name</th></tr></thead><tbody><tr><td>vectorTimeToMaturity</td><td>marketDataPostProcessor</td></tr><tr><td>scalarTimeToMaturity</td><td>scalarMarketDataPostProcessor</td></tr></tbody></table>

#### Market Data retriever names

The market data retriever names have been renamed as follows in the `*MarketDataRetrievalConfig` configuration classes:

<table><thead><tr><th>Configuration class</th><th>New value of constant <code>RETRIEVER\_NAME</code></th><th>Old value of constant <code>RETRIEVER\_NAME</code></th></tr></thead><tbody><tr><td>SpotMarketDataRetrievalConfig (previously InstrumentMarketDataRetrievalConfig)</td><td>SPOT\_MARKET\_DATA\_RETRIEVER</td><td>DEFAULT\_DATE\_SHIFTING\_INSTRUMENT\_RETRIEVER</td></tr><tr><td>SpotMarketDataRetrievalConfig</td><td>CURVE\_MARKET\_DATA\_RETRIEVER</td><td>DEFAULT\_DATE\_SHIFTING\_CURVE\_RETRIEVER</td></tr><tr><td>SpotMarketDataRetrievalConfig</td><td>SURFACE\_MARKET\_DATA\_RETRIEVER</td><td>DEFAULT\_DATE\_SHIFTING\_SURFACE\_RETRIEVER</td></tr><tr><td>SpotMarketDataRetrievalConfig</td><td>CUBE\_MARKET\_DATA\_RETRIEVER</td><td>DEFAULT\_DATE\_SHIFTING\_CUBE\_RETRIEVER</td></tr></tbody></table>
