> ## 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.

# Migration notes from beta

This page explains the changes since 5.3.0-beta, plus any changes required to migrate from 5.3.0-beta to the stated version of Atoti Market Risk.

## Changes since 5.3.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-1606">MR-1606</a></td><td>Added a new implementation of IVaRQuantile: SimpleQuantile.</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-1605">MR-1605</a></td><td>Quantile type and rounding method display names can now be set with properties.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1595">MR-1595</a></td><td>Upgraded to Atoti Server 6.0.9.</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-1615">MR-1615</a></td><td>Removed the ActivePivotRemotingServicesConfig import.</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-1392">MR-1392</a></td><td>The ladder computations for PnL Explain and Taylor VaR have been fixed by replacing <code>PnL = PnL(Ladder(shift), sensi)</code> with <code>PnL = Ladder(PnL(shift), shift)</code>.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1610">MR-1610</a></td><td>Configured missing Volga Taylor VaR measures.</td></tr><tr><td><a href="https://activeviam.atlassian.net/browse/MR-1618">MR-1618</a></td><td>Ladder-based sensitivity measures can now be excluded from the configuration.</td></tr></tbody></table>

## Migrate to 5.3.0

Upgrading from version 5.3.0-beta, see [Atoti Market Risk 5.3 Release
Notes](../../release-notes#530).

Atoti Market Risk uses Atoti Server 6.0.9 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.7/docs/release/changelog/index.).

### Summary

* **Java 17 upgrade** : The Atoti Market Risk is now compatible with, and requires Java 17.
* **Spring Security upgrade** : We have upgraded Spring Security to version 5.8.7 to resolve vulnerabilities and prepare for the upgrade to Spring Security 6.0 (via Spring Boot 3).
* **Atoti Server upgrade** : The Atoti Market Risk has been upgraded to Atoti Server 6.0.9.
* **Solutions Tools BOM upgrade** : The Solutions Tools BOM dependency has been upgraded to 2.0-AS6.0. All included tools are compatible with, and require Java 17.
* **Volga Taylor VaR measures**: Volga Taylor VaR measures have been added to the Solution.
* **Statistical measures for interpolated market shift measures**: The minimum, maximum, average, and percentile measures have been added for interpolated market
  shift measures.
* **PnL Explain and Taylor VaR**: The ladder computation has been fixed by replacing `PnL = PnL(Ladder(shift), sensi)` with `PnL = Ladder(PnL(shift), shift)`.
* **IPnLExplainFormulaProvider consistency cleanup**: The new `getShiftFromMDFormula` function has been added to the `IPnLExplainFormulaProvider`to transform market data into a shift. See [IPnLExplainFormulaProvider consistency cleanup](#ipnlexplainformulaprovider-consistency-cleanup).
* **Removal of ActivePivotRemotingServicesConfig**: The import of `ActivePivotRemotingServicesConfig` has been removed from the configuration class `MarketRiskConfig`.
* **Made ladder-based sensitivity measures optional**: Ladder-based sensitivity measures can now be excluded from the configuration. If the configuration classes are excluded, no visible measures will be present in the cube. If the Solution is configured to use ladders as an input to PnL Explain and Taylor VaR calculations, the result will be NaN.

### Breaking Changes

* The MR 5.3.0 release is now compatible with, and requires Java 17.
* The Solutions Tools BOM dependency has been upgraded to 2.0-AS6.0. All included tools are compatible with, and require Java 17.
* The Spring Security configuration has been upgraded to version 5.8.7, for future compatibility with Spring 6.0. Customizations built on previous versions will need to be migrated.
* A new `getShiftFromMDFormula` function has been added to the `IPnLExplainFormulaProvider`.
* The import of `ActivePivotRemotingServicesConfig` has been removed from the configuration class `MarketRiskConfig`.

### Properties

#### Properties Added

<table><thead><tr><th>Old Property Name</th><th>New Property Name</th><th>Comment</th></tr></thead><tbody><tr><td>mr.cubes.context-values.defaults.quantile-type</td><td>mr.cubes.context-values.defaults.quantile</td><td>Property name changed to bring it in line with other references to quantiles. No other changes made to the property.</td></tr><tr><td>mr.cubes.context-values.defaults.rounding-type</td><td>mr.cubes.context-values.defaults.rounding-method</td><td>Property name changed to bring it in line with other references to rounding methods. No other changes made to the property.</td></tr></tbody></table>

### Beans

#### Added

The following beans have been added to define parameters related to Volga Taylor VaR:

<table><thead><tr><th>Constant</th><th>Qualifier</th><th>Type</th><th>Details</th></tr></thead><tbody><tr><td>SP\_QUALIFIER\_\_VOLGA\_TAYLOR\_VAR\_PARAMETERS</td><td>“Volga Taylor VAR Parameters”</td><td><code>VaRMetricParametersAndNames</code></td><td>Parameters and constants used for Volga Taylor VAR measures.</td></tr><tr><td>SP\_QUALIFIER\_\_VOLGA\_TAYLOR\_ES\_PARAMETERS</td><td>“Volga Taylor ES Parameters”</td><td><code>VaRMetricParametersAndNames</code></td><td>Parameters and constants used for Volga Taylor ES measures.</td></tr><tr><td>SP\_QUALIFIER\_\_VOLGA\_TAYLOR\_ETG\_PARAMETERS</td><td>“Volga Taylor ETG Parameters”</td><td><code>VaRMetricParametersAndNames</code></td><td>Parameters and constants used for Volga Taylor ETG measures.</td></tr><tr><td>SP\_QUALIFIER\_\_VOLGA\_TAYLOR\_VAE\_PARAMETERS</td><td>“Volga Taylor VAE Parameters”</td><td><code>VaRMetricParametersAndNames</code></td><td>Parameters and constants used for Volga Taylor VAE measures.</td></tr><tr><td>SP\_QUALIFIER\_\_VOLGA\_TAYLOR\_WVAE\_PARAMETERS</td><td>“Volga Taylor WVAE Parameters”</td><td><code>VaRMetricParametersAndNames</code></td><td>Parameters and constants used for Volga Taylor WVAE measures.</td></tr><tr><td>SP\_QUALIFIER\_\_VOLGA\_TAYLOR\_WVAR\_PARAMETERS</td><td>“Volga Taylor WVAR Parameters”</td><td><code>VaRMetricParametersAndNames</code></td><td>Parameters and constants used for Volga Taylor WVAR measures.</td></tr></tbody></table>

Those constants are defined in the `SpringConstants` class of the `mr-common-lib` module, and the beans are defined in the `mr-sensi-config` module.

In the following files in the `mr-sensi-config` module:

* CashShiftViewerChain
* CorrelationShiftViewerChain
* CrossGammaShiftViewerChain
* DeltaShiftViewerChain
* GammaShiftViewerChain
* VannaShiftViewerChain
* VegaShiftViewerChain
* VolgaShiftViewerChain

the following beans have been added to define statistical measures on interpolated market shift measures:

<table><thead><tr><th>Constant</th><th>Qualifier</th><th>Type</th><th>Details</th></tr></thead><tbody><tr><td>SENSI + SHIFT\_VECTOR\_INTERPOLATED\_MIN</td><td>SENSI + “Shift Vector Interpolated Minimum”</td><td><code>CopperMeasure</code></td><td>Measure computing the minimum of the Market Shift vector used by the sensitivity, interpolated, not normalized.</td></tr><tr><td>SENSI + SHIFT\_VECTOR\_INTERPOLATED\_MAX</td><td>SENSI + “Shift Vector Interpolated Maximum”</td><td><code>CopperMeasure</code></td><td>Measure computing the maximum of the Market Shift vector used by the sensitivity, interpolated, not normalized.</td></tr><tr><td>SENSI + SHIFT\_VECTOR\_INTERPOLATED\_AVG</td><td>SENSI + “Shift Vector Interpolated Average”</td><td><code>CopperMeasure</code></td><td>Measure computing the average of the Market Shift vector used by the sensitivity, interpolated, not normalized.</td></tr><tr><td>SENSI + SHIFT\_VECTOR\_INTERPOLATED\_PERCENTILE</td><td>SENSI + “Shift Vector Interpolated Percentile”</td><td><code>CopperMeasure</code></td><td>Measure computing the percentile of the Market Shift vector used by the sensitivity, interpolated, not normalized.</td></tr><tr><td>SENSI + SHIFT\_VECTOR\_INTERPOLATED\_NORMALIZED\_MIN</td><td>SENSI + “Shift Vector Interpolated Normalized Minimum”</td><td><code>CopperMeasure</code></td><td>Measure computing the maximum of the Market Shift vector used by the sensitivity, interpolated, normalized.</td></tr><tr><td>SENSI + SHIFT\_VECTOR\_INTERPOLATED\_NORMALIZED\_MAX</td><td>SENSI + “Shift Vector Interpolated Normalized Maximum”</td><td><code>CopperMeasure</code></td><td>Measure computing the minimum of the Market Shift vector used by the sensitivity, interpolated, normalized.</td></tr><tr><td>SENSI + SHIFT\_VECTOR\_INTERPOLATED\_NORMALIZED\_AVG</td><td>SENSI + “Shift Vector Interpolated Normalized Average”</td><td><code>CopperMeasure</code></td><td>Measure computing the average of the Market Shift vector used by the sensitivity, interpolated, normalized.</td></tr><tr><td>SENSI + SHIFT\_VECTOR\_INTERPOLATED\_NORMALIZED\_PERCENTILE</td><td>SENSI + “Shift Vector Interpolated Normalized Percentile”</td><td><code>CopperMeasure</code></td><td>Measure computing the percentile of the Market Shift vector used by the sensitivity, interpolated, normalized.</td></tr></tbody></table>

In the `mr-sensi-config` module, the following classes containing the definition of Volga Taylor VaR measures have been added:

<table><thead><tr><th>Package</th><th>File Name</th><th>Details</th></tr></thead><tbody><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.es</td><td>VolgaTaylorESContextualChain</td><td>Definition of the Volga Taylor ES measures using the ESConfidenceLevel context value for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.es</td><td>VolgaTaylorESFixedConfidenceChain</td><td>Definition of the Volga Taylor ES measures using fixed values for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.etg</td><td>VolgaTaylorETGContextualChain</td><td>Definition of the Volga Taylor ETG measures using the ETGConfidenceLevel context value for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.etg</td><td>VolgaTaylorETGFixedConfidenceChain</td><td>Definition of the Volga Taylor ETG measures using fixed values for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.vae</td><td>VolgaTaylorVAEContextualChain</td><td>Definition of the Volga Taylor VAE measures using the VAEConfidenceLevel context value for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.vae</td><td>VolgaTaylorVAEFixedConfidenceChain</td><td>Definition of the Volga Taylor VAE measures using fixed values for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.var</td><td>VolgaTaylorVARContextualChain</td><td>Definition of the Volga Taylor VAR measures using the VARConfidenceLevel context value for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.var</td><td>VolgaTaylorVARFixedConfidenceChain</td><td>Definition of the Volga Taylor VAR measures using fixed values for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvae</td><td>VolgaTaylorWVAEContextualChain</td><td>Definition of the Volga Taylor Weighted VAE measures using the VAEConfidenceLevel context value for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvae</td><td>VolgaTaylorWVAEFixedConfidenceChain</td><td>Definition of the Volga Taylor Weighted VAE measures using fixed values for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvar</td><td>VolgaTaylorWVARContextualChain</td><td>Definition of the Volga Taylor Weighted VAR measures using the VAEConfidenceLevel context value for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvar</td><td>VolgaTaylorWVARFixedConfidenceChain</td><td>Definition of the Volga Taylor Weighted VAR measures using fixed values for the percentile.</td></tr><tr><td>com.activeviam.mr.sensi.measures.chains.complete.volga.taylor</td><td>VolgaTaylorChain</td><td>Definition of the PnL vector measures used for Volga Taylor VaR and of the Volga Taylor Tail VaE and Volga Taylor Tail VaR measures.</td></tr><tr><td>com.activeviam.mr.sensi.measures.config.parameters.taylor</td><td>VolgaTaylorParametersConfig</td><td>Definition of the parameters used for Volga Taylor VaR measure definitions.</td></tr></tbody></table>

In the `mr-sensi-config` module, imports of the following configuration files have been added to the VolgaTaylorMeasuresConfig class:

* VolgaTaylorETGContextualChain
* VolgaTaylorETGFixedConfidenceChain
* VolgaTaylorVAEContextualChain
* VolgaTaylorVAEFixedConfidenceChain
* VolgaTaylorWVAEContextualChain
* VolgaTaylorWVAEFixedConfidenceChain
* VolgaTaylorWVARContextualChain
* VolgaTaylorWVARFixedConfidenceChain
* VolgaTaylorESContextualChain
* VolgaTaylorESFixedConfidenceChain
* VolgaTaylorVaRContextualChain
* VolgaTaylorVaRFixedConfidenceChain
* VolgaTaylorChain

In the `mr-sensi-config` module, the import of the following file has been added to the AllTaylorParameters class:

* VolgaTaylorParametersConfig

In the `mr-sensi-lib` module, the following constants have been added in the file SensiMeasureParameters:

<table><thead><tr><th>Constant</th><th>Value</th><th>Details</th></tr></thead><tbody><tr><td>SHIFT\_VECTOR\_INTERPOLATED\_MIN</td><td>“Shift Vector Interpolated Minimum”</td><td>Suffix of the measure computing the minimum of the Market Shift vector used by a sensitivity, interpolated, not normalized.</td></tr><tr><td>SHIFT\_VECTOR\_INTERPOLATED\_MAX</td><td>“Shift Vector Interpolated Maximum”</td><td>Suffix of the measure computing the maximum of the Market Shift vector used by a sensitivity, interpolated, not normalized.</td></tr><tr><td>SHIFT\_VECTOR\_INTERPOLATED\_AVG</td><td>“Shift Vector Interpolated Average”</td><td>Suffix of the measure computing the average of the Market Shift vector used by a sensitivity, interpolated, not normalized.</td></tr><tr><td>SHIFT\_VECTOR\_INTERPOLATED\_PERCENTILE</td><td>“Shift Vector Interpolated Percentile”</td><td>Suffix of the measure computing the percentile of the Market Shift vector used by a sensitivity, interpolated, not normalized.</td></tr><tr><td>SHIFT\_VECTOR\_INTERPOLATED\_NORMALIZED\_MIN</td><td>“Shift Vector Interpolated Normalized Minimum”</td><td>Suffix of the measure computing the minimum of the Market Shift vector used by a sensitivity, interpolated, normalized.</td></tr><tr><td>SHIFT\_VECTOR\_INTERPOLATED\_NORMALIZED\_MAX</td><td>“Shift Vector Interpolated Normalized Maximum”</td><td>Suffix of the measure computing the maximum of the Market Shift vector used by a sensitivity, interpolated, normalized.</td></tr><tr><td>SHIFT\_VECTOR\_INTERPOLATED\_NORMALIZED\_AVG</td><td>“Shift Vector Interpolated Normalized Average”</td><td>Suffix of the measure computing the average of the Market Shift vector used by a sensitivity, interpolated, normalized.</td></tr><tr><td>SHIFT\_VECTOR\_INTERPOLATED\_NORMALIZED\_PERCENTILE</td><td>“Shift Vector Interpolated Normalized Percentile”</td><td>Suffix of the measure computing the percentile of the Market Shift vector used by a sensitivity, interpolated, normalized.</td></tr></tbody></table>

### Measures

#### Added

<table><thead><tr><th>Cube</th><th>Measure</th><th>Details</th></tr></thead><tbody><tr><td>Market Data</td><td>Shift Vector Interpolated Minimum</td><td>Minimum of the Market Shift vector, interpolated, not normalized</td></tr><tr><td>Market Data</td><td>Shift Vector Interpolated Maximum</td><td>Maximum of the Market Shift vector, interpolated, not normalized</td></tr><tr><td>Market Data</td><td>Shift Vector Interpolated Average</td><td>Average of the Market Shift vector, interpolated, not normalized</td></tr><tr><td>Market Data</td><td>Shift Vector Interpolated Percentile</td><td>Percentile of the Market Shift vector, interpolated, not normalized</td></tr><tr><td>Market Data</td><td>Shift Vector Interpolated Normalized Minimum</td><td>Minimum of the Market Shift vector, interpolated, normalized</td></tr><tr><td>Market Data</td><td>Shift Vector Interpolated Normalized Maximum</td><td>Maximum of the Market Shift vector, interpolated, normalized</td></tr><tr><td>Market Data</td><td>Shift Vector Interpolated Normalized Average</td><td>Average of the Market Shift vector, interpolated, normalized</td></tr><tr><td>Market Data</td><td>Shift Vector Interpolated Normalized Percentile</td><td>Percentile of the Market Shift vector, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Correlation Shift Vector Interpolated Minimum</a></td><td>Minimum of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Correlation Shift Vector Interpolated Maximum</a></td><td>Maximum of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Correlation Shift Vector Interpolated Average</a></td><td>Average of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Correlation Shift Vector Interpolated Percentile</a></td><td>Percentile of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Correlation Shift Vector Interpolated Normalized Minimum</a></td><td>Minimum of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Correlation Shift Vector Interpolated Normalized Maximum</a></td><td>Maximum of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Correlation Shift Vector Interpolated Normalized Average</a></td><td>Average of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Correlation Shift Vector Interpolated Normalized Percentile</a></td><td>Percentile of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">CrossGamma Shift Vector Interpolated Minimum</a></td><td>Minimum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">CrossGamma Shift Vector Interpolated Maximum</a></td><td>Maximum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">CrossGamma Shift Vector Interpolated Average</a></td><td>Average of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">CrossGamma Shift Vector Interpolated Percentile</a></td><td>Percentile of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">CrossGamma Shift Vector Interpolated Normalized Minimum</a></td><td>Minimum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">CrossGamma Shift Vector Interpolated Normalized Maximum</a></td><td>Maximum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">CrossGamma Shift Vector Interpolated Normalized Average</a></td><td>Average of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">CrossGamma Shift Vector Interpolated Normalized Percentile</a></td><td>Percentile of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Delta Shift Vector Interpolated Minimum</a></td><td>Minimum of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Delta Shift Vector Interpolated Maximum</a></td><td>Maximum of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Delta Shift Vector Interpolated Average</a></td><td>Average of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Delta Shift Vector Interpolated Percentile</a></td><td>Percentile of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Delta Shift Vector Interpolated Normalized Minimum</a></td><td>Minimum of the Market Shift vector used by the Delta sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Delta Shift Vector Interpolated Normalized Maximum</a></td><td>Maximum of the Market Shift vector used by the Delta sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Delta Shift Vector Interpolated Normalized Average</a></td><td>Average of the Market Shift vector used by the Delta sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Delta Shift Vector Interpolated Normalized Percentile</a></td><td>Percentile of the Market Shift vector used by the Delta sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Gamma Shift Vector Interpolated Minimum</a></td><td>Minimum of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Gamma Shift Vector Interpolated Maximum</a></td><td>Maximum of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Gamma Shift Vector Interpolated Average</a></td><td>Average of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Gamma Shift Vector Interpolated Percentile</a></td><td>Percentile of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Gamma Shift Vector Interpolated Normalized Minimum</a></td><td>Minimum of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Gamma Shift Vector Interpolated Normalized Maximum</a></td><td>Maximum of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Gamma Shift Vector Interpolated Normalized Average</a></td><td>Average of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Gamma Shift Vector Interpolated Normalized Percentile</a></td><td>Percentile of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vanna Shift Vector Interpolated Minimum</a></td><td>Minimum of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vanna Shift Vector Interpolated Maximum</a></td><td>Maximum of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vanna Shift Vector Interpolated Average</a></td><td>Average of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vanna Shift Vector Interpolated Percentile</a></td><td>Percentile of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vanna Shift Vector Interpolated Normalized Minimum</a></td><td>Minimum of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vanna Shift Vector Interpolated Normalized Maximum</a></td><td>Maximum of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vanna Shift Vector Interpolated Normalized Average</a></td><td>Average of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vanna Shift Vector Interpolated Normalized Percentile</a></td><td>Percentile of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vega Shift Vector Interpolated Minimum</a></td><td>Minimum of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vega Shift Vector Interpolated Maximum</a></td><td>Maximum of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vega Shift Vector Interpolated Average</a></td><td>Average of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vega Shift Vector Interpolated Percentile</a></td><td>Percentile of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vega Shift Vector Interpolated Normalized Minimum</a></td><td>Minimum of the Market Shift vector used by the Vega sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vega Shift Vector Interpolated Normalized Maximum</a></td><td>Maximum of the Market Shift vector used by the Vega sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vega Shift Vector Interpolated Normalized Average</a></td><td>Average of the Market Shift vector used by the Vega sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Vega Shift Vector Interpolated Normalized Percentile</a></td><td>Percentile of the Market Shift vector used by the Vega sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Volga Shift Vector Interpolated Minimum</a></td><td>Minimum of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Volga Shift Vector Interpolated Maximum</a></td><td>Maximum of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Volga Shift Vector Interpolated Average</a></td><td>Average of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Volga Shift Vector Interpolated Percentile</a></td><td>Percentile of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Volga Shift Vector Interpolated Normalized Minimum</a></td><td>Minimum of the Market Shift vector used by the Volga sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Volga Shift Vector Interpolated Normalized Maximum</a></td><td>Maximum of the Market Shift vector used by the Volga sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Volga Shift Vector Interpolated Normalized Average</a></td><td>Average of the Market Shift vector used by the Volga sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/sensitivities">Volga Shift Vector Interpolated Normalized Percentile</a></td><td>Percentile of the Market Shift vector used by the Volga sensitivity, interpolated, normalized</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/expected-shortfall">List of Volga Taylor ES measures</a></td><td>See the list of all Volga Taylor ES measures in the link.</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/expected-tail-gain">List of Volga Taylor ETG measures</a></td><td>See the list of all Volga Taylor ETG measures in the link.</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/value-at-earnings">List of Volga Taylor VaE measures</a></td><td>See the list of all Volga Taylor VaE measures in the link.</td></tr><tr><td>Sensi</td><td><a href="../../../../cube/measures/sensi/value-at-risk">List of Volga Taylor VaR measures</a></td><td>See the list of all Volga Taylor VaR measures in the link.</td></tr></tbody></table>

### Other changes

#### Java 17 upgrade

The Solution is now built and intended to be run within a Java 17 JVM. Some functionality in the full application and in the regressions tests requires deep reflection access to Java packages. To enable access, please use the following JVM parameters, either through the command line or maven surefire/failsafe configuration.

```
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
```

<Note>
  The Solution will not work in a Java 11 JVM.
</Note>

#### Spring Security upgrade

We have upgraded to Spring Security 5.8.7. To do so, we override the version of Spring Security in Spring Boot by importing the `common-dependencies-bom` version
1.2.0 into the parent pom file. The `common-dependencies-bom` overrides the Spring Security version using Spring’s migration guide.

You will eventually need to migrate your own custom security configuration(s) in preparation for
Spring Security 6.0. We have upgraded our out-of-the-box security configurations to help in this migration.

<Note>
  We recommend using your own custom security configuration(s) and referring to the out-of-the-box security configuration
  provided only as a sample.
</Note>

The default security users and roles have not changed, only the way we implement the security. We have done so by making the following changes:

##### Stop Using `WebSecurityConfigurerAdapter`

We have replaced instances of `WebSecurityConfigurerAdapter` with `SecurityFilterChain` beans.

##### Use the new `requestMatchers` methods

In Authorize Http Requests, we have replaced invocations of `http.authorizeHttpRequests((authz) -> authz.antMatchers(...))` with `http.authorizeHttpRequests((authz) -> authz.requestMatchers(...))`.

##### Use the new securityMatchers methods

We have replaced invocations of `http.antMatchers(...)` with `http.securityMatchers(...)`.

As an example of the previous changes, the configuration for accessing the endpoint which exposes the JWT token changed from:

```java theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
@Configuration
@Order(1)
public static abstract class AJwtSecurityConfigurer extends WebSecurityConfigurerAdapter {

   @Autowired
   protected ApplicationContext context;

   @Autowired
   @Qualifier(BASIC_AUTH_BEAN_NAME)
   protected AuthenticationEntryPoint authenticationEntryPoint;

   @Override
   protected void configure(HttpSecurity http) throws Exception {
      http
              .antMatcher(JwtRestServiceConfig.REST_API_URL_PREFIX + "/**")
              // As of Spring Security 4.0, CSRF protection is enabled by default.
              .csrf().disable()
              // Configure CORS
              .cors().and()
              .authorizeRequests()
              .antMatchers("/**").hasAnyAuthority(ROLE_USER)
              .and()
              .httpBasic().authenticationEntryPoint(authenticationEntryPoint);
   }
}
```

to

```java theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
@Bean
@Order(1)
public SecurityFilterChain jwtSecurityFilterChain(HttpSecurity http,ApplicationContext applicationContext){
final AuthenticationEntryPoint basicAuthenticationEntryPoint = applicationContext.getBean(BASIC_AUTH_BEAN_NAME,AuthenticationEntryPoint.class);
        return http
            // As of Spring Security 4.0, CSRF protection is enabled by default.
            .csrf(AbstractHttpConfigurer::disable)
            // Configure CORS
            .cors().and()
            .securityMatcher(url(JwtRestServiceConfig.REST_API_URL_PREFIX,WILDCARD))
            .authorizeHttpRequests(
                auth->auth.requestMatchers(HttpMethod.OPTIONS,url(WILDCARD))
                .permitAll()
                .anyRequest()
                .hasAnyAuthority(ROLE_USER))
            .httpBasic(basic->basic.authenticationEntryPoint(basicAuthenticationEntryPoint))
            .build();
        }
```

#### IPnLExplainFormulaProvider consistency cleanup

A new `getShiftFromMDFormula` function has been added to the `IPnLExplainFormulaProvider`, used to transform a couple of market data into a shift.
It returns a lambda function `(double quoteT, double quoteTMinus1) -> shift`.
The `PnLExplainFormulaProvider` implementation has been cleaned up to reduce the cases: the `getPnlExplainFormula` implementation has been replaced with
`pnlExplainFormula = (sensitivity, quoteT, quoteTMinus1) -> vaRExplainFormula.applyAsDouble(sensitivity, shiftFormula.applyAsDouble(quoteT, quoteTMinus1))`

This bean returns null instead of `(...) -> 0.0` when no formula has been found, to avoid printing out an incorrect null PnL.

#### Removal of ActivePivotRemotingServicesConfig

* The import of `ActivePivotRemotingServicesConfig` has been removed from the configuration class `MarketRiskConfig`.
* The following `antMatchers` have been rmoved from the security configuration file `SecurityConfig`:

```
.antMatchers(ID_GENERATOR_REMOTING_SERVICE + "/**").hasAnyAuthority(ROLE_USER, ROLE_TECH)
.antMatchers(LONG_POLLING_REMOTING_SERVICE + "/**").hasAnyAuthority(ROLE_USER, ROLE_TECH)
.antMatchers(LICENSING_REMOTING_SERVICE + "/**").hasAnyAuthority(ROLE_USER, ROLE_TECH)
```

#### Integration tests

In the `mr-application-tests` module, the following changes have been made in the file used for integration tests:

* The files present in the folder `test-bookmarks/07 - Aggregate Taylor VaR` have been updated to reflect the changes in the Taylor VaR measure numbers
  introduced by the addition of the Taylor VaR measures.
* The files present in the folder `test-bookmarks-combined/03 - Taylor VaR` have been updated to reflect the changes in the Taylor VaR measure numbers
  introduced by the addition of the Taylor VaR measures.
* The folder `test-bookmarks/08 - Market Shifts Statistics` has been renamed to `test-bookmarks/09 - Market Shifts Statistics` and its content has been changed
  to add queries for more sensitivity types than just delta.
* The folder `test-bookmarks/08 - Volga Taylor VaR` has been created to test Volga Taylor VaR measures
* The following files have been created to test the statistical in the market data cube:
  * test-bookmarks/MarketDataCube/shiftStats.query
  * test-bookmarks/MarketDataCube/shiftStats.csv
  * test-bookmarks-combined/MarketDataCube/shiftStats.query
  * test-bookmarks-combined/MarketDataCube/shiftStats.csv
