Migration notes 6.0

This page explains the changes required to migrate to the stated version of the Atoti Market Risk.

Migrate to 6.0.0-M1

Upgrading from version 5.4.0, see Atoti Market Risk 6.0-M1 Release Notes.

Atoti Market Risk uses Atoti Server 6.1.2 and Atoti UI 5.2.x. For new features and fixes included in these releases, please see the Atoti UI documentation and Atoti UI Migration Notes, and the release notes for Atoti Server.

Headline announcement

  • Atoti Server upgrade : Atoti Market Risk has been upgraded to Atoti Server 6.1.2. This version requires Java 21.
  • Upgraded to JDK 21 : Upgraded from JDK 17 to JDK 21 to utilize the latest features.
  • Deprecated vector sensitivities data model code removed: Code specific to the vectorized sensitivities data model, which was deprecated in Atoti Market Risk 5.4, has been removed.
  • Move to Atoti Market Data: The Market Data API, introduced in Atoti Market Risk 5.3, is now an external dependency called Atoti Market Data, using version 1.1.2 . For details, see the dedicated Atoti Market Data documentation.
  • Deprecated market data and FX services removed: Several deprecated services made obsolete by the move to Atoti Market Data have been removed.
  • General measure chain changes: FX conversions are now done through Atoti Market Data APIs, leading to several measure chain changes.
  • Market data chain changes: Market data chain has been changed: it is now required to add the sensitivity name and risk class levels in the views to display market data.
  • Market data set changes : Market data sets have significantly changed in this release. Most notably MarketDataSet is now a field on all base stores ensuring each fact is specifically associated to a set.
  • Configurable parent-child depth: You can now configure the maximum depth of parent-child hierarchies.
  • Removal of RoundingMethods and Quantiles stores: These stores are no longer needed.
  • Updated dashboards : A number of dashboards have been updated due to market data measure and context value changes. For details, see Updated dashboards.
  • Removal of solutions dependency management: Solution dependencies are now explicitly versioned, without a dependency management import of the Solutions Tools BOM.
  • Upgraded dependencies: All the Solution’s dependencies have been upgraded to their latest releases. See Dependency versions for the exact version numbers and links to their respective documentation pages.

Atoti Server upgrade

For details on migrating your code to Atoti Server 6.1.2, see the Atoti Server migration notes.

Java 21

Update your Java version to Java 21 or later in order to run Atoti Market Risk.

Atoti Spring Boot Starter changes

Atoti Server now ships with a suite of Spring Boot Starters. These dependencies auto-configure default imports required by Atoti Server, that you may override at runtime.

The following core classes have been removed, as they are now inherited from starters:

  • ActiveViamPropertyFromSpringConfig.class
  • ActivePivotServicesConfig.class
  • PartitionManagerConfig.class
  • ApplicationJwtConfig.class
  • SameSiteConfig.class
  • ActiveViamRestServicesConfig.class
  • ActiveViamWebSocketServicesConfig.class
  • ContentServerWebSocketServicesConfig.class
  • ApplicationMonitoringConfig.class
  • MonitoringRestServicesConfig.class
  • MonitorConfig.class
  • JwtRestServiceConfig.class
  • VersionServicesConfig.class
  • StreamingMonitorConfig.class
  • ActivePivotXmlaServletConfig.class
  • All beans with return type JMXEnabler

Security configuration changes

The upgrade to Atoti Server 6.1.2 includes changes to the security configuration. We expect you to implement your own security, but we provide a sample configuration in the com.activeviam.mr.application.config.security package.

warning

This is not a production grade sample.

For details on how to implement your own security, please see the Atoti Server documentation.

Migration to Atoti Market Data

The Market Data API, introduced in Atoti Market Risk 5.3, is now an external dependency called Atoti Market Data, using version 1.1.2 .

The market data artifacts (market-data-lib and market-data-spring-boot-starter) are versioned independently, and the source code is no longer provided alongside the Atoti Market Risk source code.

For more information, see the Atoti Market Data Documentation.

As part of this migration, several changes have been made:

Type Change Description
Sample data change Additional rows in the cube market data files. Added values for 45c and 45p moneyness in the cube market data files to account for the removal of cube interpolation in Atoti Market Data.
Simplified configuration Removed configuration in the MaturityConverterConfig class. All MapperFactory beans have now been removed, with Atoti Market Data having a simpler API for defining tenor and moneyness conversion.
Simplified post-processors Usage of Atoti Market Data API for FX The FxSpotMarketDataPostProcessor is now an extension of FxRateMarketDataPostProcessor using an IRiskFactorFXPairTranslator to build the coordinates for retrieval, instead of a completely standalone implementation.
Simplified post-processors New measure builder. Added FxSpotMarketDataMeasureBuilder for an FX rate measure that uses the Risk Factor field to fill in the base currency.
Simplified post-processors Usage of Atoti Market Data API for FX The CubeLevelAdjustmentPostProcessor implements IMarketDataRetrievalContainerServiceAware<IDefaultMarketDataRetriever> instead of IFXRatesAware.
Additional post-processors New post-processors and measure builders. Added FxConverterMarketDataPostProcessor and FxVectorConverterMarketDataPostProcessor, which multiply the Number or IVector underliers (respectively) by the internally retrieved FX rate. These post-processors can be initialized using the new FxConverterMarketDataMeasureBuilder and FxVectorConverterMarketDataMeasureBuilder classes.
New currency retriever Added a querier for the FxRateMarketData store. Added an AvailableCurrenciesQuerier, which runs a query on the FxRateMarketDataStore (if it exists) to retrieve the available currencies. This is now used in the FxHierarchyFromMarketDataStore and HierarchyWithFxRiskFactors classes to determine available currencies, instead of an IFxRates service.

Removal of deprecated market data and FX services

Removed Description Replacement
InterpolationConfiguration logic Removed logic for determining whether market data should use interpolation and the pre- and post- interpolation functions to use. Atoti Market Data APIs and the CopperMarketDataMeasure configuration mechanism.
InterpolationFunctionTypeConverter Removed a configuration properties converter. None, interpolation is no longer configured through the old API, so no conversion is required for InterpolationFunction objects.
*NoInterpolation* and *WithPreAndPostInter* rules Removed rules from the sensitivity rule configuration service. None, interpolation configuration is done through Atoti Market Data APIs.
IFxRates service and configuration Removed the configuration for the Atoti Market Risk IFxRates service. FX conversion now uses Atoti Market Data APIs.
AFxRate, FXRates, FXRateWrapper and TestFxRates Removed implementations used by the IFxRates services. FX conversion now uses Atoti Market Data APIs.
MarketDataRetrievalService, AMarketDataPostProcessor, ScalarMarketDataPostProcessor Removed market data services and post-processors with Atoti Market Data replacements. Market data retrieval should use Atoti Market Data APIs as much as possible.

Configurable parent child depth

You can now configure the maximum depth of the parent-child hierarchies (books, legal entities, counterparties) with new properties.

To achieve this, the stores BookHierarchy, CounterpartyHierarchy, LegalEntityHierarchy now also have a variable number of fields to store the corresponding level entries. In addition, the summary flat stores (PnLBaseStore, SensiBaseStore, BaseStore) have a variable number of fields to be in line with the variable depth.

Measure chain changes

PnL

A new MeasureCreator method has been added for FX conversion: IPnLMeasures#convert(MarketDataDateShift shift, NameRetriever<PnLMeasureNames> nameRetriever). For this method, a market data set level identifier has been added to the PnLMeasureParameters configuration object.

Sensitivities

API changes

The CopperMarketDateMeasure typo has been fixed, with the class now named CopperMarketDataMeasure.

New FX-related MeasureCreator methods have been added to the factory interfaces:

Factory Method Description
IBaseMeasures rate(MarketDataDateShift dateShift, NameRetriever<SensiMeasureNames> nameRetriever) Creates an FX rate measure on the given date shift, with the given name.
IBaseMeasures convert(MarketDataDateShift dateShift, NameRetriever<SensiMeasureNames> nameRetriever) Converts an underlying scalar measure, on the given date shift, with the given name.
IBaseMeasures convertVector(MarketDataDateShift dateShift, NameRetriever<SensiMeasureNames> nameRetriever) Converts an underlying vector measure, on the given date shift, with the given name.

The replaced methods have been removed:

Factory Method Description
ILadderExpansionMeasures ladderExpand() FX conversion for the scalar ladder measures.
ILadderExpansionMeasures ladderExpandTechnical() FX conversion for the vector ladder measures.
ITaylorVaRMeasures pnlVectorForTaylorVar() FX conversion for the vector Taylor VaR measures.
ISensitivityMeasures rate() Sensitivity cube FX rate.
ISensitivityMeasures sensitivity() FX conversion for scalar sensitivities.

Additionally, the ATaylorFactory factories now implement IBaseMeasures, gaining access to the added FX MeasureCreator methods.

xxx Current MD / xxx Previous MD

The following measures do not handle FX conversion anymore. They return the same value as the underlying xxx xxx MD Native metric.

  • Correlation Current MD
  • Correlation Previous MD
  • CrossGamma Current MD
  • CrossGamma Current MD 2
  • CrossGamma Previous MD
  • CrossGamma Previous MD 2
  • Delta Current MD
  • Delta Previous MD
  • Dividend Current
  • Dividend Previous
  • Gamma Current MD
  • Gamma Previous MD
  • Vanna Current MD
  • Vanna Current MD 2
  • Vanna Previous MD
  • Vanna Previous MD 2
  • Vega Current MD
  • Vega Previous MD
  • Volga Current MD
  • Volga Previous MD

In addition, the axes needed to fetch the underlying market data are now required: sensitivity name ([Sensitivities].[Sensitivity].[SensitivityName]), risk class ([Risk].[Risk Classes].[RiskClass]), risk factor, and other dimensional axes, such as tenor/maturity/moneyness (for curve/surface/cubes market data). Even if two pieces of market data are the same, they can’t be merged for display anymore.

Hidden MD measures

The following measures are now hidden, since the notion of native currency is not applicable to market data. The value of a measure xxx MD Native value is now equal to the value of the corresponding xxx MD measure.

In addition, the axes needed to fetch the underlying market data are now required: sensitivity name ([Sensitivities].[Sensitivity].[SensitivityName]), risk class ([Risk].[Risk Classes].[RiskClass]), risk factor, and other dimensional axes, such as tenor/maturity/moneyness (for curve/surface/cubes market data). Even if two pieces of market data are the same, they can’t be merged for display anymore.

  • Correlation Current MD Native
  • Correlation Previous MD Native
  • CrossGamma Current MD 2 Native
  • CrossGamma Current MD Native
  • CrossGamma Previous MD 2 Native
  • CrossGamma Previous MD Native
  • Delta Current MD Native
  • Delta Previous MD Native
  • Dividend Previous Native
  • Dividend Current Native
  • Gamma Current MD Native
  • Gamma Previous MD Native
  • Vanna Current MD 2 Native
  • Vanna Current MD Native
  • Vanna Previous MD 2 Native
  • Vanna Previous MD Native
  • Vega Current MD Native
  • Vega Previous MD Native
  • Volga Current MD Native
  • Volga Previous MD Native

VaR

FX conversion

New FX-related MeasureCreator methods have been added to the factory interface:

Factory Method Description
IVaRESMeasures convertWithNotionalCurrency(MarketDataDateShift dateShift, NameRetriever<VarMetricParametersAndNames> nameRetriever) Converts an underlying scalar measure, on the given date shift, with the given name. Uses the notional currency as the base currency.
IVaRESMeasures convertVarVector(MarketDataDateShift dateShift, NameRetriever<VarMetricParametersAndNames> nameRetriever) Converts an underlying vector measure, on the given date shift, with the given name.

The replaced methods have been removed:

Factory Method Description
IVaRESMeasures mtm() FX conversion for the MtM measure.
IVaRESMeasures notional() FX conversion for Notional measure.
IVaRESMeasures varFxVector() FX conversion for the vector FX-shifted measures.

Updated dashboards

  • The following dashboards have been updated with the levels [Sensitivities].[Sensitivity].[SensitivityName] and [Risk].[Risk Classes].[RiskClass] added to their MDX queries so that market data can be displayed.
    • Atoti MR & PL/Story-Telling Target Views/Delta and Gamma P&L Explain
    • Atoti MR & PL/Story-Telling Target Views/Vega P&L Explain
    • MR/03 - PnL Explain/02 - Example for one trade
    • MR/03 - PnL Explain/03 - Vega Market data

MR/01 - VaR-ES/03 - VaR Explain Dashboard has been fixed: a context value that was removed in a previous version was incorrectly used in the dashboard.

MarketDataSets

Each market data value in Atoti Market Risk is associated with a market data set. This set is used within calculations to ensure the appropriate market data value is retrieved. Prior to this release MarketDataSets was a slicing analysis hierarchy populated from an external store.

With this release MarketDataSet is now a field on each of the base stores. This reflects that each fact is associated to a given market data set and this should be used consistently within calculations. As you can see below, the store definitions and input file formats have been updated to accommodate this change. The MarketDataSets hierarchy is now based on these fields, and the external MarketDataStore has been removed.

By default, MarketDataSets remains a slicing hierarchy. However, we now offer a property (mr.cubes.levels.slicing-market-data-set) to toggle this to a non-slicing hierarchy.

note

Setting MarketDataSets to non-slicing can have a significant impact on calculations. Please ensure this is appropriate for your use-case.

Input file formats

Modified

Modification File Field Optional Description
Added field PLPCActuals.csv MarketDataSet No The market data set that should be used when retrieving rates for FX conversion.
Added field PLCube.csv MarketDataSet No The market data set that should be used when retrieving rates for FX conversion.
Added field Summary PL.csv MarketDataSet No The market data set that should be used when retrieving rates for FX conversion.
Added field Sensitivities.csv MarketDataSet No The market data set that was used when the sensitivity was calculated. This will be used to retrieve appropriate market data values for PnL Explain and Taylor VaR computations.
Added field CrossSensitivities.csv MarketDataSet No The market data set that was used when the sensitivity was calculated. This will be used to retrieve appropriate market data values for PnL Explain and Taylor VaR computations.
Added field Sensitivity Cube.csv MarketDataSet No The market data set that was used when the sensitivity was calculated. This will be used to retrieve appropriate market data values for PnL Explain and Taylor VaR computations.
Added field Summary Sensitivity.csv MarketDataSet No The market data set that was used when the sensitivity was calculated. This will be used to retrieve appropriate market data values for PnL Explain and Taylor VaR computations.
Added field TradePnLs.csv MarketDataSet No The market data set that should be used when retrieving rates for FX conversion.
Added field VaR-ES Cube.csv MarketDataSet No The market data set that should be used when retrieving rates for FX conversion.
Added field Summary VaR.csv MarketDataSet No The market data set that should be used when retrieving rates for FX conversion.
Changed field name TradeAttributes.csv MaturityDate -> TradeMaturityDate No Maturity date of the trade.
Changed field name DynamicMaturities.csv MaturityLabels -> MaturityLabel No Name for the bucketed group.
Changed field name DynamicMoneyness.csv MoneynessLabels -> MoneynessLabel No Name for the bucketed group.
Changed field name DynamicTenors.csv TenorLabels -> TenorLabel No Name for the bucketed group.

Removed

File Details
CorporateAction.csv Deprecated file removed.
RoundingMethods.csv File is no longer needed.
Quantiles.csv File is no longer needed.
StaticMaturities.csv The Maturities store has been removed as part of the removal of vectorized sensitivities. This input file format is therefore no longer required.
StaticMoneyness.csv The Moneyness store has been removed as part of the removal of vectorized sensitivities. This input file format is therefore no longer required.
StaticTenors.csv The Tenors store has been removed as part of the removal of vectorized sensitivities. This input file format is therefore no longer required.
MarketDataSet.csv MarketDataSet is now a field on all base stores.

Configuration

Configuration properties

Properties added

mr-common-config module:

Property Default value Description
mr.parent-child.book-depth 15 Maximum level of BookHierarchy.
mr.parent-child.legal-entity-depth 10 Maximum level of LegalEntityHierarchy.
mr.parent-child.counterparty-depth 5 Maximum level of CounterpartyHierarchy.
mr.cubes.levels.slicing-market-data-set true This toggles whether the market data set hierarchy is slicing or not. Please note this is likely to significantly impact calculations.
Properties modified
Property Name Comment New Value Old Value
mr.sign-off.sensi.sensi-cube-adjustments.hierarchies-to-exclude Removed MarketDataSet hierarchy from the list of excluded hierarchies so that adjustments can be applied to a single MarketDataSet at a time. Added MarketShiftDate and DisplayCurrencies hierarchies to the list of excluded hierarchies as these are slicing hierarchies. Date@Dates,Quantiles@Quantiles,RoundingMethods@Rounding,Scenario Sets@Risk,Sign-off Status@Sign-off,DynamicMaturities@DynamicBucketing,DynamicMoneyness@DynamicBucketing,DynamicTenors@DynamicBucketing,MarketShiftDate@Dates,displayCurrency@Currencies,DayToDay@Dates Date@Dates,MarketDataSets@MarketData,Quantiles@Quantiles,RoundingMethods@Rounding,Scenario Sets@Risk,Sign-off Status@Sign-off,DynamicMaturities@DynamicBucketing,DynamicMoneyness@DynamicBucketing,DynamicTenors@DynamicBucketing,DayToDay@Dates
mr.sign-off.var.var-cube-adjustments.hierarchies-to-exclude Removed MarketDataSet hierarchy from the list of excluded hierarchies so that adjustments can be applied to a single MarketDataSet at a time. Added MarketShiftDate and DisplayCurrencies hierarchies to the list of excluded hierarchies as these are slicing hierarchies. Date@Dates,Quantiles@Quantiles,RoundingMethods@Rounding,Scenario Sets@Risk,Sign-off Status@Sign-off,CalculationIds@Risk,MarketShiftDate@Dates,displayCurrency@Currencies,DayToDay@Dates Date@Dates,MarketDataSets@MarketData,Quantiles@Quantiles,RoundingMethods@Rounding,Scenario Sets@Risk,Sign-off Status@Sign-off,CalculationIds@Risk,DayToDay@Dates
mr.sign-off.pnl.pnl-cube-adjustments.hierarchies-to-exclude Removed MarketDataSet hierarchy from the list of excluded hierarchies so that adjustments can be applied to a single MarketDataSet at a time. Date@Dates,MarketDataSets@MarketData,Sign-off Status@Sign-off,Types@PnL,DayToDay@Dates Date@Dates,Sign-off Status@Sign-off,Types@PnL,DayToDay@Dates
mr.sign-off.common.hierarchy.level2.approved This is for compatibility with Sign-off 5.3, ensuring the official sign-off feed status is updated after export. EXPORT_SUCCEEDED APPROVED
Properties removed

mr-common-config

Property Name Comment
mr.enable.data-model.scalar-sensitivities Scalar sensitivities are now the default and only sensitivities data model.
mr.common.file-patterns.market-data-sets The MarketDataSets store has been removed.
mr.common.file-patterns.quantiles The Quantiles store has been removed.
mr.common.file-patterns.rounding-methods The RoundingMethods store has been removed.
mr.sensi.file-patterns.maturities The Maturities store has been removed as part of the removal of vectorized sensitivities. This property is therefore no longer required.
mr.sensi.file-patterns.moneyness The Moneyness store has been removed as part of the removal of vectorized sensitivities. This property is therefore no longer required.
mr.sensi.file-patterns.tenors The Tenors store has been removed as part of the removal of vectorized sensitivities. This property is therefore no longer required.
mr.sign-off.extraction-templates This property defined templates to be used with vectorized sensitivities. As this mode is no longer supported, the property is not required.

Datastores

Modified stores

Modification Store Field Type Description
Added field PnL MarketDataSet String The market data set that should be used when retrieving rates for FX conversion.
Added field PnLBaseStore MarketDataSet String The market data set that should be used when retrieving rates for FX conversion.
Added field Trade Sensitivities MarketDataSet String The market data set that was used when the sensitivity was calculated. This will be used to retrieve appropriate market data values for PnL Explain and Taylor VaR computations.
Added field SensiBaseStore MarketDataSet String The market data set that was used when the sensitivity was calculated. This will be used to retrieve appropriate market data values for PnL Explain and Taylor VaR computations.
Added field Trade PnLs MarketDataSet String The market data set that should be used when retrieving rates for FX conversion.
Added field BaseStore MarketDataSet String The market data set that should be used when retrieving rates for FX conversion.
Changed field name Trade Sensitivities TenorLabels -> TenorLabel String The tenor label, corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.
Changed field name Trade Sensitivities TenorDates -> TenorDate Date An explicit tenor date, which is used to sort tenors and to re-bucket sensitivities (if supported).
Changed field name Trade Sensitivities MaturityLabels -> MaturityLabel String Name for the bucketed group.
Changed field name Trade Sensitivities MaturityDates -> MaturityDate Date An explicit maturity date, which is used to sort tenors and to re-bucket sensitivities (if supported).
Changed field name Trade Sensitivities Values -> Value Double A sensitivity value.
Changed field name PnLBaseStore MaturityDate -> TradeMaturityDate Date The maturity date of the trade.
Changed field name SensiBaseStore MaturityDate -> TradeMaturityDate Date The maturity date of the trade.
Changed field name BaseStore MaturityDate -> TradeMaturityDate Date The maturity date of the trade.
Changed field name Trade Attributes MaturityDate -> TradeMaturityDate Date The maturity date of the trade.
Changed field name DynamicTenors TenorLabels -> TenorLabel String The label corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.
Changed field name DynamicMaturities TenorLabels -> TenorLabel String The label corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.
Changed field name DynamicMoneyness TenorLabels -> TenorLabel String The label corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.

Deleted stores

Stores relating to the removal of the vectorized sensitivity data model

The following stores have been deleted due to the removal of the vectorized sensitivity data model:

  • mr-sensi-config/src/main/java/com/activeviam/mr/sensi/datastore/description/complete/stores/MarketDataStoreConfig.java. If you continue to use the deprecated market data API, you can find this store configuration in the MarketDataStoreConfig class. You will need to import this class to use the store.
  • mr-sensi-config/src/main/java/com/activeviam/mr/sensi/datastore/description/complete/stores/CorporateActionStoreConfig.java
  • mr-sensi-config/src/main/java/com/activeviam/mr/sensi/datastore/description/complete/stores/TenorsStoreConfig.java.
  • mr-sensi-config/src/main/java/com/activeviam/mr/sensi/datastore/description/complete/stores/VectorMarketDataStoreConfig.java
  • mr-sensi-config/src/main/java/com/activeviam/mr/sensi/datastore/description/complete/stores/VectorTradeSensitivitiesStoreConfig.java
  • mr-sensi-config/src/main/java/com/activeviam/mr/sensi/datastore/description/summary/VectorSensiAggregatedStoreConfig.java
  • mr-sensi-config/src/main/java/com/activeviam/mr/sensi/datastore/description/summary/VectorSensiFlatStoreConfig.java

note

If you were using the Tenor, Maturity, or Moneyness stores for the StoreQueryMaturityConverter, the configuration for these classes has been removed. To continue using this, please add a store configuration for each.

Other stores

Store Details
Quantiles No longer needed.
RoundingMethods No longer needed.
MarketDataSets MarketDataSet is now an additional field on all base stores.

Database

Modified tables

Modification Table Field Type Description
Added field PNL MarketDataSet String The market data set that should be used when retrieving rates for FX conversion.
Added field TRADE_SENSITIVITIES MarketDataSet String The market data set that was used when the sensitivity was calculated. This will be used to retrieve appropriate market data values for PnL Explain and Taylor VaR computations.
Added field TRADE_SENSITIVITIES_VECTOR MarketDataSet String The market data set that was used when the sensitivity was calculated. This will be used to retrieve appropriate market data values for PnL Explain and Taylor VaR computations.
Added field TRADEPNLS MarketDataSet String The market data set that should be used when retrieving rates for FX conversion.
Added field TRADEPNLS_VECTOR MarketDataSet String The market data set that should be used when retrieving rates for FX conversion.
Changed field name TRADE_SENSITIVITIES TenorLabels -> TenorLabel String The tenor label, corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.
Changed field name TRADE_SENSITIVITIES TenorDates -> TenorDate Date An explicit tenor date, which is used to sort tenors and to re-bucket sensitivities (if supported).
Changed field name TRADE_SENSITIVITIES MaturityLabels -> MaturityLabel String Name for the bucketed group.
Changed field name TRADE_SENSITIVITIES MaturityDates -> MaturityDate Date An explicit maturity date, which is used to sort tenors and to re-bucket sensitivities (if supported).
Changed field name TRADE_SENSITIVITIES Values -> Value Double A sensitivity value.
Changed field name TRADE_SENSITIVITIES_VECTOR TenorLabels -> TenorLabel String The tenor label, corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.
Changed field name TRADE_SENSITIVITIES_VECTOR TenorDates -> TenorDate Date An explicit tenor date, which is used to sort tenors and to re-bucket sensitivities (if supported).
Changed field name TRADE_SENSITIVITIES_VECTOR MaturityLabels -> MaturityLabel String Name for the bucketed group.
Changed field name TRADE_SENSITIVITIES_VECTOR MaturityDates -> MaturityDate Date An explicit maturity date, which is used to sort tenors and to re-bucket sensitivities (if supported).
Changed field name TRADE_ATTRIBUTES MaturityDate -> TradeMaturityDate String The maturity date of the trade.
Changed field name DYNAMIC_TENORS TenorLabels -> TenorLabel String The label corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.
Changed field name DYNAMIC_MATURITIES TenorLabels -> TenorLabel String The label corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.
Changed field name DYNAMIC_MONEYNESS TenorLabels -> TenorLabel String The label corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.

Deleted tables

Table Details
QUANTILES Table is no longer needed.
ROUNDING_METHODS Table is no longer needed.
MARKET_DATA_SET MarketDataSet is now a field on all base tables.

Cube schema

Modified

Cube Dimension Hierarchy Levels Datastore fields Details
All TradeAttributes MaturityDates -> TradeMaturityDates MaturityDate -> TradeMaturityDate MaturityDate Renamed to distinguish between the MaturityDate hierarchy in the TradeSensitivities cube.
All MarketData MarketDataSets MarketDataSet MarketDataSet This level was previously based on the MarketDataSets store. It is now based on the MarketDataSet field that has been added to each base store.

Removed

Cube Dimension Hierarchy Levels
VaR-ES Quantiles Quantiles [ALL, QuantileName]
VaR-ES Rounding RoundingMethods [ALL, MethodName]

note

As part of the removal of the vectorized sensitivities data model we have removed configuration of dimensions for it, but no actual dimension has been removed.

Measures

Added

Cube Measure Details
Sensitivity Cube FX Rate Current An FX rate between the currency in the Currencies hierarchy and the display currency, for the current as-of date.
Sensitivity Cube FX Rate Previous An FX rate between the currency in the Currencies hierarchy and the display currency, for the previous as-of date.
Sensitivity Cube FX Rate Next An FX rate between the currency in the Currencies hierarchy and the display currency, for the next as-of date.

Removed

Cube Measure Details
Sensitivity Cube Cash FX Rate Replaced with the FX Rate Current measure.
Sensitivity Cube Correlation FX Rate Replaced with the FX Rate Current measure.
Sensitivity Cube CrossGamma FX Rate Replaced with the FX Rate Current measure.
Sensitivity Cube Delta FX Rate Replaced with the FX Rate Current measure.
Sensitivity Cube Dividend FX Rate Replaced with the FX Rate Current measure.
Sensitivity Cube Gamma FX Rate Replaced with the FX Rate Current measure.
Sensitivity Cube Theta FX Rate Replaced with the FX Rate Current measure.
Sensitivity Cube Vanna FX Rate Replaced with the FX Rate Current measure.
Sensitivity Cube Vega FX Rate Replaced with the FX Rate Current measure.
Sensitivity Cube Volga FX Rate Replaced with the FX Rate Current measure.
Vector-specific measures

All vector counterparts of the sensitivities measures have been removed. This affects any annotated CopperMeasure bean with @ConditionalOnVectorizedSensitivity.

Context values

No changes.

Other changes

Adjustments

The MarketDataSet level is now a required input for all adjustments. See the SupportedAdjustments(Sensi/PnL/VaR)Config classes for full configuration. This reflects the fact that MarketDataSet is now a base store field.

DLC

The StaticSensiPillars topic alias has been removed. This was used to load data into the Tenors, Maturities, and Moneyness stores. These stores have been removed as part of the removal of vectorized sensitivities, so this topic is no longer required.

Removed duplicate store field constant

The store field constant STORE_DATE_FIELD_FORMAT was duplicated and bore the same value in each case. We have kept the iteration in DatastoreConstants (mr-common-config) and removed the following ones:

  • com/activeviam/mr/pnl/datastore/description/complete/PnLStoreConfig.java
  • com/activeviam/mr/var/datastore/description/complete/VaRStoreConfig.java

FXShifts

FXShiftsServiceConfig has been split out of the existing FXRatesServiceConfig class. To use the market shift service (IFxShift), you must now import the FXShiftsServiceConfig class. By default, it is imported in MarketRiskConfig.

Removal of deprecated code

Code
Class Status Details
mr-common-config/src/main/java/com/activeviam/mr/common/config/spring/annotations/ConditionalOnScalarSensitivity.java Removed No longer required
mr-common-config/src/main/java/com/activeviam/mr/common/config/spring/annotations/ConditionalOnVectorizedSensitivity.java Removed No longer required
mr-common-config/src/main/java/com/activeviam/mr/common/config/spring/conditions/beans/BeanScalar.java Removed No longer required
mr-common-config/src/main/java/com/activeviam/mr/common/config/spring/conditions/beans/BeanVectorised.java Removed No longer required
mr-common-config/src/main/java/com/activeviam/mr/common/config/spring/conditions/configuration/ConfigurationScalar.java Removed No longer required
mr-common-config/src/main/java/com/activeviam/mr/common/config/spring/conditions/configuration/ConfigurationVectorised.java Removed No longer required
mr-sensi-config/src/main/java/com/activeviam/mr/sensi/cube/complete/dimensions/VectorRiskDimensionConfig.java Removed No longer required
mr-sensi-config/src/main/java/com/activeviam/mr/sensi/sources/impl/SensiTradeStoreTuplePublisher.java Removed No longer required
mr-sensi-lib/src/main/java/com/activeviam/mr/sensi/calculations/postprocessors/impl/MarketDataPostProcessor.java Removed Legacy Market Data API
mr-sensi-lib/src/main/java/com/activeviam/mr/sensi/calculations/postprocessors/impl/PnLExplainCrossPostProcessor.java Removed Vector counterpart
mr-sensi-lib/src/main/java/com/activeviam/mr/sensi/calculations/postprocessors/impl/PnLExplainPostProcessor.java Removed Vector counterpart
mr-sensi-lib/src/main/java/com/activeviam/mr/sensi/calculations/postprocessors/impl/PnlVectorFromCrossRiskSensiPostProcessor.java Removed Vector counterpart
mr-sensi-lib/src/main/java/com/activeviam/mr/sensi/calculations/postprocessors/impl/ShiftVectorPostProcessor.java Removed No longer required
mr-sensi-lib/src/main/java/com/activeviam/mr/sensi/calculations/postprocessors/impl/TenorMaturityAndMoneynessVectorExpand.java Removed No longer required
mr-sensi-lib/src/main/java/com/activeviam/mr/sensi/calculations/postprocessors/impl/VectorAggregationPostProcessor.java Removed No longer required
Adjustments

The following methods have been removed:

  • SupportedAdjustmentsSensiConfig.sensiAddOn
  • SupportedAdjustmentsSensiConfig.sensiScaling
  • SupportedAdjustmentsSensiConfig.sensiOverride
  • AdjustmentsExecutionSensiConfig.getSensiScalingExecution
  • AdjustmentsExecutionSensiConfig.getSensiOverrideExecution

These methods were used to create and support adjustment types for the vectorized model of the sensitivities cube. The Add-on, Override, and Scaling adjustments are still available when using the scalar model of the sensitivities cube.

DEE Templates

The following DEE templates (found in mr-application/src/main/resources/dee-templates) were used for vectorized sensitivities. They have been removed in this release:

  • SensiCubeExport
  • SensiAggregatedCubeExport
Tests
Removed
Test Details
mr-application-tests/src/test/java/com/activeviam/mr/application/modes/OnlySensiCubeProfileWithOldDataTest.java Vector-specific test
mr-application-tests/src/test/java/com/activeviam/mr/application/modes/StandardAggProfileTest.java Vector-specific test
mr-application-tests/src/test/java/com/activeviam/mr/application/modes/StandardProfileMultilevelScopeTest.java Vector-specific test
mr-application-tests/src/test/java/com/activeviam/mr/application/modes/StandardProfileTest.java Vector-specific test
mr-application-tests/src/test/java/com/activeviam/mr/application/sources/AzureDataLoadingTest.java Vector-specific test
mr-application-tests/src/test/java/com/activeviam/mr/application/whatif/rest/SensiBookScalingRestServiceStandardIT.java Vector-specific test
mr-application-tests/src/test/java/com/activeviam/mr/application/whatif/rest/SensiVectorScalingRestServiceStandardIT.java Vector-specific test
mr-application-tests/src/test/java/com/activeviam/mr/application/whatif/rest/SensiVectorSubstitutionRestServiceStandardIT.java Vector-specific test
mr-application-tests/src/test/java/com/activeviam/mr/regression/ReferenceRegressionTestCombinedIT.java Vector-specific test
mr-application-tests/src/test/java/com/activeviam/mr/regression/ReferenceRegressionTestIT.java Vector-specific test
mr-application-tests/src/test/java/com/activeviam/mr/signoff/MarketRiskSignOffApplicationTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/calculations/DeltaPnLExplainPostProcessorsInterpolation2Test.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/calculations/DeltaPnLExplainPostProcessorsInterpolationDisabledTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/calculations/DeltaPnLExplainPostProcessorsRiskClassTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/calculations/DeltaPnLExplainPostProcessorsTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/calculations/TaylorVaRLadderVectorTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/calculations/VegaPnLExplainPostProcessorsInterpolation2Test.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/calculations/VegaPnLExplainPostProcessorsInterpolationDisabledTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/calculations/VegaPnLExplainPostProcessorsInterpolationTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/calculations/VegaPnLExplainPostProcessorsRiskClassTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/calculations/VegaPnLExplainPostProcessorsTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/calculations/VolgaTaylorVaRTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/config/CashGreekSensiCubeMeasureConfigTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/config/CorrelationGreekSensiCubeMeasureConfigTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/measures/config/ThetaGreekSensiCubeMeasureConfigTest.java Vector-specific test
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/services/impl/MarketDataRetrievalServiceTest.java Vector-specific test
mr-sensi-lib/src/test/java/com/activeviam/mr/sensi/calculations/postprocessors/impl/APnlVectorFromRiskSensiPostProcessorTest.java Vector-specific test
mr-sensi-lib/src/test/java/com/activeviam/mr/sensi/calculations/postprocessors/impl/PnlVectorFromCrossRiskSensiPostProcessorTest.java Vector-specific test
mr-sensi-lib/src/test/java/com/activeviam/mr/sensi/calculations/postprocessors/impl/PnlVectorFromRiskSensiPostProcessorTest.java Vector-specific test
Modified
Test Details
mr-application-tests/src/test/java/com/activeviam/mr/application/integration/ARealTimeTest.java Converted to scalar data model.
mr-application-tests/src/test/java/com/activeviam/mr/application/integration/RealTimeTest.java Converted to scalar data model.
mr-application-tests/src/test/java/com/activeviam/mr/application/modes/OnlySensiSummaryCubeProfileTest.java Converted to scalar data model.
mr-application-tests/src/test/java/com/activeviam/mr/application/modes/OnlySensiCubeProfileTest.java Converted to scalar data model.
mr-application-tests/src/test/java/com/activeviam/mr/application/modes/RealTimeBehaviourTestIT.java Converted to scalar data model.
mr-common-config/src/test/java/com/activeviam/mr/common/config/spring/properties/FeaturePropertiesTest.java Removed test for property.
mr-sensi-config/src/test/java/com/activeviam/mr/sensi/services/impl/ScalarMarketDataRetrievalServiceTest.java Includes the removed MarketData and CorporateAction stores for testing purposes as the MarketDataRetrievalService is not removed yet.

Refactor of SensiMeasureParameters

With the removal of the vector data model, the SensiMeasureParameters constructor has been refactored to remove the boolean isVector field.

Atoti Server patches

This release contains a patch for the CSVSource to resolve a bug introduced in Atoti Server 6.1.2. There are four patch classes in the mr-application module under the com.activeviam.source.csv package. These classes should not be used directly, as they will be removed in a later release.

Additionally, the DirectQueryActivePivotConfig class no longer extends the ADirectQueryApplicationConfig class from Atoti Server. Atoti Server 6.1.2 introduced some bean name changes in this class that cause bean resolution issues. These will be resolved in a following Atoti Server release, at which time this change can be reversed.