Solvency Analytics News


The standard SST model requires calculating assets’ and liabilities’ first and second order sensitivities towards market factors. These are known as Deltas and Gammas which need to be calculated for each asset and liability (of a replicating portfolio) individually and added according to their weights in the balance sheet. Computationally this is a quite advanced task: there are typically more than 1000 assets and for the defined $82$ SST factors we have to relate to each asset and liability a vector of $82$ elements and a matrix of $82\times 82$ elements.

This page describes the basic idea of our approach of handling a large dataset which is relevant for SST calculation and balance sheet optimisation.

Example: Input Calculation for a 5-years Maturity CHF Corporate Bond

Besides the computational tractability and efficient memory usage the task of calculating Deltas and Gammas is also challenging from the
financial economics perspective. As an example, consider a corporate bond with 5 years maturity. Let’s see how its corresponding
Delta vector and Gamma matrix are calculated:

  1. We need to estimate a yield curve that incorporates the bond’s credit risk (we use Nelson-Siegel, Svensson, Spline and Polynomial fitting according to an algorithm described in our white paper).
  2. Calculate key rate durations (Deltas): for each single maturity of $1$ to $5$ years we need to calculate the first order factor sensitivity.
  3. Calculation of second order sensitivities (Gammas): for a bond with $5$ years maturity we have $5$ diagonal and $10$ off-diagonal Gamma terms. Note that the calculation of each Gamma requires to price the bond $4$ times which results in calling the pricing function $60$ times ($=15 \times 4$)

The above example shows clearly the necessity of a fast and memory friendly implementation of the pricing functions
as well as of the SST logic, i.e. how shocks (absolute and logarithmic) are defined per factor.

 

Numerical Delta Calculation

 

For a corporate bond we calculate each Delta element as illustrated on the right with the second element as an example.
The Delta of the asset is given by
$$
\delta_{2y} = \frac{p^{+} – p^{-}}{2h}
$$

sst delta calculation example

For details on the calculation of Deltas and Gammas see our Technical Paper on the SST standard market model’s implementation.

SST Input Calculations using the Swiss Bond Index

 

  • Let us assume we want to analyse all constituents of the SBI with respect to their contributions to an insurer’s SST ratio.
  • The figure on the right shows the calculations needed as input for the SST standard market model.
  • Calculation of assets’ and liabilities’ sensitivities is therefore a task that needs to be handled efficiently.
  • Note that the calculations of each element of the Delta vector requires calling the pricing function $2$ times while Gamma calculations typically require to price a bond $4$ times. As for the calculation of Gammas, the bond pricing functions need to be called over $150$ thousand times.

 

sst calculations sbi

Inside our technology

Our object oriented system stores the Deltas and Gammas of all loaded assets and of the liabilities modelled by a replicating portfolio. This allows for high flexibility with respect to various analyses and optimisation methods. See example below: all calculations were done and stored for each element of the balance sheet (balance_sheet object). Now assets’ and liabilities’ (and of course the joint result too) Deltas can be called and plotted with a single line of code.

#sample code
plot(balance_sheet.assets.deltas)
plot(balance_sheet.liabilities.deltas)

The same applies for Gammas, Scenarios and other features relevant under the SST’s standard market model.

 

sst assets liabilites deltas