Release notes 6.0
info
For user-facing changes, refer to the What’s New
page.
For the list of issues covered in this release, see the Changelog.
For information on upgrading from previous versions, see the
Atoti Market Risk Migration Guide.
6.0.4
2025-09-09
Follow this link to download the zipped distribution files for:
- UI source code
- UI build
- Source files to build the module
- Sample bookmarks
- Offline documentation that can be served by the module
- Maven repository required to build the project and run the tests. The Atoti Server 6.1.11 Maven repository files can be downloaded from here.
Dependencies
Component | Version |
---|---|
Adjustments Services API | 4.1.0 |
Atoti Market Data | 1.3.3 |
Atoti Server | 6.1.11 |
Atoti UI | 5.2.x |
Bookmark Tool | 3.4.0-AS6.1 |
Common Library | 2.1.8-AS6.1 |
Data Connectors | Integrated in Atoti 6.1.11 |
Datastore Helper | 3.4.0-AS6.1 |
Java | JDK21 |
Sign-Off API | 4.2.0 |
UI Components | 5.2.9 |
What-If | 4.0.4-AS6.1 |
Summary
Improvements
- Migrated to DirectQuery Local Cache
- Fixed cube level adjustment issues
- Improved stability and performance of distributed what-if simulations
Improvements
Migrated to DirectQuery Local Cache
Atoti Market Risk 6.0.0 included the preview for a DirectQuery cache that balanced fast Get-By-Key query performance with controllable memory consumption. This cache was integrated into Atoti Server 6.1.9 as a robust, fully supported feature. In Atoti Market Risk the preview cache has been removed and replaced with the Atoti Server version.
This cache is still enabled by setting the property mr.enable.preview.directquery-cache=true
. With this setting enabled, all market data stores
(specifically CubeMarketData, CurveMarketData, FxRateMarketData, SpotMarketData, SurfaceMarketData, and MarketShifts) are now cached when using DirectQuery.
In previous versions, the MarketShifts store wasn’t cached.
Fixed cube-level adjustment issues
Previously, cube-level adjustments made to the Instrument Type level were visible in Atoti Sign-Off but weren’t correctly reflected in Atoti Market Risk. Now, the adjustments are accurately displayed in both places. Additionally, adjusted values were incorrectly associated with the default LIVE version instead of the correct OLD version. This has also been corrected.
Improved stability and performance of distributed what-if simulations
The what-if simulation process has been updated to be significantly faster and more stable. The system now uses a single-phase commit mechanism, replacing the previous multi-phase commit process.
This change simplifies the simulation operation, which results in notable improvements in performance and cluster stability at the expense of some consistency checks.
6.0.3
2025-07-01
Follow this link to download the zipped distribution files for:
- UI source code
- UI build
- Source files to build the module
- Sample bookmarks
- Maven repository required to build the project and run the tests. The Atoti Server 6.1.9 Maven repository files can be downloaded from here.
Dependencies
Component | Version |
---|---|
Adjustments Services API | 4.1.0 |
Atoti Market Data | 1.3.2 |
Atoti Server | 6.1.9 |
Atoti UI | 5.2.x |
Bookmark Tool | 3.4.0-AS6.1 |
Common Library | 2.1.8-AS6.1 |
Data Connectors | 5.0.7 |
Datastore Helper | 3.4.0-AS6.1 |
Java | JDK21 |
Sign-Off API | 4.2.0 |
UI Components | 5.2.9 |
What-If | 4.0.2-AS6.1 |
Summary
New features
Improvements
- Update to Atoti 6.1.9
- Update to Data Connectors 5.0.7
- Extensible tail measure types
- Duplicate DirectQuery join bug resolved
- New property to enable MRCombined Cube
- springdoc-openapi version fix
- clear-filter parameter is taken in account for Drill-up comparative measures
- Taylor VaR post-processor now takes into account additional levels
New features
Databricks handle row-based vector schema
Databricks supports native vector aggregation, however, there are cases where you may prefer to use row-based vectors. Notably, native vector aggregation is only available when using “All-purpose compute” clusters and is not available to SQL Warehouses.
Atoti Market Risk includes four tables that use vectors, TradePnLs, TradeSensitivities (for ladders), SensiLadders, and MarketShifts. This release allows you to use row-based vectors for any or all of these tables. Additionally, in mr-directquery/src/test/resources/databases/databricks/row-based-vectors we provide SQL scripts to create an Atoti Market Risk schema with row-based-vectors for the stores mentioned above.
The Atoti Market Risk DirectQuery schema is created using the Migrator component. This takes the in-memory MR schema and converts it to a DirectQuery compatible schema. By default, when running with Databricks, the schema will be created with native vector fields. You can choose to use row-based vector fields by modifying the Migrator bean as follows:
@Bean
public Migrator myMigrator() {
var schemaHelper = new DatastoreSchemaHelper(activePivotManagerDescription, datastoreSchemaDescription);
Migrator migrator = new Migrator(datastoreSchemaDescription, activePivotManagerDescription, nameMapper, schemaHelper, toolbox, directQuerySpringProperties);
migrator.onlyIncludeStoresInStarSchema(true);
migrator.vectorsTableBehaviour(TRADE_PNL_STORE_NAME, VectorTableMigration.ROW);
migrator.vectorsTableBehaviour(TRADE_SENSITIVITIES_STORE_NAME, VectorTableMigration.ROW);
migrator.vectorsTableBehaviour(MARKET_SHIFT_STORE_NAME, VectorTableMigration.ROW);
migrator.vectorsTableBehaviour(SENSI_LADDER_STORE, VectorTableMigration.ROW);
return migrator;
}
Improvements
Update to Atoti 6.1.9
This release includes an update to Atoti Server 6.1.9.
note
Atoti Server 6.1.9 contains a full, production-ready version of the DirectQuery cache that was included in Atoti Market Risk 6.0.0. However, Atoti Market Risk 6.0.3 has not been updated to work with the Atoti Server version. Atoti Market Risk will be migrated to use this new cache in a future release.
Data Connectors Update
This release includes an update to Data Connectors 5.0.7 which provides a number of bug fixes.
You may see some new WARN logs as a result of this update.
This update also highlighted some missing topic imports for the Sensitivity Summary cube which are fixed in this release. This also required some changes to the imports of the main Sensitivity Cube configuration.
Extensible tail measure types
The ITailMeasureCalc.CalcType
and IWeightedTailMeasureCalc.CalcType
enums are used to differentiate between tail measures like VaR and Expected Shortfall, which are mostly similar but require somewhat distinct processing logic. This logic is mostly contained in classes implementing the ITailMeasureCalc
and IWeightedTailMeasureCalc
interfaces.
Enums are not easily extensible, meaning it is difficult to add custom tail measure types. In this release, we have deprecated these enums and instead introduced a TailMeasureCalcType
class. This class operates like an enum with default static values, such as TailMeasureCalcType.VAR
. But you can provide custom types with: TailMeasureCalcType.getByDescription("NewType")
, so you can now define new types of tail measures.
If you want to use custom types, you will also need to provide logic for these types by creating your own implementation of ITailMeasureCalc
and/or IWeightedTailMeasureCalc
.
The methods that used these enums, primarily on the ITailMeasureCalc
and IWeightedTailMeasureCalc
interfaces and their implementations, have also been deprecated. New methods have been added that use TailMeasureCalcType
instead. These deprecated methods will be removed in a future release.
Duplicate DirectQuery join bug resolved
When starting in DirectQuery mode, if your schema contained any joins to a table with vectors this join would be duplicated in the DirectQuery schema. This would cause a startup failure due to an invalid schema. This issue has been resolved in this release.
New property to enable MRCombined Cube
The word common in the property and annotation mr.enable.cubes.common
and @ConditionalOnCommonCubeEnabled
which enables the combined cube may cause confusion regarding intended functionality. The introduction of the property mr.enable.cubes.combined
and the annotation @ConditionalOnCombinedCubeEnabled
renames and in a future release will replace the now deprecated property and annotation mr.enable.cubes.common
and @ConditionalOnCommonCubeEnabled
.
springdoc-openapi version fix
The version of springdoc-openapi
that is used in Atoti Market Risk version 6.0.2 was incorrect: version 2.5.x was used, which is incompatible with the version of Spring Boot used, which is 3.4.x.
See: https://springdoc.org/faq.html#_what_is_the_compatibility_matrix_of_springdoc_openapi_with_spring_boot
springdoc-openapi
version 2.8.9 is used in Atoti Market Risk version 6.0.3.
clear-filter parameter is taken in account for Drill-up comparative measures
The parameters clear-filter
located on mr.metrics.booking
, mr.metrics.trades
, mr.metrics.custom-metrics.*
path is now taken in account for the
post-processor=ParentValue
setup.
For instance here is the behaviour change:
Result without filtering
Levels | VaR | LEstimated |
---|---|---|
Total | -10518762.87 | -10518762.87 |
Equities | -10930109.59 | -10484558.87 |
FICC | -3721950.54 | -191748.48 |
Global Hedging | -564782.43 | 157544.48 |
LEstimated value with Equities filtered out
Levels | VaR | clear-filter=true | clear-filter=false |
---|---|---|---|
Total | -3456776.25 | -34204.00 | -3456776.25 |
FICC | -3721950.54 | -191748.48 | -3338879.68 |
Global Hedging | -564782.43 | 157544.48 | -117896.56 |
Taylor VaR post-processors now take into account additional levels
The IMarketDataRetrievalService.updateLeafCoordinatesFunction
method is now properly taken into account
in post-processors used to compute Taylor VaR metrics.
6.0.2
2025-05-21
Follow this link to download the distribution files for:
- UI source code.
- UI build that does not require an installation and can be directly deployed.
- Source files that can be used to build the module.
- Maven repository required to build the project and run the tests.
note
The Atoti Server 6.1.8 Maven repository files have been removed from this zip, so you’ll need to download them separately. Click here to locate them.
- Offline documentation that can be served by the module.
Dependencies
Component | Version |
---|---|
Adjustments Services API | 4.1.0 |
Atoti Market Data | 1.3.1 |
Atoti Server | 6.1.8 |
Atoti UI | 5.2.x |
Bookmark Tool | 3.4.0-AS6.1 |
Common Library | 2.1.5-AS6.1 |
Data Connectors | 5.0.3 |
Datastore Helper | 3.4.0-AS6.1 |
Java | JDK21 |
Sign-Off API | 4.2.0 |
UI Components | 5.2.8 |
What-If | 4.0.2-AS6.1 |
Summary
New features
Improvements
New features
Properties to enable data overlap
You can now enable data overlap within a horizontally distributed setup using the newly added Cube properties.
Improvements
Atoti Market Risk upgrade
Atoti Market Risk has been upgraded to Atoti Server 6.1.8.
6.0.1
2025-04-17
Follow this link to download the distribution files for:
- UI source code.
- UI build that does not require an installation and can be directly deployed.
- Source files that can be used to build the module.
- Maven repository required to build the project and run the tests.
note
The Atoti Server 6.1.6 Maven repository files have been removed from this zip, so you’ll need to download them separately. Click here to locate them.
- Offline documentation that can be served by the module.
Dependencies
Component | Version |
---|---|
Adjustments Services API | 4.1.0 |
Atoti Market Data | 1.3.1 |
Atoti Server | 6.1.6 |
Atoti UI | 5.2.x |
Bookmark Tool | 3.4.0-AS6.1 |
Common Library | 2.1.4-AS6.1 |
Data Connectors | 5.0.3 |
Datastore Helper | 3.4.0-AS6.1 |
Java | JDK21 |
Sign-Off API | 4.2.0 |
UI Components | 5.2.7 |
What-If | 4.0.2-AS6.1 |
Summary
Improvements
- Theta PnL Explain fix
- Configurable FX conversion default rate
- GenericLambdaCalculator
- Added option to disable partitioning on AsOfDate
Improvements
Theta PnL Explain fix
The Theta Pnl Explain formula has been fixed to correctly compute the losses due to time decay.
Configurable FX conversion default rate
FX conversion post-processors can now be configured to use a default FX rate if the actual rate cannot be computed for the FX pair.
GenericLambdaCalculator
The GenericLambdaCalculator
class has been added to provide a source type independent way of creating column calculators. We recommend using this instead of the LambdaCalculator
class to create simple column calculators.
Option to disable partitioning on AsOfDate
The property mr.partitioning.as-of-date.partition-type
can now be set to none
to disable partitioning on AsOfDate.
6.0.0
2025-03-31
Follow this link to download the distribution files for:
- UI source code.
- UI build that does not require an installation and can be directly deployed.
- Source files that can be used to build the module.
- Maven repository required to build the project and run the tests.
note
The Atoti Server 6.1.5 Maven repository files have been removed from this zip, so you’ll need to download them separately. Click here to locate them.
- Offline documentation that can be served by the module.
Dependencies
Component | Version |
---|---|
Adjustments Services API | 4.1.0 |
Atoti Market Data | 1.3.1 |
Atoti Server | 6.1.5 |
Atoti UI | 5.2.x |
Bookmark Tool | 3.4.0-AS6.1 |
Common Library | 2.1.4-AS6.1 |
Data Connectors | 5.0.1 |
Datastore Helper | 3.4.0-AS6.1 |
Java | JDK21 |
Sign-Off API | 4.2.0 |
UI Components | 5.2.4 |
What-If | 4.0.2-AS6.1 |
Summary
New features
- Atoti Market Data
- Configurable parent-child depth
- New DirectQuery Cache
- Handling multi-leg trades
- Base store and aggregate provider partitioning by AsOfDate
- Updated TradeAttributes store
Improvements
- Dependency upgrades
- What-if improvements
- Updated dashboards
- Market data set changes
- Market data-related changes
- Simplified PnL Actuals tables
- Cube-level adjustments
- Fixed creation of VaR risk class measures
- Liquidity Horizon
- Measure folders
- Data node market data
- Custom exception handling in the UI
- Admin UI measure dependencies
- Replaced APM starter dependency
New features
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.3.1 . For details, see the dedicated Atoti Market Data documentation.
Configurable parent-child depth
You can now configure the maximum depth of parent-child hierarchies. This means you can set the depths that suits your needs perfectly.
New DirectQuery Cache
This release includes a new DirectQuery caching mechanism that pulls slices of market data into memory when required to improve the performance of market data retrievals. This is a preview feature, disabled by default. See 6.0 Migration Notes for details.
Handling multi-leg trades
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.
Base store and aggregate provider partitioning by AsOfDate
Added the new String property mr.partitioning.as-of-date.partition-type
to configure the type of partitioning used for the field AsOfDate and the Integer property mr.partitioning.as-of-date.number-of-partitions
to configure the number of partitions for the field AsOfDate when modulo partitioning is used. AsOfDate uses value partitioning by default.
Updated TradeAttributes store
The TradeAttributes store now includes the fields TradeSource,TradeStatus, and OriginalNotional. The hierarchies TradeSources and TradeStatuses have been added to summary cubes. The measures Original Notional and Original Notional Native have been added to the VaR-ES cube.
Improvements
Dependency upgrades
- Atoti Server: Atoti Market Risk has been upgraded to Atoti Server 6.1.5. This version requires Java 21.
- JDK: Upgraded from JDK 17 to JDK 21 to utilize the latest features.
- Data Connectors: 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.
- What-if: Upgraded to What-if 4.0.2-AS6.1.
What-if improvements
- Migrated What-if persistence to Hibernate: The What-if persistence layer has been migrated from branch-based persistence to a Hibernate database implementation.
- Added What-if configuration beans: Added supplier beans for cluster addresses and the user authenticator used by the REST distributed database service for What-if.
Updated dashboards
A number of dashboards have been updated due to market data measure and context value changes. In addition, dashboards have been migrated to use Atoti UI’s Investigation feature instead of the story-telling feature, which has been decommissioned. For more information on the Investigation feature, see Investigations.
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.
Market data-related changes
- Deprecated vector sensitivities data model code removed: The code specific to vector sensitivities data model and subsequent code have been removed.
- Deprecated market data and FX services removed: Several deprecated services made obsolete by the move to Atoti Market Data have been removed.
- General measure chain changes: FX conversions are now done through Atoti Market Data APIs, leading to several measure chain changes.
- Market data chain changes: Market data chain has been changed: it is now required to add the sensitivity name and risk class levels in the views to display market data.
- Market data file format configuration clean-up: Market data file formats now default to the Atoti Market Data 1.1.0 market data files, 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.
- 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.
- Removal of RoundingMethods and Quantiles stores: These stores are no longer needed.
Simplified PnL Actuals tables
The following attributes have been removed from the stores PnL and PnLBaseStore and the cubes PLCube and PL Summary cube, because for actual PnL, there is no breakdown of the PnLs at these factor levels:
- RiskFactor
- RiskFactorType
- RiskFactorCcy
- CurveType
- RiskClass
- Qualifier
Liquidity Horizon
The Liquidity Horizon parameter is now taken into account when computing VaR/Es metrics. To achieve this, the parameter has moved to the Scenario table. See VaRTimePeriod context value for the behavior of the field.
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. *_Adjusted
measures have been removed.
Fixed creation of VaR risk class measures
Risk class measures are now correctly created when the mr.risk.risk-class-members
property is used.
Measure folders
Measures related to a fixed confidence level have been moved back into the folders related to fixed confidence levels. Starting from version 5.0, some of those measures were defined in the wrong folders.
Data node market data
During the initial data load (within the InitialDataLoadConfig
class), market data is now loaded for all available dates, without taking the DLC scope into account.
Custom exception handling in the UI
The Atoti Market Risk UI now parses custom exception responses in a consistent manner. For more information, see Adding Custom UI Exceptions.
Admin UI Measure dependencies
The functionality previously provided by DoctorPivot is now easily accessible through the Atoti Admin UI in the Measure dependencies tab. The standalone DoctorPivot app no longer exists.
Replaced APM starter dependency
Replaced the dependency apm
with atoti-server-apm-starter
in market-risk/pom.xml and added the dependency atoti-server-apm-starter
to mr-application/pom.xml.