Foundation IRB Specification¶
Foundation IRB calculation with supervisory LGD, PD floors, and correlation formulas.
Regulatory Reference: CRR Articles 153-154, 161-163, 178
Test Group: CRR-B
Requirements Status¶
| ID | Requirement | Priority | Status |
|---|---|---|---|
| FR-1.3 | F-IRB capital requirement (K): PD, supervisory LGD, maturity adjustment | P0 | Done |
| FR-1.8 | Defaulted exposure treatment: F-IRB (K=0) | P0 | Done |
Default Definition — Art. 178
F-IRB defaulted exposures (PD = 100%, K = 0) are driven by the Art. 178 default trigger. The two-limb trigger (unlikeliness-to-pay and 90 DPD), UTP indicators, materiality threshold, suspension rules, and 3-month cure / 1-year distressed- restructuring probation are documented in the shared Default Definition (Art. 178) specification.
Supervisory LGD Values (CRR Art. 161)¶
Under F-IRB, LGD is prescribed by the regulator based on collateral type:
Art. 161(1) LGD Values¶
| Category | Supervisory LGD | Reference |
|---|---|---|
| Senior unsecured | 45% | Art. 161(1)(a) |
| Subordinated unsecured | 75% | Art. 161(1)(b) |
| Covered bonds (Art. 129(4)/(5) eligible) | 11.25% | Art. 161(1)(d) |
| Senior purchased corporate receivables | 45% | Art. 161(1)(e) |
| Subordinated purchased corporate receivables | 100% | Art. 161(1)(f) |
| Dilution risk of purchased corporate receivables | 75% | Art. 161(1)(g) |
Art. 161(1)(c) provides that institutions may recognise funded and unfunded credit protection in the LGD in accordance with Chapter 4.
Purchased Receivables (Art. 161(1)(e)–(g))
Art. 161(1)(e) and (f) apply where the institution cannot estimate PD for the purchased receivables pool (or estimates do not meet Section 6 requirements). When PD is estimable, the standard senior (45%) or subordinated (75%) LGD from (a)/(b) applies instead. Art. 161(1)(g) covers dilution risk — the risk that receivables amounts are reduced through credits or allowances to the obligor. It always applies to the dilution component regardless of PD estimation capability.
Purchased Receivables LGD — Implemented
purchased_receivables_subtype ("senior" / "subordinated" / "dilution_risk") on the
Facility / Loan / Contingent input row routes the Art. 161(1)(e)/(f)/(g) supervisory LGD
(engine/irb/transforms.py::apply_firb_lgd), taking precedence over the seniority-based
selector and over the CRM-derived lgd_post_crm — these are unsecured supervisory rates
that do not benefit from collateral adjustment.
Art. 160(2)/(6) Top-Down PD — Implemented (P1.278)
Art. 161(1)(e)/(f) and Art. 160(2) are a matched pair: the supervisory LGDs apply to exactly the population that cannot produce a Section-6 compliant PD, and for that population Art. 160(2) prescribes the PD instead of modelling it:
| Subtype | Derived PD | Reference |
|---|---|---|
senior |
el_estimate ÷ senior supervisory LGD (45% CRR / 40% B31) |
Art. 160(2)(a) |
subordinated |
el_estimate (no division) |
Art. 160(2)(b) |
dilution_risk |
el_dilution_estimate |
Art. 160(6), first sentence |
Two nullable Float64 inputs carry the estimates — el_estimate (default risk) and
el_dilution_estimate (dilution risk), both decimal rates of the exposure value
(0.0225 = 2.25%), matching the identity EL = PD × LGD; neither is a monetary amount, and
one never substitutes for the other. The derivation runs in the classify stage
(engine/stages/classify/subtypes.py::derive_purchased_receivables_pd) because the IRB
approach gate is internal_pd.is_not_null() — before this, a pool with no obligor PD fell
to the Standardised Approach entirely.
Null semantics: a null, zero or negative EL estimate derives nothing and leaves the row
exactly where it was (SA, absent any other PD) — an absent estimate never becomes PD 0%.
A firm-supplied PD always wins, since Art. 160(2) applies only where the institution cannot
produce one. The derived PD is capped at 100% (EL ÷ LGD is unbounded above) and is then
floored downstream by the ordinary Art. 160(1) 0.03% (PS1/26 0.05%) input floor.
Class scope: purchased corporate receivables only — CORPORATE / CORPORATE_SME on
exposure_class_irb. Art. 160(2) and Art. 160(6) both name the corporate population and
the (a) denominator is a corporate supervisory LGD (Art. 161(1)(e)), so a retail row
carrying a subtype derives nothing: retail IRB is own-estimate only, with no supervisory
LGD and no Art. 163 senior EL/LGD limb to authorise the division.
Regime scope: both. PS1/26 Art. 160(2)(a)–(c) and 160(6) carry the CRR text over, and PS1/26 Art. 161(2)(a) extends the same supervisory LGDs to Advanced IRB firms using this PD — so no regime Feature gates it, only the pack's regime-keyed LGD values.
Deferred: Art. 160(2)(c) / 160(6) second sentence — the permission-gated decomposition of an EL estimate into its own PD and LGD (with PS1/26 Art. 161(2)(b) then requiring the decomposed LGD). That needs a decomposed PD/LGD input pair plus an Art. 143 permission flag, and is the only route by which an A-IRB firm may use own estimates for these pools.
The subtype LGD binds on A-IRB too — not only Foundation
The derived PD is what opens the IRB gate, and on the org-wide permission path
airb_expr requires only has_internal_rating — it carries no modelled-LGD limb
(engine/stages/classify/permissions.py::_build_orgwide_permission_exprs), unlike the
model-permission path which does require has_modelled_lgd. A top-down pool with no LGD
of any kind therefore can and does land on A-IRB. Do not reason that a null lgd
forces the row to Foundation "where the supervisory LGD is applied" — that holds only
under model-level permissions, and it is the premise that hid an anti-conservative LGD.
apply_firb_lgd consequently applies the Art. 161(1)(e)–(g) subtype LGD whenever a row
carries a purchased_receivables_subtype and has no own or modelled LGD, on either
IRB approach — it is not gated on approach == FIRB. That is what the articles
require, not a convenience:
- CRR Art. 161(1) opens "Institutions shall use the following LGD values" with no approach qualifier, and Art. 161(2) is its only escape — available where the institution "can decompose its EL estimates for purchased corporate receivables into PDs and LGDs" in a manner the competent authority considers reliable.
- PS1/26 Art. 161(2)(a) states it positively: an institution using the Advanced IRB Approach "shall apply" points (e)/(f)/(g) of paragraph 1 where PD is determined under Art. 160(2)(a)/(b) or the first sentence of Art. 160(6).
A firm-supplied LGD still wins, because that is the decomposition escape (CRR Art. 161(2); PS1/26 Art. 161(2)(b)(i)–(ii) requires the decomposed LGD). This is why the condition keys on the absence of an own estimate rather than on the approach.
Before this, a subordinated pool on A-IRB took the generic senior-unsecured LGD (45%
CRR / 40% B31) in place of 100%, and a dilution_risk pool in place of 75% CRR / 100%
B31 — understating LGD by 30–60pp. Note IRBPermissions.full_irb_b31() masks the defect
on a large corporate, because PS1/26 Art. 147A forces those rows to F-IRB anyway; it is
reachable under both regimes wherever A-IRB is genuinely granted. Regressions:
tests/unit/classifier/test_p1_278_top_down_pd.py.
Art. 230 Table 5 LGDS Values (Foundation Collateral Method)¶
When exposures are secured by eligible collateral, the LGD* formula (Art. 230) uses the following supervisory LGDS values for the secured portion:
| Collateral Type | LGDS (Senior) | LGDS (Subordinated) | C* | C** | Reference |
|---|---|---|---|---|---|
| Financial collateral | 0% | 0% | 0% | — | Art. 230 Table 5 |
| Receivables | 35% | 65% | 0% | 125% | Art. 230 Table 5 |
| Residential / commercial RE | 35% | 65% | 30% | 140% | Art. 230 Table 5 |
| Other physical collateral | 40% | 70% | 30% | 140% | Art. 230 Table 5 |
Where C* is the minimum collateralisation threshold (below which the collateral is not recognised) and C** is the overcollateralisation level at which the full LGDS applies to the entire exposure.
Covered Bond LGD (Art. 161(1)(d))
CRR Art. 161(1)(d) provides a permissive ("may be assigned") 11.25% LGD for covered bonds eligible under Art. 129(4) or (5). Basel 3.1 restructures this into a separate paragraph Art. 161(1B) with the same 11.25% value. Covered bonds use the Art. 161 mechanism, not the Art. 230 Table 5 LGDS/overcollateralisation framework.
Art. 161 vs Art. 230 Distinction
Art. 161(1)(a)–(g) covers unsecured LGD, subordinated LGD, covered bonds, purchased receivables, and dilution risk. The per-collateral-type LGDS values (0%/35%/40%) for the secured portion of the LGD* formula come from Art. 230 Table 5 (Foundation Collateral Method), not Art. 161. The Art. 230 LGDS subordinated column (65%/70%) applies when the underlying exposure is a subordinated claim — these are distinct from the Art. 161(1)(b) subordinated unsecured LGD of 75%.
Basel 3.1 F-IRB LGD Changes (PRA PS1/26 Art. 161(1))¶
Under Basel 3.1, senior unsecured LGD is differentiated by whether the counterparty is a financial sector entity (FSE):
Art. 161 LGD Comparison¶
| Category | CRR | Basel 3.1 | Reference |
|---|---|---|---|
| Senior unsecured (non-FSE) | 45% | 40% | Art. 161(1)(a) → Art. 161(1)(aa) |
| Senior unsecured (FSE) | 45% | 45% | Art. 161(1)(a) |
| Subordinated unsecured | 75% | 75% | Art. 161(1)(b) |
| Covered bonds | 11.25% | 11.25% | Art. 161(1)(d) → Art. 161(1B) |
| Senior purchased receivables | 45% | 40% | Art. 161(1)(e) |
| Subordinated purchased receivables | 100% | 100% | Art. 161(1)(f) |
| Dilution risk | 75% | 100% | Art. 161(1)(g) |
Art. 230 LGDS Comparison (Secured Portions)¶
| Collateral Type | CRR LGDS | Basel 3.1 LGDS | Reference |
|---|---|---|---|
| Financial collateral | 0% | 0% | Art. 230 Table 5 / Art. 230(2) |
| Receivables | 35% | 20% | Art. 230 Table 5 / CRE32.9 |
| Residential RE | 35% | 20% | Art. 230 Table 5 / CRE32.10 |
| Commercial RE | 35% | 20% | Art. 230 Table 5 / CRE32.11 |
| Other physical | 40% | 25% | Art. 230 Table 5 / CRE32.12 |
FSE Definition
Financial sector entity includes banks, building societies, investment firms, insurance companies, and any entity primarily engaged in financial intermediation (general FSE definition: CRR Art. 4(1)(27)). The "large FSE" total-assets threshold driving the 1.25x correlation multiplier (Art. 153(2)) is EUR 70 billion under CRR Art. 142(1)(4) and GBP 79 billion under Basel 3.1 (PS1/26 Glossary p. 78, with Note "corresponds to Article 142(1)(4) of CRR").
Key B31 Changes to Purchased Receivables / Dilution
Basel 3.1 aligns the senior purchased receivables LGD with the new non-FSE rate (45% → 40%, Art. 161(1)(e)). The dilution risk LGD increases from 75% to 100% (Art. 161(1)(g)), reflecting the PRA's view that dilution losses are not mitigated by collateral recovery. The subordinated purchased receivables LGD remains at 100% (Art. 161(1)(f)).
B31 Art. 230 — Subordinated LGDS Distinction Removed
CRR Art. 230 Table 5 has separate "senior" and "subordinated" LGDS columns (e.g., receivables 35%/65%). PRA PS1/26 Art. 230(2) replaces this with a single LGDS per collateral type (20%/20%/25%) with no subordinated distinction. The subordination effect is captured solely through the LGDU term (75% per Art. 161(1)(b)).
PD Floor¶
CRR: 0.03% (3 basis points) for every non-defaulted exposure class the two flooring articles reach — Art. 160(1) for corporates and institutions, Art. 163(1) for retail. Central governments and central banks are in neither: Art. 160(1) reads "The PD of an exposure to a corporate or an institution shall be at least 0,03 %", so a CRR CGCB IRB exposure carries no PD floor and its modelled PD passes through (P1.277). Basel 3.1 does floor sovereigns, at 0.05% (PS1/26 Art. 160(1)).
Basel 3.1 PD Floors by Exposure Class (PRA PS1/26 Art. 160/163)¶
Under Basel 3.1, PD floors are differentiated by exposure class:
| Exposure Class | CRR PD Floor | Basel 3.1 PD Floor | Reference |
|---|---|---|---|
| Corporate / SME | 0.03% | 0.05% | Art. 160(1) |
| Sovereign | none | 0.05% | Art. 160(1) — no CRR CGCB limb |
| Institution | 0.03% | 0.05% | Art. 160(1) |
| Retail — mortgage | 0.03% | 0.10% | Art. 163(1)(b) |
| Retail — QRRE (transactor) | 0.03% | 0.05% | Art. 163(1)(c) |
| Retail — QRRE (revolver) | 0.03% | 0.10% | Art. 163(1)(a) |
| Retail — other | 0.03% | 0.05% | Art. 163(1)(c) |
Sovereign Row is Regulatory Dead Letter under Basel 3.1 (Art. 147A(1)(a))
Under Basel 3.1, sovereign exposures (Art. 147(2)(a)) are restricted to the Standardised Approach by Art. 147A(1)(a); PS1/26 provides no grandfathering or transitional carve-out for pre-existing sovereign IRB models. The 0.05% sovereign row in the Basel 3.1 column is retained for completeness only — under Basel 3.1 it cannot bind on any live exposure.
Institutions (Art. 147(2)(b)) are capped at F-IRB by Art. 147A(1)(b) (A-IRB unavailable; SA applies only where permission has been granted under Art. 148 or Art. 150). The 0.05% institution PD floor applies normally to F-IRB institution exposures.
See Framework Differences and IRB Approach Restrictions for the full Art. 147A(1) class mapping.
Asset Correlation Formula (CRR Art. 153)¶
Corporate, Institution, Sovereign¶
PD-dependent correlation with exponential decay factor of 50:
SME Firm-Size Adjustment¶
For corporates with turnover < EUR 50m, correlation is reduced:
CRR (Art. 153(4)):
s = max(5, min(turnover_EUR, 50))
adjustment = 0.04 x (1 - (s - 5) / 45)
R_adjusted = R - adjustment
Turnover is stored in GBP and converted to EUR via the configured FX rate (default: 0.8732).
Basel 3.1 (PRA PS1/26): Thresholds converted to GBP:
| Parameter | CRR (EUR) | Basel 3.1 (GBP) |
|---|---|---|
| SME threshold | EUR 50m | GBP 44m |
| Floor turnover | EUR 5m | GBP 4.4m |
| Adjustment range | 45 | 39.6 |
s = max(4.4, min(turnover_GBP, 44))
adjustment = 0.04 x (1 - (s - 4.4) / 39.6)
R_adjusted = R - adjustment
Retail Mortgage¶
Fixed correlation: R = 0.15
Qualifying Revolving Retail (QRRE)¶
Fixed correlation: R = 0.04
Other Retail¶
PD-dependent correlation with exponential decay factor of 35:
FI Scalar (CRR Art. 153(2))¶
A 1.25x multiplier applied to the asset correlation coefficient (R) for large financial sector entities (LFSEs) (total assets ≥ EUR 70 billion per CRR Art. 142(1)(4)) and unregulated financial sector entities (per CRR Art. 153(2)).
Two distinct thresholds — do not conflate
- LFSE total-assets threshold — EUR 70 billion under CRR Art. 142(1)(4); GBP 79 billion under Basel 3.1 (PS1/26 Glossary p. 78, which cites CRR Art. 142(1)(4) as the corresponding pre-revocation provision). Triggers the 1.25x correlation multiplier (Art. 153(2)) for large FSEs and all unregulated FSEs under both frameworks.
- GBP 440m annual revenue → F-IRB only approach restriction (Art. 147A(1)(e), Basel 3.1 only). Does not affect correlation.
- The Art. 147A(1)(e) F-IRB restriction applies to all FSEs regardless of size — it is separate from the correlation uplift which only applies to large or unregulated FSEs.
Derivation (mandatory, not an election)¶
The multiplier is a mandatory treatment ("shall multiply … by 1.25"), so
requires_fi_scalar is derived in the classification stage
(engine/stages/classify/subtypes.py::classify_exposure_subtypes), not driven
solely by the user flag:
- Threshold — read from the pack
lfse_total_assets_thresholdthrough the FX seam (engine/thresholds.py::regulatory_threshold): CRR EUR 70bn × EUR/GBP rate → GBP; Basel 3.1 GBP 79bn native.total_assetsis a GBP figure, mirroring the SME balance-sheet gate. - User override — the explicit
apply_fi_scalarelection is an authoritative True-override (a firm may know an entity is a large or unregulated FSE even when the data says otherwise). It can never suppress a derived True. It is also the interim recognition path for the unregulated FSE limb (below). - Null
total_assetson a flagged FSE — largeness is undetermined, so the multiplier is not applied (the LFSE base rate among FSEs is low, so a conservative-apply default would over-state most of the FSE population). Because a genuinely-large FSE with missing data would then be under-stated, the classifier emits CLS009 (both regimes) to flag the gap — never a silent pass-through. The warning is suppressed when an explicitapply_fi_scalarelection already resolves the treatment.
Unregulated FSE limb — deferred
CRR Art. 142(1)(5) / Art. 153(2) apply the 1.25× multiplier to
unregulated FSEs regardless of size. The schema carries no
regulated-status signal, so this size-independent limb is not yet derived;
apply_fi_scalar=True is the interim recognition path for a known
unregulated FSE. Enabling it fully is a schema-enablement change (a nullable
regulated-status input with a conservative default).
Capital Requirement Formula¶
Where:
N(x)= cumulative normal distribution functionG(x)= inverse normal CDFG(0.999)= 3.0902323061678132Kis floored at 0
Effective Maturity (CRR Art. 162)¶
Applied to non-retail exposures only (retail exposures use MA = 1.0).
Art. 162(1) — F-IRB Fixed Supervisory Maturities¶
Institutions that have not received permission to use own LGDs and own conversion factors (i.e. F-IRB firms) shall assign:
| Exposure Type | Supervisory Maturity | Reference |
|---|---|---|
| Repo-style transactions (repos, securities/commodities lending or borrowing) | 0.5 years | Art. 162(1) |
| All other exposures | 2.5 years | Art. 162(1) |
0.5-Year Repo Maturity — Implemented
F-IRB exposures flagged with is_sft = True on the Facility/Loan/Contingent input row
receive M = 0.5 years under CRR, overriding any maturity_date-derived value
(engine/irb/transforms.py prepare_columns). The override is gated on the CRR framework
only — Basel 3.1 deleted Art. 162(1), so B31 F-IRB calculates M per Art. 162(2A).
Regression: tests/unit/irb/test_firb_sft_maturity.py.
Alternatively, the competent authority may require the institution to calculate M for each exposure using the A-IRB methods in Art. 162(2).
2.5-Year Fixed Maturity — Implemented as an Election (firb_fixed_maturity)
Which of the two Art. 162(1) sentences binds is a fact about the firm's Art. 143
permission, not about the regime, so the fixed 2.5-year value for "all other exposures"
is a CalculationConfig election rather than a regime Feature:
CalculationConfig.crr(..., firb_fixed_maturity=True) pins every F-IRB non-repo-style row
to 2.5 years (derivatives included — Art. 162(1) carves out repos and
securities-or-commodities lending only). The regulatory values live on the cited pack
scalars firb_sft_supervisory_maturity_years (0.5) and
firb_fixed_supervisory_maturity_years (2.5), and regime availability on the CRR-only
firb_fixed_supervisory_maturity Feature — PS1/26 Art. 162(1) is
"[Note: Provision left blank]", so the election cannot fire under Basel 3.1.
The default is False, i.e. the calculator applies the Art. 162(1) second-sentence
alternative (per-exposure Art. 162(2) M) unless a firm opts in — do not read the default
as an assertion that no Art. 143 permission requires the fixed values. With the election
off, a non-repo-style F-IRB row keeps the maturity_date derivation clipped to [1, 5]
years and only falls back to 2.5 years when maturity_date is null. The election leaves
A-IRB rows untouched. Regressions:
tests/unit/irb/test_p1_249_firb_fixed_maturity.py,
tests/acceptance/crr/test_p1_249_art_162_1_firb_fixed_maturity.py.
Known divergence — the one-day floor outranks the paragraph-1 fixed values
In the engine's maturity priority chain
(engine/irb/transforms.py::_build_maturity_exprs) both Art. 162(1) fixed values sit
below the Art. 162(3) one-day
carve-out and below an explicit
effective_maturity input. An F-IRB row with the election on and
has_one_day_maturity_floor set therefore resolves to one day (1/365 ≈ 0.00274 years),
not 2.5 years — a large RWA reduction.
The primary text does not support that ordering. Art. 162(3) contains no "notwithstanding paragraphs 1 and 2" clause. It reaches exposures only because paragraph 2 pulls it in: Art. 162(2) directs firms permitted to use own LGDs and own conversion factors to calculate M "as set out in points (a) to (e) of this paragraph and subject to paragraphs 3 to 5 of this Article" (CRR Art. 162(2), first sentence). Read plainly, the one-day floor is a paragraph-2 carve-out and does not displace a paragraph-1 firm's fixed M — which is how Art. 162(3) is scoped below ("overriding the longer minimums in paragraph 2"). The two passages agree; the engine is the outlier.
The divergence is recorded and retained deliberately, not an oversight. The ordering
pre-dates this election — the one-day floor has always outranked the 0.5-year repo-style
sibling of the same sentence — so reordering it would move live numbers on today's F-IRB
SFT rows carrying a one-day floor, beyond the scope of adding the 2.5-year election.
Because firb_fixed_maturity defaults to False, the 2.5-year limb is opt-in only and
inert at the default: no live number is exposed by it. Pinned by
test_one_day_floor_still_outranks_the_fixed_value.
The same precedence question applies to an explicit effective_maturity input outranking
the fixed value (test_firm_supplied_effective_maturity_still_outranks_the_fixed_value):
a firm on the paragraph-1 fixed values arguably has no per-exposure M to supply at all.
That rung is likewise pre-existing and left unchanged here.
Art. 162(2) — A-IRB Effective Maturity Calculation¶
Institutions permitted to use own LGDs and CCFs (A-IRB) must calculate M per exposure. M shall not exceed 5 years (except under Art. 384(1) for CVA). Key methods:
| Method | Applies To | Formula / Rule | Minimum M |
|---|---|---|---|
| (a) Cash-flow schedule | Instruments with known cash flows | M = max(1, min(Σ(t × CF_t) / Σ(CF_t), 5)) |
1 year |
| (b) Derivatives (MNA) | Derivatives under master netting agreement | Notional-weighted average remaining maturity | 1 year |
| (c) Fully collateralised derivatives + margin lending (MNA) | Daily remargined and revalued (Annex II) | Weighted average remaining maturity | 10 days |
| (d) Repo-style transactions (MNA) | Daily remargined and revalued repos/SFTs | Notional-weighted average remaining maturity | 5 days |
| (e) Purchased corporate receivables | Drawn amounts (own PD permitted) | Exposure-weighted average maturity | 90 days |
| (f) Other instruments | When (a) cannot be calculated | Max remaining time to discharge obligations | 1 year |
| (g) IMM netting sets | Longest-dated contract > 1 year | IMM formula with effective EE | 1 year |
| (j) Double-default protection | Art. 153(3) credit protection | Effective maturity of protection | 1 year |
Art. 162(3) — One-Day Maturity Floor Exceptions¶
Where documentation requires daily re-margining and daily revaluation with provisions for prompt liquidation or set-off of collateral, M shall be at least one day (overriding the longer minimums in paragraph 2 — paragraph 2 itself makes its M "subject to paragraphs 3 to 5 of this Article", and paragraph 1 has no equivalent hook; see the known divergence recorded under Art. 162(1), where the engine nonetheless applies this floor over the fixed values) for:
- (a) Fully/nearly-fully collateralised derivatives (Annex II)
- (b) Fully/nearly-fully collateralised margin lending
- (c) Repurchase transactions, securities or commodities lending or borrowing
The same one-day floor applies to qualifying short-term exposures not part of ongoing financing, including:
- (a) FX settlement exposures to institutions
- (b) Self-liquidating short-term trade finance (residual maturity ≤ 1 year, Art. 4(1)(80))
- (c) Securities settlement within usual delivery period or 2 business days
- (d) Cash settlement/electronic payment exposures, including failed-transaction overdrafts
Implementation Note — has_one_day_maturity_floor Flag + the ccr_effective_maturity carrier
The code implements Art. 162(3) via a boolean flag has_one_day_maturity_floor. When the
flag is set, the IRB maturity chain (engine/irb/transforms.py::_build_maturity_exprs)
does drive the effective-maturity column down to one day (1/365 ≈ 0.00274 years), and
the maturity adjustment then suppresses its own 1-year floor so the sub-1-year M survives
into MA. The flag has a second, independent consumer — CRM maturity-mismatch
ineligibility (Art. 237(2): any mismatch zeroes protection value for one-day-floor
exposures) — but it is not only a CRM-side flag.
For synthetic CCR / SFT rows the one-day signal is not a firm input. The
FCCM SFT producer and the SA-CCR derivative producer compute the Art. 162
effective maturity at netting-set grain and surface it on a dedicated
ccr_effective_maturity Float64 carrier (declared on CCR_EXIT_EDGE, propagated through
the classifier / CRM / RE-split CCR edges). A new rung in _build_maturity_exprs
coalesces that carrier into the IRB M column (AIRB-gated, so it never displaces the F-IRB
fixed M), and sets has_one_day_maturity_floor from the winning rung — so when the
carrier resolves to the Art. 162(3) one-day value, the maturity adjustment uses the actual
sub-1-year M rather than re-flooring to 1 year. Because the flag is derived inside the
IRB chain (downstream of CRM), CRM never sees a CCR one-day signal and no collateral is
silently zeroed by Art. 237(2).
The F-IRB 0.5-year repo carve-out (Art. 162(1)) reaches CCR / SFT rows via a widened gate:
_apply_firb_sft_supervisory_maturity now fires on (is_sft OR risk_type == CCR_SFT) —
so a CCR_SFT row routed to F-IRB receives M = 0.5 years without ever setting the
lending-side is_sft flag (which stays a CRM-only input). CCR_DERIVATIVE rows are
deliberately excluded from this gate.
Art. 162(4) — SME Maturity Simplification¶
For exposures to corporates situated in the UK with consolidated sales and consolidated assets < EUR 500 million, institutions may consistently apply the F-IRB fixed maturities from Art. 162(1) instead of calculating per Art. 162(2). The EUR 500m threshold rises to EUR 1,000m for corporates that primarily own and let non-speculative residential property.
Not Yet Implemented
The code does not implement the Art. 162(4) SME maturity simplification. All A-IRB
exposures calculate maturity from maturity_date or default to 2.5 years.
Maturity Adjustment Formula¶
Where M is clamped to the range [1.0, 5.0] years (per Art. 162(1)/(2) floor and cap).
Basel 3.1 Changes to Art. 162¶
PRA PS1/26 makes significant changes to Art. 162:
| Aspect | CRR | Basel 3.1 | Reference |
|---|---|---|---|
| F-IRB fixed maturities (§1) | 0.5yr repo / 2.5yr other | Deleted — all IRB firms must calculate M | Art. 162(1) |
| Scope | A-IRB only (Art. 143 permission) | F-IRB and A-IRB (Art. 147A) | Art. 162(2) |
| Revolving exposures | Repayment date of current drawing | Max contractual termination date | Art. 162(2A)(k) |
| Mixed MNA (derivatives + repos) | Not addressed | 10-day floor | Art. 162(2A)(da) |
| Purchased receivables minimum M | 90 days | 1 year | Art. 162(2A)(e) |
| Collateral daily condition | Re-margining and revaluation | Re-margining or revaluation | Art. 162(2A)(c)/(d) |
| SME simplification (§4) | Available (EUR 500m threshold) | Deleted | Art. 162(4) |
See the Basel 3.1 F-IRB specification for full details.
Previous Description Was Wrong
This section previously stated "unconditionally cancellable revolving facilities are assigned a maturity of 1 year". Art. 162(2A)(k) actually requires the maximum contractual termination date — not a 1-year default. Using 1 year instead of the facility termination date would systematically understate maturity and therefore RWA for revolving corporate exposures.
RWA Calculation¶
CRR Corporate/Institution (Art. 153(1)(iii)): RWA = K x 12.5 x 1.06 x EAD x MA
CRR Retail (Art. 154(1)(ii)): RWA = K x 12.5 x 1.06 x EAD (MA = 1.0 for retail)
Under CRR the 1.06 scaling factor applies uniformly to corporate, institution, sovereign and retail IRB RWA. The factor is embedded in the risk weight formulae in both Art. 153(1)(iii) (corporate/institution/sovereign) and Art. 154(1)(ii) (retail) — each ends ... × 12,5 × 1,06.
Previous Spec Error Corrected
An earlier version of this section claimed that retail CRR RWA does not include the 1.06 factor. That was wrong — the factor is written explicitly into the Art. 154(1)(ii) retail formula in the onshored CRR. The 1.06 scaling is removed only under Basel 3.1 (PRA PS1/26 sets it to 1.0 for all IRB exposure classes); under CRR it applies to both Art. 153 and Art. 154 outputs.
Expected Loss¶
Used for comparison against provisions (see Provisions).
Key Scenarios¶
| Scenario ID | Description | Key Parameters |
|---|---|---|
| CRR-B1 | Corporate F-IRB, senior unsecured, low PD | PD=0.10%, LGD=45%, M=2.5y |
| CRR-B2 | Corporate F-IRB, senior unsecured, high PD | PD=5.00%, LGD=45%, M=2.5y |
| CRR-B3 | Subordinated debt — supervisory LGD 75% | PD=0.50%, LGD=75% (Art. 161(1)(b)) |
| CRR-B4 | Financial collateral — blended LGD | Collateral reduces effective LGD (Art. 161(1)(d)) |
| CRR-B5 | SME corporate with firm-size adjustment + supporting factor | Turnover < EUR 50m, correlation reduced (Art. 153(4)) |
| CRR-B6 | PD floor binding — input PD below 0.03% floor | Input PD=0.01% → floored to 0.03% (Art. 160(1)) |
| CRR-B7 | Long maturity — contractual 7Y capped to 5Y | M clamped to [1, 5] range (Art. 162(2)) |
FI Scalar Coverage
The 1.25x correlation multiplier for large/unregulated FSEs (Art. 153(2)) is validated within CRR-B5 and through the B31-B group (B31-B7 specifically tests FSE LGD differentiation). See FI Scalar for details.
Acceptance Tests¶
| Group | Scenarios | Tests | Pass Rate |
|---|---|---|---|
| CRR-B: Foundation IRB | B1–B7 | 13 | 100% (13/13) |