Clarus Financial Technology

ISDA SIMM Excel Calculator

ISDA SIMM™

ISDA highlighted the documentation and operational issues surrounding the implementation of the UMRs (Uncleared Margin Rules) recently in a media comment. Fortunately, there haven’t been the same concerns aired about the calculation of margin within ISDA SIMM™ itself for the actual margin amounts involved.

If we remember that some of the guiding principles surrounding the SIMM model are (selectively):

It makes sense that the calculations should be simple. I therefore thought it would be a good idea to see if I could build an ISDA SIMM calculator in Excel, without recourse to any coding or custom functions.

Foolhardy? Let’s see….

Follow Along at Home…

I was originally going to work through the ISDA_SIMM_vR1.0 document. But because we focus on the Interest Rates market, I’m not too concerned with the other “Product Classes”.

In effect, this means that all I really needed to do was work-out what the below formula means from an Excel viewpoint:

\( \tag {1} K = \sqrt{\sum\limits_{i,k}{WS_{k,i}^2+{\sum\limits_{i,k}}{\sum\limits_{(j,l)≠(i,k)}{φ_{i,j}{ρ_{k,l}}{WS_{k,i}}{WS_{l,j}}}}}}\)

 

Breaking this formula down into its’ constituents shows that;

\( {WS_{k,i}}\) is the DV01 of a given tenor multiplied by the ISDA-supplied risk weighting. The risk weightings vary from currency, but there are only 3 mappings – normal currencies, low volatility currencies and everything else. All of this data is supplied by ISDA on the website, and in particular in the methodology document.

\({φ_{i,j}}\) is the correlation of the “WS” terms between indices (i.e. between index i and index j in the nomenclature). So for example, ISDA deem that the Libor 1 month Index has a correlation of 98.2% with the Libor 3 month Index. At the moment, this is neither currency nor tenor dependent, although this may obviously change in the future. One value therefore serves all relationships, which ISDA has calibrated at 98.2%.

\({ρ_{k,l}}\) is the correlation of the “WS” terms from one tenor to the next (i.e. between tenors k and l in the nomenclature). So for example, ISDA deem that the 3Y tenor has a correlation of 96% with the 5Y. These are not currency dependent – one table serves all currencies.

1. Risk Transposition of Sensitivities

As Amir has highlighted previously here and here, ISDA SIMM relies on risk sensitivities as inputs to the model. So, let’s start with a grid of DV01’s in our efforts to translate the above formula into something workable in Excel.

1. Transposing risk from CHARM (or any other risk system) to the required Risk Vertices under ISDA SIMM

Showing;

“For the interest rate risk factors, “market rates” (and not “zero coupon rates”) should be used to construct the risk-free yield curve”

2. Risk Weightings

The next step is akin to calculating PnL. We simply take the risk above and multiply it by a vector for that tenor. Seeing as we are looking at a USD portfolio, we only need worry ourselves with the vectors for a “normal” currency. These are called Risk Weights by ISDA and are again available in the document (section D, page 12).

Therefore, applying the Risk Weights in the first column (which vary by Risk Vertex as we would expect), we end up with a matrix of “Weighted Sensitivities”, as shown below. These values are referred to as “WS” in the ISDA SIMM documentation.

Step Three: Risk multiplied by Risk Weights gives us our Weighted Sensitivities (“WS” in the formulas)

3. Correlations

I hoped the next step would be to sum all of those numbers together. That’s what we do on a daily basis after all – price change multiplied by risk gives us the PnL. But, to be fair, we are trying to calculate a mark-to-market change that will cover over 99% of possible market moves – including changes in outrights, curve and basis. So it’s not quite that simple.

Instead, we use correlations between all of the Risk Vertices across the different indices to decide how much offset we apply for any given position.

Again, these correlations are all defined by ISDA:

3. Correlations as defined by ISDA

Showing;

4. Calculate IM

For a single currency IM calculation, ISDA SIMM denotes the Initial Margin (IM) amount as letter “K”. This is defined as per the equation at the top of this blog:

\( \tag {1} K = \sqrt{\sum\limits_{i,k}{WS_{k,i}^2+{\sum\limits_{i,k}}{\sum\limits_{(j,l)≠(i,k)}{φ_{i,j}{ρ_{k,l}}{WS_{k,i}}{WS_{l,j}}}}}}\)

In Excel terms, what we are doing is:

My output looks like this:

4. ISDA SIMM IM, denoted by “K” in the ISDA SIMM documentation

5. Sanity Check Your Model

It’s nice to do this along the way, but really you need a K-calculator before you can get some sensible numbers out. I used the following test cases. We also present the output and compare with CCP-generated numbers from CHARM.

10y USD Swap in $100,000 DV01. IM = $4.5m

$100k 10y USD IRS has an IM of $4.5m

 

5y vs 10y USD 3m Libor swaps in $100,000 DV01. IM = $1.792m

A 5y10y USD IRS spread in $100,000 has an IM of $1.792m

USD 3m Libor vs USD OIS 10y Basis in $100,000 DV01. IM = $0.85m

A 10y USD 3m Libor vs OIS Basis Swap has an IM of $0.85m

A USD Box trade – 5y10y in OIS vs 3m Libor in $100,000 DV01. IM = $0.34m

A 5y10y Box trade between OIS and 3m Libor has an IM of $0.34m

6. Summary vs the CCPs

I cannot imagine this will be the last time we are looking at ISDA SIMM or how margins compare.

So here is our first summary for standalone IM under ISDA SIMM compared with the same trades cleared at a CCP (IM figures calculated in CHARM):

ISDA SIMM IM vs CCP Averages

Showing;

Finally, we note that;

In Summary

Stay informed with our FREE newsletter, subscribe here.

Exit mobile version