Processing math: 100%

SIMM

Introduction

This section outlines our interpretation of the SIMM variance-covariance methodology1 and describes the input data, calculations, and results.

Quick overview

Summary of the aggregation steps:

For each NettingSet:
   For each ProductClass in [RatesFX, Credit, Equity, Commodity]:
     For each RiskClass in [Interest Rate, Credit Qualifying, Credit Non-Qualifying, Equity, Commodity, FX]:
         Compute Delta, Vega, Curvature and BaseCorr margins
      IM_<RiskClass> (from <SensitivityType>Margin): IM_x = DeltaMargin_x +
                                     + VegaMargin_x + CurvatureMargin_x + BaseCorrMargin_x
   SIMM_product (from IM_<RiskClass>): aggregate IM across risk classes (variance covariance)
SIMM (from SIMM_product): SIMM = SIMMRatesFX + SIMMCredit + SIMMEquity+SIMMCommodity

Step-by-step overview:

  1. Inputs:
    1. Read and process sensitivities - s,
    2. Compute vega risk (weight vega by vol) for Equity, Commodity, FX,
    3. Generate Curvature Risk Exposure CVR from vegas.
  2. Define aggregation levels - k and b:
    1. Derived Risk Factor - k,
    2. Derived Bucket - b,
    3. for each input sensitivity record.
  3. Compute Weighted sensitivity WSk:
    1. Lookup concentration thresholds Tb
    2. Compute concentration risk factor CR
    3. Assign risk weights RW
    4. Compute weighted sensitivity WS
  4. Bucket-level margin Kb:
    1. Lookup risk factor correlations ρkl (and ϕi,j for rates)
    2. Compute inner correlation adjustment factor fk,l for non-IR risk classes
    3. Compute bucket-level margin Kb
  5. Delta, Vega, BaseCorr, and Curvature margins for each risk class
    1. Look up cross-bucket correlation γk,l
    2. Compute Sb for each bucket
    3. Compute inner correlation adjustment factor gb,c for IR risk classes
    4. Compute margins for each risk class and sensitivity type
  6. Compute risk class level margin (sum across sensitivity types)
  7. Compute product level margin (aggregate across risk classes using variance-covariance formula)
  8. Compute total SIMM requirement (sum across product classes)

Reading and processing sensitivities

Atoti ISDA-SIMM expects to receive trade-level sensitivities in CRIF format from the upstream risk engine and data management systems.

Calculation Currency and FX Delta

The calculation currency is looked up for each netting set based on the netting set attributes. FX Delta exposures where qualifier matches the calculation currency do not contribute into Margin.

Compute vol-weighted vega risk

This step is applicable for equity, fx, and commodity risk classes.

Vol-weighted vega risk is computed as follows:

VRi,k=HVRRiskClassjσkjViσ

where j - summing across tenors.

where α=Φ1(99.

See the resulting measures in the Sensitivities section.

Generate Curvature Risk Exposure CVR from vegas

Curvature Risk Exposure is used for gamma effect calculation (approximation) and is denoted as CVRik, where i is for instrument (trade).

CVR is maturity-weighted and volatility-weighted vega across tenors, where weights are defined as SF(t):

SF(t)=0.5min(1,14daystdays)

Then, the curvature risk is computed as follows:

CVRi,k=jSF(tkj)σkjViσ

Interest rate and credit vegas come already vol-weighted.

Bucket and risk factor

This section describes Buckets and Risk Factors which are specific aggregation levels defined by the methodology. They are most probably different from the definition of buckets and risk factors for internal risk management.

Derived risk factors

Section C1 specifies a certain definition of risk factors (subscript ~k~ in the methodology).

Risk factors are further used as the aggregation level for weighted sensitivities/CVR (see the variance-covariance formula for the Bucket-Level Margin).

This table summarizes the combinations of fields used to assign risk factors for interest rate sensitivities.

RiskType Example of a CRIF record (for a trade aka “instrument” in SIMM) Risk factor fields in CRIF
Risk_IRCurve {RiskType: Risk_IRCurve, Qualifier: USD, Bucket: 1, Label 1: 1y, Label2: Libor3m, Amount: 23472.8, AmountCcy: EUR} Qualifier, Label1, Label2
Risk_Inflation {RiskType: Risk_Inflation, Qualifier: USD, Amount: 23472.8, AmountCcy: EUR} Qualifier
Risk_XCcyBasis {RiskType: Risk_XCcyBasis, Qualifier: JPY, Amount: 23472.8, AmountCcy: EUR} Qualifier
Risk_IRVol {RiskType: Risk_IRVol, Qualifier : USD, Label1: 1y, Amount: Vega x Volatility} Qualifier, Label1
Risk_InflationVol {RiskType: Risk_InflationVol, Qualifier : USD, Label1: 1yr, Amount: Vega x Volatility} Qualifier, Label1
Risk_Equity {RiskType: Risk_CreditQ, Qualifier: ISIN:US1081333921, Bucket: 1, Amount: 23472.8, AmountCcy: EUR} Qualifier
Risk_EquityVol {RiskType: Risk_EquityVol, Qualifier: ISIN:US682348237, Bucket: 1, Label 1: 1y, Amount: 23472.8, AmountCcy: EUR} Qualifier, Label1
Risk_FX {RiskType: Risk_FX, Qualifier: CHF, Amount: 23472.8, AmountCcy: EUR} Qualifier
Risk_FXVol {RiskType: Risk_FXVol, Qualifier: USDEUR, Label 1: 1y, Amount: 23472.8, AmountCcy: EUR} Qualifier, Label1
Risk_Commodity {RiskType: Risk_Commodity, Qualifier: Coal Europe, Bucket: 1, Amount: 23472.8, AmountCcy: EUR} Qualifier
Risk_CommodityVol {RiskType: Risk_CommodityVol, Qualifier: Coal Europe, Label1: 1y, Amount: 23472.8, AmountCcy: EUR} Qualifier, Label1
Risk_CreditQ {RiskType: Risk_CreditQ, Qualifier: ISIN:US7648683693, Bucket: 2, Label1: 2Y, Label2: USD, Amount: 23472.8, AmountCcy: EUR} Qualifier, Label1, Label2
Risk_CreditVol {RiskType: Risk_CreditVol, Qualifier: ISIN:US7648683693, Bucket: 2, Label1: 2Y, Label2: USD, Amount: 23472.8, AmountCcy: EUR} Qualifier, Label1, Label2
Risk_BaseCorr {RiskType: Risk_BaseCorr, Qualifier: CDX IG, Amount: 23472.8, AmountCcy: EUR} Qualifier
Risk_CreditNonQ {RiskType: Risk_CreditNonQ, Qualifier: Instrument1, Bucket: 2, Label1: 2Y, Label2: CMBX, Amount: 23472.8, AmountCcy: EUR} Qualifier, Label1, Label2
Risk_CreditVolNonQ {RiskType: Risk_CreditVolNonQ, Qualifier: Instrument1, Bucket: 2, Label1: 2Y, Label2: CMBX, Amount: 23472.8, AmountCcy: EUR} Qualifier, Label1, Label2

Derived Bucket

Section C1 specifies the way sensitivities are grouped into Buckets - b.

Buckets are further used:

  1. as a parameter for defining Risk Weight,
  2. as an aggregation level for Bucket-Level Margin.

The regulatory (aggregation) buckets are defined as follows:

  1. For interest rate risk class, bucket is currency delivered in the Qualifier field.
  2. For foreign exchange, all sensitivities are place into a single bucket.
  3. For risk type Risk_BaseCorr, all sensitivities are place into a single bucket.
  4. In all other cases: bucket is provided in the input file.

Weighted Sensitivities

Weighted sensitivities are computed for each input sensitivity record.

Concentration Threshold

This step is not applicable for the curvature chains of calculations and for the base correlation.

Tb concentration threshold is looked up in the parameter set based on:

RiskType Specified per Remark
Risk_IRCurve + Risk_Inflation CurrencyRiskGroup delta
Risk_XCcyBasis not defined delta
Risk_IRVol + Risk_InflationVol CurrencyRiskGroup vega
Risk_Equity Bucket delta
Risk_EquityVol Bucket vega
Risk_FX CurrencyRiskGroup delta
Risk_FXVol CurrencyRiskGroup of one currency in pair and CurrencyRiskGroup of the second currency in pair vega
Risk_Commodity Bucket delta
Risk_CommodityVol Bucket vega
Risk_CreditQ Bucket delta
Risk_CreditVol single value vega
Risk_CreditNonQ Bucket delta
Risk_CreditVolNonQ single value vega
Curvatures not defined not defined
Risk_BaseCorr not defined not defined

The currency risk group mapping is part of the parameter set configuration and must be provided for each Qualifier.

Concentration Risk Factor

This step is not applicable for the curvature chains of calculations, and for Risk_BaseCorr. Assume CR = 1.

The formula is similar for all risk classes/sensitivity types:

CRb=max(1,abs(net sensitivity)concentration threshold)

The CRb is computed for each RiskType and bucket inside a netting set and product class.

Interest Rate

For Risk_IRCurve and Risk_Inflation, the CR_b is computed on the currency level, but does not include XCcy risk:

CRb=max(1,|k,isk,i|Tb)

For Risk_XCcyBasis CR = 1 (see para 7b).

For Risk_IRVol and Risk_InflationVol,

VCRb=max(1,|k,iVRk,i|VTb)

Equity, Commodity, and Foreign Exchange

CRk=max(1,|sk|Tb)

VCRk=max(1,|iVRk,i|VTb)

Credit spread

CRk=max(1,|jsj|Tb)

VCRk=max(1,|ijVRij|VTb)

Risk Weights

Risk Weights lookup is defined per risk type. It is either based on a lookup of a combination of fields or a constant value.

Risk Type RW/VRW lookup specification
Curvatures not defined, RW = 1
Risk_BaseCorr single value
Risk_Commodity per Bucket
Risk_CommodityVol single value
Risk_CreditNonQ per Bucket
Risk_CreditQ per Bucket
Risk_CreditVol single value
Risk_CreditVolNonQ single value
Risk_Equity per Bucket
Risk_EquityVol per Bucket
Risk_FX single value
Risk_FXVol single value
Risk_Inflation single value
Risk_InflationVol single value
Risk_IRCurve per CurrencyRiskGroup, Tenor
Risk_IRVol single value
Risk_XCcyBasis single value

Formula for the Weighted Sensitivities

Once the risk weights, RW, are assigned, the weighted sensitivities WS are computed according to this general formula:

WS=sRWCR

Specific formula for each risk type:

RiskType Notation Formula
Risk_IRCurve, Risk_Inflation, Risk_XCcyBasis WSk,i WS=si,kRWkCRb Note, that for Risk_XccyCurve CR=1 (para 7b)
Risk_CreditQ, Risk_CreditNonQ, Risk_Equity, Risk_FX, Risk_Commodity WSk WS=skRWkCRk
Risk_IRVol, Risk_InflationVol,Risk_CreditVol, Risk_CreditVolNonQ, Risk_EquityVol, Risk_FXVol, Risk_CommodityVol VRk VRk=VRW(iVRi,k)VCRb for rates, VRk=VRW(iVRi,k)VCRk - all other risk classes
Risk_BaseCorr WSk WSk=RWksk
Curvatures not defined WS=CVR

Bucket-Level Capital Charge

Weighted sensitivities netted at Risk Factor level are rolled up into Bucket Level Margin Kb using a variance-covariance type formula.

Risk Factors Correlation

For all pairs of risk factors in each bucket (see definitions above) we need to look up risk factor correlations from the parameter set. ρk,l - are defined per risk class without a split onto delta and vega. We assume same ρk,l for vega, as for delta.

Interest Rate

For all pairs of risk factors of the same curve currency:

RiskType Notation Lookup
Risk_IRCurve ϕi,jρk,l - risk factors correlation is a product of two variables. ρi,j is set per Tenor 1, Tenor 2. ϕi,j is subcurve correlation, it is set as a single value for different subcurves and as 1 between tenors of one subcurve
Risk_Inflation ρk,l single value
Risk_XCcyBasis ρk,l single value

Note the correlations for Risk_Inflation and Risk_XCcyBasis are for those sensitivities against all Risk_IRCurve sensitivities (within the same currency).

Equity, Commodity, Foreign exchange

For all risk factors inside a bucket:

RiskType Notation Lookup
Risk_Equity, Risk_EquityVol ρk,l single value per Bucket
Risk_Commodity, Risk_CommodityVol ρk,l single value per Bucket
Risk_FX, Risk_FXVol ρk,l set per currency volatility group

Credit spread

For all risk factors inside a bucket:

RiskType Notation Lookup
Risk_CreditQ, Risk_CreditVol ρk,l Two correlation values, depending on whether Qualifiers are equal or not, are defined for any of the non-Residual buckets and for the Residual bucket.
Risk_CreditNonQ, Risk_CreditVolNonQ ρk,l Two correlation values, depending on whether Label2 are equal or not, are defined for any of the non-Residual buckets and for the Residual bucket.
Risk_BaseCorr ρk,l single value

Inner correlation adjustment factor

For some of the risk types, the inner correlation adjustment factor fk,l plays a role, otherwise assume fk,l is set at 1.

Interest Rate

For the risk types: Risk_IRCurve, Risk_Inflation, Risk_XCcyBasis, Risk_IRVol, Risk_InflationVol parameters, fk,l is set at 1.

Non-Interest Rate

RiskType fkl
Risk_IRCurve, Risk_Inflation, Risk_XCcyBasis 1
Risk_IRVol, Risk_InflationVol 1
Risk_CreditQ, Risk_CreditNonQ, Risk_Equity, Risk_FX, Risk_Commodity fkl=min(CRk,CRl)max(CRk,CRL)
Risk_CreditVol, Risk_CreditVolNonQ, Risk_EquityVol, Risk_FXVol, Risk_CommodityVol fkl=min(VCRk,VCRl)max(VCRk,VCRL)
Risk_BaseCorr 1

Formula for the Bucket-Level Capital Charge

Risk factor level Weighted Sensitivities WSk and Curvature risk CVRk, together with Risk Factors Correlations ρkl feed the bucket-level margin formula, defined for interest rate as follows:

Kb=k,ibWS2k,i+k,i(j,l)(k,i)ϕi,jρklWSk,iWSl,j

For the non-interest rate risk classes delta and vega, excluding base correlation:

Kb=kbWS2k+klkfk,lρk,lWSkWSl

Base correlation:

Kb=kbWS2k+klkρk,lWSkWSl

Curvature chain:

Kb=kbCVR2k+klkρ2k,lCVRkCVRl

Delta, Vega, BaseCorr, and Curvature margins

Bucket level Margin Kb are rolled up into risk class/sensitivity type level Margin using a variance-covariance type formula.

Cross-Buckets Correlation

For the next aggregation step, we need to obtain cross-bucket correlations - denoted as γbc.

Risk Class Delta and Vega
Interest Rate single value
Equity Bucket Pairs (not defined for the residual bucket)
Foreign Exchange not defined
Commodity Bucket Pairs
Credit qualifying Bucket Pairs (not defined for the residual bucket)
Credit non-qualifying single value

Capped Net Weighted Sensitivity

For each bucket, we also compute Sb:

Sb=max(min(Kb,net WSb),Kb)

The Sb for the Residual bucket will not contribute into the Margin.

Outer Correlation Adjustment Factor

This step is applicable only to the IR risk class.

Delta

The Delta margin calculation for interest rates uses this formula for the adjustment factor:

gb,c=min(CRb,CRc)max(CRb,CRc)

For all other risk classes, gb,c=1.

Vega

The Vega margin calculation uses this formula for the adjustment factor:

gb,c=min(VCRb,VCRc)max(VCRb,VCRc)

Curvature

This step is not applicable.

BaseCorr

This step is not applicable.

Formula for Delta, Vega, Curvature, and BaseCorr Margin

Delta, Vega, Curvature, and BaseCorr margins are computed for each ProductClass and RiskClass separately.

Delta and Vega

The general formula for the sensitivity type margin is as follows:

Margin=bK2b+bcbγb,cgb,cSbSc+Kresidual

where b - all buckets, excluding residual and Kresidual - bucket-level margin for the residual bucket (if exists).

Special cases

Please note that since all risk factors belong to a single bucket for these sensitivities, Margin is equal to bucket-level margin:

Credit Qualifying BaseCorrMargin=Kb

FX DeltaMargin=Kb

FX VegaMargin=Kb

Curvature

Theta

Compute theta and lambda: across non-residual buckets and for the residual bucket.

θ=min(b,kCVRb,kb,k|CVRb,k|,0)

The formula has the net CVR measure in nominator and gross CVR in denominator, where for the gross CVR the abs is taken at risk factor level. The formula is computed twice: first, it aggregates all buckets except residual, then it is applied to the residual bucket.

Lambda

Compute lambda using theta for the non-residual buckets and for the residual bucket:

λ=((Φ199.5)21)(1+θ)θ

Curvature margin partials

Compute Sb similar to the delta margin calculation for each bucket:

Sb=max(min(Kb,net CVRb),Kb)

Compute Curvature Margin residual and Curvature margin non-res:

CurvatureMargin=max(b,kCVRb,k+λbK2b+bcbγ2b,cSbSc,0)

The formula is computed twice: first, it aggregates all buckets except residual, then it is applied to the residual bucket.

Curvature margins

Sum up the partials for the non-residual buckets and the residual bucket:

CurvatureMargin=CurvatureMarginnonresidual+CurvatureMarginresidual

Risk class level margin

Sum up Delta, Vega, BaseCorr, and Curvature margins to obtain risk class level margin.

IMRiskClass=DeltaMarginRiskClass+VegaMarginRiskClass+CurvatureMarginRiskClass+BaseCorrMarginRiskClass

Product level margin

Roll up risk class margins using variance covariance formula to obtain product level margin:

SIMMproduct=rIM2r+rsrψr,sIMrIMs

where parameter ψ is looked up based on a pair of risk classes.

Total SIMM margin

Finally, the SIMM margin for a netting set is computed as follows:

SIMM=SIMMRatesFX+SIMMCredit+SIMMEquity+SIMMCommodity


  1. Licensed from International Swaps and Derivatives Association, Inc., All Rights Reserved. Please note that your use of this ISDA SIMM(tm) service or product for calculating your firm’s initial margin pursuant to applicable regulations requires a license from the International Swaps and Derivatives Association, Inc. (ISDA), which may be obtained by contacting isdalegal@isda.org. Licensing the ISDA SIMM provides documentation and support required to properly implement and maintain the ISDA SIMM(tm). ↩︎

See also