Topical Issues on Risks in Financial Markets.


Nuts & Bolts of FRTB – Vega Risk Charge

The method for calculating Vega risk charge and Delta risk charge is exactly same i.e. in the first step, risk weighted sensitivity is calculated for each risk factor. Next, risk weighted sensitivities are aggregated within a bucket to calculate risk position and finally risk positions are aggregated across buckets. However, there are differences in the calculation of individual components like risk sensitivity and correlations.

Step 1 – Calculate net sensitivity s_k for each risk factor across all the portfolios on a trading desk. It is important to note that sensitivity in this case is not simply vega as most trading and risk professionals know it. Vega risk sensitivity is a multiplication of an option vega and the implied option volatility. So portfolio level vega risk sensitivity to a given risk factor is the sum of  option level vega risk sensitivities to that risk factor. Mathematically, s_k =\sum_i \nu_{ik} * \sigma_{ik} where i represents the position and k represents the risk factor.

In case of an interest rate portfolio, k has two dimensions – option maturity and the residual maturity of the underlying\nu_k is required to be mapped to these maturity tenors along both the dimensions – 0.5y, 1y, 3y, 5y and 10y. Most likely, k will have to be mapped to one of these tenors using linear or an internally approved interpolation method. For rest of the risk classes(FX, Equity etc.) k will be defined in only one dimension – option maturity which are mapped to the same tenors as for an interest rate portfolio.

As mentioned in my previous post, I will cover sensitivity definitions for all the risk classes separately.

Step 2 – Calculate risk weighted sensitivity WS_k which is the multiplication of net sensitivity s_k and the corresponding risk weight RW_k. Mathematically, it is represented as

WS_k = RW_ks_k

Vega risk weights are the function of risk class and its liquidity horizon which are capped at 100%. Following equation to be used to calculate vega risk weight of each risk class:

RW_k = min[RW_\sigma*\sqrt{\frac{LH_{Risk Class}}{10}};1]

Here, RW_\sigma is set at 55% and LH_{Risk Class} is the regulatory liquidity horizon as per the table below.

Risk Class LH_{Risk Class} RW_{Risk Class}
GIRR 60 100%
FX 40 100%
Commodity 120 100%
Equity-Large Cap 20 78%
Equity-Small Cap 60 100%
CSR (all risk class variants) 120 100%

Step 3 – Risk position,s_k, for each bucket b (definition of bucket is different for each risk class) is calculated by aggregating risk weighted sensitivities within each bucket. Aggregation requires use of prescribed correlations \rho_{kl}. Given below formula to be used for the aggregation within each bucket.

K_b=\sqrt{max(\sum_kWS^2_k + \sum_k\sum_{k\neq l}\rho_{kl}WS_kWS_l,0)}

This equation can easily be implemented in Excel using MMULT function or perhaps by implementing the logic in VBA. However the critical part of this equation is the correlation matrix.

Same Bucket Correlations for GIRR \rho_{kl}

\rho_{kl} between WS_k and WS_l within same bucket (eg. USD or EUR/USD) and same underlying curve (eg. USD Libor) with different tenors is set at \rho_{kl} = min[\rho_{kl}^{(option maturity)} * \rho_{kl}^{(underlying maturity)};1]

  • \rho_{kl}^{(option maturity)} = e^{-\alpha.\frac{|T_k-T_l|}{min(T_k;T_l)}} Here T_k refers to the option maturity in years related to the weighted vega sensitivity WS_k; and \alpha is set at 1%;
  • \rho_{kl}^{(underlying maturity)} = e^{-\alpha.\frac{|T_k^U-T_l^U|}{min(T_k^U;T_l^U)}} Here T_k^U refers to the maturity of the underlying in years related to the weighted vega sensitivity WS_k; and \alpha is set at 1%.

    Example of a partial correlation matrix \rho_{kl} is provided in a picture below. This shows a correlation between a 1y1y weighted vega risk sensitivity and 1y10y weighted vega risk sensitivity is 91%.
    GIRR Vega Matrix

Same Bucket Correlations for Other Risk Classes \rho_{kl}

For other risk classes \rho_{kl} is set at \rho_{kl} = min[\rho_{kl}^{(Delta)} * \rho_{kl}^{(option maturity)};1] where

  • \rho_{kl}^{(option maturity)} = e^{-\alpha.\frac{|T_k-T_l|}{min(T_k;T_l)}} Here T_k refers to the option maturity in years related to the weighted vega sensitivity WS_k; and \alpha is set at 1%. Refer to sub-correlation matrix inside a red box in the above picture for  \rho_{kl}^{(option maturity)} for other risk classes;
  • \rho_{kl}^{(Delta)} is the correlation that is applicable to equivalent Delta risk factors. For example, $latex \rho_{kl}^{(Delta)} for the equity options in Advanced Economy Industrials stocks (Bucket 6) is 25%.

Step 4 – Calculate Vega risk charge by aggregating vega risk positions across all the buckets. Following formula to be used for this aggregation

Vega Risk Charge = \sqrt{\sum_bK^2_b + \sum_b\sum_{c \neq b}\gamma_{bc}S_bS_c}

S_b = \sum_kWS_k for all the risk factors in a bucket b
S_b = max(min(\sum_kWS_k,K_b),-K_b) when a number under square root is negative using first approximation of S_b
\gamma_{bc} = 50% for aggregating interest rate vega risk positions between buckets. This correlation is different for each risk class.

Example for an FX Portfolio

Pictures below show steps of calculating a vega risk charge for a hypothetical FX portfolio (first picture). For the simplicity it is assumed that vegas are perfectly matched to the prescribed option maturity tenors.FX Vega Portfolio

Second picture shows at-the-money implied volatilities at the pre-specified tenors. The smile is ignored in these calculations. Note that these volatilities are hypothetical and do not represent current or any other market condition.FX Vols

Picture below has steps to calculate K_b and S_b.FX Vega Risk Charge

Next a formula in Step 4 above is used to calculate vega risk charge. For FX risk class, \gamma_{bc} is 60% which is same as was used for calculating delta risk charge. This formula can be implemented in Excel using MMULT resulting in a vega risk charge of $5,980,059 which is approximately $6 million for the aggregate portfolio vega of $210k.

Next I will present curvature risk charge.


  1. Carme

    Hi Anshu,
    Do you happen to have an excel example of how you calculate the correlation values in the matrix and the risk position for each bucket when interest rate derivatives?
    Besides, I understand this works for swaptions as we have both maturities as inputs for valuation. But i don´t see this for caps (caplets) – do you maybe have qn example for both?
    Many thanks in advanced and congrats for the contents, it´s been really helpful so far. Best,

    • Comment by post author

      Carme, sorry I didn’t see your comment earlier. Thanks for dropping by. Correlation calcs are relatively straight and as per the formula provided in the standard. I don’t have example for swaptions and caps but I can prepare one. For caps, I would assume that correlation matrix can be created for 1m, 3m and 6m. Anyways there is not much liquidity in most currencies for maturities other than 3m.

  2. Laurent

    Hi Anshu,

    Thanks for the different articles on FRTB, which I found very useful.
    I would also be interested in any Excel file you have created through those articles. I would like to try to get the implementation right and to play a bit with the inputs to see how the results change. Is there any chance you could send them over?

    Many thanks in advance for your reply,
    Kind regards,