COREP Reporting¶
The RWA Calculator generates COREP (COmmon REPorting) credit risk templates for regulatory submissions. These templates follow the EBA DPM taxonomy as defined in Regulation (EU) 2021/451.
Why COREP Matters¶
UK-regulated banks submit quarterly COREP returns to the PRA as part of ongoing supervisory reporting. The credit risk templates require firms to aggregate their exposure-level RWA calculations into standardised row/column formats by exposure class. Manual aggregation is error-prone and audit-unfriendly — generating templates directly from calculation results ensures consistency between the RWA engine output and the reported figures.
Template Overview¶
The calculator covers nine credit risk template families across SA, IRB, and geographical breakdowns. Each template is reported once per SA or IRB exposure class (or per country for geographical templates) — the exposure class acts as a filter, not a row dimension.
flowchart TD
P["Pipeline Output<br/>(LazyFrame)"] --> SPLIT{"Split by<br/>approach"}
SPLIT -->|SA exposures| C07["<b>C 07.00 / OF 07.00</b><br/>CR SA<br/><i>One submission per<br/>SA exposure class</i>"]
SPLIT -->|IRB exposures| C0801["<b>C 08.01 / OF 08.01</b><br/>CR IRB Totals<br/><i>One submission per<br/>IRB exposure class</i>"]
SPLIT -->|IRB exposures| C0802["<b>C 08.02 / OF 08.02</b><br/>CR IRB by Obligor Grade<br/><i>One submission per<br/>IRB exposure class</i>"]
SPLIT -->|IRB exposures| C0803["<b>C 08.03 / OF 08.03</b><br/>CR IRB PD Ranges<br/><i>Fixed PD range buckets</i>"]
SPLIT -->|IRB exposures| C0804["<b>C 08.04 / OF 08.04</b><br/>RWEA Flow Statements<br/><i>Period-over-period movements</i>"]
SPLIT -->|IRB exposures| C0805["<b>C 08.05 / OF 08.05</b><br/>PD Back-Testing<br/><i>One submission per<br/>IRB exposure class</i>"]
SPLIT -->|Slotting exposures| C0806["<b>C 08.06 / OF 08.06</b><br/>Specialised Lending Slotting<br/><i>By SL type</i>"]
SPLIT -->|All IRB| C0807["<b>C 08.07 / OF 08.07</b><br/>Scope of Use<br/><i>SA vs IRB coverage</i>"]
SPLIT -->|SA by country| C0901["<b>C 09.01 / OF 09.01</b><br/>Geo Breakdown SA<br/><i>Per country</i>"]
SPLIT -->|IRB by country| C0902["<b>C 09.02 / OF 09.02</b><br/>Geo Breakdown IRB<br/><i>Per country</i>"]
C0801 -.->|"Same columns,<br/>disaggregated by<br/>obligor grade"| C0802
C0801 -.->|"Aggregated into<br/>fixed PD bands"| C0803
style C07 fill:#fff3e0,stroke:#fb8c00
style C0801 fill:#e3f2fd,stroke:#1e88e5
style C0802 fill:#e3f2fd,stroke:#1e88e5
style C0803 fill:#e3f2fd,stroke:#1e88e5
style C0804 fill:#e3f2fd,stroke:#1e88e5
style C0805 fill:#e3f2fd,stroke:#1e88e5
style C0806 fill:#e8f5e9,stroke:#43a047
style C0807 fill:#f3e5f5,stroke:#8e24aa
style C0901 fill:#fce4ec,stroke:#e53935
style C0902 fill:#fce4ec,stroke:#e53935
| Template | CRR Name | Basel 3.1 Name | Purpose |
|---|---|---|---|
| C 07.00 | CR SA | OF CR SA | SA credit risk — totals, exposure type breakdown, risk weight breakdown, memorandum items |
| C 08.01 | CR IRB 1 | OF CR IRB 1 | IRB totals — exposure value, CRM, RWEA, expected loss, obligor count |
| C 08.02 | CR IRB 2 | OF CR IRB 2 | IRB breakdown by obligor grade/pool — same columns as C 08.01, one row per internal rating grade |
| C 08.03 | CR IRB 3 | OF CR IRB 3 | IRB breakdown by fixed PD ranges — key parameters (PD, LGD, CCF, RWEA, EL) per PD bucket |
| C 08.04 | CR IRB 4 | OF CR IRB 4 | RWEA flow statements — period-over-period movement decomposition |
| C 08.05 | CR IRB 5 | OF CR IRB 5 | PD back-testing — average PD vs realised default rates per fixed PD range bucket |
| C 08.06 | CR IRB 6 | OF CR IRB 6 | Specialised lending slotting — by category and maturity |
| C 08.07 | CR IRB 7 | OF CR IRB 7 | Scope of use of IRB and SA approaches — coverage percentages and RWEA attribution |
| C 09.01 | CR GB 1 | OF CR GB 1 | Geographical breakdown of SA exposures by country of obligor residence |
| C 09.02 | CR GB 2 | OF CR GB 2 | Geographical breakdown of IRB exposures by country of obligor residence |
Template Naming
Under CRR the templates are prefixed C (e.g., C 07.00). Under Basel 3.1 (PRA PS1/26) they are prefixed OF (Own Funds, e.g., OF 07.00). The structure and purpose are equivalent but columns and rows differ as detailed below.
C 02.00 / OF 02.00 — Own Funds Requirements¶
C 02.00 / OF 02.00 is the master capital template — the single point at which RWEA across every risk type (credit, CCR, market, operational, CVA, securitisation, settlement) is aggregated into the firm's Total Risk Exposure Amount (TREA) and Total Own Funds Requirements. This calculator only populates the credit risk section (rows 0050–0420); all other risk-type rows are null because those risk types are outside its scope.
This is where the Basel 3.1 output floor is actually applied. The floor formula
is evaluated row 0010 of OF 02.00, with col 0010 carrying the U-TREA components, col 0020
carrying the S-TREA components fed in from OF 02.01,
and col 0030 carrying the floored result after the multiplier x and OF-ADJ are applied.
See output-floor.md for the floor mechanics in detail.
Reference: CRR Art. 92 (own funds requirements); PRA PS1/26 Art. 92 para 2A / 3A / 5 (output floor); Regulation (EU) 2021/451 Annex I (CRR layout); PRA PS1/26 Annex I (OF 02.00 layout).
Column Structure¶
| Column | Label | Description |
|---|---|---|
| 0010 | Amount | Own Funds Requirements — single column, all approaches RWEA |
| Column | Label | Description |
|---|---|---|
| 0010 | All approaches (U-TREA components) | RWEA using internal models where permitted (the U-TREA inputs from Art. 92 para 3) |
| 0020 | Standardised approaches only (S-TREA components) | RWEA recalculated under standardised approaches per Art. 92 para 3A — pre-multiplier |
| 0030 | Output floor (after floor multiplier and OF-ADJ) | Floored RWEA: x · S-TREA + OF-ADJ per row, used in the row 0010 TREA comparison |
| Change | Ref | Description |
|---|---|---|
| Added | Col 0020 | Standardised re-run column (S-TREA components) — required for output floor comparison |
| Added | Col 0030 | Post-floor RWEA column — populated only for risk types in scope of the floor |
| Changed | Col 0010 | Now explicitly the U-TREA components (was simply "Amount" under CRR) |
OF 02.01 vs OF 02.00 col 0030 — Same number, different meaning
OF 02.01 col 0030 is U-TREA (un-floored), while OF 02.00 col 0030 is the
floor-adjusted RWEA (post-multiplier, post-OF-ADJ). Same column number, distinct
semantics — see output-reporting.md §1.3 for the disambiguation.
Row Structure¶
The row layout is significantly restructured under Basel 3.1 (PRA PS1/26 Annex II §1.3): F-IRB / A-IRB / Slotting are split into separate sub-sections, corporate and retail sub-class breakdowns are added, slotting is broken out by 5 SL types, and three new output-floor indicator rows are inserted.
| Section | Rows | Notes |
|---|---|---|
| Total and Credit Risk | 0010, 0040; 0050–0211 | TREA (0010), Total Own Funds (0040), credit risk SA exposure-class breakdown (0050–0211) |
| IRB Approach | 0220–0420 | F-IRB (0240–0260), A-IRB (0300–0410), supervisory slotting (0410), Equity IRB (0420) |
| Other Risk Types | 0430–0680 | Settlement, securitisation, market, CVA, operational, fixed overheads — all null (out of scope) |
| Section | Rows | Notes |
|---|---|---|
| Total and Output Floor | 0010, 0034, 0035, 0036, 0040 | TREA (0010), output-floor indicators (new), Total Own Funds (0040) |
| Credit Risk — SA | 0050–0211 (incl. 0131) | SA exposure-class breakdown; 0131 "of which: specialised lending" added |
| Credit Risk — F-IRB | 0220, 0240, 0250, 0271, 0260, 0290, 0295, 0296, 0297 | Adds SL-excl-slotting and corporate SME / non-SME / financial-and-large splits |
| Credit Risk — A-IRB | 0300–0410 (incl. 0350, 0355, 0356, 0382–0385, 0410) | Adds SL-excl-slotting, corporate SME splits, retail residential/commercial SME splits |
| Slotting and Equity | 0411–0416, 0420 | Slotting broken out by PF / OF / CF / IPRE / HVCRE; Equity IRB retained |
| Other Risk Types | 0430–0680 | Same as CRR — all null (out of scope) |
New Basel 3.1 output-floor indicator rows
Three rows are inserted in the "Total and Output Floor" section:
| Row | Label | Content |
|---|---|---|
| 0034 | Output floor activated | Yes/No indicator (not RWEA) |
| 0035 | Output floor multiplier | Percentage x from the transitional schedule (60%, 65%, 70%, 72.5%) |
| 0036 | Output floor adjustment (OF-ADJ) | Monetary value of the IRB-EL vs SA-CRA reconciliation |
These rows are gated on entity-type floor applicability (Art. 92 para 2A) and are
populated by _generate_c_02_00() when an OutputFloorConfig is supplied.
Null Rows — Risk Types Out of Scope
Rows 0430 (settlement), 0440 (securitisation), 0460 (market / FX / commodities), 0590 (CVA), 0640 (operational), and 0680 (fixed overheads) are always null. The credit risk pipeline does not produce these risk-type RWEAs.
Full row listing
Per-row labels and the complete row catalogue (including all ==new== Basel 3.1 sub-rows)
live in src/rwa_calc/reporting/corep/templates.py (CRR_C02_00_ROW_SECTIONS and
B31_C02_00_ROW_SECTIONS). See output-reporting.md §COREP Templates
for the spec-level catalogue and §Missing Row IDs
for the full enumeration of B31-only rows (0271, 0290, 0295–0297, 0355–0356, 0382–0385,
0411–0416, 0034–0036).
CRR vs Basel 3.1 — Output Floor Delta¶
Pre-2027 C 02.00 had no output-floor row
Under CRR, C 02.00 has a single column (0010) and contains no output-floor mechanism — TREA in row 0010 is simply the arithmetic sum of all risk-type RWEAs. PRA PS1/26 introduces:
- Two new columns (0020 S-TREA components, 0030 post-floor RWEA);
- Three new indicator rows (0034 / 0035 / 0036) carrying the floor activation flag, multiplier, and OF-ADJ;
- The TREA in row 0010 col 0010 is recomputed via
max(U-TREA, x·S-TREA + OF-ADJ)once the floor is activated — this is the only place in the COREP suite where the floor is applied (OF 02.01 only reports the inputs).
Implementation¶
| Item | Detail |
|---|---|
| Generator method | COREPGenerator._generate_c_02_00() |
| Bundle field | COREPTemplateBundle.c_02_00 |
| Row section definitions | CRR_C02_00_ROW_SECTIONS / B31_C02_00_ROW_SECTIONS in src/rwa_calc/reporting/corep/templates.py |
| Column refs | CRR_C02_00_COLUMN_REFS / B31_C02_00_COLUMN_REFS |
| SA class → row map | C02_00_SA_CLASS_MAP (templates.py) |
| Framework | Both CRR (1 column) and Basel 3.1 (3 columns) |
| Output floor inputs | Optional OutputFloorSummary and OutputFloorConfig parameters drive cols 0020/0030 and rows 0034–0036 |
| Status | Complete — credit risk rows populated; non-credit risk-type rows null (out of scope) |
OF 02.01 — Output Floor Comparison (Basel 3.1 only)¶
OF 02.01 is a Basel 3.1-only template with no CRR equivalent. It provides a dedicated output floor comparison for internal-model firms, showing modelled versus standardised total risk exposure amounts side by side by risk type. The template supplies the raw comparison data consumed by C 02.00 / OF 02.00 to apply the floor multiplier.
Reference: PRA PS1/26 Art. 92 para 2A / 3A
Column Structure¶
| Column | Label | Description |
|---|---|---|
| 0010 | Modelled RWA | RWEA using internal models (IRB, IMM, IMA, SEC-IRBA, etc.) |
| 0020 | SA RWA | RWEA calculated under the Standardised Approach equivalent portfolio |
| 0030 | U-TREA | Un-floored Total Risk Exposure Amount (Art. 92 para 3) |
| 0040 | S-TREA | Standardised Total Risk Exposure Amount (Art. 92 para 3A) — calculated without IRB, SFT VaR, SEC-IRBA, IAA, IMM, or IMA |
Row Structure¶
| Row | Risk Type | Current Scope |
|---|---|---|
| 0010 | Credit risk | Populated — SA and IRB credit RWA from pipeline output |
| 0020 | Counterparty credit risk (CCR) | Null — CCR out of scope |
| 0030 | CVA | Null — CVA out of scope |
| 0040 | Securitisation | Null — securitisation out of scope |
| 0050 | Market risk | Null — market risk out of scope |
| 0060 | Operational risk | Null — operational risk out of scope |
| 0070 | Other risk | Null — no other risk types in scope |
| 0080 | Total | Populated — sum of all in-scope risk types (currently credit risk only) |
Scope
Only the credit risk row (0010) and Total row (0080) are populated. All other rows (CCR, CVA, securitisation, market risk, operational risk, other) are null because those risk types are outside the current scope of the calculator.
Implementation¶
| Item | Detail |
|---|---|
| Generator method | COREPGenerator._generate_of_02_01() |
| Bundle field | COREPTemplateBundle.of_02_01 |
| Framework | Basel 3.1 only — not generated for CRR frameworks |
| Status | Complete |
C 07.00 / OF 07.00 — CR SA¶
Column Structure¶
The SA template has a wide column layout covering the full credit risk waterfall from original exposure through CRM to final RWEA. The column derivation flows left to right:
flowchart LR
A["<b>0010</b><br/>Original<br/>Exposure"] --> B["<b>0030</b><br/>(-) Provisions"]
B --> C["<b>0040</b><br/>Net Exposure"]
C --> CRM["CRM Substitution<br/>Effects"]
CRM --> D["<b>0050-0060</b><br/>Unfunded:<br/>Guarantees,<br/>Credit Derivs"]
CRM --> E["<b>0070-0080</b><br/>Funded:<br/>Fin. Collateral,<br/>Other FCP"]
CRM --> F["<b>0090/0100</b><br/>Substitution<br/>Out/Inflows"]
F --> G["<b>0110</b><br/>Net After<br/>CRM Subst."]
G --> FCCM["Fin. Collateral<br/>Comprehensive"]
FCCM --> H["<b>0120</b><br/>Volatility Adj"]
FCCM --> I["<b>0130</b><br/>(-) Cvam"]
I --> J["<b>0150</b><br/>Fully Adjusted<br/>Exposure (E*)"]
J --> K["<b>0160-0190</b><br/>Off-BS by CCF"]
J --> L["<b>0200</b><br/>Exposure Value"]
L --> M["<b>0220</b><br/>RWEA"]
style A fill:#e8f5e9,stroke:#43a047
style M fill:#fff3e0,stroke:#fb8c00
Full Column Reference¶
| Ref | Column | Group |
|---|---|---|
| 0010 | Original exposure pre conversion factors | Exposure |
| 0030 | (-) Value adjustments and provisions | Exposure |
| 0040 | Exposure net of value adjustments and provisions | Exposure |
| 0050 | (-) Guarantees | CRM Substitution: Unfunded |
| 0060 | (-) Credit derivatives | CRM Substitution: Unfunded |
| 0070 | (-) Financial collateral: Simple method | CRM Substitution: Funded |
| 0080 | (-) Other funded credit protection | CRM Substitution: Funded |
| 0090 | (-) Substitution outflows | CRM Substitution |
| 0100 | Substitution inflows (+) | CRM Substitution |
| 0110 | Net exposure after CRM substitution effects pre CCFs | Post-CRM |
| 0120 | Volatility adjustment to the exposure | Fin. Collateral Comprehensive |
| 0130 | (-) Financial collateral: adjusted value (Cvam) | Fin. Collateral Comprehensive |
| 0140 | (-) Of which: volatility and maturity adjustments | Fin. Collateral Comprehensive |
| 0150 | Fully adjusted exposure value (E*) | Post-CRM |
| 0160 | Off-BS by CCF: 0% | CCF Breakdown |
| 0170 | Off-BS by CCF: 20% | CCF Breakdown |
| 0180 | Off-BS by CCF: 50% | CCF Breakdown |
| 0190 | Off-BS by CCF: 100% | CCF Breakdown |
| 0200 | Exposure value | Final |
| 0210 | Of which: arising from CCR | Final |
| 0211 | Of which: CCR excl. CCP | Final |
Null Columns — CCR Out of Scope
Columns 0210 and 0211 are always null. Counterparty credit risk (SFT, derivatives, cross-product netting) is outside the current scope of the calculator. CCR exposures would be separately reported in OF 34.07 (see Missing Templates).
| 0215 | RWEA pre supporting factors | RWEA | | 0216 | (-) SME supporting factor adjustment | RWEA | | 0217 | (-) Infrastructure supporting factor adjustment | RWEA | | 0220 | RWEA after supporting factors | RWEA | | 0230 | Of which: with ECAI credit assessment | RWEA | | 0240 | Of which: credit assessment derived from central govt | RWEA |
| Ref | Column | Group | vs CRR |
|---|---|---|---|
| 0010 | Original exposure pre conversion factors | Exposure | |
| 0030 | (-) Value adjustments and provisions | Exposure | |
| 0035 | (-) Adjustment due to on-balance sheet netting | Exposure | New |
| 0040 | Exposure net of adjustments, provisions, and netting | Exposure | Changed |
| 0050 | (-) Guarantees (adjusted values) | CRM Substitution: Unfunded | |
| 0060 | (-) Credit derivatives | CRM Substitution: Unfunded | |
| 0070 | (-) Financial collateral: Simple method | CRM Substitution: Funded | |
| 0080 | (-) Other funded credit protection | CRM Substitution: Funded | |
| 0090 | (-) Substitution outflows | CRM Substitution | |
| 0100 | Substitution inflows (+) | CRM Substitution | |
| 0110 | Net exposure after CRM substitution effects pre CCFs | Post-CRM | |
| 0120 | Volatility adjustment to the exposure | Fin. Collateral Comprehensive | |
| 0130 | (-) Financial collateral: adjusted value (Cvam) | Fin. Collateral Comprehensive | |
| 0140 | (-) Of which: volatility and maturity adjustments | Fin. Collateral Comprehensive | |
| 0150 | Fully adjusted exposure value (E*) | Post-CRM | |
| 0160 | Off-BS by CCF: 10% | CCF Breakdown | Changed (was 0%) |
| 0170 | Off-BS by CCF: 20% | CCF Breakdown | |
| 0171 | Off-BS by CCF: 40% | CCF Breakdown | New |
| 0180 | Off-BS by CCF: 50% | CCF Breakdown | |
| 0190 | Off-BS by CCF: 100% | CCF Breakdown | |
| 0200 | Exposure value | Final | |
| 0210 | Of which: arising from CCR | Final | |
| 0211 | Of which: CCR excl. CCP | Final |
Null Columns — CCR Out of Scope
Columns 0210 and 0211 are always null (same as CRR). See CRR tab for details.
| ~~0215~~ | ~~RWEA pre supporting factors~~ | | Removed | | ~~0216~~ | ~~(-) SME supporting factor adjustment~~ | | Removed | | ~~0217~~ | ~~(-) Infrastructure supporting factor adjustment~~ | | Removed | | 0220 | Risk-weighted exposure amount | RWEA | Changed | | 0230 | Of which: with ECAI credit assessment | RWEA | | | 0235 | Of which: without ECAI credit assessment | RWEA | New | | 0240 | Of which: credit assessment derived from central govt | RWEA | |
| Change | Ref(s) | Description |
|---|---|---|
| Added | 0035 | On-balance sheet netting — separated from original exposure |
| Added | 0171 | 40% CCF bucket — new Basel 3.1 conversion factor |
| Added | 0235 | Unrated RWEA — separate reporting of exposures without ECAI |
| Changed | 0160 | CCF 0% bucket becomes 10% (minimum 10% CCF for unconditionally cancellable) |
| Changed | 0040 | Now also nets on-balance sheet netting (col 0035) |
| Changed | 0220 | No longer "after supporting factors" — factors removed |
| Removed | 0215 | RWEA pre supporting factors |
| Removed | 0216 | SME supporting factor adjustment |
| Removed | 0217 | Infrastructure supporting factor adjustment |
Row Structure¶
Each SA template submission (per exposure class) contains five row sections:
flowchart TD
T["C 07.00 / OF 07.00<br/>Row Structure"] --> S1["<b>Section 1</b><br/>Total Exposures<br/><i>+ 'of which' breakdowns</i>"]
T --> S2["<b>Section 2</b><br/>Breakdown by<br/>Exposure Types<br/><i>On-BS, Off-BS, CCR</i>"]
T --> S3["<b>Section 3</b><br/>Breakdown by<br/>Risk Weights<br/><i>0% to 1250%</i>"]
T --> S4["<b>Section 4</b><br/>Breakdown by<br/>CIU Approach"]
T --> S5["<b>Section 5</b><br/>Memorandum<br/>Items"]
style S1 fill:#fff3e0,stroke:#fb8c00
style S3 fill:#e8f5e9,stroke:#43a047
Section 1 — Total Exposures
| Ref | Row |
|---|---|
| 0010 | TOTAL EXPOSURES |
| 0015 | of which: Defaulted exposures |
| 0020 | of which: SME |
| 0030 | of which: Exposures subject to SME-supporting factor |
| 0035 | of which: Exposures subject to infrastructure supporting factor |
| 0040 | of which: Secured by mortgages on immovable property — Residential |
| 0050 | of which: Exposures under permanent partial use of SA |
| 0060 | of which: Exposures under sequential IRB implementation |
Section 2 — Breakdown by Exposure Types
| Ref | Row |
|---|---|
| 0070 | On balance sheet exposures subject to credit risk |
| 0080 | Off balance sheet exposures subject to credit risk |
| 0090 | SFT netting sets |
| 0100 | of which: centrally cleared through a QCCP |
| 0110 | Derivatives & Long Settlement Transactions netting sets |
| 0120 | of which: centrally cleared through a QCCP |
| 0130 | From Contractual Cross Product netting sets |
Null Rows — CCR Out of Scope
Rows 0090–0130 (SFT netting sets, derivatives and long settlement transactions, cross-product netting, and their QCCP sub-rows) are always null. Counterparty credit risk exposure data (netting sets, QCCP clearing flags) is not produced by the current pipeline. Only rows 0070 (on-BS) and 0080 (off-BS) are populated.
Section 3 — Breakdown by Risk Weights
| Ref | Risk Weight |
|---|---|
| 0140 | 0% |
| 0150 | 2% |
| 0160 | 4% |
| 0170 | 10% |
| 0180 | 20% |
| 0190 | 35% |
| 0200 | 50% |
| 0210 | 70% |
| 0220 | 75% |
| 0230 | 100% |
| 0240 | 150% |
| 0250 | 250% |
| 0260 | 370% |
| 0270 | 1,250% |
| 0280 | Other risk weights |
Section 4 — Breakdown by CIU Approach
| Ref | Row |
|---|---|
| 0281 | Look-through approach |
| 0282 | Mandate-based approach |
| 0283 | Fall-back approach |
Section 5 — Memorandum Items
| Ref | Row |
|---|---|
| 0290 | Exposures secured by mortgages on commercial immovable property |
| 0300 | Exposures in default subject to RW of 100% |
| 0310 | Exposures secured by mortgages on residential immovable property |
| 0320 | Exposures in default subject to RW of 150% |
Section 1 — Total Exposures
| Ref | Row | vs CRR |
|---|---|---|
| 0010 | TOTAL EXPOSURES | |
| 0015 | of which: Defaulted exposures | |
| 0020 | of which: SME | |
| 0021 | of which: Specialised lending — Object finance | New |
| 0022 | of which: Specialised lending — Commodities finance | New |
| 0023 | of which: Specialised lending — Project finance | New |
| 0024 | of which: pre-operational phase | New |
| 0025 | of which: operational phase | New |
| 0026 | of which: high quality operational phase | New |
| 0330 | of which: Regulatory residential RE | New |
| 0331 | of which: not materially dependent on property cash flows | New |
| 0332 | of which: materially dependent on property cash flows | New |
| 0340 | of which: Regulatory commercial RE | New |
| 0341 | of which: not materially dependent (non-SME) | New |
| 0343 | of which: SME (non-materially dependent) | New |
| 0342 | of which: materially dependent | New |
| 0344 | of which: SME (materially dependent) | New |
| 0350 | of which: Other real estate | New |
| 0351-0354 | Residential/Commercial x cash-flow dependency splits | New |
| 0360 | of which: Land ADC exposures | New |
| 0050 | of which: Exposures under permanent partial use of SA | |
| 0060 | of which: Exposures under sequential IRB implementation |
Removed Rows
Rows 0030 (SME supporting factor) and 0035 (infrastructure supporting factor) are removed — these factors no longer exist under Basel 3.1. Row 0040 (secured by residential mortgages) is replaced by the detailed 0330-0360 real estate structure.
Section 2 — Breakdown by Exposure Types
Identical to CRR (rows 0070-0130). Rows 0090–0130 are null (CCR out of scope — see CRR tab).
Section 3 — Breakdown by Risk Weights
| Ref | Risk Weight | vs CRR |
|---|---|---|
| 0140 | 0% | |
| 0150 | 2% | |
| 0160 | 4% | |
| 0170 | 10% | |
| 0171 | 15% | New |
| 0180 | 20% | |
| 0181 | 25% | New |
| 0182 | 30% | New |
| 0190 | 35% | |
| 0191 | 40% | New |
| 0192 | 45% | New |
| 0200 | 50% | |
| 0201 | 60% | New |
| 0202 | 65% | New |
| 0210 | 70% | |
| 0220 | 75% | |
| 0221 | 80% | New |
| 0222 | 85% | New |
| 0230 | 100% | |
| 0231 | 105% | New |
| 0232 | 110% | New |
| 0233 | 130% | New |
| 0234 | 135% | New |
| 0240 | 150% | |
| 0250 | 250% | |
| 0261 | 400% | New (replaces 370%) |
| 0270 | 1,250% | |
| 0280 | Other risk weights |
Section 4 — Breakdown by CIU Approach
| Ref | Row | vs CRR |
|---|---|---|
| 0281 | Look-through approach | |
| 0284 | of which: exposures to relevant CIUs | New |
| 0282 | Mandate-based approach | |
| 0285 | of which: exposures to relevant CIUs | New |
| 0283 | Fall-back approach |
Section 5 — Memorandum Items
| Ref | Row | vs CRR |
|---|---|---|
| 0300 | Exposures in default subject to RW of 100% | |
| 0320 | Exposures in default subject to RW of 150% | |
| 0371 | Equity transitional: SA higher risk | New |
| 0372 | Equity transitional: SA other equity | New |
| 0373 | Equity transitional: IRB higher risk | New |
| 0374 | Equity transitional: IRB other equity | New |
| 0380 | Retail and RE: subject to currency mismatch multiplier | New |
Removed Memorandum Rows
Rows 0290 (secured by commercial RE) and 0310 (secured by residential RE) are removed — replaced by the detailed real estate breakdown in Section 1 (rows 0330-0360).
| Area | CRR | Basel 3.1 |
|---|---|---|
| "Of which" rows | 8 rows (0015-0060) | 26+ rows — adds specialised lending (0021-0026), detailed RE breakdown (0330-0360) |
| Risk weight rows | 15 rows (0%-1250% + Other) | 29 rows — adds 15 new granular weights, removes 370% |
| CIU approach | 3 rows | 5 rows — adds "relevant CIUs" sub-rows |
| Memorandum items | 4 rows | 7 rows — adds equity transitional, currency mismatch; removes RE mortgage rows |
| Removed rows | — | 0030 (SME factor), 0035 (infra factor), 0040 (residential mortgages), 0290, 0310 |
Row Mapping — Source Code
The SA exposure class to row mapping used by the calculator's COREP generator:
# Shared label / group / section constants (DRY — referenced by multiple templates)
# =============================================================================
# --- SA exposure-class labels ---
_LBL_SA_CENTRAL_GOVT = "Central governments or central banks"
_LBL_IRB_CENTRAL_GOVT = "Central governments and central banks"
_LBL_SA_RGLA = "Regional governments or local authorities"
_LBL_SA_PSE = "Public sector entities"
_LBL_SA_MDB = "Multilateral development banks"
_LBL_SA_INTL_ORG = "International organisations"
_LBL_SA_MORTGAGES = "Secured by mortgages on immovable property"
_LBL_SA_DEFAULTED = "Exposures in default"
_LBL_SA_COVERED_BOND = "Covered bonds"
_LBL_SA_OTHER = "Other items"
# --- Common column / row labels ---
Column Definitions — Source Code
_LBL_COL_OBSERVED_DEFAULTS = "Observed new defaults for the period"
_LBL_COL_GEN_CRA = "General credit risk adjustments"
_LBL_COL_SPEC_CRA = "Specific credit risk adjustments"
_LBL_COL_CRA_WRITEOFFS = "Credit risk adjustments/write-offs for observed new defaults"
_LBL_ROW_TOTAL_EXPOSURES_UC = "TOTAL EXPOSURES"
_LBL_ROW_TOTAL_EXPOSURES_MC = "Total exposures"
_LBL_ROW_SFT_NETTING = "SFT netting sets"
_LBL_ROW_OF_WHICH_QCCP = " of which: centrally cleared through a QCCP"
_LBL_ROW_DERIV_LST_NETTING = "Derivatives & Long Settlement Transactions netting sets"
_LBL_ROW_CCP_NETTING = "From Contractual Cross Product netting sets"
_LBL_ROW_CREDIT_RISK_EXCL_CCR = "Credit risk (excluding CCR)"
_LBL_ROW_OP_RISK = "Operational risk"
_LBL_ROW_CIU = "Collective investment undertakings (CIU)"
_LBL_ROW_OF_WHICH_SME_LC = " of which: SME"
# --- Common group labels ---
_GRP_CRM_SUBST_UNFUNDED = "CRM Substitution: Unfunded"
_GRP_CRM_SUBST_FUNDED = "CRM Substitution: Funded"
_GRP_CRM_SUBST = "CRM Substitution"
_GRP_FIN_COLL_COMP = "Fin. Collateral Comprehensive"
_GRP_CCF_BREAKDOWN = "CCF Breakdown"
_GRP_EXPOSURE_VALUE = "Exposure Value"
_GRP_INTERNAL_RATING = "Internal Rating"
_GRP_CRM_LGD_UNFUNDED = "CRM in LGD: Unfunded"
_GRP_CRM_LGD_FUNDED = "CRM in LGD: Funded"
_GRP_OUTPUT_FLOOR = "Output Floor"
_GRP_COVERAGE_PCT = "Coverage %"
_GRP_RWEA_SA_BREAKDOWN = "RWEA: SA Breakdown"
# --- Section names ---
Risk Weight Band Definitions — Source Code
COREPRow("0344", " of which: SME (materially dependent)"),
COREPRow("0350", "of which: Other real estate"),
COREPRow("0351", " of which: Residential (not mat. dependent)"),
COREPRow("0352", " of which: Residential (mat. dependent)"),
COREPRow("0353", " of which: Commercial (not mat. dependent)"),
COREPRow("0354", " of which: Commercial (mat. dependent)"),
COREPRow("0360", "of which: Land ADC exposures"),
# 0040 removed: replaced by detailed RE breakdown above
COREPRow("0050", "of which: Exposures under permanent partial use of SA"),
COREPRow("0060", "of which: Exposures under sequential IRB implementation"),
],
),
RowSection(
_SEC_BREAKDOWN_EXPOSURE_TYPES,
[
COREPRow("0070", "On balance sheet exposures subject to credit risk"),
COREPRow("0080", "Off balance sheet exposures subject to credit risk"),
C 08.01 / OF 08.01 — CR IRB Totals¶
The IRB totals template is filtered by IRB exposure class and by own estimates of LGD/CCF (Foundation vs Advanced IRB). It covers the full IRB waterfall: original exposure, CRM substitution effects, CRM in LGD estimates (with detailed collateral breakdown), exposure value, LGD, maturity, RWEA, and memorandum items (expected loss, provisions, obligor count).
Column Structure¶
| Ref | Column | Group |
|---|---|---|
| 0010 | PD assigned to obligor grade or pool (%) | Internal Rating |
| 0020 | Original exposure pre conversion factors | Exposure |
| 0030 | Of which: large financial sector entities | Exposure |
| 0040 | (-) Guarantees | CRM Substitution: Unfunded |
| 0050 | (-) Credit derivatives | CRM Substitution: Unfunded |
| 0060 | (-) Other funded credit protection | CRM Substitution: Funded |
| 0070 | (-) Substitution outflows | CRM Substitution |
| 0080 | Substitution inflows (+) | CRM Substitution |
| 0090 | Exposure after CRM substitution pre CCFs | Post-CRM |
| 0100 | Of which: off balance sheet | Post-CRM |
| 0110 | Exposure value | Exposure Value |
| 0120 | Of which: off balance sheet | Exposure Value |
| 0130 | Of which: arising from CCR | Exposure Value |
| 0140 | Of which: large financial sector entities | Exposure Value |
Null Columns — CCR and Off-BS Breakdown
Column 0130 ("Of which: arising from CCR") is always null — counterparty credit risk is outside the calculator's scope. Column 0120 ("Of which: off balance sheet" under Exposure Value) is also null (implementation Phase 2B). Column 0030 ("Of which: large financial sector entities") is null (Phase 2F).
| 0150 | Guarantees (own LGD estimates) | CRM in LGD: Unfunded | | 0160 | Credit derivatives (own LGD estimates) | CRM in LGD: Unfunded | | 0170 | Other funded credit protection (own LGD estimates) | CRM in LGD: Funded | | 0171 | Cash on deposit | CRM in LGD: Funded | | 0172 | Life insurance policies | CRM in LGD: Funded | | 0173 | Instruments held by a third party | CRM in LGD: Funded | | 0180 | Eligible financial collateral | CRM in LGD: Funded | | 0190 | Other eligible collateral: Real estate | CRM in LGD: Funded | | 0200 | Other eligible collateral: Other physical | CRM in LGD: Funded | | 0210 | Other eligible collateral: Receivables | CRM in LGD: Funded | | 0220 | Subject to double default treatment: Unfunded | Double Default | | 0230 | Exposure-weighted average LGD (%) | Parameters | | 0240 | For large financial sector entities | Parameters | | 0250 | Exposure-weighted average maturity (days) | Parameters | | 0255 | RWEA pre supporting factors | RWEA | | 0256 | (-) SME supporting factor adjustment | RWEA | | 0257 | (-) Infrastructure supporting factor adjustment | RWEA | | 0260 | RWEA after supporting factors | RWEA | | 0270 | Of which: large financial sector entities | RWEA | | 0280 | Expected loss amount | Memorandum | | 0290 | (-) Value adjustments and provisions | Memorandum | | 0300 | Number of obligors | Memorandum | | 0310 | Pre-credit derivatives RWEA | Memorandum |
| Ref | Column | Group | vs CRR |
|---|---|---|---|
| ~~0010~~ | ~~PD assigned to obligor grade or pool~~ | Removed (PD only in OF 08.02) | |
| 0020 | Original exposure pre conversion factors | Exposure | |
| 0030 | Of which: large financial sector entities | Exposure | |
| 0035 | (-) Adjustment due to on-balance sheet netting | Exposure | New |
| 0040 | (-) Guarantees | CRM Substitution: Unfunded | |
| 0050 | (-) Credit derivatives | CRM Substitution: Unfunded | |
| 0060 | (-) Other funded credit protection | CRM Substitution: Funded | |
| 0070 | (-) Substitution outflows | CRM Substitution | |
| 0080 | Substitution inflows (+) | CRM Substitution | |
| 0090 | Exposure after CRM substitution pre CCFs | Post-CRM | |
| 0100 | Of which: off balance sheet | Post-CRM | |
| 0101 | Volatility adjustment to the exposure (Slotting) | Fin. Collateral Comprehensive | New |
| 0102 | (-) Financial collateral adjusted value Cvam (Slotting) | Fin. Collateral Comprehensive | New |
| 0103 | (-) Of which: volatility and maturity adj (Slotting) | Fin. Collateral Comprehensive | New |
| 0104 | Exposure after all CRM pre CCFs (Slotting) | Fin. Collateral Comprehensive | New |
| 0110 | Exposure value | Exposure Value | |
| 0120 | Of which: off balance sheet | Exposure Value | |
| 0125 | Of which: defaulted | Exposure Value | New |
| 0130 | Of which: arising from CCR | Exposure Value | |
| 0140 | Of which: large financial sector entities | Exposure Value |
Null Columns — CCR and Off-BS Breakdown
Columns 0120 (off-BS EAD), 0130 (CCR EAD), and 0030 (LFSE) are always null — same as CRR. See CRR tab for details. Additionally, B31-only columns 0101–0104 (slotting FCCM) and 0275–0276 (output floor SA-equivalent) are null (Phase 3A/2D).
| 0150 | Guarantees | CRM in LGD: Unfunded | | | 0160 | Credit derivatives | CRM in LGD: Unfunded | | | 0170 | Other funded credit protection | CRM in LGD: Funded | | | 0171 | Cash on deposit | CRM in LGD: Funded | | | 0172 | Life insurance policies | CRM in LGD: Funded | | | 0173 | Instruments held by a third party | CRM in LGD: Funded | | | 0180 | Eligible financial collateral | CRM in LGD: Funded | | | 0190 | Other eligible collateral: Real estate | CRM in LGD: Funded | | | 0200 | Other eligible collateral: Other physical | CRM in LGD: Funded | | | 0210 | Other eligible collateral: Receivables | CRM in LGD: Funded | | | ~~0220~~ | ~~Subject to double default treatment~~ | | Removed | | 0230 | Exposure-weighted average LGD (%) | Parameters | | | 0240 | For large financial sector entities | Parameters | | | 0250 | Exposure-weighted average maturity (days) | Parameters | | | 0251 | RWEA pre adjustments | RWEA | New | | 0252 | Adjustment due to post-model adjustments | RWEA | New | | 0253 | Adjustment due to mortgage RW floor | RWEA | New | | 0254 | Unrecognised exposure adjustments | RWEA | New | | ~~0255~~ | ~~RWEA pre supporting factors~~ | | Removed | | ~~0256~~ | ~~(-) SME supporting factor adjustment~~ | | Removed | | ~~0257~~ | ~~(-) Infrastructure supporting factor adjustment~~ | | Removed | | 0260 | RWEA after adjustments | RWEA | Changed | | 0265 | Of which: defaulted | RWEA | New | | 0270 | Of which: large financial sector entities | RWEA | | | 0275 | Non-modelled approaches: exposure value | Output Floor | New | | 0276 | Non-modelled approaches: RWEA | Output Floor | New | | 0280 | Expected loss amount (pre post-model adj) | Memorandum | Changed | | 0281 | Adjustment to EL due to post-model adjustments | Memorandum | New | | 0282 | Expected loss amount after post-model adjustments | Memorandum | New | | 0290 | (-) Value adjustments and provisions | Memorandum | | | 0300 | Number of obligors | Memorandum | | | 0310 | Pre-credit derivatives RWEA | Memorandum | |
| Change | Ref(s) | Description |
|---|---|---|
| Added | 0035 | On-balance sheet netting (same as OF 07.00) |
| Added | 0101-0104 | Financial Collateral Comprehensive Method columns for slotting approach |
| Added | 0125, 0265 | "Of which: defaulted" for exposure value and RWEA |
| Added | 0251-0254 | Post-model adjustment columns (pre-adj RWEA, post-model adj, mortgage RW floor, unrecognised exposure adj) |
| Added | 0275-0276 | Output floor columns (SA-equivalent exposure value and RWEA) |
| Added | 0281-0282 | Post-model adjustments to expected loss |
| Removed | 0010 | PD column — moved to OF 08.02 only |
| Removed | 0220 | Double default treatment (removed in Basel 3.1) |
| Removed | 0255-0257 | Supporting factor columns (SME and infrastructure factors removed) |
Row Structure¶
| Ref | Row |
|---|---|
| 0010 | TOTAL EXPOSURES |
| 0015 | of which: Exposures subject to SME-supporting factor |
| 0016 | of which: Exposures subject to infrastructure supporting factor |
| BREAKDOWN BY EXPOSURE TYPES | |
| 0020 | On balance sheet items subject to credit risk |
| 0030 | Off balance sheet items subject to credit risk |
| 0040 | SFT netting sets |
| 0050 | Derivatives & Long Settlement Transactions netting sets |
| 0060 | From Contractual Cross Product netting sets |
Null Rows — CCR Out of Scope
Rows 0040–0060 (SFT netting sets, derivatives and long settlement transactions, cross-product netting) are always null. Counterparty credit risk exposure data is not produced by the current pipeline. Only rows 0020 (on-BS) and 0030 (off-BS) are populated. CCR-arising IRB exposures would be separately reported in OF 34.07.
| | CALCULATION APPROACHES | | 0070 | Exposures assigned to obligor grades or pools: Total | | 0080 | Specialised lending slotting approach: Total | | 0160 | Alternative treatment: Secured by real estate | | 0170 | Exposures from free deliveries (alternative RW treatment or 100%) | | 0180 | Dilution risk: Total purchased receivables |
| Ref | Row | vs CRR |
|---|---|---|
| 0010 | TOTAL EXPOSURES | |
| 0017 | of which: revolving loan commitments | New |
| BREAKDOWN BY EXPOSURE TYPES | ||
| 0020 | On balance sheet items subject to credit risk | |
| 0030 | Off balance sheet items subject to credit risk | |
| 0031-0035 | Breakdown of off-BS by CCF buckets | New |
| 0040 | SFT netting sets | |
| 0050 | Derivatives & Long Settlement Transactions netting sets | |
| 0060 | From Contractual Cross Product netting sets |
Null Rows — CCR and CCF Buckets
Rows 0040–0060 are null (CCR out of scope — see CRR tab). Additionally, rows 0031–0035 (off-BS breakdown by CCF buckets) are null — CCF bucket data exists in the pipeline but is not yet disaggregated for C 08.01 (available in C 07.00 only).
| | CALCULATION APPROACHES | | | 0070 | Exposures assigned to obligor grades or pools: Total | | | 0080 | Specialised lending slotting approach: Total | | | ~~0160~~ | ~~Alternative treatment: Secured by real estate~~ | Removed | | 0170 | Exposures from free deliveries | | | 0175 | Purchased receivables | New | | 0180 | Dilution risk: Total purchased receivables | | | 0190 | Corporates without ECAI | New | | 0200 | of which: investment grade | New |
Why rows 0190 / 0200 exist — output floor only (Art. 122(6)–(8))
These rows are not a general SA reporting requirement. They exist solely to enable the output-floor S-TREA leg for IRB firms that have unrated exposures in the financial corporates and large corporates exposure subclass (Art. 147(2)(c)(ii), cross-ref Art. 147A(1)(e); the "large corporate" definition is annual revenue above GBP 440 million per Art. 147(4C)(b)(ii)).
Under PRA PS1/26 Art. 122(8), an IRB firm computing the output floor must, for IRB exposures within the corporate exposure class without an ECAI assessment, either:
- (a) assign a flat 100% SA risk weight (the Art. 122(5) default), or
- (b) apply the Art. 122(6) split — provided the firm has the prior PRA permission
required by Art. 122(6) and gives notice to the PRA before electing this option:
- 65% for exposures the firm has assessed as investment grade (Art. 122(6)(a), conditions in Art. 122(9)–(10))
- 135% for exposures assessed as not investment grade (Art. 122(6)(b))
Row 0190 captures the total IRB carrying value of unrated corporates routed
into the SA leg of the floor; row 0200 ("of which: investment grade") isolates
the 65%-weighted subset so supervisors can verify the 0.65 × IG + 1.35 × non-IG
split versus the flat-100% alternative.
These rows feed the S-TREA term in the output floor formula
max(U-TREA, x · S-TREA + OF-ADJ) (see
OF 02.01 — Output Floor Comparison),
where x phases from 60% in 2027 to 72.5% from 2030 per Art. 92(5).
Details: Risk-weight values are sourced from the canonical SA risk weights — additional Basel 3.1 corporate treatments. Do not duplicate the table here.
Removed Rows
Rows 0015 (SME factor), 0016 (infrastructure factor), and 0160 (alternative RE treatment) are removed under Basel 3.1.
| Change | Ref(s) | Description |
|---|---|---|
| Added | 0017 | Revolving loan commitments breakdown |
| Added | 0031-0035 | Off-balance sheet CCF bucket breakdown rows |
| Added | 0175 | Purchased receivables (explicit row) |
| Added | 0190, 0200 | Corporates without ECAI / investment grade (output floor) |
| Removed | 0015 | SME supporting factor |
| Removed | 0016 | Infrastructure supporting factor |
| Removed | 0160 | Alternative treatment: Secured by real estate |
IRB Row Mapping — Source Code
_LBL_COL_CREDIT_DERIVS = "(-) Credit derivatives"
_LBL_COL_OTHER_FUNDED = "(-) Other funded credit protection"
_LBL_COL_SUBST_OUTFLOWS = "(-) Substitution outflows"
_LBL_COL_SUBST_INFLOWS = "Substitution inflows (+)"
_LBL_COL_EXPOSURE_VALUE_LC = "Exposure value"
_LBL_COL_RWEA_PRE_SF = "RWEA pre supporting factors"
_LBL_COL_SME_SF_ADJ = "(-) SME supporting factor adjustment"
_LBL_COL_INFRA_SF_ADJ = "(-) Infrastructure supporting factor adjustment"
_LBL_COL_RWEA_POST_SF = "RWEA after supporting factors"
_LBL_COL_OF_WHICH_ECAI = "Of which: with ECAI credit assessment"
_LBL_COL_RWEA_HYPHEN = "Risk-weighted exposure amount"
Column Definitions — Source Code
COREPRow("0020", "On balance sheet items subject to credit risk"),
COREPRow("0030", "Off balance sheet items subject to credit risk"),
COREPRow("0031", " of which: off-BS by CCF 10%"), # New in B3.1
COREPRow("0032", " of which: off-BS by CCF 20%"),
COREPRow("0033", " of which: off-BS by CCF 40%"),
COREPRow("0034", " of which: off-BS by CCF 50%"),
COREPRow("0035", " of which: off-BS by CCF 100%"),
COREPRow("0040", _LBL_ROW_SFT_NETTING),
COREPRow("0050", _LBL_ROW_DERIV_LST_NETTING),
COREPRow("0060", _LBL_ROW_CCP_NETTING),
],
),
RowSection(
"Calculation Approaches",
C 08.02 / OF 08.02 — CR IRB by Obligor Grade¶
C 08.02 disaggregates C 08.01 by individual obligor grade or pool from the firm's internal rating system. It uses the same column structure as C 08.01 with the addition of an obligor grade identifier column.
Dynamic Rows
Unlike C 07.00 and C 08.01, this template has no pre-defined data rows. Each row represents one PD grade or pool from the firm's internal rating system. Rows are ordered from best to worst credit quality, with defaulted obligors last. The number of rows varies by firm and exposure class.
Structure¶
- Column 0005: Obligor grade row identifier
- Columns 0010-0310: Identical to C 08.01 (including PD in column 0010)
- Rows ordered by PD: best credit quality first, defaulted (PD = 100%) last
- Excludes exposures subject to the alternative RE collateral treatment
- Column 0005: Obligor grade row identifier
- Columns 0020-0310: Identical to OF 08.01 (PD column 0010 is retained here, unlike OF 08.01)
- New columns 0001, 0101-0105: Off-balance sheet CCF breakdown columns per obligor grade
- PD ordering uses PDs without input floor adjustments
- Excludes slotting approach exposures (slotting has its own template OF 08.03)
| Change | Description |
|---|---|
| PD column | Retained in OF 08.02 (removed from OF 08.01 totals only) |
| CCF breakdown | New columns 0001, 0101-0105 for off-BS items by CCF bucket |
| PD ordering | Basel 3.1 uses PDs without input floor adjustments |
| Slotting excluded | Slotting exposures reported separately (new OF 08.03) |
| Alt RE removed | CRR exclusion for alternative RE treatment no longer applies |
| Double default | Column 0220 removed (same as OF 08.01) |
| Supporting factors | Columns 0255-0257 removed (same as OF 08.01) |
| Post-model adj | New columns 0251-0254, 0281-0282 (same as OF 08.01) |
| Output floor | New columns 0275-0276 (same as OF 08.01) |
PD Band Definitions — Source Code
The calculator groups obligor grades into standardised PD bands for aggregation:
# C 08.01 / OF 08.01 — IRB ROW SECTIONS
# =============================================================================
CRR_IRB_ROW_SECTIONS: list[RowSection] = [
RowSection(
"Total and Supporting Factors",
[
COREPRow("0010", _LBL_ROW_TOTAL_EXPOSURES_UC),
COREPRow("0015", "of which: Exposures subject to SME-supporting factor"),
COREPRow("0016", "of which: Exposures subject to infrastructure supporting factor"),
],
),
C 08.03 / OF 08.03 — CR IRB PD Ranges¶
C 08.03 aggregates IRB exposures into fixed PD range buckets for disclosure under Article 452(g). It provides a standardised view of key risk parameters (PD, LGD, CCF, RWEA, EL) across comparable PD bands. This template excludes slotting exposures (reported in C 08.06) and CCR exposures.
Column Structure¶
| Ref | Column | Group |
|---|---|---|
| 0010 | On-balance sheet exposures | Exposure |
| 0020 | Off-balance sheet exposures pre conversion factors | Exposure |
| 0030 | Exposure weighted average conversion factors | Parameters |
| 0040 | Exposure value post conversion factors and post CRM | Exposure Value |
| 0050 | Exposure weighted average PD (%) | Parameters |
| 0060 | Number of obligors | Parameters |
| 0070 | Exposure weighted average LGD (%) | Parameters |
| 0080 | Exposure-weighted average maturity (years) | Parameters |
| 0090 | Risk-weighted exposure amount after supporting factors | RWEA |
| 0100 | Expected loss amount | Memorandum |
| 0110 | Value adjustments and provisions | Memorandum |
| Ref | Column | Group | vs CRR |
|---|---|---|---|
| 0010 | On-balance sheet exposures | Exposure | |
| 0020 | Off-balance sheet exposures pre conversion factors | Exposure | |
| 0030 | Exposure weighted average conversion factors | Parameters | |
| 0040 | Exposure value post conversion factors and post CRM | Exposure Value | |
| 0050 | Exposure weighted average PD (post input floor) (%) | Parameters | Changed |
| 0060 | Number of obligors | Parameters | |
| 0070 | Exposure weighted average LGD (%) | Parameters | Changed (includes input floors, downturn) |
| 0080 | Exposure-weighted average maturity (years) | Parameters | |
| 0090 | Risk-weighted exposure amount | RWEA | Changed (no supporting factors) |
| 0100 | Expected loss amount | Memorandum | |
| 0110 | Value adjustments and provisions | Memorandum |
| Change | Ref(s) | Description |
|---|---|---|
| Changed | 0050 | PD now explicitly labelled "post input floor" — reflects new PD floors (Art 160(1), 163(1)) |
| Changed | 0070 | LGD explicitly includes CRM effects, input floors, and downturn conditions |
| Changed | 0090 | "RWEA" — no longer "after supporting factors" (Art 501/501a removed) |
Row Structure¶
| Ref | PD Range |
|---|---|
| 0010 | 0.00 to < 0.15 |
| 0020 | 0.00 to < 0.10 |
| 0030 | 0.10 to < 0.15 |
| 0040 | 0.15 to < 0.25 |
| 0050 | 0.25 to < 0.50 |
| 0060 | 0.50 to < 0.75 |
| 0070 | 0.75 to < 2.50 |
| 0080 | 0.75 to < 1.75 |
| 0090 | 1.75 to < 2.50 |
| 0100 | 2.50 to < 10.00 |
| 0110 | 2.50 to < 5.00 |
| 0120 | 5.00 to < 10.00 |
| 0130 | 10.00 to < 100.00 |
| 0140 | 10.00 to < 20.00 |
| 0150 | 20.00 to < 30.00 |
| 0160 | 30.00 to < 100.00 |
| 0170 | 100.00 (Default) |
| Ref | PD Range | vs CRR |
|---|---|---|
| 0010 | 0.00 to < 0.15 | |
| 0020 | 0.00 to < 0.10 | |
| 0030 | 0.10 to < 0.15 | |
| 0040 | 0.15 to < 0.25 | |
| 0050 | 0.25 to < 0.50 | |
| 0060 | 0.50 to < 0.75 | |
| 0070 | 0.75 to < 2.50 | |
| 0080 | 0.75 to < 1.75 | |
| 0090 | 1.75 to < 2.50 | |
| 0100 | 2.50 to < 10.00 | |
| 0110 | 2.50 to < 5.00 | |
| 0120 | 5.00 to < 10.00 | |
| 0130 | 10.00 to < 100.00 | |
| 0140 | 10.00 to < 20.00 | |
| 0150 | 20.00 to < 30.00 | |
| 0160 | 30.00 to < 100.00 | |
| 0170 | 100.00 (Default) |
PD Range Allocation
In Basel 3.1, exposures are allocated to PD range buckets using the PD estimate without input floor adjustments (pre-floor PD). The weighted average PD reported in column 0050 uses the post-floor PD. Slotting exposures are excluded from this template and reported in OF 08.06.
| Area | CRR | Basel 3.1 |
|---|---|---|
| PD column | "Average PD" | "Average PD (post input floor)" — explicitly reflects PD floors |
| LGD column | Final LGD after CRM and downturn | Same, plus explicitly includes input floors |
| RWEA | "After supporting factors" | "RWEA" — supporting factors removed |
| PD allocation | PD-based bucket assignment | Uses pre-input-floor PD for bucket allocation |
| Slotting | Excluded (in C 08.06) | Excluded (in OF 08.06) |
C 08.04 / OF 08.04 — CR IRB RWEA Flow Statements¶
C 08.04 reports quarter-over-quarter movements in IRB RWEA, decomposed into seven standardised driver categories. This template excludes CCR exposures. It is submitted once per IRB exposure class.
Column Structure¶
| Ref | Column |
|---|---|
| 0010 | Risk-weighted exposure amount (after supporting factors) |
| Ref | Column | vs CRR |
|---|---|---|
| 0010 | Risk-weighted exposure amount | Changed (no supporting factors) |
| Change | Ref(s) | Description |
|---|---|---|
| Changed | 0010 | "RWEA" — no longer references supporting factors (Art 501/501a removed) |
Row Structure¶
| Ref | Row |
|---|---|
| 0010 | RWEA at the end of the previous reporting period |
| 0020 | Asset size (+/-) |
| 0030 | Asset quality (+/-) |
| 0040 | Model updates (+/-) |
| 0050 | Methodology and policy (+/-) |
| 0060 | Acquisitions and disposals (+/-) |
| 0070 | Foreign exchange movements (+/-) |
| 0080 | Other (+/-) |
| 0090 | RWEA at the end of the reporting period |
Identical row structure to CRR. All 9 rows (0010–0090) are unchanged.
| Ref | Row |
|---|---|
| 0010 | RWEA at the end of the previous reporting period |
| 0020 | Asset size (+/-) |
| 0030 | Asset quality (+/-) |
| 0040 | Model updates (+/-) |
| 0050 | Methodology and policy (+/-) |
| 0060 | Acquisitions and disposals (+/-) |
| 0070 | Foreign exchange movements (+/-) |
| 0080 | Other (+/-) |
| 0090 | RWEA at the end of the reporting period |
Transitional Arrangements
Any RWEA changes arising from transitional arrangements (Chapter 4 of the Credit Risk: General Provisions (CRR) Part) are reported in row 0050 (Methodology and policy).
| Area | CRR | Basel 3.1 |
|---|---|---|
| RWEA column | "After supporting factors" | "RWEA" — supporting factors removed |
| Rows | 9 rows (0010–0090) | Identical — no changes |
| Overall | Virtually identical between frameworks |
Implementation Notes¶
C 08.04 / OF 08.04 is implemented in v0.1.169. The pipeline provides current-period data only, so:
- Row 0090 (closing RWEA) is populated from
rwa_finalper exposure class - Row 0010 (opening RWEA) and rows 0020–0080 (movement drivers) are null — they require prior-period comparison data that a single pipeline run cannot produce
- Slotting exposures are excluded (C 08.06 covers specialised lending separately)
- Template definitions:
CRR_C08_04_COLUMNS,B31_C08_04_COLUMNS,C08_04_ROWS - Generator:
_generate_all_c08_04(),_generate_c08_04_for_class() - Bundle field:
COREPTemplateBundle.c08_04: dict[str, pl.DataFrame]
To populate the full flow statement, callers can supply prior-period RWEA externally and merge it with the generated template.
C 08.05 / OF 08.05 — CR IRB PD Back-Testing¶
C 08.05 reports PD model back-testing per IRB exposure class — comparing model-assigned PDs against realised one-year default rates across the same 17 fixed PD range buckets used in C 08.03. This template is the supervisory back-testing view that supports IRB model validation under CRR Art. 180. One submission is filed per IRB exposure class. Slotting and CCR exposures are excluded.
The B31 column 0010 label is explicit that the reported average PD is after the PD input floors (Art. 160(1) / 163(1)) and any exposure-level risk weight floors (Art. 161(3) / 164(5)). PD-bucket allocation, however, uses the pre-input-floor PD — the same convention as OF 08.03.
Pillar III equivalent
UKB CR9 is the public-disclosure counterpart of C 08.05 / OF 08.05. They cover the same back-testing concept but are not column-for-column equivalent: UKB CR9 has 8 columns (a–h) including a PD-range column, an external rating equivalent column, an obligor-weighted PD-at-disclosure-date column, and the exposure-class designator; C 08.05 / OF 08.05 has 5 columns (0010–0050). See Disclosure Differences — CR9 for the full UKB CR9 column structure and the CR9 vs C 08.05 mapping.
Column Structure¶
| Ref | Column | Group |
|---|---|---|
| 0010 | Arithmetic average PD (%) | PD |
| 0020 | Number of obligors at end of previous year | Obligors |
| 0030 | Of which: defaulted during the year | Defaults |
| 0040 | Observed average default rate (%) | Default Rate |
| 0050 | Average historical annual default rate (%) | Historical Rate |
| Ref | Column | Group | vs CRR |
|---|---|---|---|
| 0010 | Arithmetic average PD (post-input floor) (%) | PD | Renamed — explicit "post-input floor" |
| 0020 | Number of obligors at end of previous year | Obligors | |
| 0030 | Of which: defaulted during the year | Defaults | |
| 0040 | Observed average default rate (%) | Default Rate | |
| 0050 | Average historical annual default rate (%) | Historical Rate |
| Change | Ref(s) | Description |
|---|---|---|
| Renamed | 0010 | "Arithmetic average PD (post-input floor) (%)" — Basel 3.1 explicitly clarifies the average uses PD after Art. 160(1) / 163(1) input floors and Art. 161(3) / 164(5) RW floors |
| Allocation rule | rows | Basel 3.1 allocates exposures to PD-range rows using pre-input-floor PD (matches OF 08.03); CRR uses the floored PD |
- 0010 Arithmetic average PD (%) — arithmetic average (weighted by number of obligors) of the PD at the beginning of the reporting period for obligors falling within the bucket. Basel 3.1: post-input floor; CRR: pre any floor description.
- 0020 Number of obligors at end of previous year — count of obligors with any credit obligation. Joint-obligor treatment matches PD calibration; obligor count method matches OF 08.01 col 0300.
- 0030 Of which: defaulted during the year — count of obligors that defaulted (per Art. 178) during the one-year observation period. Each defaulted obligor is counted only once even if multiple defaults occurred.
- 0040 Observed average default rate (%) — Art. 4(1)(78) one-year default rate. Denominator: non-defaulted obligors with any credit obligation at the start of the observation period. Numerator: those obligors that had at least one default event during the period.
- 0050 Average historical annual default rate (%) — simple average of the five most recent annual default rates (or a longer period consistent with the institution's risk-management practice).
Row Structure¶
The 17 PD range buckets are identical to C 08.03 / OF 08.03. Defaulted exposures are assigned to the 100% bucket (row 0170).
| Ref | PD Range |
|---|---|
| 0010 | 0.00 to < 0.15 |
| 0020 | 0.00 to < 0.10 |
| 0030 | 0.10 to < 0.15 |
| 0040 | 0.15 to < 0.25 |
| 0050 | 0.25 to < 0.50 |
| 0060 | 0.50 to < 0.75 |
| 0070 | 0.75 to < 2.50 |
| 0080 | 0.75 to < 1.75 |
| 0090 | 1.75 to < 2.50 |
| 0100 | 2.50 to < 10.00 |
| 0110 | 2.50 to < 5.00 |
| 0120 | 5.00 to < 10.00 |
| 0130 | 10.00 to < 100.00 |
| 0140 | 10.00 to < 20.00 |
| 0150 | 20.00 to < 30.00 |
| 0160 | 30.00 to < 100.00 |
| 0170 | 100.00 (Default) |
Identical row structure (17 PD range buckets, 0010–0170). Allocation uses pre-input-floor PD — see PRA PS1/26 Annex II §3.3.7 "PD RANGE (PRE-INPUT FLOOR) (%)".
Floor convention asymmetry
Row allocation: pre-input-floor PD. Column 0010 reported value: post-input-floor average PD. This asymmetry is deliberate: it lets supervisors back-test the model's unfloored predictions while still showing the floored PD that drives capital.
| Area | CRR | Basel 3.1 |
|---|---|---|
| Columns | 5 (0010–0050) | 5 (0010–0050) — col 0010 renamed |
| PD column | "Arithmetic average PD" | "Arithmetic average PD (post-input floor)" |
| Bucket allocation | Floored PD | Pre-input-floor PD (matches OF 08.03) |
| Rows | 17 PD range buckets | Identical |
| Scope | F-IRB and A-IRB; excludes slotting and CCR | Identical |
Implementation Notes¶
C 08.05 / OF 08.05 is implemented in the generator. The template requires multi-year historical data that a single pipeline run cannot produce, so two columns fall back to current-period approximations when historical inputs are absent:
- Col 0010 (arithmetic average PD): populated from
irb_pd_flooredper PD bucket. CRR uses the floored PD for both reporting and allocation; Basel 3.1 usesirb_pd_originalfor allocation andirb_pd_flooredfor the col 0010 value. - Col 0020 (prior-year obligor count): falls back to current-period obligor count
(
counterparty_reference.n_unique()) whenprior_year_obligor_countis not provided. - Col 0030 (defaulted during year): obligor-level count from
is_defaulted, falling back to PD ≥ 1.0 when the default flag is absent. - Col 0040 (observed default rate): col 0030 / col 0020.
- Col 0050 (historical annual default rate): falls back to col 0040 (current-period
observed rate) when
historical_annual_default_rateis not provided. - Slotting exposures excluded (covered by C 08.06); CCR exposures excluded (covered by C 34.07 / OF 34.07).
- Template definitions:
CRR_C08_05_COLUMNS,B31_C08_05_COLUMNSinsrc/rwa_calc/reporting/corep/templates.py. - Generator:
_generate_all_c08_05(),_generate_c08_05_for_class(),_compute_c08_05_values()insrc/rwa_calc/reporting/corep/generator.py. - Bundle field:
COREPTemplateBundle.c08_05: dict[str, pl.DataFrame](one entry per IRB exposure class). - Excel sheet prefix:
C 08.05(CRR) /OF 08.05(Basel 3.1), one sheet per exposure class.
To populate cols 0020 and 0050 with true multi-year data, callers can supply the
optional prior_year_obligor_count and historical_annual_default_rate columns
on the input LazyFrame; the generator will use them in preference to the
single-period fallbacks.
OF 08.05.1 (ECAI variant) not implemented
PRA PS1/26 Annex II §3.3.8 defines a second back-testing template, OF 08.05.1 (CR IRB 5B), required where Art. 180(1)(f) ECAI-based PD estimation is used. It extends OF 08.05 with col 0005 (firm-defined PD ranges instead of fixed buckets) and col 0006 (one column per ECAI considered). This calculator does not currently generate OF 08.05.1 — see output-reporting.md for the missing-templates list.
C 08.06 / OF 08.06 — CR IRB Specialised Lending Slotting¶
C 08.06 reports specialised lending exposures subject to the supervisory slotting criteria under Article 153(5). Exposures are broken down by slotting category (1–5) and remaining maturity (< 2.5 years / ≥ 2.5 years). One submission covers all SL types; the SL type (project finance, object finance, etc.) acts as a filter dimension.
Column Structure¶
| Ref | Column | Group |
|---|---|---|
| 0010 | Original exposure pre conversion factors | Exposure |
| 0020 | Exposure after CRM substitution effects pre conversion factors | Post-CRM |
| 0030 | Of which: off-balance sheet items (original) | Exposure |
| 0040 | Exposure value | Exposure Value |
| 0050 | Of which: off-balance sheet items (exposure value) | Exposure Value |
| 0060 | Of which: arising from counterparty credit risk | Exposure Value |
| 0070 | Risk weight | Parameters |
| 0080 | Risk-weighted exposure amount after supporting factors | RWEA |
| 0090 | Expected loss amount | Memorandum |
| 0100 | (-) Value adjustments and provisions | Memorandum |
| Ref | Column | Group | vs CRR |
|---|---|---|---|
| 0010 | Original exposure pre conversion factors | Exposure | |
| 0020 | Exposure after CRM substitution effects pre conversion factors | Post-CRM | |
| 0030 | Of which: off-balance sheet items (original) | Exposure | |
| 0031 | (-) Change in exposure due to FCCM | Fin. Collateral Comprehensive | New |
| 0040 | Exposure value | Exposure Value | |
| 0050 | Of which: off-balance sheet items (exposure value) | Exposure Value | |
| 0060 | Of which: arising from counterparty credit risk | Exposure Value | |
| 0070 | Risk weight | Parameters | |
| 0080 | Risk-weighted exposure amount | RWEA | Changed (no supporting factors) |
| 0090 | Expected loss amount | Memorandum | |
| 0100 | (-) Value adjustments and provisions | Memorandum |
| Change | Ref(s) | Description |
|---|---|---|
| Added | 0031 | (-) Change in exposure due to FCCM — Financial Collateral Comprehensive Method adjustment for slotting |
| Changed | 0080 | "RWEA" — no longer "after supporting factors" (Art 501/501a removed) |
Row Structure¶
SL types: Project finance, IPRE and HVCRE (combined), Object finance, Commodities finance.
| Ref | Category | Maturity | Risk Weight |
|---|---|---|---|
| 0010 | Category 1 (Strong) | < 2.5 years | 50% |
| 0020 | Category 1 (Strong) | ≥ 2.5 years | 70% |
| 0030 | Category 2 (Good) | < 2.5 years | 70% |
| 0040 | Category 2 (Good) | ≥ 2.5 years | 90% |
| 0050 | Category 3 (Satisfactory) | < 2.5 years | 115% |
| 0060 | Category 3 (Satisfactory) | ≥ 2.5 years | 115% |
| 0070 | Category 4 (Weak) | < 2.5 years | 250% |
| 0080 | Category 4 (Weak) | ≥ 2.5 years | 250% |
| 0090 | Category 5 (Default) | < 2.5 years | Deducted |
| 0100 | Category 5 (Default) | ≥ 2.5 years | Deducted |
| 0110 | Total | < 2.5 years | |
| 0120 | Total | ≥ 2.5 years |
SL types expanded to 5: Object finance, Project finance, Commodities finance, IPRE, HVCRE (HVCRE separated from IPRE).
| Ref | Category | Maturity | Risk Weight | vs CRR |
|---|---|---|---|---|
| 0010 | Category 1 (Strong) | < 2.5 years | 50% | |
| 0015 | Category 1 (Strong) — substantially stronger | ≥ 2.5 years | 50% | New |
| 0020 | Category 1 (Strong) | ≥ 2.5 years | 70% | |
| 0030 | Category 2 (Good) | < 2.5 years | 70% | |
| 0025 | Category 2 (Good) — substantially stronger | ≥ 2.5 years | 70% | New |
| 0040 | Category 2 (Good) | ≥ 2.5 years | 90% | |
| 0050 | Category 3 (Satisfactory) | < 2.5 years | 115% | |
| 0060 | Category 3 (Satisfactory) | ≥ 2.5 years | 115% | |
| 0070 | Category 4 (Weak) | < 2.5 years | 250% | |
| 0080 | Category 4 (Weak) | ≥ 2.5 years | 250% | |
| 0090 | Category 5 (Default) | < 2.5 years | Deducted | |
| 0100 | Category 5 (Default) | ≥ 2.5 years | Deducted | |
| 0110 | Total | < 2.5 years | ||
| 0120 | Total | ≥ 2.5 years |
Substantially Stronger
Exposures in the "strong" category meeting both the "substantially stronger" criteria and the 2.5 years maturity condition are reported in both row 0015 (or 0025) and the parent category row.
| Area | CRR | Basel 3.1 |
|---|---|---|
| Columns | 10 (0010–0100) | 11 — adds 0031 (FCCM adjustment) |
| RWEA | "After supporting factors" | "RWEA" — supporting factors removed |
| SL types | 4 (PF, IPRE/HVCRE combined, OF, CF) | 5 — HVCRE separated from IPRE |
| Rows | 12 (categories 1–5 × 2 maturities + totals) | 14 — adds "substantially stronger" sub-rows (0015, 0025) |
C 08.07 / OF 08.07 — CR IRB Scope of Use¶
C 08.07 reports the split of a firm's exposures between SA and IRB approaches, showing what proportion of each exposure class (CRR) or roll-out class (Basel 3.1) is subject to each approach. Significantly expanded in Basel 3.1 with detailed RWEA attribution by reason for SA use and materiality thresholds.
Column Structure¶
| Ref | Column | Group |
|---|---|---|
| 0010 | Total exposure value subject to IRB (Art 166) | Exposure |
| 0020 | Total exposure value subject to SA and IRB | Exposure |
| 0030 | % of total exposure value subject to permanent partial use of SA (%) | Coverage |
| 0040 | % of total exposure value subject to a roll-out plan (%) | Coverage |
| 0050 | % of total exposure value subject to IRB approach (%) | Coverage |
| Ref | Column | Group | vs CRR |
|---|---|---|---|
| 0010 | Total exposure value subject to IRB (Art 166A–166D) | Exposure | |
| 0020 | Total exposure value subject to SA and IRB | Exposure | |
| 0030 | % subject to permanent partial use of SA (%) | Coverage | |
| 0040 | % subject to a roll-out plan (%) | Coverage | |
| 0050 | % subject to IRB approach (%) | Coverage | |
| 0060 | Total RWEA for exposures subject to SA or IRB | RWEA | New |
| 0070 | RWEA for SA: connected counterparties (Art 150(1)(e)) | RWEA: SA Breakdown | New |
| 0080 | RWEA for SA: all exposures in roll-out classes — SA does not result in significantly lower capital | RWEA: SA Breakdown | New |
| 0090 | RWEA for SA: all exposures in roll-out classes — cannot reasonably model | RWEA: SA Breakdown | New |
| 0100 | RWEA for SA: all exposures in roll-out classes — immaterial | RWEA: SA Breakdown | New |
| 0110 | RWEA for SA: all exposures in types — cannot reasonably model | RWEA: SA Breakdown | New |
| 0120 | RWEA for SA: all exposures in types — immaterial in aggregate | RWEA: SA Breakdown | New |
| 0130 | RWEA for SA: due to roll-out plan | RWEA: SA Breakdown | New |
| 0140 | RWEA for SA: other | RWEA: SA Breakdown | New |
| 0150 | RWEA for exposures subject to IRB | RWEA | New |
| 0160 | Materiality of roll-out class (Art 150(1A)(c)) | Materiality | New |
| 0170 | % subject to permanent partial use (type of exposures) (%) | Materiality | New |
| 0180 | % subject to permanent partial use (immaterial in aggregate) (%) | Materiality | New |
| Change | Ref(s) | Description |
|---|---|---|
| Added | 0060 | Total RWEA for all exposures (SA + IRB) |
| Added | 0070–0140 | RWEA breakdown for SA exposures by reason: connected counterparties, roll-out class reasons (3 sub-categories), type reasons (2 sub-categories), roll-out plan, other |
| Added | 0150 | RWEA for IRB exposures |
| Added | 0160–0180 | Materiality thresholds for permanent partial use permissions |
| Overall | — | Expanded from 5 columns (CRR) to 18 columns (Basel 3.1) |
Row Structure¶
| Ref | Row |
|---|---|
| 0010 | Central governments or central banks |
| 0020 | Of which: regional governments or local authorities |
| 0030 | Of which: public sector entities |
| 0040 | Institutions |
| 0050 | Corporates |
| 0060 | Of which: corporates — specialised lending, excluding slotting |
| 0070 | Of which: corporates — specialised lending, including slotting |
| 0080 | Of which: corporates — SMEs |
| 0090 | Retail |
| 0100 | Of which: retail — secured by RE SMEs |
| 0110 | Of which: retail — secured by RE non-SMEs |
| 0120 | Of which: retail — qualifying revolving |
| 0130 | Of which: retail — other SMEs |
| 0140 | Of which: retail — other non-SMEs |
| 0150 | Equity |
| 0160 | Other non-credit obligation assets |
| 0170 | Total |
Rows restructured from exposure classes (Art 147(2)) to roll-out classes (Art 147B).
| Ref | Row | vs CRR |
|---|---|---|
| 0180–0250 | Roll-out classes (per Art 147B) | Restructured |
| 0260 | Total | New |
| 0270 | % subject to permanent partial use (immateriality in aggregate) | New |
Structural Change
The CRR rows (0010–0170) by exposure class are replaced by roll-out class rows (0180–0250) in Basel 3.1. Roll-out classes are defined in Art 147B and broadly correspond to exposure classes but have a different regulatory basis. The CRM substitution effects do not change the roll-out class assignment.
| Area | CRR | Basel 3.1 |
|---|---|---|
| Columns | 5 (0010–0050) | 18 — adds total RWEA, SA RWEA breakdown by reason, IRB RWEA, materiality thresholds |
| Row basis | 17 rows by exposure class (Art 147(2)) | Roll-out classes (Art 147B) with total and materiality rows |
| RWEA detail | No RWEA columns | Full RWEA decomposition (cols 0060–0150) |
| Materiality | Not reported | Cols 0160–0180 report materiality thresholds for SA permissions |
C 09.01 / OF 09.01 — CR GB 1 (Geographical Breakdown SA)¶
C 09.01 provides a geographical breakdown of SA exposures by country of obligor residence. It is submitted once at total level and once per material country (threshold defined in Art 5(5) of the Reporting (CRR) Part).
Original exposure pre-conversion factors is reported by country of the immediate obligor. Exposure value and RWEA are reported by country of the ultimate obligor (after CRM substitution effects).
Column Structure¶
| Ref | Column | Group |
|---|---|---|
| 0010 | Original exposure pre conversion factors | Exposure |
| 0020 | Defaulted exposures | Exposure |
| 0040 | Observed new defaults for the period | Defaults |
| 0050 | General credit risk adjustments | Provisions |
| 0055 | Specific credit risk adjustments | Provisions |
| 0060 | Write-offs | Provisions |
| 0061 | Additional value adjustments and other own funds reductions | Provisions |
| 0070 | Credit risk adjustments/write-offs for observed new defaults | Provisions |
| 0075 | Exposure value | Exposure Value |
| 0080 | RWEA pre supporting factors | RWEA |
| 0081 | (-) SME supporting factor adjustment | RWEA |
| 0082 | (-) Infrastructure supporting factor adjustment | RWEA |
| 0090 | RWEA after supporting factors | RWEA |
| Ref | Column | Group | vs CRR |
|---|---|---|---|
| 0010 | Original exposure pre conversion factors | Exposure | |
| 0020 | Defaulted exposures | Exposure | |
| 0040 | Observed new defaults for the period | Defaults | |
| 0050 | General credit risk adjustments | Provisions | |
| 0055 | Specific credit risk adjustments | Provisions | |
| 0060 | Write-offs | Provisions | |
| 0061 | Additional value adjustments and other own funds reductions | Provisions | |
| 0070 | Credit risk adjustments/write-offs for observed new defaults | Provisions | |
| 0075 | Exposure value | Exposure Value | |
| ~~0080~~ | ~~RWEA pre supporting factors~~ | Removed | |
| ~~0081~~ | ~~(-) SME supporting factor adjustment~~ | Removed | |
| ~~0082~~ | ~~(-) Infrastructure supporting factor adjustment~~ | Removed | |
| 0090 | Risk-weighted exposure amount | RWEA | Changed (no supporting factors) |
| Change | Ref(s) | Description |
|---|---|---|
| Removed | 0080 | RWEA pre supporting factors |
| Removed | 0081 | (-) SME supporting factor adjustment |
| Removed | 0082 | (-) Infrastructure supporting factor adjustment |
| Changed | 0090 | "RWEA" — no longer "after supporting factors" |
Row Structure¶
| Ref | Row |
|---|---|
| 0010 | Central governments or central banks |
| 0020 | Regional governments or local authorities |
| 0030 | Public sector entities |
| 0040 | Multilateral development banks |
| 0050 | International organisations |
| 0060 | Institutions |
| 0070 | Corporates |
| 0075 | of which: SME |
| 0080 | Retail |
| 0085 | of which: SME |
| 0090 | Secured by mortgages on immovable property |
| 0095 | of which: SME |
| 0100 | Exposures in default |
| 0110 | Items associated with particularly high risk |
| 0120 | Covered bonds |
| 0130 | Claims on institutions and corporates with a short-term credit assessment |
| 0140 | Collective investment undertakings (CIU) |
| 0141 | Look-through approach |
| 0142 | Mandate-based approach |
| 0143 | Fall-back approach |
| 0150 | Equity exposures |
| 0160 | Other exposures |
| 0170 | Total exposures |
| Ref | Row | vs CRR |
|---|---|---|
| 0010 | Central governments or central banks | |
| 0020 | Regional governments or local authorities | |
| 0030 | Public sector entities | |
| 0040 | Multilateral development banks | |
| 0050 | International organisations | |
| 0060 | Institutions | |
| 0070 | Corporates | |
| 0075 | of which: SME | |
| 0071 | of which: specialised lending — object finance | New |
| 0072 | of which: specialised lending — commodities finance | New |
| 0073 | of which: specialised lending — project finance | New |
| 0080 | Retail | |
| 0085 | of which: SME | |
| 0090 | Real estate exposures | Changed (was "Secured by mortgages") |
| 0095 | of which: SME | |
| 0091 | of which: regulatory residential real estate | New |
| 0092 | of which: regulatory commercial real estate | New |
| 0093 | of which: other real estate | New |
| 0094 | of which: land acquisition, development and construction | New |
| 0100 | Exposures in default | |
| 0110 | Exposures associated with particularly high risk | |
| 0120 | Eligible covered bonds | |
| ~~0130~~ | ~~Claims on institutions and corporates with a short-term credit assessment~~ | Removed |
| 0140 | Collective investment undertakings (CIU) | |
| 0141 | Look-through approach | |
| 0142 | Mandate-based approach | |
| 0143 | Fall-back approach | |
| 0150 | Subordinated debt, equity and other own funds instruments | Changed (was "Equity exposures") |
| 0160 | Other items | |
| 0170 | Total exposures |
| Area | CRR | Basel 3.1 |
|---|---|---|
| Columns | 13 (0010–0090) | 10 — removes 3 supporting factor columns (0080–0082) |
| RWEA | Pre/post supporting factors | Single RWEA column (no factors) |
| Corporate sub-rows | SME only | Adds specialised lending sub-rows (0071–0073) |
| RE rows | "Secured by mortgages" (1 row + SME) | "Real estate exposures" with 4 sub-rows (0091–0094) |
| Removed rows | — | 0130 (short-term credit assessment) |
| Renamed rows | — | 0090 (RE), 0150 (subordinated debt/equity) |
C 09.02 / OF 09.02 — CR GB 2 (Geographical Breakdown IRB)¶
C 09.02 provides a geographical breakdown of IRB exposures by country of obligor residence, including PD, LGD, and expected loss parameters. Submitted once at total level and once per material country.
Column Structure¶
| Ref | Column | Group |
|---|---|---|
| 0010 | Original exposure pre conversion factors | Exposure |
| 0030 | Of which: defaulted | Exposure |
| 0040 | Observed new defaults for the period | Defaults |
| 0050 | General credit risk adjustments | Provisions |
| 0055 | Specific credit risk adjustments | Provisions |
| 0060 | Write-offs | Provisions |
| 0070 | Credit risk adjustments/write-offs for observed new defaults | Provisions |
| 0080 | PD assigned to the obligor grade or pool (%) | Parameters |
| 0090 | Exposure weighted average LGD (%) | Parameters |
| 0100 | Of which: defaulted (LGD) | Parameters |
| 0105 | Exposure value | Exposure Value |
| 0110 | RWEA pre supporting factors | RWEA |
| 0120 | Of which: defaulted (RWEA) | RWEA |
| 0121 | (-) SME supporting factor adjustment | RWEA |
| 0122 | (-) Infrastructure supporting factor adjustment | RWEA |
| 0125 | RWEA after supporting factors | RWEA |
| 0130 | Expected loss amount | Memorandum |
| Ref | Column | Group | vs CRR |
|---|---|---|---|
| 0010 | Original exposure pre conversion factors | Exposure | |
| 0030 | Of which: defaulted | Exposure | |
| 0040 | Observed new defaults for the period | Defaults | |
| 0050 | General credit risk adjustments | Provisions | |
| 0055 | Specific credit risk adjustments | Provisions | |
| 0060 | Write-offs | Provisions | |
| 0070 | Credit risk adjustments/write-offs for observed new defaults | Provisions | |
| 0080 | PD assigned to the obligor grade or pool (%) | Parameters | |
| 0090 | Exposure weighted average LGD (%) | Parameters | |
| 0100 | Of which: defaulted (LGD) | Parameters | |
| 0105 | Exposure value | Exposure Value | |
| 0107 | Of which: defaulted (exposure value) | Exposure Value | New |
| ~~0110~~ | ~~RWEA pre supporting factors~~ | Removed | |
| 0120 | Of which: defaulted (RWEA) | RWEA | |
| ~~0121~~ | ~~(-) SME supporting factor adjustment~~ | Removed | |
| ~~0122~~ | ~~(-) Infrastructure supporting factor adjustment~~ | Removed | |
| 0125 | Risk-weighted exposure amount | RWEA | Changed (no supporting factors) |
| 0130 | Expected loss amount | Memorandum |
| Change | Ref(s) | Description |
|---|---|---|
| Added | 0107 | Of which: defaulted — defaulted exposure value (complements existing LGD and RWEA defaulted columns) |
| Removed | 0110 | RWEA pre supporting factors |
| Removed | 0121 | (-) SME supporting factor adjustment |
| Removed | 0122 | (-) Infrastructure supporting factor adjustment |
| Changed | 0125 | "RWEA" — no longer "after supporting factors" |
Row Structure¶
| Ref | Row |
|---|---|
| 0010 | Central governments or central banks |
| 0020 | Institutions |
| 0030 | Corporates |
| 0042 | Of which: specialised lending (excl. slotting approach) |
| 0045 | Of which: specialised lending under the slotting approach |
| 0050 | Of which: SME |
| 0060 | Retail |
| 0070 | Secured by immovable property |
| 0080 | SME |
| 0090 | Non-SME |
| 0100 | Qualifying revolving |
| 0110 | Other retail |
| 0120 | SME |
| 0130 | Non-SME |
| 0140 | Equity |
| 0150 | Total exposures |
| Ref | Row | vs CRR |
|---|---|---|
| 0010 | Central governments or central banks | |
| 0020 | Institutions | |
| 0030 | Corporates | |
| 0042 | Of which: specialised lending (excl. slotting approach) | |
| 0045 | Of which: specialised lending under the slotting approach | |
| 0048 | Of which: financial corporates and large corporates (Art 147(4C)) | New |
| 0049 | Of which: purchased receivables (Art 157) | New |
| 0050 | Of which: other general corporates — SME (Art 147(4E)(c)) | Changed (was "Of which: SME") |
| 0055 | Of which: other general corporates — non-SME (Art 147(4E)) | New |
| 0060 | Retail | |
| 0071 | Secured by residential immovable property — SME | New (replaces 0070/0080) |
| 0072 | Secured by residential immovable property — non-SME | New |
| 0073 | Secured by commercial immovable property — SME | New |
| 0074 | Secured by commercial immovable property — non-SME | New |
| 0100 | Qualifying revolving | |
| 0105 | Purchased receivables (Art 157) | New |
| 0120 | Other retail — SME | |
| 0130 | Other retail — non-SME | |
| ~~0140~~ | ~~Equity~~ | Removed |
| 0150 | Total exposures |
Removed Row
Row 0140 (Equity) is removed — equity is no longer an IRB exposure class under Basel 3.1. Total exposures (0150) equals the sum of rows 0020, 0030, and 0060.
| Area | CRR | Basel 3.1 |
|---|---|---|
| Columns | 17 (0010–0130) | 15 — removes 3 supporting factor columns, adds 0107 (defaulted exp value) |
| Corporate sub-rows | SL excl. slotting, SL slotting, SME | Adds financial/large corporates (0048), purchased receivables (0049), non-SME (0055); renames SME to "other general corporates — SME" |
| Retail RE rows | Single "secured by immovable property" with SME/non-SME | Split into residential RE (0071/0072) and commercial RE (0073/0074), each with SME/non-SME |
| Retail other rows | Adds purchased receivables (0105) | |
| Equity | Row 0140 | Removed — no longer an IRB exposure class |
Overall CRR vs Basel 3.1 Template Comparison¶
| Area | CRR (C templates) | Basel 3.1 (OF templates) |
|---|---|---|
| Template prefix | C (e.g., C 07.00) | OF (e.g., OF 07.00) |
| SA columns | 24 columns (0010-0240) | 22 columns — adds 0035, 0171, 0235; removes 0215-0217 |
| SA risk weight rows | 15 (0%-1250% + Other) | 29 — adds 15 new granular weights, removes 370% |
| SA "of which" rows | 8 | 26+ — adds specialised lending and detailed RE breakdowns |
| IRB columns | 33 columns (0010-0310) | 40+ columns — adds netting, slotting CRM, defaults, post-model adj, output floor; removes PD (totals), double default, supporting factors |
| IRB approach filter | Binary (Foundation / Advanced) | Three-way (FIRB / AIRB / Slotting) |
| Supporting factors | SME (Art 501) + Infrastructure (Art 501a) | Removed |
| Double default | Column 0220 | Removed |
| Output floor | Not applicable | Columns 0275-0276 (SA-equivalent for floor calculation) |
| Post-model adjustments | Not applicable | Columns 0251-0254 (RWEA), 0281-0282 (EL) |
| CCF buckets (SA) | 0%, 20%, 50%, 100% | 10%, 20%, 40%, 50%, 100% |
| PD ranges (08.03) | 11 columns, PD/LGD/RWEA after factors | Same structure, PD post input floor, RWEA without factors |
| RWEA flow (08.04) | 1 column (RWEA after factors), 9 rows | Virtually identical — supporting factors removed |
| Slotting (08.06) | 10 columns, 4 SL types, 12 rows | 11 columns (adds FCCM), 5 SL types (HVCRE split), 14 rows |
| Scope of use (08.07) | 5 columns, 17 rows by exposure class | 18 columns (adds RWEA breakdown + materiality), roll-out classes |
| Geo SA (09.01) | 13 columns (incl. supporting factors) | 10 columns (factors removed), adds SL and RE sub-rows |
| Geo IRB (09.02) | 17 columns (incl. supporting factors) | 15 columns (factors removed), adds corporate/retail sub-rows, removes equity |
Usage¶
Generate from Pipeline Results¶
from rwa_calc.reporting import COREPGenerator
generator = COREPGenerator()
# From a LazyFrame of calculation results
bundle = generator.generate_from_lazyframe(results, framework="CRR")
# From a CalculationResponse (uses cached Parquet)
bundle = generator.generate(response)
# Access templates as DataFrames
print(bundle.c07_00) # C 07.00 SA credit risk
print(bundle.c08_01) # C 08.01 IRB totals
print(bundle.c08_02) # C 08.02 IRB by PD grade
print(bundle.c08_05) # C 08.05 IRB PD back-testing (per exposure class)
print(bundle.c07_rw_breakdown) # C 07.00 risk weight breakdown
Export to Excel¶
from pathlib import Path
from rwa_calc.reporting import COREPGenerator
generator = COREPGenerator()
bundle = generator.generate_from_lazyframe(results)
# Export multi-sheet Excel workbook
result = generator.export_to_excel(bundle, Path("corep_templates.xlsx"))
# Creates sheets: "C 07.00", "C 07.00 RW Breakdown", "C 08.01", "C 08.02"
print(result.format) # "corep_excel"
print(result.row_count) # Total rows across all sheets
Excel dependency
Excel export requires xlsxwriter. Install via uv add xlsxwriter.
Regulatory References¶
| Reference | Topic |
|---|---|
| Regulation (EU) 2021/451, Annex I | CRR COREP template layouts |
| Regulation (EU) 2021/451, Annex II | CRR COREP reporting instructions |
| CRR Art. 112-134 | SA exposure classes and risk weights |
| CRR Art. 142-191 | IRB exposure classes and capital requirements |
| PRA PS1/26 | Basel 3.1 final rules |
| PRA PS1/26 Annex I | Basel 3.1 OF template layouts |
| PRA PS1/26 Annex II | Basel 3.1 OF reporting instructions |