Migration notes 3.0

This page explains the changes required to migrate to the stated version of the FRTB Accelerator.

Migrate to 3.0

Upgrading from version 2.4.0 - see FRTB Accelerator 3.0 Release Notes.

note

Please note that FRTB 3.0.0 uses ActivePivot 5.9, which requires Java 11.

Move cube description from xml to java configuration

The cube description is no longer in XML format. It has been moved to Java Conf.

Feature Configuration file
The cubes tuning (partial providers, partitioning, aggregate cache) frtb-starter/src/main/java/com/activeviam/frtb/starter/cfg/impl/AggregateProviderConfig.java.
The cubes kpis frtb-starter/src/main/java/com/activeviam/frtb/starter/cfg/impl/KpiProviderConfig.java
The cubes dimensions frtb-starter/src/main/java/com/activeviam/frtb/starter/cfg/impl/CubesDimensionsConfig.java

For more advanced changes, the full cubes description is located there : frtb-activepivot/src/main/java/com/activeviam/frtb/ref/cfg/applications/cubes/impl/* For more information on customizing cubes, see Extending the Accelerator.

The following cube values can now be changed from the configuration :

Category Key Value Description
Store internals store.partitioning.asOfDate 0 Maximum number of partitions used for the data stores depending on the asOfDate. 0 means partition number equals the number of CPUs.

Note: The day-to-day store partitioned on asOfDate has no maximum partition number. It is also used for cube partial provider partitioning.
Cube internals sa.cube.provider.partitioning 0 The partitioning modulo of the partial provider for the SA cube
Cube internals store.partitioning.riskfactor 0 Maximum number of partitions to use per as-of date. When set to 0, the number of CPUs is used.

Note: This may apply to fields other than the risk-factor, for example trade-id.
Cube internals agg.cache.size.sa -1 Aggregate cache size for the StandardisedApproachCube
Cube internals agg.cache.size.ima -1 Aggregate cache size for the InternalModelApproachCube
Cube internals agg.cache.size.imasummary -1 Aggregate cache size for the IMASummaryCube
Cube internals agg.cache.size.drc -1 Aggregate cache size for the IMADRCCube
Cube internals agg.cache.size.drcsummary -1 Aggregate cache size for the IMADRCSummaryCube
Cube internals agg.cache.size.pl -1 Aggregate cache size for the PLCube
Cube internals agg.cache.size.plsummary -1 Aggregate cache size for the PLSummaryCube
Cube internals agg.cache.size.combined 20000000 Aggregate cache size for the FRTBCombinedCube
Context value ctx.queries.time.limit.combined 600 The query time limit in seconds for the combined query cube, defined by the “queriesTimeLimit” context value
Context value ctx.queries.time.limit.data 300 The query time limit in seconds for the data cubes, defined by the “queriesTimeLimit” context value
Context value ctx.reference.ccy EUR The default displayed reporting currency used by the context value “ReferenceCurrency” used for display
Context value ctx.ca.lookback 60 The default value for the “CA-Lookback” context value that defines the window size for IMCC and SES average calculation.
Context value ctx.es.model.variation.lookback 12W The default value for the “ES Model Variation Lookback” context value that defines the window for the “ES (Model Variation) Lookback” metric
Context value ctx.ima.drc.lookback 12W The default value for the “IMADRC-Lookback” context value that defines the average window used in the computation of “DRC-IMA”
Context value ctx.back.testing.lookback 250 The default value for the “BackTestingLookback” context value that specifies the number of days for back testing
Context value ctx.pla.lookback 250 The default value for the “PLALookback” context value containing the number of business days to look back when calculating the Mean, Variance, and Standard Deviation measures for PL Attribution Tests.
Context value default.parameter.set BCBS The default parameter set used for computation. For example, BCBS or CRR2.

To improve the loading performance, the multi-level Book and Legal Entity hierarchies are now built before loading the sensitivities, P&L vectors, and trade booking data. They are now also built in the same datastore transaction where the source parent/child data is loaded.

To do this, the Datastore Listeners that were used to build the hierarchies have been replaced. Now these hierarchies are built using Topics in the ETL. When the corresponding parent/child topic is loaded via the Data Load Controller, then these additional topics are also loaded automatically and they are prioritized over the sensitivities, P&L vectors, and trade booking data.

If you make changes directly to the parent/child stores in the datastore (including using the Datastore Viewer UI widget), the hierarchies will no longer be automatically built and you will need to manually “load” these new topics. However, if you make changes to the parent/child stores via the DLC, then the hierarchies will continue to be built as before (though now in the same datastore transaction).

Input file formats

Modified

Modification File Field Optional Description
Added Trade Attributes Sensitivity Scale Category Y The category used to scale the SBM sensitivities. This matches the categories in Sensitivity_Scaling.csv.
Added DRC Trade Level (SA) Rating Type Y The rating type used alongside the rating to determine the risk weight. This matches the rating type in the ERBA_Risk_Weight file.
Added DRC Trade Level (SA) Risk Weight Y If set, this overrides the risk-weight for the tranche. This can be used as an alternative to SEC-ERBA, for example to provide SEC-SA risk-weights.
Added DRC Trade Level (SA) Adjustment Y If set, this provides an adjustment to the GrossJTD. This adjustment is only applied if sa.drc.adjustment.apply=true, by default this is only set for CRR2. The currency that the adjustment is expressed in is given by the existing Gross JTD currency field.
Changed Default Delta FxComplexDelta Y If this field is not set, it now defaults to “Y” instead of “N”.

The new fields are all optional and have been added to the end of each row, so existing Trade Attributes and DRC Trade Level (SA) files will continue to load without needing any modifications.

Configuration files

Added

FX Risk-Weight Overrides

Added the FX Risk Weight Overrides configuration file to allow overriding FX Delta risk-weights by bucket. This is intended for use in ERM II and replaces the FX risk-weights in the old Adjunct Currencies file.

GIRR Correlation Overrides

Added the GIRR Correlation Overrides configuration file to allow overriding GIRR Delta gamma correlations between two GIRR buckets. This is intended for use in ERM II and replaces the Adjunct Currencies file and sa.girr.delta.adjunct-ccy.correlation parameter.

Sensitivity Scaling

Added the Sensitivity Scaling configuration file to specify SBM scale factors by category. This is intended to support CRR2 underwriting.

Modified

frtb-config.properties
Modification Property Default Description
Added drc.block.size 10240000 The block size used for the DRC vector storage
Added drc.batch.size 20 The number of lines of the DRC input processed together
Added fx.translation.scale-factor -0.9900990099009901 The scale factor to use when translating FX sensitivities (default = -1/1.01)
Added sbm.sensitivity-scale.category.level Sensitivity Scale Category@Sensitivity Scale Category@Risk Cube level to specify the category used to set the SBM scale factor
Added src.rating.type.stc STC Name of STC rating type, used to trigger logic for SEC-ERBA STC ratings
Added drc.sec-non-ctp.rating.type.level DRC Sec non-CTP Rating Type@DRC Sec non-CTP Rating Type@Default Risk Charge Cube level of DRC Sec non-CTP Rating Type
Added rrao.flag.file-column ResidualRisk File column in the trade attributes file that corresponds to the RRAO flag
FRTBParameters.csv
Modification Parameter Type Default Description
Added sa.girr.inflation-basis-adjustment Boolean true Set to true to include inflation and cross-currency basis curves when dividing major currency risk weights by sqrt 2. Set to false for the CRR2 parameter set.
Removed sa.girr.delta.adjunct-ccy.correlation` This parameter has been replaced with the GIRR_Correlation_Overrides.csv configuration file
Added sa.drc.adjustment.apply Boolean false Set to true to add the DRC Adjustments to the Gross JTD. Set to true for CRR2 parameter sets.
Added sa.drc.sec-non-ctp.risk-weight-floor.stc Double 0.012 The risk weight floor for SEC-ERBA STC.
frtb-data-load.properties
Modification Parameter Default Description
Added fx.risk-weight.overrides.file-pattern **/FX_Risk_Weight_Overrides*.csv File match pattern for FX Risk Weight Overrides configuration file.
Added girr.correlation.overrides.file-pattern **/GIRR_Correlation_Overrides*.csv File match pattern for GIRR Correlation Overrides configuration file.
Added sensitivity-scaling.file-pattern **/Sensitivity_Scaling*.csv File match pattern for Sensitivity Scaling configuration file.
Removed adjunct-currencies.file-pattern This Adjunct Currencies configuration file has been replaced by FX Risk Weight Overrides and GIRR Correlation Overrides configuration files.
ERBA_Risk_Weight
  • Renamed old Type field to Term, e.g. long or short
  • Added new Rating Type field, e.g. blank or STC
  • Added STC ratings

Removed

Adjunct Currencies

The Adjunct Currencies configuration file has been replaced by FX Risk Weight Overrides and GIRR Correlation Overrides configuration files.

Datastores

The block size used for the DRC vector storage can be modified with “drc.block.size”. It overrides the default core value that may be too low for DRC. It must be greater than the DRC vector size and a multiple of 1024.

The number of lines processed together during loading and commit of the DRC stores are now configurable with “drc.batch.size”. It can help to tune performance and on-heap usage at start-up. Lower values mean less on-heap usage and smother off-heap load but also more processing overhead.

Added

Store Details
FXRiskWeightOverrides This store was added for the FX Risk Weight Overrides
GIRRCorrelationOverrides This store was added for the GIRR Correlation Overrides
SensitivityScaling This store was added for the SBM sensitivity scaling

Modified

Modification Store Field Type Description
Added SATradeDescription SensitivityScaleCategory String The category used to scale the SBM sensitivities. This matches the category in the SensitivityScaling store.
Added DRCBase Adjustment Double If set, this provides an adjustment to the GrossJTD. This adjustment is only applied if sa.drc.adjustment.apply=true, by default this is only set for CRR2. The currency the adjustment is expressed in is given by the existing Gross JTD currency field.
Added Obligor RiskClass String Set to “DRC non-Sec”
Added Obligor RiskWeight Double The risk weight to use for the obligor. This overrides the risk-weight based on the rating.
Added Tranche RiskClass String Set to “DRC Sec non-CTP”
Added Tranche Type String The rating type used alongside the rating to determine the risk weight. This matches the rating type in the ERBARiskWeight store.
Added Tranche RiskWeight Double The risk weight to use for the tranche. This overrides the SEC-ERBA risk-weight based on the rating (and type).
Renamed ERBARiskWeight Term String The “long” or “short” term for the rating. This was previously called Type
Added ERBARiskWeight Type String The rating type used alongside the rating to determine the risk weight.

Removed

Store Details
AdjunctCurrency This store was replaced by the FXRiskWeightOverrides and GIRRCorrelationOverrides stores

Cube schema

Added

Cube Field / Level Details
SA DRC Sec non-CTP Rating Type The rating type used alongside the rating to determine the SEC-ERBA risk-weight.
SA Sensitivity Scale Category The category used to scale the SBM sensitivities.

Measures

Added

Cube Measure Details
SA DRC Adjustment The adjustments added to the Gross JTD when sa.drc.adjustment.apply=true (CRR2).
SA DRC non-Sec JTD Weightings Override Optional override for the DRC non-Sec Obligor risk-weight. Requires DRC non-Sec Obligor cube level.
SA DRC Sec non-CTP JTD Weightings Override Optional override for the DRC Sec non-CTP Tranche risk-weight. Requires DRC Sec non-CTP Tranche cube level.

Context values

No change.

Other Changes

N/A