Basel 2 RWA formula

Credit Scoring models often become inputs into regulatory and economic capital calculations such as the Basel 2 RWA formula. Probability of Default (PD), Exposure at Default (EAD) and Loss given default (LGD) models are all used for this purpose. One measure of loss, Expected Loss, is simply given by EL=PD*EAD*LGD. But this is not sufficient to work out how much capital a bank should hold as it does not account for the uncertainties of losses from year to year.

Unexpected Loss solves this problem by calculating the losses that might occur in some specified probability. In Basel 2 banks are require to hold sufficient capital to withstand a 1 in 1000 year loss event. The mathematics required to do this is more difficult than in the Expected Loss equation. Luckily for us, the BIS, specifies the formulae and parameters to use to calculate capital requirements and RWA. The Basel 2 RWA formula uses an extension of the Vasicek formula, named after its founder. It is a single factor model which assumes that the default rate of assets is correlated rather than being independent. The higher the asset correlation, the risker an asset is.

Note: Risk Weighted Assets are simply as their name implies. The bank's assets (loans) are weighted according to their riskiness. The amount of capital the bank is required to hold is a mulitple of the total risk weighted assets.

Calculating Capital Requirement and Risk Weighted Assets for retail

The capital requirement, K, is calculated as K=LGD * \left[N\left(\sqrt{\frac{1}{1-R}} * G(PD) +\sqrt{\frac{R}{1-R}}*G(0.999)\right) - PD\right]

from which we can then derive the Risk Weighted Assets as RWA = K * 12.5 * EAD

where R=0.04 for Credit Cards which also known as Qualifying Revolving Retail Exposures (QRRE) and R=0.15 for Residential Mortgages. N() is the standard normal cumulative distribution and G() is its inverse.

Calculating Capital Requirement and Risk Weighted Assets for Corporate Exposures

First the asset correlation is calculated, R = 0.12 * \frac{1 - e^{-50 * PD}}{1 - e^{-50}} + 0.24 *\left(1- \frac{1 - e^{-50 * PD}}{1 - e^{-50}}\right)

Then a maturity adjustment parameter is calculated b= (0.11852 - 0.05478 * \ln(PD))^2

The capital requirement K is calculated as K= \left[LGD *N\left(\sqrt{\frac{1}{1-R}} * G(PD) +\sqrt{\frac{R}{1-R}}*G(0.999)\right) - (LGD*PD)\right] * \frac{1+(M-2.5) b}{1-1.5 b}

From this we can calculated the Risk Weighted Assets as before RWA = K * 12.5 * EAD

Note that the BIS requires a calibration factor of 1.06 to be multiplied by the RWA on top of the results of the above formulae.

Further information on RWA and Regulatory Capital

Discussion of the various formulae can be found at the following websites

I have created an R function to produce the various outputs of the Basel II RWA formulae.

R function to calculate RWA and K

Calculate Basel 2 Risk Weighted Assets (RWA) and other related measures
Calculate Risk Weighted Assets given PD, EAD, LGD and maturity according to the Basel 2 formula

rwa(pd, ead, lgd, m, s, product, cf, corr)

PD      Long-run Probability of Default for the customer or account
EAD     Downturn Exposure at Default for the the customer or account
LGD     Downturn Loss Given Default for the customer or account
m       Maturity (in years)
s       Exposure adjustment
product One of "Corporate", "Mortgage", "QRRE", "Retail Other"
cf      Confidence for the prediction. Default is set to 0.999 which corresponds to 1/1000 year event
corr    Asset Correlation if you wish to override the Basel 2 calculated value

Calculate Risk Weighted Assets given PD, EAD, LGD and maturity according to the Basel 2 formula

A list is output containing the following:
el          Expected Loss
ul          Unexpected Loss
pd.implied  The pd implied by the Vasicek formula for the specified confidence
k           Capital requirement factor
reg.cap     Capital requirement in dollars
rwa         Risk weighted assets in dollars
risk.weight Final risk weight

R Credit Scoring

rwa<-function(pd=0.02,ead=100,lgd=0.4,m=2,s=50,product="Corporate", cf=0.999, corr=NULL){

m.adj 50]     s[s<5]     exp.adj
    # Correlation
    r     # Maturity adjustment
    b     m.adj
    # Calculate k
    k   }
  else if (product=="Mortgage"){
    r   }
  else if (product=="QRRE"){
    r   }
  else if (product=="Retail Other"){
    r   }

# Override the correlation if specified by the user
  if (!is.null(corr)) {
    r   }

  el  pd.implied   ul   k   reg.cap   rwa   risk.weight
  res   return(res)


# Calculate RWA for various products
rwa(pd=0.01, ead=100, lgd=0.2, product="Mortgage")
rwa(pd=0.01, ead=100, lgd=0.8, product="QRRE")
rwa(pd=0.01, ead=100, lgd=0.4, product="Retail Other")
rwa(pd=0.02, ead=100, lgd=0.4, m=2, s=50, product="Corporate")

# Plot rwa versus PD for mortgages
y plot(x = seq(0.001, to=0.1, by=0.001), y = y[ , "rwa"], type="l", xlab="PD", ylab="RWA")

One thought on “Basel 2 RWA formula

Leave a Reply

Your email address will not be published. Required fields are marked *