Chapter 28 — Regulatory and Accounting Frameworks

"Regulation is the market's immune system — sometimes it overreacts, sometimes it's too slow."


After this chapter you will be able to:

  • Explain the Basel III capital framework: CET1 ratio, capital conservation buffer, leverage ratio, and liquidity requirements (LCR, NSFR)
  • Describe the FRTB's key changes from Basel 2.5: ES replacing VaR, asset-class-specific liquidity horizons, desk-level IMA approval, and P&L attribution tests
  • Implement the IFRS 9 three-stage ECL model and compute provisions for performing, underperforming, and impaired loans
  • Compute regulatory capital for standardised credit risk RWA
  • Understand the scope and purpose of DFAST/CCAR stress tests

The 2008 financial crisis exposed fundamental weaknesses in bank capital regulation. Under Basel II, banks had been permitted to use their own internal models to calculate risk-weighted assets (RWA) and therefore minimum capital requirements. The incentive to understate risk was structural, and the result was catastrophic undercapitalisation across the global banking system. Governments injected over $400 billion in bank bailout funds in the US alone (under TARP), and trillions more in guarantees and liquidity facilities. The regulatory response was the most sweeping reform of bank regulation since the Glass-Steagall Act.

Basel III (finalised 2010, implemented through the 2010s) fundamentally raised the quantity and quality of required bank capital. The minimum Tier 1 capital ratio increased from 4% to 6% of RWA, plus a new capital conservation buffer of 2.5% and a countercyclical buffer of 0-2.5%. The definition of capital was tightened so that only genuinely loss-absorbing equity-like instruments qualified. Two new liquidity requirements — the Liquidity Coverage Ratio and Net Stable Funding Ratio — addressed the short-term and medium-term funding vulnerabilities that had accelerated the 2008 crisis.

For trading desks, the Fundamental Review of the Trading Book (FRTB) overhauled how market risk capital is calculated, replacing Value at Risk with Expected Shortfall at longer liquidity horizons and requiring individual desk-level model approval. For accounting, IFRS 9 replaced the old "incurred loss" provisioning model with a forward-looking expected credit loss (ECL) approach. Both changes require significant computational infrastructure to implement correctly, and the OCaml type system provides exactly the correctness guarantees needed.


28.1 Basel III Capital Framework

Under Basel III, banks must hold capital against:

  • Credit Risk (SA or IRB approach)
  • Market Risk (SA-TB or IMA under FRTB)
  • Operational Risk (SMA)

The key metrics:

$$\text{RWA}_{\text{credit}} = \text{EAD} \times \text{RW}(\text{rating}) \times 12.5$$

$$\text{CET1 ratio} = \frac{\text{CET1 capital}}{\text{RWA}} \geq 4.5%$$

module Basel = struct

  (** Standard risk weights by credit quality step (SA approach) *)
  let corporate_risk_weight credit_quality_step =
    match credit_quality_step with
    | 1 -> 0.20   (* AAA-AA: 20% *)
    | 2 -> 0.50   (* A: 50% *)
    | 3 -> 1.00   (* BBB: 100% *)
    | 4 | 5 -> 1.50  (* BB-B: 150% *)
    | _ -> 1.50   (* unrated or below B *)

  let sovereign_risk_weight cqs =
    match cqs with
    | 1 -> 0.00   (* AAA: 0% *)
    | 2 -> 0.20
    | 3 -> 0.50
    | 4 | 5 -> 1.00
    | _ -> 1.50

  (** IRB: Internal Ratings-Based approach *)
  let irb_rw ~pd ~lgd ~maturity ~correlation () =
    (* Basel II IRB corporate formula *)
    let _ph = correlation in
    let inv_pd = Numerics.norm_ppf pd in
    let inv_999 = Numerics.norm_ppf 0.999 in
    let rho = 0.12 *. (1.0 -. exp (-50.0 *. pd)) /. (1.0 -. exp (-50.0))
              +. 0.24 *. (1.0 -. (1.0 -. exp (-50.0 *. pd)) /. (1.0 -. exp (-50.0))) in
    let cond_pd = Numerics.norm_cdf
                    ((inv_pd +. sqrt rho *. inv_999) /. sqrt (1.0 -. rho)) in
    (* Maturity adjustment *)
    let b = (0.11852 -. 0.05478 *. log pd) *. (0.11852 -. 0.05478 *. log pd) in
    let ma = (1.0 +. (maturity -. 2.5) *. b) /. (1.0 -. 1.5 *. b) in
    12.5 *. lgd *. cond_pd *. ma

  (** Simplified SA-CCR for derivatives *)
  let sa_ccr_ead ~rc ~pfe_multiplier ~add_on =
    let alpha = 1.4 in  (* regulatory multiplier *)
    alpha *. (rc +. pfe_multiplier *. add_on)

  let cet1_ratio ~cet1_capital ~rwa = cet1_capital /. rwa

end

28.2 FRTB — Fundamental Review of the Trading Book

The Fundamental Review of the Trading Book (FRTB) is the Basel Committee's overhaul of market risk capital requirements, finalised in 2019 and implemented by major jurisdictions from 2025. It represents the most fundamental change to how banks calculate trading book capital since Basel II, and it is motivated by two clear failures of the Basel 2.5 regime.

Why VaR was replaced with ES. Value at Risk at 99% tells you the loss you will not exceed in 99% of scenarios — it says nothing about how badly you lose in the other 1%. During the 2008 crisis, losses in the 1% tail were far larger than expected because VaR is not a coherent risk measure: it is not subadditive (two portfolios with VaR = \$X each can combine to give VaR > \$2X). It also created incentives for VaR games — structuring positions to have small but frequent losses (all within VaR) while taking on severe tail exposure. Expected Shortfall at 97.5% (the expected loss given that you are in the tail) is subadditive and directly measures average tail loss. The FRTB's choice of 97.5% (vs 99% for VaR) is calibrated to produce broadly similar capital levels while switching to a better risk measure.

Liquidity horizons. Under Basel 2.5, all positions were assumed to be liquidable in 10 days. This was manifestly unrealistic: a large corporate bond position might take 60 days to exit without moving the market; structured credit products might take months. FRTB assigns different liquidity horizons to different risk factor classes, and the ES is scaled accordingly by $\sqrt{\text{LH}/10}$ to translate from the base 10-day horizon:

Risk FactorLiquidity Horizon
Equity large-cap10 days
Equity small-cap20 days
IG credit spread40 days
HY credit spread60 days
Structured credit120 days
FX G1010 days
FX other20 days

IMA vs Standardised Approach (SA). FRTB allows banks to use either the Internal Models Approach (IMA, using their own ES models with regulatory approval) or the Standardised Approach (SA, a prescribed formula based on sensitivities). IMA requires approval at the desk level (not just the firm level), with each trading desk proving separately that its model passes P&L attribution and backtesting tests. A desk that fails these tests loses IMA approval and must use SA — which is deliberately calibrated to produce higher capital requirements as a penalty.

P&L Attribution test. The FRTB requires each IMA desk to demonstrate that the risk model's hypothetical P&L (HPL, using the risk model to reprice the portfolio with actual market moves) closely matches the actual P&L (RTPL, risk-theoretical P&L). Two statistical tests are required: (1) the ratio of means $\bar{\text{RTPL}}/\bar{\text{HPL}}$ must be between 0.8 and 1.2, and (2) the ratio of variances must be similar (tested via Spearman correlation). Desks with poor P&L attribution signals that the risk model is missing important risk factors — perhaps the model does not capture FX gamma exposure, or the desk has structured credit not in the model.

Non-modellable risk factors (NMRFs). FRTB distinguishes between modellable risk factors (where sufficient market data exists) and NMRFs (where fewer than 24 real price observations per year are available). NMRFs attract Stressed Expected Shortfall (SES) capital, which must be computed as the 97.5th percentile of daily P&L from stress scenarios. For illiquid products, NMRFs can dominate the capital calculation.

FRTB (effective 2025) replaces VaR with Expected Shortfall and introduces a stricter P&L attribution test.

Key changes:

  • ES at 97.5% replaces VaR at 99%
  • Moving from 10-day to liquidity-adjusted horizons
  • Desk-level IMA approval with P&L attribution and backtesting tests
module Frtb = struct

  (** ES 97.5% × sqrt(liquidity horizon / base horizon) *)
  let liquidity_adjusted_es ~es_1d ~liquidity_horizon_days =
    es_1d *. sqrt (float_of_int liquidity_horizon_days)

  (** Liquidity horizons vary by asset class *)
  let liquidity_horizon = function
    | `Equity_large_cap        -> 10
    | `Equity_small_cap        -> 20
    | `Credit_ig_bond          -> 40
    | `Credit_hy_bond          -> 60
    | `Interest_rate_g10       -> 10
    | `Interest_rate_other     -> 20
    | `Fx_g10                  -> 10
    | `Fx_other                -> 20
    | `Commodity               -> 20

  (** P&L attribution test: hypothesis test that RTPL ≈ HPL *)
  let pnl_attribution_test ~rtpl_series ~hpl_series =
    let n    = float_of_int (Array.length rtpl_series) in
    let mean_diff = Array.fold_left2 (fun a r h -> a +. (r -. h)) 0.0 rtpl_series hpl_series /. n in
    let var_diff  = Array.fold_left2 (fun a r h ->
                      let d = r -. h -. mean_diff in a +. d *. d
                    ) 0.0 rtpl_series hpl_series /. (n -. 1.0) in
    let spearman = 0.0 in (* placeholder — Spearman rank correlation *)
    let test_result = {|
      mean_unexplained = mean_diff;
      var_unexplained  = var_diff;
      spearman_corr    = spearman;
      passes = Float.abs mean_diff < 10.0 && var_diff < 20.0 (* illustrative thresholds *)
    |} in
    test_result

end

28.3 IFRS 9 — Financial Instruments

IFRS 9 requires Expected Credit Loss (ECL) provisioning in three stages:

  • Stage 1: Performing — 12-month ECL
  • Stage 2: Significant credit deterioration — Lifetime ECL
  • Stage 3: Credit-impaired — Lifetime ECL

$$\text{ECL} = \text{PD} \times \text{LGD} \times \text{EAD} \times \text{DF}$$

module Ifrs9 = struct

  type stage = Stage1 | Stage2 | Stage3

  type ecl_result = {
    stage    : stage;
    pd_12m   : float;
    pd_lifetime : float;
    lgd      : float;
    ead      : float;
    ecl_12m  : float;
    ecl_lifetime : float;
    provision: float;
  }

  let compute_ecl ~pd_curve ~lgd ~ead ~discount_curve ~stage =
    let ecl_12m = pd_curve.(0) *. lgd *. ead
                  *. Interpolation.discount_factor discount_curve 1.0 in
    let ecl_lifetime = Array.fold_left (fun acc (t, pd) ->
      acc +. pd *. lgd *. ead *. Interpolation.discount_factor discount_curve t
    ) 0.0 (Array.mapi (fun i p -> (float_of_int (i + 1), p)) pd_curve)
    in
    let provision = match stage with
      | Stage1 -> ecl_12m
      | Stage2 | Stage3 -> ecl_lifetime
    in
    { stage; pd_12m = pd_curve.(0); pd_lifetime = Array.fold_left (+.) 0.0 pd_curve;
      lgd; ead; ecl_12m; ecl_lifetime; provision }

end

28.4 Chapter Summary

Regulatory capital frameworks are the translation of political decisions about financial system stability into mathematical formulas that banks must implement in software. Getting these calculations right is both legally required and financially significant: errors can trigger supervisory action, and inaccurate provisions affect reported earnings under IFRS 9.

The Basel III capital framework rests on the concept of Risk-Weighted Assets (RWA): the denominator of the capital ratio. Different asset classes receive different risk weights based on their credit quality, and under the Internal Ratings-Based (IRB) approach, banks may use their own PD, LGD, and EAD estimates to compute RWA through the Basel II IRB formula: $K = \text{LGD} \cdot N\left(\frac{N^{-1}(\text{PD}) + \sqrt{R} N^{-1}(0.999)}{\sqrt{1-R}}\right) - \text{PD} \cdot \text{LGD}$, where $R$ is the asset correlation. This formula is the Vasicek one-factor model from Chapter 16 recast as a capital formula.

FRTB's shift from VaR to Expected Shortfall (ES) at horizons of 10-120 days (depending on asset liquidity) addresses the fundamental failure of VaR: that it says nothing about the severity of losses beyond the confidence threshold. The liquidity horizon adjustment ensures that capital reflects the time required to unwind positions under stressed conditions — 10 days for liquid equity futures, 120 days for illiquid credit instruments.

IFRS 9's three-stage ECL model classifies loans by delinquency: performing loans (Stage 1) provision for expected losses in the next 12 months; underperforming loans (Stage 2, where credit risk has significantly increased) provision for lifetime expected losses; non-performing loans (Stage 3) are specifically provisioned. The transition between stages based on forward-looking macroeconomic scenarios requires scenario-conditioned PD models — a direct application of the credit risk models from Chapters 15 and 16.


Exercises

28.1 Compute IRB risk-weighted assets for a corporate loan portfolio with 100 names. Use Basel II IRB formula.

28.2 Implement IFRS 9 ECL calculation for a 5-year loan portfolio, assuming PD increases with tenor and stage 2 applies when PD has doubled since origination.

28.3 Implement the SA capital charge for a vanilla equity options desk under FRTB sensitivity-based approach.

28.4 Build a simple capital adequacy monitor that flags breaches of CET1 ratio thresholds given a scenario of increasing loan defaults.


Next: Chapter 29 — Systems Design for Quant Finance