Migration notes 6.0

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

Migrate to 6.0.0-M2

Upgrading from version 5.4.0, see Atoti Market Risk 6.0-M2 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.2.0 . For details, see the dedicated Atoti Market Data documentation.
  • 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.
  • Deprecated market data and FX services removed: Several deprecated services made obsolete by the move to Atoti Market Data have been removed.
  • Measure chain changes related to Atoti Market Data: FX conversions and market data retrieval are now done through Atoti Market Data APIs, leading to several measure chain changes.
  • 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.
  • Liquidity Horizon: The Liquidity Horizon parameter is now taken into account when computing VaR/Es metrics. To achieve this, the parameter has been moved to the Scenario table.
  • Removed fields from PnL Actual tables: Fields related to risk factors have been removed from the stores PnL and PnLBaseStore and the cubes PLCube and PL Summary cube.
  • Market data file format configuration clean-up: Market data file formats now match Atoti Market Data tables, no longer requiring explicit file naming patterns to be declared. Backwards compatibility has been maintained by matching the configured file naming pattern to the deprecated file formats. For details, see Market data API data loading.
  • Updated dashboards: A number of dashboards have been updated due to market data measure and context value changes. For details, see Updated dashboards.
  • 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.
  • Added optional LegId attribute: The attribute LegId has been added to the PLCube to enable sending in trades that will have multiple legs under a single TradeId. Only available when the property mr.pnl.enable.leg-id is set to true. LegId should be added to the end of PLActuals and PLPCActuals.csv, and to .json summary export files. Please update database scripts accordingly to use with DirectQuery.
  • Data Connectors 5.0: This version of Atoti Market Risk uses Atoti Data Connectors 5.0.0, which has a completely reworked API. For details, see Data Connectors upgrade.

Breaking Changes

  • Atoti Market Data dependencies: The way Atoti Market Risk specifies the Atoti Market Data dependency has changed. Please see the full details below.
  • Measure chain changes related to Atoti Market Data: FX conversions and market data retrieval are now done through Atoti Market Data APIs, leading to several measure chain changes.
  • Rebuild schedule change: Previously the Atoti schemas would be rebuilt every 30 minutes. This has now changed to once a day, and we have added properties to configure this for your requirements.
  • Removed risk factor FX pair fallback logic: Removed logic that would default to using the risk factor as a base currency and the display currency as a counter currency when the risk factor did not contain a currency pair in the XXX/YYY format.
  • Removed Cash sensitivities: Cash sensitivities were dependent on risk factor FX pair fallback logic and have therefore been removed.
  • Adjustment Config classes moved: SupportedAdjustment and AdjustmentExecution config classes have moved from mr-pnl/sensi/var-config modules to mr-application to make it easier to disable specific adjustments.
  • Cube-level adjustments: The implementation of cube-level adjustments has been changed: now only add-ons are supported for cube-level adjustments, and the add-ons are aggregated. For details, see Cube-level adjustments.
  • Data Connectors 5.0: This version of Atoti Market Risk uses Atoti Data Connectors 5.0.0, which has a completely reworked API. For details, see Data Connectors upgrade.
  • Removal of obsolete DispatcherServlet configuration classes: Removed a configuration class and two utility classes setting up a DispatcherServletRegistrationBean as a workaround to Spring Boot incompatibilities in previous versions of Atoti Server. For details, see DispatcherServlet configuration removal.
  • Market data set changes: MarketDataSet is now a field on all base stores ensuring each fact is specifically associated to a set.
  • Liquidity Horizon: The parameter has moved to the Scenario table. See VaRTimePeriod context value for the behavior of the field.
  • Removed fields from PnL Actual tables: The attributes RiskFactor, RiskFactorType,RiskFactorCcy, CurveType, RiskClass and Qualifier have been removed from the stores PnL and PnLBaseStore and the cubes PLCube and PL Summary cube.

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.

DispatcherServlet configuration removal

Older versions of Atoti Server contained incompatibilities with Spring Boot. As a workaround, Atoti Market Risk provided the DispatcherServletConfig configuration class, exposing a DispatcherServletRegistrationBean registering the DispatcherServlet to the Atoti Server Spring context, and two ServletContextInitializer beans, registering SQL driver cleaners and a Java Logging to SLF4J logging bridge.

These workarounds are no longer needed and clash with tests using multiple SQL connections, such as what-if testing with a local content service.

The following classes have been deleted:

Class Details
DispatcherServletConfig Configuration class containing Spring beans for incompatibility workarounds.
SqlDriverCleaner An implementation of a ServletContextListener that deregisters SQL drivers when the context is shutting down.
SqlUtil Helper class with a single method registering SQL cleaners to a ServletContext.

Data Connectors upgrade

Atoti Data Connectors 5.0 has a new API that avoids technical beans and instead, makes extensive use of properties.

Certain Spring Configuration and classes are no longer useful and have been removed:

Click to see the full list of removed classes.

In addition:

  • The Spring properties mr.data-load.csv have been removed, and the default Data Connector properties are now used instead.
  • The source definition is described in the application.yaml configuration file. For convenience, the content specific to Data Connectors is set in the application-dlc.yaml file.
  • The topics used by Atoti Market Risk are defined via Java beans of type ISourceTopicDescription. They are still using the file-patterns properties, defined in the application.yaml configuration file.

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

The market data artifacts (market-data-lib, market-data-config, 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 parses the Risk Factor field for a currency pair.
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.

Removal of risk factor FX pair fallback logic

Previous versions of Atoti Market Risk would parse the risk factor for a currency pair when computing FX-related PnL Explain and when retrieving the FX rate to use for PnL vectors in the VaR cube.

If the risk factor could not be parsed as an XXX/YYY-formatted currency pair, the logic would attempt to use the risk factor as a base currency and the display currency as a counter currency for the FX rate.

This fallback logic has now been removed, with VaR Cube PnL conversion using the default FX rate retrieval (which uses the fact currency and the display currency). PnL Explain logic will fail to retrieve an FX rate if the risk factor is not in the correct format.

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.

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
  • The following dashboards have been updated to remove any usage of Cash-related measures:
    • Atoti MR & PL/How It Works/Computing Greek-Based PL
    • Atoti MR & PL/How It Works/How Taylor VaR is computed
    • Atoti MR & PL/How It Works/Taylor VaR using previous MD
    • Atoti MR & PL/Story-Telling Target Views/Backtesting Risk Factor View
    • Atoti MR & PL/Story-Telling Target Views/Investigate Tail for Taylor
    • Atoti MR & PL/Story-Telling Target Views/Taylor VaR Risk Factor View
    • MR/03 - PnL Explain/01 - PnL explain break-down

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.
Added field PLActuals.csv LegId Yes Leg Ids under a single Trade Id to enable sending in trades with multiple legs. Only available when the property mr.pnl.enable.leg-id is set to true.
Added field PLPCActuals.csv LegId Yes Leg Ids under a single Trade Id to enable sending in trades with multiple legs. Only available when the property mr.pnl.enable.leg-id is set to true.
Added field TradeAttributes.csv TradeSource No Identifier of the source system the trade was executed in.
Added field TradeAttributes.csv TradeStatus No Status representing the step in the trade lifecycle.
Added field TradeAttributes.csv OriginalNotional No Represents the notional at trade date.
Added field VaR-ES Cube.csv TradeSource No Identifier of the source system the trade was executed in.
Added field VaR-ES Cube.csv TradeStatus No Status representing the step in the trade lifecycle.
Added field Sensitivity Cube.csv TradeSource No Identifier of the source system the trade was executed in.
Added field Sensitivity Cube.csv TradeStatus No Status representing the step in the trade lifecycle.
Added field PLCube.csv TradeSource No Identifier of the source system the trade was executed in.
Added field PLCube.csv TradeStatus No Status representing the step in the trade lifecycle.
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.
Added field Scenarios.csv Liquidity Horizon Yes The liquidity horizon corresponding to the depicted scenario. It has been moved from the main VaR-ES store.
Removed field SummaryVaR.csv Liquidity Horizon Yes The liquidity horizon has moved to the Scenarios file.
Removed field TradePnL.csv Liquidity Horizon Yes The liquidity horizon has moved to the Scenarios file.
Removed field VaR-ESCube.csv Liquidity Horizon Yes The liquidity horizon has moved to the Scenarios file.
Removed field cubeAdjustments.csv Digest The location digest is no longer used for cube-level adjustments.
Changed meaning of field cubeAdjustments.csv Id No The value of this field is now equal to the value of the adjustment source field in the base store, and not to the adjustment execution ID, like before.
Removed field PLActuals.csv RiskFactor No This field is no longer required.
Removed field PLActuals.csv RiskClass No This field is no longer required.
Removed field PLCube.csv RiskFactor No This field is no longer required.
Removed field PLCube.csv RiskFactorType No This field is no longer required.
Removed field PLCube.csv RiskFactorCcy No This field is no longer required.
Removed field PLCube.csv CurveType No This field is no longer required.
Removed field PLCube.csv Qualifier No This field is no longer required.
Removed field PLCube.csv RiskClass No This field is no longer required.
Removed field PLPCActuals.csv RiskFactorId No This field is no longer required.
Removed field PLPCActuals.csv RiskClass No This field is no longer required.
Removed field Summary PL.csv RiskFactor No This field is no longer required.
Removed field Summary PL.csv RiskClass No This field is no longer required.

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-application module:

Property Default value Description
mr.application.rebuild.initial-delay 1440 The delay (in minutes) between the application start up and the first rebuild of the Atoti schemas.
mr.application.rebuild.interval 1440 After the first rebuild of the Atoti schemas (determined by the initial-delay), this is the interval (in minutes) between ensuing rebuilds.

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.
mr.cubes.levels.liquidity-horizon-level Liquidity Horizon@Liquidity Horizons@Risk The level that contains the liquidity horizon related to the current scenario.

mr-pnl-config module:

Property Default value Description
mr.pnl.enable.leg-id false When true, this adds the hierarchy Legs with the level LegId to the Booking dimension. LegId is an optional field, which can be added to the PLActuals.csv and PLPCActuals.csv input files.
Properties modified

mr-common-config module:

Property Name Comment New Value Old Value
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
mr.common.file-patterns.spot-market-data Added a default value to this pattern, matching the value previously defined in application.yaml. Setting the pattern to regex:^(?=.*MarketData)(?:(?!Sets).)+.csv$ enables backwards-compatible data loading. glob:**Spot_Market_Data*.csv None.
mr.common.file-patterns.curve-market-data Added a default value to this pattern, matching the value previously defined in application.yaml. Setting the pattern to regex:^(?=.*MarketData)(?:(?!Sets).)+.csv$ enables backwards-compatible data loading. glob:**Curve_Market_Data*.csv None.
mr.common.file-patterns.fx-rate-market-data Added a default value to this pattern, matching the value previously defined in application.yaml. Setting the pattern to glob:**FXRates*.csv enables backwards-compatible data loading. glob:**FX_Rate_Market_Data*.csv None.
mr.common.file-patterns.surface-market-data Added a default value to this pattern, matching the value previously defined in application.yaml. Setting the pattern to regex:^(?=.*MarketData)(?:(?!Sets).)+.csv$ enables backwards-compatible data loading. glob:**Surface_Market_Data*.csv None.
mr.common.file-patterns.cube-market-data Added a default value to this pattern, matching the value previously defined in application.yaml. Setting the pattern to regex:^(?=.*MarketData)(?:(?!Sets).)+.csv$ enables backwards-compatible data loading. glob:**Cube_Market_Data*.csv None.
mr.data-load.format Updated the default value to the the current release. 6.0 5.1

Market data properties (e.g. mr.sensi.market-data.vega.any.custom.interest-rate-risk.market-data-type=cube) have been updated to reject incorrect (or unsupported) configuration:

market-data-type interpolate interpolation-mode Details
Spot Hardcoded to false. None. Single value spot prices cannot be interpolated.
FX Spot Hardcoded to false. None. Single value FX rates cannot be interpolated.
Split Ratio N/A. N/A. No properties are available for the Split Ratio measures.
Cube Hardcoded to false. None. Mathematically possible, but unsupported by our API.
Correlation Hardcoded to false. None. A correlation value cannot be interpolated.
Dividend Hardcoded to false. None. Dividend amounts cannot be interpolated.
Theta N/A. N/A. As a function of the time to maturity, Theta cannot be interpolated.

mr-pnl-config module:

Property Name Comment New Value Old Value
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.pnl.pnl-cube-adjustments.hierarchies-to-exclude Default value changed. Date@Dates,Sign-off Status@Sign-off,DayToDay@Dates Date@Dates,Sign-off Status@Sign-off,Types@PnL,DayToDay@Dates

mr-sensi-config module:

Property Name Comment New Value Old Value
mr.sensi.file-patterns.market-data Updated the default pattern to correctly pick up MarketData.csv but not MarketDataSets.csv. regex:^(?=.*MarketData)(?:(?!Sets).)+.csv$ regex:^(?i).*MarketData(?<!MarketDataSets).*.csv.*$
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-var-config module:

Property Name Comment New Value Old Value
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.var.var-cube-adjustments.hierarchies-to-exclude Default value changed. Date@Dates,Quantiles@Quantiles,RoundingMethods@Rounding,Sign-off Status@Sign-off,MarketShiftDate@Dates,displayCurrency@Currencies,DayToDay@Dates Date@Dates,Quantiles@Quantiles,RoundingMethods@Rounding,Scenario Sets@Risk,Sign-off Status@Sign-off,CalculationIds@Risk,MarketShiftDate@Dates,displayCurrency@Currencies,DayToDay@Dates
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.
mr.sensi.rules.cash All properties in this section have been removed as Cash sensitivities are no longer supported by Atoti Market Risk.
mr.sensi.market-data.cash All properties in this section have been removed as Cash sensitivities are no longer supported by Atoti Market Risk.
mr.data-load.csv.buffer-size Replaced by the Data Connectors API property dlc.csv.local.sources.[Source Name].source-properties.buffer-size.
mr.data-load.csv.dataset Replaced by the Data Connectors API property dlc.csv.local.sources.[Source Name].root-base-dir.
mr.data-load.csv.lines-to-skip Replaced by the Data Connectors API properties associated to the topic with the class CsvParserDescription.
mr.data-load.csv.parser-threads Replaced by the Data Connectors API property dlc.csv.local.sources.[Source Name].source-properties.parser-threads.
mr.data-load.csv.separator Replaced by the Data Connectors API properties associated to the topic with the class CsvParserDescription.
mr.data-load.csv.synchronous-mode Replaced by the Data Connectors API property dlc.csv.local.sources.[Source Name].source-properties.synchronous-mode.
mr.data-load.source The setup relies on the Data Connectors configuration.

mr-sensi-config:

Property Name Comment
mr.sensi.file-patterns.cash All properties in this section have been removed as Cash sensitivities are no longer supported by Atoti Market Risk.
mr.sensi.types.cash All properties in this section have been removed as Cash sensitivities are no longer supported by Atoti Market Risk.

Properties files

Files added
File Name Details
application-databricks.yaml This file provides a default set of properties to run in DirectQuery mode using Databricks. This profile allows you to specify environment-specific properties, such as password or database, with environment variables. You can also edit the file with your specific property values.
Files modified
File Name Details
application.yaml DirectQuery properties have been removed from this properties file. These properties are now exclusively in the property file for the specific database: application-databricks/mssql/snowflake.yaml.
application-mssql.yaml Environment-specific properties, such as username, password, schema, can now be specified with environment variables when using this profile. Additionally, schema validation is now enabled, and clustering is used for all base fields.
application-snowflake.yaml Environment-specific properties, such as username, password, schema, can now be specified with environment variables when using this profile. Additionally, schema validation is now enabled, and clustering is used for all base fields.

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.
Added field PnL LegId String Leg Ids under a single Trade Id to enable sending in trades that will have multiple legs under a single Trade Id. This is an optional field available when the property mr.pnl.enable.leg-id is set to true.
Added field Trade Attributes TradeSource String The identifier of the source system the trade was executed in.
Added field Trade Attributes TradeStatus String The status representing the step in the trade lifecycle. If left blank, this field will default to LIVE.
Added field Trade Attributes OriginalNotional Double The notional at trade date.
Added field BaseStore TradeSource String The identifier of the source system the trade was executed in.
Added field BaseStore TradeStatus String The status representing the step in the trade lifecycle. If left blank, this field will default to LIVE.
Added field SensiBaseStore TradeSource String The identifier of the source system the trade was executed in.
Added field SensiBaseStore TradeStatus String The status representing the step in the trade lifecycle. If left blank, this field will default to LIVE.
Added field PnLBaseStore TradeSource String The identifier of the source system the trade was executed in.
Added field PnLBaseStore TradeStatus String The status representing the step in the trade lifecycle. If left blank, this field will default to LIVE.
Added field Scenarios LiquidityHorizon Integer The Liquidity Horizon in days. This field is optional.
Removed field Trade PNL LiquidityHorizon Integer The field has been moved to the Scenarios store.
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.
Renamed store CubeLevelAdjustments SignOffDigestStore -> CubeLevelAdjustments
Removed field CubeLevelAdjustments Digest String The location digest is no longer used for cube-level adjustments.
Changed field name CubeLevelAdjustments MandateId -> TaskId String The name of the task for which the adjustment was created.
Removed field PnL RiskFactor String This field is no longer required.
Removed field PnL RiskClass String This field is no longer required.
Removed field PnLBaseStore RiskFactor String This field is no longer required.
Removed field PnLBaseStore RiskFactorType String This field is no longer required.
Removed field PnLBaseStore RiskFactorCcy String This field is no longer required.
Removed field PnLBaseStore CurveType String This field is no longer required.
Removed field PnLBaseStore Qualifier String This field is no longer required.
Removed field PnLBaseStore RiskClass String This field is no longer required.

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 MARKET_DATA_SET String The market data set that should be used when retrieving rates for FX conversion.
Added field TRADE_SENSITIVITIES MARKET_DATA_SET 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 MARKET_DATA_SET 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 MARKET_DATA_SET String The market data set that should be used when retrieving rates for FX conversion.
Added field TRADEPNLS_VECTOR MARKET_DATA_SET String The market data set that should be used when retrieving rates for FX conversion.
Added field TRADE_ATTRIBUTES TRADE_SOURCE String Identifier of the source system the trade was executed in.
Added field TRADE_ATTRIBUTES TRADE_STATUS String Status representing the step in the trade lifecycle.
Added field TRADE_ATTRIBUTES ORIGINAL_NOTIONAL Double Represents the notional at trade date.
Added field SCENARIOS LIQUIDITY_HORIZON Integer The Liquidity Horizon in days. This field is optional.
Removed field TRADEPNLS LIQUIDITY_HORIZON Integer The field has been moved to the SCENARIOS table.
Removed field TRADEPNLS_VECTOR LIQUIDITY_HORIZON Integer The field has been moved to the SCENARIOS table.
Changed field name TRADE_SENSITIVITIES TENOR_LABELS -> TENOR_LABEL String The tenor label, corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.
Changed field name TRADE_SENSITIVITIES TENOR_DATES -> TENOR_DATE Date An explicit tenor date, which is used to sort tenors and to re-bucket sensitivities (if supported).
Changed field name TRADE_SENSITIVITIES MATURITY_LABELS -> MATURITY_LABEL String Name for the bucketed group.
Changed field name TRADE_SENSITIVITIES MATURITY_DATES -> MATURITY_DATE 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 TENOR_LABELS -> TENOR_LABEL 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 TENOR_DATES -> 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 MATURITY_LABELS -> MATURITY_LABEL String Name for the bucketed group.
Changed field name TRADE_SENSITIVITIES_VECTOR MATURITY_DATES -> MATURITY_DATE Date An explicit maturity date, which is used to sort tenors and to re-bucket sensitivities (if supported).
Changed field name TRADE_ATTRIBUTES MATURITY_DATE -> TRADE_MATURITY_DATE String The maturity date of the trade.
Changed field name DYNAMIC_TENORS TENOR_LABELS -> TENOR_LABEL String The label corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.
Changed field name DYNAMIC_MATURITIES TENOR_LABELS -> TENOR_LABEL String The label corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.
Changed field name DYNAMIC_MONEYNESS TENOR_LABELS -> TENOR_LABEL String The label corresponding to the vertex of the risk factor, such as 3M, 5Y, and so on.
Renamed table CUBE_LEVEL_ADJUSTMENTS SIGN_OFF_DIGEST_STORE -> CUBE_LEVEL_ADJUSTMENTS
Removed field CUBE_LEVEL_ADJUSTMENTS DIGEST String The location digest is no longer used for cube-level adjustments.
Changed field name CUBE_LEVEL_ADJUSTMENTS MANDATE_ID -> TASK_ID String The name of the task for which the adjustment was created.
Removed field PNL RISK_FACTOR String This field is no longer required. Please note this field was a primary key. Data must be modified accordingly to avoid primary key collisions.
Removed field PNL RISK_CLASS String This field is no longer required.

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

Added

Cube Dimension Hierarchy Levels Datastore fields Details
PLCube Booking Legs LegId LegId This optional attribute was added to enable sending in trades that will have multiple legs under a single TradeId. Only available when the property mr.pnl.enable.leg-id is set to true.
All TradeAttributes TradeSources TradeSource TradeSource Added to identify the source system the trade was executed in.
All TradeAttributes TradeStatuses TradeStatus TradeStatus Added to analyse and break down the dtd pnl differences to find the components due to new trades, amended trades and cancelled trades.

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]
PLCube Risk RiskFactors [ALL, RiskFactor]
PLCube Risk RiskFactorTypes [ALL, RiskFactorType]
PLCube Risk RiskFactorCurrencies [ALL, RiskFactorCcy]
PLCube Risk CurveTypes [ALL, CurveType]
PLCube Risk Qualifiers [ALL, Qualifier]
PLCube Risk RiskClasses [ALL, RiskClass]
PL Summary Cube Risk RiskFactors [ALL, RiskFactor]
PL Summary Cube Risk RiskFactorTypes [ALL, RiskFactorType]
PL Summary Cube Risk RiskFactorCurrencies [ALL, RiskFactorCcy]
PL Summary Cube Risk CurveTypes [ALL, CurveType]
PL Summary Cube Risk Qualifiers [ALL, Qualifier]
PL Summary Cube Risk RiskClasses [ALL, RiskClass]

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.
VaR-ES Cube Original Notional The notional at trade date. If the trade is amended or partially terminated, the changed value will be sent to Notional.
VaR-ES Cube Original Notional Native The notional at trade date in the native currency.

Modified

All measures in the Value at Risk folder have moved to the Value At Risk folder, and those in Value at Earnings have moved to Value At Earnings.

Market data

Sensitivity- and risk-class-agnostic market data measures have been added, replacing the previously visible FX-converted and Native measures.

For sensitivities that used a single type of market data (for example, CrossGamma only uses Spot market data), the PnL Explain chains have been updated to use those market data types directly. When a sensitivity uses multiple types of market data depending on risk class, such as Delta with Spot for equities and Curve for GIRR, the top level market data measures have been updated to behave as a location-based switcher between the available market data types.

For details about the market data measures made available in Market Risk 6.0.0, the Market Data section covers the types of market data available in the Sensitivity Cube as well as which market data types are used for each sensitivity. A complete list of measures is also available.

Removed

Cube Measure Details
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.
Sensitivity Cube Cash measures All Cash measures have been removed without a replacement.
Vector-specific measures

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

Context values

Added

Name Details
VaRTimePeriod The VaR time period context value works in conjunction with the Liquidity Horizon field.

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

Cube-level adjustments

Cube-level adjustments now rely on the creation of facts added to the base store (and on entries added to stores referenced by the base store if needed) to define the location at which they are applied, and on entries in an isolated store to define the measures for which they are defined, along with the adjusted values. Only add-ons are now supported for cube-level adjustments. The add-ons are aggregated using dynamic aggregation on the adjustment source field of the base store of the cube for which the adjustment is created. The notion of location digest has been removed from the logic used for cube-level adjustments. Please see additional details in Testing custom adjustment types.

The store SignOffDigestStore has been renamed to CubeLevelAdjustments and its field updated - please see description of the changes in the Datastores and Database sections.

The method CubeLevelAdjustedMeasuresBuilder.buildAdjustmentMeasures(ICanStartBuildingMeasures builder, String pluginKey, List<String> adjustableMeasures, LevelIdentifier asOfDateLevel, LevelIdentifier displayCurrencyLevel, LevelIdentifier marketDatSetLevel, List<HierarchyIdentifier> hierarchiesToExlude, LevelIdentifier signOffStatusLevel, String otherMember, String formatter) has been removed.

Supported Adjustments definitions

  • The Type level has been added to the SupportedAdjustmentDTO SupportedAdjustmentsPnLConfig.pnlCubeLevelAdjustment().
  • The Scenario Set, Calculation Id and Instrument type levels have been added to the SupportedAdjustmentDTO SupportedAdjustmentsVaRConfig.varEsCubeLevelAdjustment().

DEE templates

The CubeAdjustmentTemplate DEE template (found in mr-application/src/main/resources/dee-templates) has been updated to use the CubeLevelAdjustments store.

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.

Schema rebuild

In the MarketRiskConfig class in mr-application we create a bean to schedule an Atoti schema rebuild. Previously this would run after 5 minutes and every 30 minutes thereafter. This was more frequent than necessary and may impact performance. We have increased the default to 1,440 minutes (24 hours) so the rebuild occurs once a day. We have also added new properties (mr.application.rebuild...) to customize this for your requirements.

Sign-Off REST services

The implementation of the Sign-Off REST services now has a Boolean to enable/disable them. Out of the box, the Sign-Off REST services are disabled until the initial load is completed. This prevents the Sign-Off server from sending requests on those services before the end of the initial load.

Atoti core exceptions are now used instead of the previously used Javax exceptions.

Error messages and constants have been fixed. Their prefix and/or content was previously incorrect. In particular, the constant ERROR_MESSAGE has been replaced by the constant ERROR_MESSAGE_NO_VALID_DTO_PROVIDED.

Webservices

The following outdated dependency has been removed from the POM file of the mr-common-lib module:

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0</version>
    <scope>compile</scope>
</dependency>

The String constant for the "application/json" media type from the Spring class org.springframework.http.MediaType is used instead of the corresponding constant from thejavax.ws.rs.core.MediaType class.

Sorting order of beans

The class StartupSpringBeanOrder has been added with constants used to define the order in which some of the beans are loaded: In increasing order:

  • START_MANAGER: Starts the Atoti Server manager.
  • REGISTER_DATABASE_LISTENERS: Registers the parent/child listeners.
  • INITIAL_CONFIGURATION_DATA_LOAD: Starts the initial data load.
  • INITIAL_DATA_LOAD: Instantiates beans after the initial data load is completed.
  • START_DISTRIBUTED_MESSENGERS: Starts the distribution messengers.