[2.0.1] - 2020-06-23
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- No cashflows need to be provided when no migration risk is modelled.
- Improved the error message when negative cashflows are provided for the credit risk model, with a reference to the documentation.
[2.0.0] - 2020-06-23
New
Implemented by Laurent Dudok de Wit for FINMA:
- Updating version number to 2.0.0 for the publication together with the SST-Tool.
[1.3.8] - 2020-06-22
New
Implemented by Laurent Dudok de Wit for FINMA:
- The R-Tool should be used with the new SST-Template published with the feldtest. The use of an old SST-Template provides an error message and asks the user to use the currenlty official R-Tool.
[1.3.7] - 2020-06-19
New
Implemented by Laurent Dudok de Wit for FINMA:
- Added comments in the R code
- Dependency
data.table
license (GPL-3 or MPL 2.0) is shown depending on whether the package is started from R or started from the executable version.
- Added unit tests for the validation of parameters for the participation model.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- Fixed incorrect progress bar when multiple variants are calculated using the old credit risk model.
- Fixed missing scaling of the non-life parameter
mu
for the daughter companies and for the health scenarios (affects only the participation model).
- Improved error handling for the participation model to ensure that only the required parameters are provided. For example, it is not possible anymore to perform a standalone SST-calculation with some inputs for the participation model.
- Fixed small typos (incomplete argument matching) with no impact on the R-Tool.
- Fixed incorrect console output of the objects produced by
excelToModelSST
since the print function was not exported.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Add an error message when the captive model is used jointly with the participation model.
- Add additional unit tests for the credit risk model.
[1.3.6] - 2020-05-31
New
Implemented by Laurent Dudok de Wit for FINMA:
- Speed improvement for the generation of the FDS.
- Added unit tests for captives simulation.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Renamed some R files.
- Deleted old code.
- The scaling factor for the captive model (QS) and for the credit risk model are allowed to be equal to 100%.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- Fixed incorrect captive calculation when CY risk is deterministic or CY risk is zero.
- Fixed incorrect error trigger preventing from perfoming a calculation with PY-risk only for captives.
[1.3.5] - 2020-05-27
New
Implemented by Matteo Gambara for FINMA:
- Added some unit tests for captive (non-life) companies.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Added some unit tests for Health
- Added the namespace when required and added necessary names to the list of global variables.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- Fixed library loading within unit tests.
Implemented by Matteo Gambara for FINMA:
- Fixed some old unit tests to enable compatibility with newer version.
[1.3.4] - 2020-05-20
New
Implemented by Laurent Dudok de Wit for FINMA:
- Added a warning when the implied spread for the credit risk model is very low or very high.
- Added an additional column
simulation_id
to the risk factors simulations. This is the same simulation id as the standalone simulations.
- Added a warning message for incorrect captive quota-share input.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Improved display of elements of class
sstModel
and sstCalculationVariant
.
- Changed the column order of the object
Standalones_Simulations
to have deltaRBC
and deltaRBC_beforeLLPO
in the right position.
- Create a copy of captive portfolio to prevent any modification by reference.
- Rename the field for the
Input SST Template
in Shiny.
- Update year for the license.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- Fixed warning message when missing LGD scaling.
- Fixed name of market risk factors.
- Fixed typo for spread check for fixed income instruments.
- Fixed bug for checking non-empty numerical values.
- Fixed incorrect yes/no indicator for information about the use of the new credit risk model.
- Added icons for the executable version.
- Small fix for results shown in target capital decomposition to have 0 instead of small values in order of magnitude of 1e-14 due to the computer numerical precision.
[1.3.3] - 2020-05-12
New
Implemented by Laurent Dudok de Wit for FINMA:
- The parser loads all worksheets containing values to extract. For more stability, only the relevant columns are loaded. This prevents from loading a huge data set with more than 16’000 columns if data is (inadvertently) entered in the last column.
- Added a consistency check for the LGD values.
- Added an error message when the spread from credit risk cashflows could not be computed.
- Added an error message when credit risk cashflows are missing.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Check to ensure that the Basel III classes provided in the credit risk portfolio are associated to a LGD value.
- Modified the check to give also an error when the sum of probability of the scenarios is equal to 100%.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- Fixed the
Nachsilbe zum FDS
which has been disabled.
- Added a check to give an error when the risk factors (health and life) are not in the same order as in the same correlation matrix.
[1.3.2] - 2020-04-02
New
Implemented by Laurent Dudok de Wit for FINMA:
- Implementation of the captive model.
- The frequency for normal and large captive claims needs to be lower than a given threshold, otherwise an error message is thrown. This is in line with the captive model principle.
- The simulation of the non-life model is split into multiple modules.
- The non-life risk is split between CY and PY risk for captives. For other non-life risk models no distinction is made between CY and PY simulations, the simulations are therefore on purpose set to 0. In all cases, the expected shortfall of PY and CY risk is an input of the SST-Template
- The
Yes
and No
values from the SST-Template are now converted into logical values in the Objects
loaded.
- Added a check to ensure that the mother and daughter template are using the same version of the configuration file.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- The function to open the fundamental data sheet in Excel is now one of the element of the list produced by
simulate.sstCalculationVariant
instead of an element of the list from simulate.sstCalculation
.
Improved generation of the FDS, which is now generated without any Excel formula. The FDS is generated from
- Text fields (static value)
- Numeric values from the R-Tool output (value from a keyword)
- Numeric values from any worksheet from the Excel template (linked value)
- For the FDS generation, when a linked value refers to an empty cell, 0 is returned. This gives the same behavior as Excel. Furthermore values are added when two values are added to the same cell in the FDS.
Variants identified in an SST-Tempalte are sorted by alphabetic order.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- An error message is sent when the foreign currency for the FX forwards is equal to the SST-currency.
[1.3.1] - 2020-03-20
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- User-friendly display of the elements
Modules
and Objects$Template
from a SST model.
- The date and time of generation of the configuration sheet are exported in the configuration sheet. This makes it possible to see which version is used and to ensure that the mother and daughter company use the same version.
- Most of the parameters used to generate the configuration sheet are now included in the package as a global variable.
- Show a progress bar for the credit risk model
[1.3.0] - 2020-03-17
New
Implemented by Laurent Dudok de Wit for FINMA:
- The simulation results now show extended information. In particular the expected financial and technical results are shown (as constants) in the simulation results
- The whole FDS is produced by
sstCalculation
. No template for the FDS is anymore required.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Many code improvement and inline documentation of functions
Implemented by Matteo Gambara:
- Implementation of unit tests to ensure the stability of the R-Tool.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- Whenever the participation model was used and the daughter risks were displayed as participation risk by the mother company, then the market risk component used for the MVM calculation (nhmr) was impacted. This is now fixed, therefore the MVM is not impacted anymore when the risk from the daughter company is displayed as a participation risk.
[1.2.0] - 2020-02-20
New
Implemented by Laurent Dudok de Wit for FINMA:
Changed
Implemented by Laurent Dudok de Wit for FINMA:
[1.1.0] - 2020-02-05
New
Implemented by Laurent Dudok de Wit for FINMA:
[1.0.0] - 2020-01-27
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Updated news to create the version 1.0.0.
[0.6.1] - 2020-01-27
Changed
Implemented by Laurent Dudok de Wit, Matteo Gambara and Johannes Meuser for FINMA:
- Updated the vignette containing the introduction to the R-package.
[0.6.0] - 2020-01-10
New
Implemented by Laurent Dudok de Wit for FINMA:
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- The calculation of the expected shortfall has been improved to handle also degenerate cases properly.
Implemented by Matteo Gambara for FINMA:
- Updated the vignette describing the package.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
[0.5.2] - 2019-05-13
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- The effect from
Weitere Marktrisiken 1
and Weitere Marktrisiken 2
was missing in the waterfall chart, this is now fixed.
- Updated vignette with information about how to modify the internal configuration file
- Dependency
data.table
change of license in new version from GPL-3 to MPL 2.0.
Implemented by Matteo Gambara for FINMA:
- Updated the vignette describing the package.
[0.5.1] - 2019-05-11
New
Implemented by Laurent Dudok de Wit for FINMA:
- Added a help function
sstIntroduction
to open the vignette.
The user can specify in the SST Template (Sheet Intro
, cell E21) a suffix that will be be appended to the files produced by the sstDashboard
. The suffix can be empty or any character string, for example:
- The date of the last modification of the SST template by the company
- The type of calculation performed, for example
_runWithLLPO
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Replaced density plots by Waterfall charts using the same fields as the ones provided in FINMA’s SST Survey 2018.
- Improved readability of the market risk instrument formulas, where
a + -b
is replaced by a -b
- Updated news, copyright and authorship information.
- Updated vignette with additional information about the R package
- Updated unit tests to provide no warning on newer test_that package versions.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- Corrected the calculation of the
SCR
, to include the additional effects on the target capital instead of including them in the target capital only. This has no impact on the computation of the target capital and of the SST ratio.
[0.5.0] - 2019-05-09
New
Implemented by Laurent Dudok de Wit for FINMA:
- The credit risk mitigation effect from the surplus fund is applied using the credit risk mitigation factor. (only relevant for the look-through test calculation)
- A warning is shown if the LLPO is activated for a run without daughter company.
- When starting the SST Dashboard, the working directory that will be used to export the results is shown in the console.
- Added a button in the dashboard to download density plots of each standalone category.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- The indicator whether the LLPO should be applied is now set directly in the SST Template instead of using the parameter
withLLPO
. (only relevant for the look-through test calculation)
Fix
Implemented by Laurent Dudok de Wit for FINMA:
- The progress bar did not complete to 1 when the mother or the daughter company had no market risk, this is now fixed.
- Providing a relative path as an argument to
sstDashboard
did not work properly, this is now fixed.
- Added error handling when the path provided to
sstDashboard
is NULL and NA.
[0.4.1] - 2019-05-08
New
Implemented by Laurent Dudok de Wit for FINMA:
- The limited liability put option (LLPO) is implemented in the context of the test calculation. The LLPO can be activated using the parameter
withLLPO
from sstCalculation
.
When activated, the LLPO is applied in the following way to the daughter simulations:
- The simulations from market + insurance + scenario risk (column
insurance_market_scenario.all
) of the standalone simulations matrix are floored.
- The impact from the flooring is taken into account as a scenario with positive impact under
scenario.all
- For the test calculation, the impact from the LLPO (whenever it is activated) is reported together with the impact of the scenarios in the FDS.
- For simulations performed with a mother and daughter company, the standalone simulation vector contains an additional column
negativeDaughterValue
indicating for each simulationId
whether the simulation was floored
The value used for flooring the (centered) simulations is described in the technical document for the test calculation. Furthermore:
- The value is typically negative. A warning is shown if this value is positive
- The value is exported in the Excel file produced by the tool
Added additional outputs to the Run results
worksheet
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Spreads lower than -10% and higher than 30% don’t trigger anymore an error but solely a warning.
Implemented by Matteo Gambara for FINMA:
- Updated the vignette describing the package.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- Negative values for
mu
parameter for the log-normal distribution should be allowed.
- Standalone
Participation
was erroneously a valid entry as a standalone type. This standalone is only used for immaterial participation that are comonotonically aggregated to the market risk.
- Fix missing scaling factor for the life risk calculation.
[0.4.0] - 2019-04-25
New
Implemented by Laurent Dudok de Wit for FINMA:
Improved user experience with the dashboard regarding the export functionality when started from the R console:
- The user can specify the directory where the output results will be downloaded, if no directory is specified, the results will be downloaded to the user directory (
My documents
on Windows systems).
- An error is thrown if the dashboard is launched when the specified output directory does not exist.
- The resulting simulations are sorted in such a way that the sort order of the market risk simulations remains unchanged. This makes it easier for the user to compare market risk simulations from two model runs with the same seed and same number of simulations. Note that this is purely a change in the output representation and does not correspond to a model change.
- The simulation results now contain the risk factor simulations of the
life
and health
risk factors in addition to the previously available market
risk factor simulations.
- The standalone simulations and the risk factors simulations contain a column
simulationId
to uniquely associate each risk factor simulation to a standalone simulation.
This change is only relevant in case the lookthrough approach is used. The standalone simulation output now contains the simulation results of the mother and of the daughter company in addition to the consolidated simulations. Thus, for a run of 1’000’000 simulations, it consists of a table with 3’000’000 entries. The additional column simulationType
contains the following label for each set of simulation:
SST Calculation
for the consolidated simulations (note that currenty no LLPO is applied)
Mother only
for the simulations of the mother
Daughter only
for the simulations of the daughter
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Consistently with the
SST Dashboard
application, the dashboard is now launched from the R console using the sstDashboard
function.
A consistent naming convention is used for the simulation results:
- The
Standalones_Simulations
output contains the simulations of all standalone components constituting the one-year risk capital.
- The
Risk_factors_simulations
output contains the risk factors simulations.
- Whenever a warning message is shown in the SST dashboard, the user can click anywhere in the window to close the warning. It is not anymore needed to click on the
Ok
button.
- Re-design of the functions used to simulate a
sstCalculation
object to make them easier to be unit-tested.
Removed the hard-coded list of risk types, which is now contained in the internal configuration file.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- Whenever an error message and a warning message were thrown in the same model run without reference to a specific cell, both appeared together as a
warning
.
- When a file is downloaded from the SST Dashboard, the path is displayed correctly. Previously, the path used to contain both
\\
and /
[0.3.3] - 2019-04-25
New
Implemented by Laurent Dudok de Wit for FINMA:
- Added unit tests
process
and simulate
functions.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Remove unused private functions.
- Replace empty cells by blank cells in the Excel Template
Fundamental_Data.xlsx
- Change the arguments of the functions used for the generation of the risks (non-life, market, participation, scenario and reordering) to make them easier to be unit-tested.
- New function to get the seed for each risk type, the results remains unchanged
- Change in the loader to avoid an undesired warning which occurred while loading the SST template, when a recent version of
tibble
is used.
- The Dashboard is now named
SST Dashboard
Implemented by Matteo Gambara for FINMA:
- Updated the vignette describing the package.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- Fixed income with negative market value instruments with non-empty spread always warned that the spread was incorrect
- Minor change to the processing of delta sensitivities, where the financial instrument was modified by reference.
- Fixed shiny dashboard crash whenever the target capital is zero, since the SST ratio is not well defined.
- Fixed initial number of simulations shown in the shiny dashboard to 1000000.
[0.3.2] - 2019-04-17
New
Implemented by Laurent Dudok de Wit for FINMA:
- Added unit tests for the
check
, transform
functions.
- Added some unit tests for the
functions
, get
and process
functions.
Implemented by Matteo Gambara for FINMA:
- Added a vignette describing the use of the
sstCalculation
package.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- All life and health risk are simulated, instead of simulating only the risk factors having a non-zero sensitivity. This allows the consistency with the market risk simulation technique. This enables the modelling of a look-through for the case where both the daughter and the mother have life (or health) risk.
- Change the arguments of the functions used for processing financial instruments to make them easier to be unit-tested.
- Remove unused private functions.
- Update copyright year.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- Minor change to the processing of financial instruments, where the name was added twice.
- Minor change to the processing of financial instruments, where the financial instrument was modified by reference.
Implemented by Johannes Meuser for FINMA: - Minor corrections to documentation and news file
[0.3.1] - 2019-04-10
New
Implemented by Laurent Dudok de Wit for FINMA:
- A warning is shown if the daughter and mother company have non-life risk. If this is the case, the non-life risk of the daughter and mother will be aggregated comonotonically.
- An error is thrown if the daughter and mother template don’t have the same market risk, life risk health risk and aggregation inputs.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- Renaming the R scripts and grouping functions in a more meaningful way.
- Removed unused worksheets from the
TemplateFDS.xlsx
as the configuration of the tool is contained in the internal data.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- In the generation of the error message, an integer was converted to a double when adding 1. Now using the integer variant
1L
.
- The error message refers multiple times to the same cell if the cell belongs to multiple tables. The error message now refers at most once to a cell.
[0.3.0] - 2019-04-10
New
Implemented by Laurent Dudok de Wit for FINMA:
- Added the method
excelToModelSST
to parse the SST template into a model, which can be then simulated using the generic method simulate
.
- Added documentation entries for all exported functions.
- Added an error in the scaling factor applied to the daughter company is zero.
- Added a warning message to indicate that the default value is used for the non hedgeable market risk factor in the case no best-estimates of liability is provided.
- Added a warning in the case any best-estimate of liability is negative.
- Added an error handling for the case the risk factor
type
is missing in the risk factor mapping table.
- Improved methodology to export the FDS almost instantaneously.
Changed
Implemented by Laurent Dudok de Wit for FINMA:
- The coordinates and attributes of all tables and values to be read from the SST template are now specified in an internal data file. This provided more transparency compared to the former implementation where these information were in an Excel file, as raw data. The code used to generate the data set from the SST template information is also included.
- The number of market risk factors is automatically determined based on the number of columns of the correlation matrix. The standard model uses 39 risk factors and up to 100 risk factors can be identified with this method.
- For negative insurance liability cash-flow, the warning message now additionally states that a negative cash-flows correspond to a gain.
- Improved the performance for parsing the SST template. Once all relevant sheets are loaded, the model is almost instantaneously created.
- The step
Validating
is not shown anymore as it is almost instantaneous.
- If the number of simulations is not provided in the SST template, it is set to 1000000
- Improved error message related to the risk factor mapping table to refer to the risk factor
type
affected by the error.
Fixed
Implemented by Laurent Dudok de Wit for FINMA:
- The error message thrown for missing macro economic risk factors did not refer to the macro economic table.
- The error messages were displayed on the same line as the progress bar.
[0.2.3] - 2019-04-05
First development release implemented for FINMA by Laurent Dudok de Wit with the support of Matteo Gambara for changes made to the shiny app. This release uses parts of the code from the shiny app and its launcher originally implemented by Adrien Lamit (@alamit) for FINMA in the R package sstModel
version 1.0.0.
General
Tool features
- This version allows computations of market risk, life, health and non-life insurance risks, their aggregation using the reordering algorithm with a Gaussian copula and the computation of solvency figures based on those computations.
- A look-through method is implemented in the context of a test calculation.
- Major improvement for loading and checking the SST template and for simulating market risks.
- The market risk exposure is accessible within one single
instruments
data.table.
- The reordering of total market, life, non-life and health insurance risk is propagated to RBC standalone simulations, which are stored in the
RBC_simulations
data.table. The same holds for market risk factor simulations, which are stored in the Market_risk_factors_simulations
data.table.
- An error handling mechanism is now used, where all errors are thrown using a specific condition class
errorHandling
.
- A progress bar now indicates the progress while loading the SST template and while the simulations are performed.
The author thanks Matteo Gambara for this contribution to writing some unit tests and Johannes Meuser for his contribution to the R package by installing some releases and seeing whether the functionalities are, from the perspective of a user, understandable and working as expected.