Migration notes 6.0
This page explains the changes required to migrate to the stated version of the Atoti FRTB.
Migrate to 6.0.0 BETA
Upgrading from version 5.3.0, see Atoti FRTB 6.0-BETA Release Notes.
Atoti FRTB uses Atoti Server 6.1.3 and Atoti UI 5.1.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.
For clients licensed to use ActiveMonitor, a skeleton module based on version 6.1.3 is included with the Atoti FRTB 6.0.0-BETA release.
Breaking changes
- Measure Configuration: The text replacement template for measure configuration now uses the pattern
#{_name_}
instead of${_name_}
. See Startup Properties. - frtb-application module: Some of the contents of the
frtb-starter
module has been moved to the newfrtb-application
module. - DLC 5.0 Upgrade: With the new version of the DLC, the configuration of the ETL has been simplified.
Headline announcement
- Upgraded to Atoti Server 6.1.3 : Upgraded to the latest Atoti Server.
- Upgraded to JDK 21 : Upgraded from JDK 17 to JDK 21 to utilize the latest features.
- Removed ActiveMonitor : The Active-Monitor module and related features have been removed.
- frtb-application module: The
frtb-application
module replaces thefrtb-starter
module. All customizations should now be done in thefrtb-application
module, or in a new module based on thefrtb-application
module. - Sign-Off Service Availability: The Sign-Off REST service now throws
ServiceUnavailableException
s until the initial data loading phase has been completed. The Sign-Off REST service now provides a GET/enabled
endpoint to check if the service is currently enabled.
FX Translation Risk
The field “Translation Risk Currency” has been added to support loading translation risk for different reporting currencies. It is now possible to load different translation risks for different reporting currencies.
This field is only used if FXComplexTrade=Y
(otherwise the translation risk is calculated automatically).
- If this field is empty, the sensitivity is not treated as translation risk but instead treated normally.
- If this field is set, then the sensitivity will be interpreted as translation risk for that currency. It will be filtered and only used if the translation risk currency is the same as the reporting currency.
Alternative root parameter sets
The property parameter-set.root
has been added to specify the root parameter set in the configuration and input files.
It is expected that input files are generated for the parameter set specified in this property.
Additionally, the configuration files containing parameters will need to be adapted to the new root parameter set.
- Previously, when no parameter set was specified in the configuration it was assumed to be “BCBS”. Now, these parameters will default to the specified root parameter set.
- Parameter configuration will need to be modified for the new root parameter set.
For example, for the bucket used for CSR non-Sec covered bonds we have in FRTBParameters.csv:
Name | Value | Date | ParameterSet |
---|---|---|---|
sa.csr-nonsec.bucket.covered-bonds |
8 | 2016-01-01 | |
sa.csr-nonsec.bucket.covered-bonds |
10 | 2016-01-01 | CRR2 |
If you want to set CRR2 as the root parameter set, the above two lines can change to become:
Name | Value | Date | ParameterSet |
---|---|---|---|
sa.csr-nonsec.bucket.covered-bonds |
8 | 2016-01-01 | BCBS |
sa.csr-nonsec.bucket.covered-bonds |
10 | 2016-01-01 |
So that the value in the CRR2 parameter set is still “10”, and the value for the BCBS parameter set is still “8”.
Summing Sensitivities
When multiple sensitivities with the same key fields are loaded, they are now summed. Previously this was only done when processing a chunk within a file, now it is done across the whole transaction.
The following configuration has been added to application.yaml
and will sum sensitivities and PVs for the SASensitivities
store,
making sure that the currency and a few other fields are the same.
datastore-sum-duplicates:
SASensitivities:
matching: ["Ccy", "RiskWeight", "FXOtherCcy", "Direction"]
summing: ["Sensitivity", "Shift_Up_PV", "Shift_Down_PV", "PresentValue", "Notional", "Adjustment"]
FRTB Modules
Removed
Module | Details |
---|---|
frtb-activemonitor |
ActiveMonitor and associated configurations have been removed from Atoti FRTB. |
Added
Module | Details |
---|---|
frtb-application |
Provides an example Spring Boot Application for Atoti FRTB. * Contains simple configurations required to run Atoti FRTB.* Is intended to be used as a reference for clients to build their own applications as this module is not production-ready. * Provides various Spring profiles outlining the properties required to run the application in different environments. For example, the profile dist-query-node activates the application-dist-query-node.yaml configuration file which defines the properties required to run the application as a distributed query node.tip To help ease upgrade efforts, move all customizations into your new module. |
Input file formats
Modified
Modification | File | Field | Optional | Description |
---|---|---|---|---|
Added | SBM_Delta_Sensitivities.csv | Translation Risk Ccy | Y | FX only. Indicates the sensitivity represents translation risk; set to the reporting currency. |
Added | SBM_Summary_Delta_Sensitivities.csv | Translation Risk Ccy | Y | FX only. Indicates the sensitivity represents translation risk; set to the reporting currency. |
Added | Trade_Attributes.csv | Inclusion | Y | Indicates if the trade should be included (“Y”) or not by default in the calculations. Default is ‘Y’ |
Startup properties
The file frtb-config.properties is now loaded into the Spring Boot environment, so the properties in this file can be overridden on the command line.
The file measures-config.json
is now also loaded into the Spring Boot environment. The json file is converted to properties with the prefix “measures”.
The text replacement template in these files now uses the pattern #{_name_}
instead of ${_name_}
.
The ${_name_}
pattern can still be used for Spring Boot’s property placeholders.
New properties:
Property Name | Comment | Value | Default Definition in File |
---|---|---|---|
dlc.enabled |
Enables or disables the Data Load Controller. | true or false |
application.yaml |
file-upload.staging-directory |
The staging directory for the File Upload. | ${csv-source.dataset}/stage |
application.properties |
file-upload.csv-source-subdirectory |
The sub-directory of files on which the What-If is executed. | true or false |
application.properties |
csv-source.dataset-historical |
Path to the directory containing historical files to load. | ${csv-source.dataset}/historical | application.properties |
csv-source.dataset-configuration |
Path to the directory containing the configuration files to load. | sample-data/configuration | application.properties |
parameter-set.root |
Root parameter set. | Defaults to “BCBS” | |
datastore-sum-duplicates._store-name_.matching |
List of names of fields that must match when summing duplicates for the store store-name. If missing, all fields are matched; if empty, no fields are matched. |
||
datastore-sum-duplicates._store-name_.summing |
List of names of fields that should be summed when there are duplicates for the store store-name. |
Updated properties:
Property Name | Comment | New Value | Old Value | Default Definition in File |
---|---|---|---|---|
activeviam.jwt.expiration |
Value changed from an int of seconds to a Duration . Note that an integer value will be picked up as milliseconds now. |
12h (Duration ) |
43200 (seconds) |
jwt.properties |
csv-source.dataset |
Split out to csv-source.dataset-historical , csv-source.dataset-configuration and csv-source.dataset |
sample-data/data | data | application.properties |
Deleted properties:
Property Name | Comment | Deleted from File |
---|---|---|
activeviam.directquery.enableAutoVectorizer |
The property is no longer being used. | application.properties |
input.data.root.dir.path |
This is now a part of file-upload.staging-directory |
application.properties |
csvSource.subdirectory.dataset.stage |
This is now a part of file-upload.staging-directory |
application.properties |
csvSource.subdirectory.dataset.whatif |
This is now file-upload.csv-source-subdirectory |
application.properties |
Configuration files
Files Modified
FRTBParameters.csv
Modification | Parameter | Type | Default | Description |
---|---|---|---|---|
Deprecated (for removal) | sa.drc.no-maturity-floor-when-offsetting |
boolean | false |
Parameter is no longer needed ref |
frtb-config.properties
Modification | Parameter | Type | Default | Description |
---|---|---|---|---|
Changed Default | sa.drc.strict-long-short |
boolean | true |
Changed default to true. |
Datastores
Modified stores
Modification | Store | Field | Type | Description |
---|---|---|---|---|
Added | Trade Mapping | Inclusion | String | Indicates if the trade should be included (“Y”) or not by default in the calculations. |
Added | SaSensitivities | Translation Risk Ccy | STRING | FX only. Indicates the sensitivity represents translation risk; set to the reporting currency. |
Databases
Modified tables
Modification | Table | Field | Type | Description |
---|---|---|---|---|
Added | SASENSITIVITIES | TRANSLATION_RISK_CCY | String | FX only. Indicates the sensitivity represents translation risk; set to the reporting currency. |
Added | TRADE_MAPPING | INCLUSION | String | Indicates if the trade should be included (“Y”) or not by default in the calculations. |
Cube schema
Added
Cube | Dimension | Hierarchy | Levels | Datastore fields | Details |
---|---|---|---|---|---|
All | Booking | Inclusion | Inclusion | TradeMapping.Inclusion | This hierarchy is used to indicate which trades should be included in the calculations. |
ACSVSourceConfig
Updates
The ACSVSourceConfig
class has been slightly refactored as follows:
Method | Change | Description |
---|---|---|
createCSVTopicFactory |
Removed | Method was unused. |
createCsvSource |
Made abstract |
Method is now abstract as the ACSVSourceConfig class is not specific to only Local CSV Sources. Now this method should be implemented by a source-specific implementation (Local, AWS, etc). |
Migrating to using Atoti Starters
Atoti Server now provides Spring Boot Starters to aid in application development. These starters will auto-configure some basic and required beans for the application to run. Atoti FRTB has been updated to use these starters. The following changes have been made:
Change | Description |
---|---|
Removal of JMXEnabler Beans |
The JMXEnabler beans have been removed from Atoti FRTB as the Atoti Server’s Starters provide these beans automatically for us. |
Removed FRTBI18nConfig Configuration Class |
This class is now autoconfigured by Atoti Server. |
Removed SameSiteConfig |
The SameSite config is handled by Spring. |
Historical Date Provider Service
The historical dates used for the Lookback
hierarchy measures are now configurable via a IHistoricalDatesProvider
bean. By default, a
HistoricalDatesProvider
(configured in HistoricalDatesProviderConfig
) will be created that provides all AsOfDate
s available in all base stores.
Sign-Off REST services
The implementation of the Sign-Off REST service now has a Boolean to enable state flag.
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.
The status of the Sign-Off service can be retrieved through a GET request at /enabled
.
Atoti Server 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
. The exception message prefix has been changed from "[EXPORT]"
to "[SIGN-OFF]"
in the
error message constants.