Migration notes 5.0

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

Migrate to 5.0.0

Upgrading from version 4.1.0 - see Atoti Market Risk 5.0.0 Release Notes.

Headline announcement

  • Upgrade to Atoti Server 6.0.3
  • What-If and Sign-Off REST services migrated to Spring MVC : The What-If REST and Sign-Off services are now @RestController classes that conform to Spring MVC patterns.
  • Change to the way FX conversion is computed for PnL values in the VaR-ES cube.
  • Taylor VaR enhancements:
    • You can now use market shift data from a different date to the asOfDate for the calculation of Taylor measures.
    • New measures display minimum, maximum and average values of market shift vectors, and the value at a user-specified percentile of the vector.
  • TradeKey field has been introduced for Summary data.
  • Application and Integration tests have been moved to dedicated module.
  • Sources have been moved to jar artifacts.
  • Configuration module sources have been moved to a separate zip to be used in conjunction with the main application zip.

Upgrade to Atoti Server 6.0.3

Monitoring configuration

In Atoti Server 6.0.3, monitoring is part of the core product. The Atoti Server Monitoring (APM) extension is no longer needed.

  • The following configuration files have been added:
    • ApplicationMonitoringConfig.java
    • BraveTracingConfig.java
    • MonitorConfig.java
Security Configuration
  • The UserDetailsService bean is now defined in its own class, UserDetailsServiceConfig. The class InMemoryUserDetailsManagerBuilder has been removed.
  • In the class ASecurityConfig, the class AActiveUISecurityConfigurer has been added to handle the security for the Atoti UI connection.

The SecurityConfig file has been modified accordingly.

Data-Extract-Engine Configuration

Only the CsvDataExtractionEngineConfig configuration class coming from the Data Controller core classes is imported now. These configuration files are no longer imported:

  • CsvDataExtractionServicesConfig
  • CsvDataExtractionRestServicesConfig
  • CsvEnhancedDrillthroughServicesConfig
  • EnhancedDrillthroughRestServicesConfig
  • DataExtractionWebServicesConfig
  • DataExtractionRemotingServicesConfig
REST services
  • The classes DatastoreServiceConfiguration and MarketRiskDatastoreServicesConfig have been removed.

  • The classes ISignOffRestService and SignOffRestServiceConfig have been removed.

  • The class SignOffRestService is now a Spring MVC RestController.

  • The class DataLoadControllerRestServiceConfig has been removed.

  • The class WhatIfFileUploadRestConfig has been removed.

  • The interface IWhatIfSubmitter has been created in the mr-common-lib module with a default implementation for a What-If submission. In order to define that interface in mr-common-lib module, a dependency to whatif-core and a dependency to adjustments-services have been added in the POM file of the module.

  • The WhatIf REST services in the project are defined as RestController classes:

    • In the mr-common-config module:
      • ParentChildRestServiceController
    • in the mr-var-config module:
      • PnLBookScalingRestService
      • PnLBookAddonRestService
      • PnLVectorScalingRestService
      • PnLVectorAddonRestService
      • PnLScenarioScalingRestService
      • PnLScenarioAddonRestService
      • PnLVectorSubstitutionRestService
    • in the mr-sensi-config module:
      • DeltaBookScalingRestService
      • DeltaBookAddonRestService
      • DeltaVectorScalingRestService
      • DeltaVectorAddonRestService
      • DeltaVectorSubstitutionRestService
  • The class ParentChildRestfulService has been removed and is replaced by the class ParentChildRestServiceController implemented as a RestController.

  • The class SupportedWhatIfOperationsRestServiceConfig now simply imports the configuration files SupportedBranchAwareAdjustmentsService and SupportedBranchAwareAdjustmentsRestService.

  • The class WhatIfRestConfig imports the classes mentioned above.

  • The class FileUploadWhatIfRestfulService is now a RestController.

Content Server Database

The content server database has been migrated to H2 version 2.

Datastore Configuration
  • The class ExtendedDatastoreConfig has been renamed to ExtendedActivePivotWithDatastoreConfig and its content upgraded to be compatible with the Atoti Server 6.0 API.
Source Configuration
  • The interfaces CsvColumnsProviderFunction (class file), CsvPublisherProviderFunction (class file) and CsvSourceParametersProviderFunction (in class ACsvSourceParametersProvider) have been created as aliases of functions used to make source configuration beans accessible from a different configuration class than the one in which they are defined without cycling bean dependencies.
    They are used in the classes CsvColumnsProvider, CsvPublisherProvider and in all the source configuration files:

    • in the mr-common-config module:

      • AdjustmentAzureCsvSourceConfig
      • AdjustmentCsvSourceConfig
      • AdjustmentLocalCsvSourceConfig
      • CommonAzureCsvSourceConfig
      • CommonCsvSourceConfig
      • CommonLocalCsvSourceConfig
    • in the mr-var-config module:

      • VaRSummaryAzureCsvSourceConfig
      • VaRSummaryCsvSourceConfig
      • VaRSummaryLocalCsvSourceConfig
      • VaRAzureCsvSourceConfig
      • VaRCsvSourceConfig
      • VaRLocalCsvSourceConfig
      • VarSourceConfiguration
    • in the mr-sensi-config module:

      • ASensiCsvSourceConfig
      • SensiAzureCsvSourceConfig
      • SensiLocalCsvSourceConfig
      • ASensiImportCsvSourceConfig
      • SensiImportAzureCsvSourceConfig
      • SensiImportLocalCsvSourceConfig
      • ScalarSensiCsvSourceParametersProviderConfig
      • SensiCsvSourceParametersProviderConfig
      • StdSensiCsvSourceParametersProviderConfig.

      The source configuration for scalar sensitivities has been put in the ScalarSensiCsvSourceParametersProviderConfig, that replaces the AScalarSensiCsvCSourceConfig class.

      The source configuration for vectorized sensitivities has been put in the StdSensiCsvSourceParametersProviderConfig class, that replaces the AStdSensiCsvSourceConfig class.

      The ScalarSensiAzureCsvSourceConfig and ScalarSensiLocalCsvSourceConfig classes have been removed.

    • in the mr-sensi-config module:

      • PnLAzureCsvSourceConfig
      • PnLCsvSourceConfig
      • PnLLocalCsvSourceConfig
      • PnLCsvSourceParametersProviderConfig
      • PnLSummaryAzureCsvSourceConfig
      • PnLSummaryCsvSourceConfig
      • PnLSummaryLocalCsvSourceConfig
  • The AdjustmentsCsvSourceParametersProviderConfig and CommonCsvSourceParametersProviderConfig classes have been removed.

  • The CommonSourcePatternsConfig class has be renamed to CommonCsvSourceParametersProviderConfig and moved from config to extensions package. The bean commonPatterns is split into two beans, commonPatterns and commonPatternsMainCubes, which return ChannelParametersHolderOperator instead of ChannelParametersHolder.

  • The following Spring bean qualifiers have been changed:

Define Value What Related source Bean return
SP_QUALIFIER__SENSI_TOPIC_COLUMNS_PROVIDER sensi-topic-columns-provider Removed Sensi-Source CsvColumnsProvider
SP_QUALIFIER__SENSI_TOPIC_PUBLISHERS_PROVIDER sensi-topic-publishers-provider Removed Sensi-Source CsvPublisherProvider
SP_QUALIFIER__SENSI_SUMMARY_TOPIC_COLUMNS_PROVIDER sensi-summary-topic-columns-provider Removed Sensi-Import-Source CsvColumnsProvider
SP_QUALIFIER__SENSI_SUMMARY_TOPIC_PUBLISHERS_PROVIDER sensi-summary-topic-publishers-provider Removed Sensi-Import-Source CsvPublisherProvider
SP_QUALIFIER__VAR_TOPIC_COLUMNS_PROVIDER var-topic-columns-provider Removed VaR-Source CsvColumnsProvider
SP_QUALIFIER__VAR_TOPIC_PUBLISHERS_PROVIDER var-topic-publishers-provider Removed VaR-Source CsvPublisherProvider
SP_QUALIFIER__VAR_SUMMARY_TOPIC_COLUMNS_PROVIDER var-summary-topic-columns-provider Removed VaR-Summary-Source CsvColumnsProvider
SP_QUALIFIER__VAR_SUMMARY_TOPIC_PUBLISHERS_PROVIDER var-summary-topic-publishers-provider Removed VaR-Summary-Source CsvPublisherProvider
SP_QUALIFIER__PNL_TOPIC_COLUMNS_PROVIDER pnl-topic-columns-provider Removed PnL-Source CsvColumnsProvider
SP_QUALIFIER__PNL_TOPIC_PUBLISHERS_PROVIDER pnl-topic-publishers-provider Removed PnL-Source CsvPublisherProvider
SP_QUALIFIER__PNL_SUMMARY_TOPIC_COLUMNS_PROVIDER pnl-summary-topic-columns-provider Removed PnL-Summary-Source CsvColumnsProvider
SP_QUALIFIER__PNL_SUMMARY_TOPIC_PUBLISHERS_PROVIDER pnl-summary-topic-publishers-provider Removed PnL-Summary-Source CsvPublisherProvider
SP_QUALIFIER__ADJUSTMENTS_TOPIC_COLUMNS_PROVIDER adjustments-topic-columns-provider Removed adjustment-Source CsvColumnsProvider
SP_QUALIFIER__ADJUSTMENTS_TOPIC_PUBLISHERS_PROVIDER adjustments-topic-publishers-provider Removed adjustment-Source CsvPublisherProvider
SP_QUALIFIER__COMMON_TOPIC_COLUMNS_PROVIDER common-topic-columns-provider Removed common-Source CsvColumnsProvider
SP_QUALIFIER__COMMON_TOPIC_PUBLISHERS_PROVIDER common-topic-publishers-provider Removed common-Source CsvPublisherProvider
SP_QUALIFIER__SENSI_TOPIC_TO_STORE_AND_FILE_MAP sensi-topic-to-store-and-file-map Added Sensi-Source ChannelParametersHolderOperator
SP_QUALIFIER__SENSI_SUMMARY_TOPIC_TO_STORE_AND_FILE_MAP sensi-summary-topic-to-store-and-file-map Added Sensi-Import-Source ChannelParametersHolderOperator
SP_QUALIFIER__VAR_TOPIC_TO_STORE_AND_FILE_MAP var-topic-to-store-and-file-map Added VaR-Source ChannelParametersHolderOperator
SP_QUALIFIER__VAR_SUMMARY_TOPIC_TO_STORE_AND_FILE_MAP var-summary-topic-to-store-and-file-map Added VaR-Summary-Source ChannelParametersHolderOperator
SP_QUALIFIER__PNL_TOPIC_TO_STORE_AND_FILE_MAP pnl-topic-to-store-and-file-map Added PnL-Source ChannelParametersHolderOperator
SP_QUALIFIER__PNL_SUMMARY_TOPIC_TO_STORE_AND_FILE_MAP pnl-summary-topic-to-store-and-file-map Added PnL-Summary-Source ChannelParametersHolderOperator
SP_QUALIFIER__ADJUSTMENTS_TOPIC_TO_STORE_AND_FILE_MAP adjustments-topic-to-store-and-file-map Added adjustment-Source ChannelParametersHolderOperator
SP_QUALIFIER__COMMON_TOPIC_TO_STORE_AND_FILE_MAP common-topic-to-store-and-file-map Added common-Source ChannelParametersHolderOperator
commonPatterns Removed common-Source ChannelParametersHolder
Continuous Queries Streams and Handlers
  • The class ASetStoreStream has been removed.

VaR FX Conversion

This version changes the method by which PnL vectors are converted to a different currency within the VaR-ES cube. The mark-to-market (MTM) value of the trade is now included in the calculation to ensure the FX risk associated with the trade is taken into account. Details of the calculation can be seen here. This change impacts all measures that are based on the PnL vectors, including VaR, VaE, Expected Shortfall, and so on.

Change in handling of summary data

In order to be consistent with the DirectQuery feature and to simplify the setup, the summary cubes (Var-ES Summary cube, Sensi Summary cube, PnL Summary cube) are deprecated.

The summary data are now intended to be loaded into the main cubes (Var-ES cube, Sensi cube, PnL cube) or grabbed from the DirectQuery feature. They will no longer be in a separate cube.

The summary data are intended to be aggregated at book level and doesn’t contain any TradeId. Compared to the file format used for the Summary cubes, the number of columns are reduced to get closer to the main store format. The parent child and the fx rates are intended to also be exported and re-imported as they are removed from the flat summary data.

To activate this new feature, the deprecated cubes have to be disabled (var-summary=false, pnl-summary=false, sensi-summary=false).

To store book-level data with trade-level data, a new field is now present on the base stores: TradeKey. It takes the role of the primary key previously held by the TradeId field.

For trade-level data, TradeKey equals TradeId. For book-level data, TradeKey equals book + "#" + var_inclusion and TradeId is empty. It is equal to the specific value _DATAMEMBER_, which means it’s empty for a level member.

Application tests moved

Tests have been moved from the mr-application module to their own module mr-application-tests. The test class MarketRiskTestApplication remains under tests in the mr-application module.

Deliverables

The application is now delivered on its own as a zip file while the rest of the sources are packaged as jars. All of them are available on Artifactory. As a result, now all modules have source and test jars available.

To preserve configuration flexibility, the configuration module sources (without tests) are now delivered as a zip file to be used in conjunction with the main application zip. To use this archive in a new project, extract the main archive into a directory, followed by the config archive in the same directory, overriding the pom.xml file.

Configuration files

Files Added

apm.properties

The apm.properties file is used to configure the Atoti Server Application Performance Monitoring (APM). APM monitors the healthiness and performance of Atoti Server instances. It provides several features easing the support work, and reducing the burden of maintaining and troubleshooting Atoti Server.

For more details on this file, see Application Performance Monitoring in the Atoti Server Documentation.

tracing.properties

Includes tracing configuration for Atoti Server. For additional information, see Tracing Properties in the Atoti Server Documentation.

Files Modified

jwt.properties

Properties starting with qfs.jwt have been renamed to start with activeviam.jwt.

application.yaml

New properties:

Property Name Value Comment
springdoc.swagger-ui.enabled false Enable flag for Swagger UI.
spring.profiles.active "local-content" Active Spring profiles.
mr.properties

New properties:

Property Name Value Comment
summaryPnLFilePattern glob:**SummaryPL*.csv Pattern for the summary data loaded into the PnL Cube.
summarySensiFilePattern glob:**SummarySensitivity*.csv Pattern for the summary data loaded into the Sensitivity Cube.
summaryTradePnlFilePattern glob:**SummaryVaR*.csv Pattern for the summary data loaded into the VaR/ES Cube.
mr-config.properties

New properties:

Property Name Value Comment
market.shift.date.level "MarketShiftDate@MarketShiftDate@Dates" Level containing the date used to select market shifts for Taylor calculations.
market.shift.date.specific "TODAY=DAY0,YESTERDAY=DAY-1" The specific dates used to fill the MarketShiftDate hierarchy. The first one is the default.

The format is <three characters for date plugin name> + <an integer as a parameter>.
Where the default registered date plugins are:
  • DAY: the business day
  • EOM: end of month
  • EOQ: end of quarter
  • EOY: end of year
For example:
Tomorrow = DAY+1
Previous day = DAY-1
End of month = EOM-1
shift.percentile.default.value 95 The default percentile of market shifts when displayed by the x Shift Vector Percentile measures.

Updated properties:

Property Name Comment New Value Old Value
contentServer.factory-reset.folder-name The folder to import only contains bookmarks information, not the content of the whole content server mr-bookmarks mr-content-server
signoff.properties

Updated properties:

Property Name Comment New Value Old Value
sign-off.extraction.templates New template has been added to extract files with the new summary format. DEFAULT:CubeAdjustmentExport,FXRateExport,BookParentChildExport;VaR-ES Cube:VaRESCubeExport,VaRESAggCubeExport,VaRESCubeMetricExport,VaRSummaryExport;VaR-ES Cube VaR:VaRESCubeMetricVaROnlyExport;Sensitivity Cube:SensiCubeExport,SensiAggCubeExport,SensiCubeMetricExport;PLCube:PLCubeExport,PLAggCubeExport
sign-off.extraction.templates.scalar New template has been added to extract files with the new summary format. DEFAULT:CubeAdjustmentExport,FXRateExport,BookParentChildExport;VaR-ES Cube:VaRESCubeExport,VaRESAggCubeExport,VaRESCubeMetricExport,VaRSummaryExport;VaR-ES Cube VaR:VaRESCubeMetricVaROnlyExport;Sensitivity Cube:SensiScalarCubeExport,SensiScalarAggCubeExport,SensiCubeMetricExport,SensiSummaryExport;PLCube:PLCubeExport,PLAggCubeExport
Properties used for tests: mr.bookmarks.properties

Updated properties:

Property Name Comment New Value Old Value
contentServer.url The exported folder only contains bookmarks information, not the content of the whole content server mr-bookmarks risk-content-server
contentServer.bookmarks.export-folder-name Updated URL for the ActivePivot 6.0.x content server http://localhost:10010/mr-application/activeviam/content http://localhost:10010/mr-application/content

Datastores

Modified

The following fields have been added to the stores:

Modification Store Field Type Description
Added TradePnL, BaseStore MTM Double The mark-to-market (MTM) value of the trade. This is used to calculate FX risk when converting PnL values to another currency.
Added TradeAttributes TradeKey String Primary key that contains either tradeID or book and other discriminator fields.
Deleted TradeAttributes TradeId String The main table is now linked using the TradeKey field.
Added Pnl, BaseStore TradeKey String Primary key that contains either tradeID or book and other discriminator fields.
Modified Pnl, BaseStore TradeId String This fields is not a primary key anymore, the TradeKey field is used instead.
Added TradeSensitivities, BaseStore TradeKey String Primary key that contains either tradeID or book and other discriminator fields
Modified TradeSensitivities, BaseStore TradeId String This fields is not a primary key anymore, the TradeKey field is used instead.
Added TradePnL, BaseStore TradeKey String Primary key that contains either tradeID or book and other discriminator fields
Modified TradePnL, BaseStore TradeId String This fields is not a primary key anymore, the TradeKey field is used instead.
Modified TradePnL, BaseStore Liquidity Horizon Int This fields is now a primary key.
Modified BookParentChild Parent String Not a key field anymore.
Modified CounterpartyParentChild Parent String Not a key field anymore.
Modified LegalEntityParentChild Parent String Not a key field anymore.

Measures

Added

Cube Measure Details
VaR-ES, VaR-ES Summary MTM Mark-to-market (MTM) value of the trade.
VaR-ES, VaR-ES Summary MTM Native Mark-to-market (MTM) value of the trade in units of original currency.
Market Data Shift Vector Minimum Minimum of the Market Shift vector, not interpolated, not normalized
Market Data Shift Vector Maximum Maximum of the Market Shift vector, not interpolated, not normalized
Market Data Shift Vector Average Average of the Market Shift vector, not interpolated, not normalized
Market Data Shift Vector Percentile Percentile of the Market Shift vector, not interpolated, not normalized
Market Data Shift Vector Normalized Minimum Minimum of the Market Shift vector, not interpolated, normalized
Market Data Shift Vector Normalized Maximum Maximum of the Market Shift vector, not interpolated, normalized
Market Data Shift Vector Normalized Average Average of the Market Shift vector, not interpolated, normalized
Market Data Shift Vector Normalized Percentile Percentile of the Market Shift vector, not interpolated, normalized
Sensi, Sensi Summary Correlation Shift Vector Minimum Minimum of the Market Shift vector used by the Correlation sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Correlation Shift Vector Maximum Maximum of the Market Shift vector used by the Correlation sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Correlation Shift Vector Average Average of the Market Shift vector used by the Correlation sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Correlation Shift Vector Percentile Percentile of the Market Shift vector used by the Correlation sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Correlation Shift Vector Normalized Minimum Minimum of the Market Shift vector used by the Correlation sensitivity, not interpolated, normalized
Sensi, Sensi Summary Correlation Shift Vector Normalized Maximum Maximum of the Market Shift vector used by the Correlation sensitivity, not interpolated, normalized
Sensi, Sensi Summary Correlation Shift Vector Normalized Average Average of the Market Shift vector used by the Correlation sensitivity, not interpolated, normalized
Sensi, Sensi Summary Correlation Shift Vector Normalized Percentile Percentile of the Market Shift vector used by the Correlation sensitivity, not interpolated, normalized
Sensi, Sensi Summary CrossGamma Shift Vector Minimum Minimum of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, not normalized
Sensi, Sensi Summary CrossGamma Shift Vector Maximum Maximum of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, not normalized
Sensi, Sensi Summary CrossGamma Shift Vector Average Average of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, not normalized
Sensi, Sensi Summary CrossGamma Shift Vector Percentile Percentile of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, not normalized
Sensi, Sensi Summary CrossGamma Shift Vector Normalized Minimum Minimum of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, normalized
Sensi, Sensi Summary CrossGamma Shift Vector Normalized Maximum Maximum of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, normalized
Sensi, Sensi Summary CrossGamma Shift Vector Normalized Average Average of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, normalized
Sensi, Sensi Summary CrossGamma Shift Vector Normalized Percentile Percentile of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, normalized
Sensi, Sensi Summary Delta Shift Vector Minimum Minimum of the Market Shift vector used by the Delta sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Delta Shift Vector Maximum Maximum of the Market Shift vector used by the Delta sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Delta Shift Vector Average Average of the Market Shift vector used by the Delta sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Delta Shift Vector Percentile Percentile of the Market Shift vector used by the Delta sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Delta Shift Vector Normalized Minimum Minimum of the Market Shift vector used by the Delta sensitivity, not interpolated, normalized
Sensi, Sensi Summary Delta Shift Vector Normalized Maximum Maximum of the Market Shift vector used by the Delta sensitivity, not interpolated, normalized
Sensi, Sensi Summary Delta Shift Vector Normalized Average Average of the Market Shift vector used by the Delta sensitivity, not interpolated, normalized
Sensi, Sensi Summary Delta Shift Vector Normalized Percentile Percentile of the Market Shift vector used by the Delta sensitivity, not interpolated, normalized
Sensi, Sensi Summary Gamma Shift Vector Minimum Minimum of the Market Shift vector used by the Gamma sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Gamma Shift Vector Maximum Maximum of the Market Shift vector used by the Gamma sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Gamma Shift Vector Average Average of the Market Shift vector used by the Gamma sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Gamma Shift Vector Percentile Percentile of the Market Shift vector used by the Gamma sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Gamma Shift Vector Normalized Minimum Minimum of the Market Shift vector used by the Gamma sensitivity, not interpolated, normalized
Sensi, Sensi Summary Gamma Shift Vector Normalized Maximum Maximum of the Market Shift vector used by the Gamma sensitivity, not interpolated, normalized
Sensi, Sensi Summary Gamma Shift Vector Normalized Average Average of the Market Shift vector used by the Gamma sensitivity, not interpolated, normalized
Sensi, Sensi Summary Gamma Shift Vector Normalized Percentile Percentile of the Market Shift vector used by the Gamma sensitivity, not interpolated, normalized
Sensi, Sensi Summary Vanna Shift Vector Minimum Minimum of the Market Shift vector used by the Vanna sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Vanna Shift Vector Maximum Maximum of the Market Shift vector used by the Vanna sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Vanna Shift Vector Average Average of the Market Shift vector used by the Vanna sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Vanna Shift Vector Percentile Percentile of the Market Shift vector used by the Vanna sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Vanna Shift Vector Normalized Minimum Minimum of the Market Shift vector used by the Vanna sensitivity, not interpolated, normalized
Sensi, Sensi Summary Vanna Shift Vector Normalized Maximum Maximum of the Market Shift vector used by the Vanna sensitivity, not interpolated, normalized
Sensi, Sensi Summary Vanna Shift Vector Normalized Average Average of the Market Shift vector used by the Vanna sensitivity, not interpolated, normalized
Sensi, Sensi Summary Vanna Shift Vector Normalized Percentile Percentile of the Market Shift vector used by the Vanna sensitivity, not interpolated, normalized
Sensi, Sensi Summary Vega Shift Vector Minimum Minimum of the Market Shift vector used by the Vega sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Vega Shift Vector Maximum Maximum of the Market Shift vector used by the Vega sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Vega Shift Vector Average Average of the Market Shift vector used by the Vega sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Vega Shift Vector Percentile Percentile of the Market Shift vector used by the Vega sensitivity, not interpolated, not normalized
Sensi, Sensi Summary Vega Shift Vector Normalized Minimum Minimum of the Market Shift vector used by the Vega sensitivity, not interpolated, normalized
Sensi, Sensi Summary Vega Shift Vector Normalized Maximum Maximum of the Market Shift vector used by the Vega sensitivity, not interpolated, normalized
Sensi, Sensi Summary Vega Shift Vector Normalized Average Average of the Market Shift vector used by the Vega sensitivity, not interpolated, normalized
Sensi, Sensi Summary Vega Shift Vector Normalized Percentile Percentile of the Market Shift vector used by the Vega sensitivity, not interpolated, normalized

Modified

This version changes the method by which PnL vectors are converted to a different currency within the VaR-ES cube. The mark-to-market (MTM) value of the trade is now included in the calculation to ensure the FX risk associated with the trade is taken into account. For the details of the calculation, see FX Effect on VaR. This change impacts all measures that are based on the PnL vectors, including VaR, VaE, Expected Shortfall, etc.

Input file formats

New files

File Required Purpose
SummarySensitivity.csv This file stores the sensitivities relative to a risk factor at the book level.

Modified

File Details
TradePnLs.csv An MTM column has been added representing the market-to-market value of the trade. Please note, the MTM column has been added before the PnL vector column. This is a breaking change. The column must be present in the input file, however it can be left empty for any trade.

Cube schema

Added

Cube Dimension Hierarchy Levels Datastore fields Details
Sensitivity, Sensitivity Summary, VaR-ES, VaR-ES Summary, Combined MarketShiftDate MarketShiftDate [MarketShiftDate] MarketShifts: AsOfDate. Supplemented by specific dates indicated in the market.shift.date.specific property. This slicing hierarchy is used to select market shifts from a specific date for the calculation of Taylor measures.

Upgrade to What-If 2.0 and Solutions BOM 1.1-AS6.0

The Solutions Tools BOM has been upgraded to 1.1-AS6.0, replacing Accelerator Tools BOM 1.0-AP6.0: <solutions-tools-bom.version>1.1-AS6.0</solutions-tools-bom.version> This includes What-If 2.0.0-AS6.0, which required the change of dependencies from:

<dependency>
    <groupId>com.activeviam.tools</groupId>
    <artifactId>whatif-examples</artifactId>
</dependency>
<dependency>   
    <groupId>com.activeviam.tools</groupId>
    <artifactId>whatif-core</artifactId>
</dependency>

to

<dependency>
    <groupId>com.activeviam.tools</groupId>
    <artifactId>whatif</artifactId>
</dependency>

mr-common-config

  • The class UnsecuredDatabaseServiceConfig has been added. It extends the core Atoti server class ADatabaseServiceConfig and defines parsers for What-If 2.0 objects, but does not set up the table security and does not define any formatters.

note

It is highly recommended to implement your own table security instead of using the one defined in the class UnsecuredDatabaseServiceConfig, and to use this class as a template to learn how to configure the table security and to obtain the map of parsers required by What-If 2.0.

  • WhatIfConfig: see What-If documentation: What-If Implementation Example for a detailed breakdown of the configuration of the new library.

  • Class WhatIfDatastoreDescriptionConfig.java:

configurator.addStore(schema, WhatIfDatastoreDefinition.WhatIfStoreDesc());

has been replaced by:

configurator.addStore(schema, SimulationPersistenceStoreDefinition.DatastorePersistenceStoreDesc());
  • Class MessengerDefinitionConfig.java: the WhatIfDistributedController has been removed from the query cube agents.

  • Files deleted:

File Reason
WhatIfConflictManager The merging mechanism has been removed from What-If 2.0.
WhatIfSecurityManager Replaced by the What-If 2.0 Spring-based security manager.
ParentChildWhatIfDefinition Replaced by ParentChildSimulationDefinition in the common library.
VectorIndexScalingWhatIfDefinition Replaced by PnLIndexedArithmeticSimulationDefinition in the mr-var-config.
VectorScalingWhatIfDefinition Replaced by PnLArithmeticSimulationDefinition in the mr-var-config.

mr-common-lib

  • A dependency to the following artifact has been added in the POM file:
<dependency>
    <groupId>com.activeviam.tools</groupId>
    <artifactId>whatif</artifactId>
</dependency>

It replaces the dependency to the following artifact:

<dependency>
    <groupId>com.activeviam.tools</groupId>
    <artifactId>whatif-core</artifactId>
</dependency>
  • New interface IDatabaseSimulationSubmitter containing the default implementation method to submit a What-If request and the constant used to define the name space for What-If REST services. It replaces the deleted class IWhatIfSubmitter.java.

  • New class WhatIfUtils containing a helper method to parse the string representation of as-of-dates.

Implementation of What-If use cases

For an example of the process used to implement the MR what-if use-cases in What-If 2.0, refer to What-If Implementation Example

mr-sensi-config
  • The classes SensiBookArithmeticSimulationDefinition.java and SensiRollOverSimulationDefinition.java have been created to define the database simulation definitions. The class SensiSubstitutionWhatIfDefinition.java has been replaced by SensiBookArithmeticSimulationDefinition.java.

  • REST services: the interfaces in folder mr-sensi-config/src/main/java/com/activeviam/mr/sensi/config/whatif/rest/intf/ have been deleted: REST services are now defined using abstract classes instead of interfaces.
    Each abstract class returns the database simulation definition relevant for each use case. Where possible, the ICondition needed for the What-If operations are no longer defined in the abstract classes of the REST service, they are now defined in the database simulation definitions mentioned above.

  • The abstract classes ASensiVectorScalingRestService.java and ASensiBookScalingRestService.java have been removed, and their logic has been merged with the abstract class ASensiArithmeticSimulationRestService.java.

mr-sensi-lib

A dependency to the following artifact has been added in the POM file:

<dependency>
    <groupId>com.activeviam.tools</groupId>
    <artifactId>whatif</artifactId>
</dependency>
mr-var-config
  • The classes PnLRollOverSimulationDefinition.java, PnLIndexedArithmeticSimulationDefinition.java and PnLArithmeticSimulationDefinition.java.java have been created to define the database simulation definitions.

  • The class PnLVectorSubstitutionWhatIfDefinition.java has been removed, replaced by the newly created PnLRollOverSimulationDefinition.java class.

  • REST services: the interfaces in folder mr-var-config/src/main/java/com/activeviam/mr/var/config/whatif/rest/intf have been deleted: REST services are now defined using abstract classes instead of interfaces.
    Each abstract class returns the database simulation definition relevant for each use-case. Where possible, The ICondition needed for the What-If operations are not anymore defined in the abstract classes of the REST service, they are now defined in the database simulation definitions mentioned above.

  • The abstract classes APnLBookScalingRestService.java and APnLVectorScalingRestService.java have been removed, and their logic has been merged with the abstract class APnLArithmeticSimulationRestService.java.

  • The abstract class APnLScenarioScalingRestService.java has been replaced by the abstract class APnLScenarioIndexedArithmeticSimulationRestService.java.

  • The abstract class APnLVectorSubstitutionRestService.java has been replaced by the abstract class APnLRollOverRestService.java.

mr-var-lib

A dependency to the following artifact has been added in the POM file:

<dependency>
    <groupId>com.activeviam.tools</groupId>
    <artifactId>whatif</artifactId>
</dependency>

It replaces the dependency to the following artifacts:

<dependency>
    <groupId>com.activeviam.tools</groupId>
    <artifactId>whatif-core</artifactId>
</dependency>

<dependency>
    <groupId>com.activeviam.tools</groupId>
    <artifactId>whatif-examples</artifactId>
</dependency>
mr-application
  • The FileUploadWhatIfDefinition class now extends ADatabaseSimulationDefinition.
  • The class FileUploadWhatIfSubmitter creates instances of FileUploadWhatIfDefinition.
  • The class FileUploadWhatIfRestfulService injects an implementation of IDatabaseSimulationsWorkflow instead of IWhatIfWorkflow.

Dependencies to Limits

Dependency to the limits module

  • The dependency to the artifact lookup-post-processor-ap60 has been removed from the POM files.
  • The definition of the limitsModule bean has been removed from the MarketRiskConfig.java file.

Dependency to the services JAR

  • The dependency to the artifact com.activeviam.apps.services has been removed from the POM files.
  • The import of the RestServiceConfig.class class has been removed from the MarketRiskConfig.java file.

To enable Atoti Limits in the project, please see the Atoti Limits documentation