Specialised Lending¶
Specialised Lending exposures are those where repayment depends primarily on the cash flows generated by the financed assets rather than the independent capacity of the borrower. These exposures receive special treatment under both SA and IRB frameworks.
Overview¶
Specialised lending categories:
| Category | Abbreviation | Description |
|---|---|---|
| Project Finance | PF | Financing of large, complex projects |
| Object Finance | OF | Financing of physical assets (ships, aircraft) |
| Commodities Finance | CF | Structured financing of commodities |
| Income-Producing Real Estate | IPRE | Real estate with rental/sale income |
| High Volatility Commercial Real Estate | HVCRE | Speculative CRE development (PRA PS1/26 only) |
Slotting Approach¶
The Slotting Approach maps exposures to supervisory categories based on qualitative criteria, rather than estimating PD:
flowchart LR
A[Exposure] --> B[Assess Criteria]
B --> C{Map to Category}
C --> D[Strong]
C --> E[Good]
C --> F[Satisfactory]
C --> G[Weak]
C --> H[Default]
D --> I[Risk Weight]
E --> I
F --> I
G --> I
H --> J[RW = 0%]
Slotting Categories¶
Assessment Criteria¶
Each exposure is assessed against supervisory criteria:
| Factor | Strong | Good | Satisfactory | Weak |
|---|---|---|---|---|
| Financial strength | Excellent | Good | Acceptable | Deteriorating |
| Political/legal | Very low | Low | Acceptable | High |
| Transaction characteristics | Very favorable | Favorable | Acceptable | Unfavorable |
| Asset strength | Very strong | Strong | Adequate | Weak |
| Sponsor strength | Excellent | Good | Adequate | Weak |
Project Finance Criteria¶
| Factor | Strong | Good | Satisfactory | Weak |
|---|---|---|---|---|
| Market conditions | Few competing suppliers | Few suppliers, demand stable | Average | Weak or declining |
| Financial ratios | Strong coverage | Good coverage | Adequate | Weak |
| Stress resilience | Robust | Good | Limited | Poor |
| Contractual arrangements | Strong contracts | Acceptable | Some weaknesses | Significant gaps |
| Reserve accounts | Comprehensive | Adequate | Minimum | Insufficient |
IPRE Criteria¶
| Factor | Strong | Good | Satisfactory | Weak |
|---|---|---|---|---|
| LTV | <60% | 60-75% | 75-85% | >85% |
| DSCR | >1.35x | 1.2-1.35x | 1.0-1.2x | <1.0x |
| Location | Prime | Good | Acceptable | Weak |
| Tenant quality | Strong | Adequate | Variable | Poor |
| Lease length | Long-term | Medium-term | Short-term | Month-to-month |
Risk Weights¶
CRR Risk Weights¶
UK CRR Art. 153(5) defines a single risk weight table (Table 1) with maturity-based splits, covering all specialised lending types (PF, OF, CF, IPRE):
Table 1 (PF, OF, CF, IPRE):
| Category | Maturity >= 2.5yr | Maturity < 2.5yr |
|---|---|---|
| Strong | 70% | 50% |
| Good | 90% | 70% |
| Satisfactory | 115% | 115% |
| Weak | 250% | 250% |
| Default | 0% | 0% |
No HVCRE Distinction in UK CRR
The UK onshored CRR does not contain a separate HVCRE table. All specialised
lending uses Table 1 above. The original EU CRR had a separate Table 2 with elevated
HVCRE weights, but this was not retained in UK onshoring. HVCRE is introduced by
PRA PS1/26 (see Basel 3.1 section below). The calculator
applies EU CRR Table 2 weights for is_hvcre=True CRR exposures (code divergence D3.22).
Basel 3.1 Risk Weights¶
PRA PS1/26 restructures slotting into a single Table A with subgrade columns (A/B for Strong, C/D for Good) and introduces HVCRE as a distinct sub-type with elevated weights (UK CRR has no HVCRE concept). The tables below show the default column values (B/D per Art. 153(5)(c)). Firms may optionally use the lower A/C column values for exposures with < 2.5 years residual maturity (Art. 153(5)(d)) or enhanced underwriting (Art. 153(5)(e)/(f)). See Key Differences for the full Table A with all columns.
Non-HVCRE (OF, CF, PF, IPRE):
| Category | Risk Weight |
|---|---|
| Strong | 70% |
| Good | 90% |
| Satisfactory | 115% |
| Weak | 250% |
| Default | 0% (EL) |
HVCRE:
| Category | Risk Weight |
|---|---|
| Strong | 95% |
| Good | 120% |
| Satisfactory | 140% |
| Weak | 250% |
| Default | 0% (EL) |
PRA Deviation from BCBS — No Pre-Operational PF Table
BCBS CRE33.6 Table 6 defines separate elevated slotting weights for pre-operational project finance (Strong 80%, Good 100%, Satisfactory 120%, Weak 350%). PRA PS1/26 does not adopt this distinction — all project finance uses the standard non-HVCRE Table A (Art. 153(5)) regardless of operational status. The pre-operational / operational distinction only applies under the SA approach (Art. 122B(2)(c): 130% pre-op, 100% operational, 80% high-quality operational).
From Category to Risk Weight: the Subgrade Step¶
The SlottingCategory enum exposed by the calculator is the coarse five-bucket grade
— Strong, Good, Satisfactory, Weak, Default. Under PRA PS1/26 Art. 153(5) Table A
(Basel 3.1) this maps onto a finer grid where Strong splits into columns A/B and
Good splits into columns C/D — Satisfactory, Weak, and Default keep a single
column each. The same A/B/C/D refinement governs the Art. 158(6) Table B expected-loss
rates. Practitioners do not assign A/B/C/D directly; the calculator derives the
column from a small set of input fields.
Inputs you set on the loader¶
For every specialised-lending row, set:
| Loader column | Type | Meaning | Driver of subgrade? |
|---|---|---|---|
slotting_category |
str (one of "strong", "good", "satisfactory", "weak", "default") |
The coarse five-bucket category. Must be set before the calculator can look up a risk weight. | Yes — selects the row of Table A. |
is_hvcre |
bool (default False) |
High-Volatility CRE flag. PRA PS1/26 introduces a separate, elevated table for HVCRE; under CRR this flag has no UK legal basis (see code divergence D3.22). | Yes — selects the HVCRE table vs. the standard Non-HVCRE table. |
residual_maturity_years |
float |
Years to maturity. The calculator derives is_short_maturity = residual_maturity_years < 2.5 if not already set. |
Yes (CRR only — see warning below). |
is_short_maturity |
bool (optional, derived from residual_maturity_years) |
Pre-computed maturity flag. A pre-existing value is never overwritten. | Yes (CRR only). |
sl_type |
str (one of "project_finance", "object_finance", "commodities_finance", "ipre", "hvcre") |
Specialised-lending sub-type. Does not affect the slotting table directly except that PRA PS1/26 routes IPRE / HVCRE to slotting unconditionally. | No (does not change the column lookup). |
There is no slotting_subgrade column. The A/B/C/D refinement is derived, not declared.
How the calculator picks the column¶
slotting_category = STRONG | GOOD ──┐
is_hvcre = True | False │ → Table A row + column → risk weight
is_short_maturity = True | False (CRR only) │
- Strong, default column (B) is used unless a concession applies.
- Strong, column A is the short-maturity concession (Art. 153(5)(d), CRR Table 1 short-maturity column).
- Good, default column (D) is used unless a concession applies.
- Good, column C is the short-maturity concession.
- Satisfactory, Weak, Default — single column,
is_short_maturityis ignored.
Basel 3.1 short-maturity concession is not yet implemented
Under Basel 3.1, the calculator currently routes all slotting exposures to columns
B (Strong) / D (Good) regardless of is_short_maturity (IMPLEMENTATION_PLAN.md
items P1.97 non-HVCRE and P1.117 HVCRE). The Art. 153(5)(e) IPRE and Art. 153(5)(f)
PF enhanced-underwriting concessions are also unimplemented — there is no input
field to flag "meets enhanced-criteria threshold". Under CRR the maturity-based
columns A/C are fully implemented via separate short / long maturity tables.
Worked example: "I have a Strong CRE exposure" → RW¶
- Confirm the exposure is HVCRE or non-HVCRE — set
is_hvcre. A standard income-producing CRE deal is non-HVCRE (is_hvcre=False); speculative development or land-bank deals meeting the HVCRE criteria areis_hvcre=True. - Assign
slotting_category="strong"based on the qualitative slotting criteria (see Assessment Criteria above). - Set
residual_maturity_yearsfrom the loan's contractual maturity. The calculator derivesis_short_maturity = residual_maturity_years < 2.5automatically. - The calculator combines (Strong × HVCRE flag × maturity) → column → risk weight.
For the actual numerical risk weights at each (category × subgrade × HVCRE) combination, do not rely on the summary tables on this page — they show only the default columns. The single source of truth is:
- Basel 3.1 Slotting spec — Subgrade Treatment (Table A columns A/B/C/D) for the full risk-weight grid (PRA PS1/26 Art. 153(5)).
- Basel 3.1 EL rates — Table B for the EL ladder (PRA PS1/26 Art. 158(6)). Note that HVCRE Table B collapses to a flat 0.4% across columns A/B/C/D for both Strong and Good — a PRA quirk that does not apply to risk weights.
- CRR Table 1 for
the CRR pre-Basel-3.1 risk weights — a single table with a
< 2.5yr/≥ 2.5yrsplit rather than A/B/C/D columns. - Glossary entry for a one-screen summary of how the enum maps onto the subgrade columns.
Defaulted Exposures¶
Defaulted specialised lending exposures receive a 0% risk weight (RWA = 0). Expected loss treatment is handled separately via the provisions and EL comparison framework (see Provisions).
Calculation Example¶
Exposure: - IPRE loan, £20m - LTV: 65% - DSCR: 1.25x - Prime location - Strong tenant - Category assessment: Good - Non-HVCRE, maturity >= 2.5 years
CRR Calculation:
# Category: Good, Non-HVCRE, >= 2.5yr
Risk_Weight = 90%
# RWA
RWA = EAD × Risk_Weight
RWA = £20,000,000 × 90%
RWA = £18,000,000
Basel 3.1 Calculation:
# Standard (Operational) Good = 90% (same as CRR >= 2.5yr)
RWA = £20,000,000 × 90%
RWA = £18,000,000
SA Alternative¶
Specialised lending can also be treated under SA when the slotting approach is not used:
| Type | SA Treatment |
|---|---|
| Project Finance | Corporate risk weights |
| Object Finance | Corporate risk weights |
| Commodities Finance | Corporate risk weights |
| IPRE | CRE risk weights |
| HVCRE | CRE risk weights |
When to use SA vs Slotting:
| Use SA when | Use Slotting when |
|---|---|
| External rating available | No PD estimate available |
| IRB not approved | IRB approved for portfolio |
| Lower SA RW expected | Specialized assessment needed |
Implementation¶
Slotting Calculator¶
import polars as pl
from datetime import date
from rwa_calc.engine.slotting.calculator import SlottingCalculator
from rwa_calc.contracts.config import CalculationConfig
calculator = SlottingCalculator()
calculate_branch() takes a pre-filtered slotting LazyFrame and returns a
LazyFrame. Build a single-row frame for a single-exposure calculation:
df = pl.DataFrame({
"exposure_reference": ["EX1"],
"ead": [20_000_000.0],
"slotting_category": ["good"],
"is_hvcre": [False],
"is_short_maturity": [False],
"is_pre_operational": [False],
}).lazy()
result = calculator.calculate_branch(
df, CalculationConfig.crr(reporting_date=date(2026, 12, 31))
).collect().to_dicts()[0]
# result["rwa"] -> 18_000_000.0
Risk Weight Lookup¶
Slotting risk weights are cited entries in the rulepack packs
(src/rwa_calc/rulebook/packs/{crr,b31}.py), read through the resolved pack
rather than a standalone lookup table:
from datetime import date
from rwa_calc.rulebook.resolve import resolve
# Resolve the frozen, content-hashed rulepack for the regime + reporting date
pack = resolve("crr", date(2026, 12, 31))
# Slotting risk weights are cited LookupTable entries on the pack, e.g.
# the base, short-maturity, HVCRE, and HVCRE-short slotting RW tables keyed
# by slotting category (read by engine/slotting/transforms.py).
slotting_rw_base = pack.lookup("slotting_rw_base")
# Non-HVCRE, standard maturity (>= 2.5yr), category GOOD -> 0.90
The SlottingCategory enum (rwa_calc.domain.enums) is still the canonical
category key used by the slotting transforms.
Project Finance Detail¶
Pre-Operational Phase¶
Project is in construction or commissioning: - Construction risk present - Cash flows not yet established - Under PRA PS1/26 slotting, pre-operational PF uses the same risk weights as operational PF - Under SA (Art. 122B), pre-operational PF receives a higher weight (130% vs 100%)
Operational Phase¶
Project is generating cash flows: - Construction complete - Revenue stream established - Standard slotting weights apply (identical to pre-operational under PRA)
Phase Transition (SA Only)¶
The pre-operational / operational distinction only affects risk weights under the SA approach (Art. 122B(2)(c)), not under IRB slotting:
# Basel 3.1 SA applies different weights for PF by project phase
if framework == "BASEL_3_1" and approach == "SA" and lending_type == "PROJECT_FINANCE":
if phase == "pre_operational":
rw = 1.30 # 130% (Art. 122B(2)(c))
elif phase == "high_quality_operational":
rw = 0.80 # 80% (Art. 122B(4))
else:
rw = 1.00 # 100% operational (Art. 122B(2)(c))
# For IRB slotting, all PF uses standard non-HVCRE weights regardless of phase
HVCRE Treatment¶
High Volatility Commercial Real Estate receives higher risk weights under PRA PS1/26 (Basel 3.1) due to:
- Speculative development
- No established cash flows
- Higher correlation to economic cycles
HVCRE Criteria:
- CRE development or land acquisition
- Repayment from future sale or refinancing
- Uncertain outcome
HVCRE Is a PRA PS1/26 Introduction
UK CRR has no HVCRE concept. The term does not appear in UK CRR Art. 153(5) — all SL types use the same Table 1. HVCRE is introduced by PRA PS1/26 Table A (Art. 153(5)(a)(i)). The "CRR HVCRE" column below reflects the original EU CRR Table 2 values, which have no UK CRR legal basis.
Risk Weight Comparison:
| Category | CRR Table 1 (>=2.5yr) | B31 HVCRE (Table A) |
|---|---|---|
| Strong | 70% | 95% |
| Good | 90% | 120% |
| Satisfactory | 115% | 140% |
| Weak | 250% | 250% |
Supporting Factors¶
Infrastructure project finance may qualify for the 0.75 infrastructure supporting factor under CRR (Art. 501a). This factor is applied by the SupportingFactorCalculator after slotting risk weights are determined, not within the slotting engine itself.
See Supporting Factors for eligibility criteria and application details.
Basel 3.1
Infrastructure factor is removed under Basel 3.1.
Regulatory References¶
| Topic | CRR Article | BCBS CRE |
|---|---|---|
| Specialised lending definition | Art. 147(8) | CRE33.1 |
| Slotting categories | Art. 153(5) | CRE33.2 |
| Risk weights | Art. 153(5) | CRE33.3-4 |
| HVCRE | PRA PS1/26 Art. 153(5) Table A (not in UK CRR) | CRE33.5 |
| Infrastructure factor | Art. 501a | N/A |
Next Steps¶
- Credit Risk Mitigation - CRM for specialised lending
- Supporting Factors - Infrastructure factor details