Skip to content

Regulatory Sources

Daniele Penza edited this page Oct 23, 2026 · 9 revisions

๐Ÿ“š Regulatory Sources

Section Sources Hashes Evidence

๐Ÿ“Œ Guide, not policy. The source register and docs/methodology/sources/README.md govern; where this page differs, the repository wins.

K-SACCR cites its rules from a fixed set of regulatory texts, each in a recorded version, and keeps a copy of each checked version in the repository, with its SHA-256 hash. This page lists those texts, what each is relied on for, when it was checked, and what has deliberately not been checked.

Release baseline: v1.0.2; source-register update: 2026-10-22. The tagged release contains nine stored source files: the six of v1.0.1, the CRR-CCP extract and the BCBS 279 PDF (both added on 2026-10-18), and the CRE50 chapter (added on 2026-10-22). Release 1.0.2 relies on CRR-CCP, CRE50 and CRE54 for the trade exposures to a CCP (role CCP).

A source register records what the methodology was checked against. It is not a legal opinion, and citing a text does not validate the numbers the engine produces from it; that is the job of the test cases.

โš–๏ธ Legal status and scope

  • CRR and delegated regulations: binding EU legislation. The authentic acts are those published in the Official Journal; consolidated EUR-Lex texts are reference tools with no legal effect of their own.
  • Basel Framework and BCBS publications: international prudential standards and supporting material, implemented through the relevant jurisdiction's rules; they do not override the EU CRR.
  • EBA Single Rulebook Q&As: non-binding interpretations that support consistent application; they do not amend or replace the legislation.

The register below covers the sources formally recorded for the implementation and its documented methodology/clearing analysis. It is not an exhaustive bibliography of every SA-CCR-related rule or Q&A. Contextual references used elsewhere in the wiki are identified separately below.


๐Ÿ“š Source register

Code, the traceability table and the test cases cite sources by these IDs. Reference values may only be taken from a source in this register; a new source gets a row before it is cited, and a later version of a text is a new row, not an edit.

ID Source Relied on for Version / date Checked
CRR Regulation (EU) No 575/2013, Part Three, Title II, Chapter 6, Section 3 (Articles 274โ€“280f), as amended by Regulation (EU) 2019/876 and Regulation (EU) 2024/1623 (official text) SA-CCR exposure value, replacement cost, PFE, add-ons Consolidated text of 26.06.2026 (version 021.001), EUR-Lex Articles 274(2)โ€“(7), 275, 277, 277a, 278(3), 279aโ€“279c, 280โ€“280f and 285(2)โ€“(5) on 2026-10-09; Article 278(1)โ€“(2) on 2026-10-10 in the EUR-Lex PDF
CRR-RTS Commission Delegated Regulation (EU) 2021/931, as amended by Delegated Regulation (EU) 2025/855 (official text) Supervisory delta and lambda shift of interest-rate and commodity options Consolidated text of 25.05.2025 (version 001.001), EUR-Lex Article 5 on 2026-10-09. Articles 1โ€“4 and 6 not checked (see below)
EBA-QA-2023_6962 EBA Single Rulebook Q&A 2023_6962 (official text) Collateral C in the cap on the exposure value of a margined netting set (CRR Art. 274(3)): NICA Final, published 15/03/2024 Answer checked 2026-10-10
BCBS Basel Framework, chapter CRE52, Standardised approach to counterparty credit risk (official text) Basel SA-CCR Effective 1 January 2023, last updated 5 June 2020 Paragraph locators and the CRE52.72 table on 2026-10-09
CRE50 Basel Framework, chapter CRE50, Counterparty credit risk definitions and terminology (official text) Definition of a qualifying CCP (CRE50.3), which a BCBS netting set with role CCP declares in NettingSets column R; the status is the user's attestation, and K-SACCR states the risk-weight rule it sets without applying it Effective 15 December 2019, updated for the FAQ published 5 July 2024 CRE50.2 to CRE50.4 on 2026-10-22
CRE54 Basel Framework, chapter CRE54, Capital requirements for bank exposures to central counterparties (official text) Client-clearing MPOR and the wider clearing-coverage analysis. The workbook uses at least 5 days for a clearing member facing its client and a conservative 10-day floor for a BCBS client; see the interpretation below. Trade exposures to a CCP (role CCP): the 10-day floor (CRE54.8(2)), the horizon where the CCP retains VM and the collateral is not protected (CRE54.8(3)), and the risk-weight rules stated on Checks, 2% for a QCCP (CRE54.7) and the standardised weight for a non-qualifying CCP (CRE54.41) Effective 1 January 2023, published 27 March 2020 CRE54.8, CRE54.12 and CRE54.14 on 2026-10-16; CRE54.15โ€“.17 on 2026-10-18; CRE54.1โ€“.42 read for clearing coverage on 2026-10-18; CRE54.7, .8 and .41 checked again on 2026-10-22
CRR-CCP Regulation (EU) No 575/2013, Article 4(1)(88)โ€“(91) and Part Three, Title II, Chapter 6, Section 9 (Articles 300โ€“311), as amended by Regulation (EU) 2019/876 (official text) Exposures to central counterparties: the clearing coverage and, for role CCP, the MPOR floor and horizon of trade exposures (Art. 304(3)(b), (d)), the QCCP status of column R (Art. 4(1)(88)) and the risk-weight rule stated on Checks (Art. 306(1)); default-fund contributions are not calculated Consolidated text of 26.06.2026 (version 021.001) Articles 4(1)(88)โ€“(91) and 300โ€“311 on 2026-10-18
BCBS-279 BCBS, The standardised approach for measuring counterparty credit risk exposures (2014) (official text) Background; Annex 4a worked examples (printed pages 22โ€“30) March 2014, revised April 2014 Example 4 on 2026-10-09; stored copy registered 2026-10-18
CRE99 Basel Framework, chapter CRE99, Application guidance: the SA-CCR worked examples (official text) Published values of the cre99-example-* cases, in USD thousands; intermediate results unrounded, displayed results and final EAD rounded (CRE99.20); 250 business days a year (CRE99.28) Effective 1 January 2023, published 27 March 2020 The values used by Examples 1โ€“5 on 2026-10-09

CRE54 was registered on 2026-10-16 for the client-clearing MPOR review. On 2026-10-18, CRR-CCP was added for the clearing-coverage analysis and a stored copy of the already registered BCBS-279 source was added. CRE50 was added on 2026-10-22, with a stored copy, for the QCCP status of role CCP. An independent expected value can come only from an external implementation registered as a source with an ID starting IMPL-; none is registered. A source's registration date, a copy's retrieval date and a rule's checking date describe different events.

What each source is used for, in practice
ID Typical citation Example
CRR CRR.<article>[.<paragraph>] CRR.275.1 for the unmargined RC; CRR.280a for the interest-rate add-on
CRR-RTS CRR-RTS.<article> CRR-RTS.5 for the lambda shift (T20, T23)
BCBS CRE52.<paragraph> CRE52.18 for the margined RC; CRE52.57 for the interest-rate add-on
CRE50 CRE50.<paragraph> CRE50.3 for the definition of a QCCP behind NettingSets column R
CRE54 CRE54.<paragraph> CRE54.12 for the clearing member's 5-day MPOR floor; CRE54.8 for the 10-day floor and retained-VM horizon of a CCP netting set
CRR-CCP Rule IDs such as CRR.304.3 Art. 304(3)(b) and (d) for the MPOR floor and retained-VM horizon of a CCP netting set (illustrative-ccp-*)
CRE99 Example and paragraph Example 5, CRE99.83 for the MPOR of 14 days (T11)
EBA-QA-2023_6962 The Q&A ID The cap on exposure value, using NICA in the unmargined calculation, in illustrative-posted-vm-cap.crr (T17, T18)
BCBS-279 Annex 4a page Example 4, page 29, alongside CRE99.77โ€“.79 (T08โ€“T10)

๐Ÿ”Ž The sources one by one

๐Ÿ‡ช๐Ÿ‡บ CRR, consolidated text of 26.06.2026

The consolidated reference text of the CRR. It is a documentation tool with no legal effect, as its first page states: the authentic legal acts are those published in the Official Journal. K-SACCR's CRR regime follows it; where a rule is the same as Basel, the code carries both identifiers. K-SACCR implements SA-CCR under Articles 274โ€“280f for the instruments and netting-set structures in its documented support matrix, and relies on the definitions (Article 272) and the margin period of risk (Article 285(2)โ€“(5)). Article 273a (conditions for the simplified methods), Article 281 (simplified SA-CCR) and Article 282 (original exposure method) are in the extract as context only; K-SACCR does not implement them. The copy in the repository is an extract of the official consolidated PDF: page 1, pages 379โ€“417 (Articles 271โ€“282 and the start of 283) and pages 421โ€“423 (Article 285 and the start of 286), cut without changing the pages.

๐Ÿ‡ช๐Ÿ‡บ CRR-CCP, definitions and exposures to central counterparties

This entry uses the same consolidated CRR version as CRR, with a separate extract: page 1, page 22 (including Article 4(1)(88)โ€“(91)) and pages 441โ€“449 (Articles 300โ€“311). It was added on 2026-10-18 for CLEARING_COVERAGE.md.

The coverage analysis distinguishes clearing members, clients, CCP-facing netting sets and multi-level arrangements; QCCP status; trade exposures; collateral protection; retained variation margin; and default-fund contributions. From 1.0.2 a clearing member's trade exposures to a CCP are calculated with its rules (role CCP): the 10-day MPOR floor (Art. 304(3)(b)), the per-trade horizon where the CCP retains VM (Art. 304(3)(d)) and the QCCP status of Art. 4(1)(88). Risk weights (Art. 306(1)) are stated on Checks, not applied, and default-fund capital (Art. 307โ€“310) and the cap of Art. 303(2) are not calculated (#400).

๐Ÿ‡ช๐Ÿ‡บ CRR-RTS, Delegated Regulation (EU) 2021/931

The Commission delegated regulation adopting regulatory technical standards under the CRR, based on EBA draft standards. As amended by Delegated Regulation (EU) 2025/855, its Article 5 gives the supervisory delta of interest-rate and commodity options with a lambda shift, so that negative rates and prices can be handled: ฮป = max(0.10% โˆ’ min(P, K), 0) for interest rate and ฮป = max(โˆ’(1 + 0.1) ร— min(P, K), 0) for commodity, with option volatilities of 50% (interest rate), 70% (commodities other than electricity) and 150% (electricity). P is the underlying spot or forward price, K the strike; rates are expressed consistently as decimals. See Potential Future Exposure.

๐Ÿ‡ช๐Ÿ‡บ EBA Q&A 2023_6962

A final EBA answer on CRR Article 274(3): when the exposure of a margined netting set is capped at that of the same netting set without a margin agreement, the replacement cost of the cap follows Article 275(1), and NICA in that formula "does not include the variation margin posted or received". The repository holds a Markdown transcription of the question, background and final answer, with altered layout, EBA_QA_2023_6962.md. The final answer is the EBA interpretation; the submitter's question and background are not EBA conclusions. An EBA Q&A is non-binding and does not replace the CRR. The earlier EBA question 2022_6354, rejected in 2022 without an answer, is not a source: the prototype's posted-VM scenario came from it, and its expected values are only illustrative. See Replacement Cost and Collateral.

๐ŸŒ Basel CRE52

The Basel standard for SA-CCR, with its FAQs. The BCBS regime follows it. Paragraph numbers were checked for EAD and alpha (.1), the cap (.2), RC (.10, .18), PFE (.20), the multiplier (.22โ€“.23), the aggregate add-on (.25), supervisory duration (.34), adjusted notional (.35, .36), delta (.39, .40, .41), basis and volatility (.46, .47, .73), maturity factor (.48โ€“.49, .52โ€“.53), MPOR (.50, .51), interest rate (.56, .57), FX (.58, .59), credit (.60, .61, .64), equity (.65, .66, .68), commodity (.69, .70) and the parameters (.72).

๐ŸŒ Basel CRE50

The Basel chapter of counterparty credit risk definitions. Registered on 2026-10-22, with a stored copy, for the definition of a qualifying CCP (CRE50.3): a CCP licensed and supervised in a jurisdiction that applies rules consistent with the PFMI. A BCBS netting set with role CCP declares it in NettingSets column R, so a CCP outside the EU can be Y for a BCBS netting set; under CRR the status follows Art. 4(1)(88). The status is the user's attestation and changes the risk weight, not the exposure value.

๐ŸŒ Basel CRE54

The Basel chapter on exposures to central counterparties. The engine uses it for client-clearing MPOR floors and, from 1.0.2, for trade exposures to a CCP: the 10-day floor (CRE54.8(2)), the horizon where the CCP retains VM (CRE54.8(3)) and the risk-weight rules stated on Checks (CRE54.7, CRE54.41). The methodology also relies on its wider provisions for the clearing-coverage inventory: the register records CRE54.1โ€“.42 as read on 2026-10-18. This additional analysis is not an implementation of all those rules.

CRE54.12 permits a clearing member to use an MPOR of at least five days for its exposure to its client. For a bank as client, CRE54.14 extends the CCP treatment to qualifying client exposures subject to CRE54.15. Its two conditions concern:

  1. Protection of client transactions and collateral against losses from the clearing member's default, its other clients' default and their joint default, including the required legal review and enforceability of the arrangements.
  2. Continuity/portability: the arrangements make it highly likely that the offsetting transactions continue through the CCP following the clearing member's default, with client positions and collateral transferred as prescribed. A mere absence of a contractual prohibition on porting is insufficient.

CRE54.16 provides a 4% risk weight where only joint-default protection is missing and the other conditions are met. CRE54.17 requires bilateral capitalisation where the qualifying client treatment is unavailable. The 10-day minimum in CRE54.8(2) is stated for OTC trade exposures to CCPs.

K-SACCR's BCBS client floor is a conservative interpretation. CRE54.2 requires both parties to capitalise the clearing-memberโ€“client leg of an exchange-traded derivative under a bilateral agreement as an OTC derivative; its footnote also refers to CRE54.12. The latter expressly grants five days to the clearing member, while CRE54.14โ€“.17 address the client's treatment. K-SACCR retains ten days for the client and five for the clearing member; it does not present the ten-day choice as an unqualified rule for every cleared product. The rationale and accepted decisions are in the clearing coverage.

K-SACCR does not determine whether the client eligibility conditions are met or calculate the associated risk weights. The user must establish the arrangement. See Margining and MPOR, #358 and #359.

๐ŸŒ CRE99 and BCBS 279

CRE99 prints the five SA-CCR worked examples first published in Annex 4a of BCBS 279 (2014). Their printed figures are the only published reference values of v1.0.2 (T01โ€“T14). Every published value is cited from CRE99. BCBS 279 is registered for background and for Example 4; its 37-page PDF (March 2014, revised April 2014), from the BIS publication page, is kept with the other copies. It was added from a local copy; the source README records that a fresh BIS download for byte comparison was unavailable when it was added. See Worked Examples.


๐Ÿ” Copies and hashes

The repository keeps a copy of every checked version in docs/methodology/sources/, so a citation can be checked without searching for the right version. These are documentation copies: the authentic EU texts are those in the Official Journal of the European Union, and the authoritative Basel text is the one on bis.org. The copies are not covered by the repository's licence; each stays under its publisher's terms. The BIS terms and conditions allow BIS material to be downloaded and redistributed for non-commercial purposes.

File Source ID Version Retrieved SHA-256
CRR_575-2013_consolidated_2026-06-26_extract.pdf CRR 26.06.2026, version 021.001 2026-10-10 11471b9b93be3e2c7b485bfac84d220dfdb65fdc0f8ebb363446c5bc91dae78d
CRR-RTS_2021-931_consolidated_2025-05-25.pdf CRR-RTS 25.05.2025, version 001.001 2026-10-10 f6a06f62b15f2bc261535cc6b269130955a2d0564b93b78e50eb81e674462f99
BCBS_CRE52_effective_2023-01-01.pdf BCBS Effective 1 January 2023, last updated 5 June 2020 2026-10-10 6ce15b86f1c67692e16806ae76df6bd97c8f19820a72c7ceb7ddac78b509c111
BCBS_CRE99_effective_2023-01-01.pdf CRE99 Effective 1 January 2023, published 27 March 2020 2026-10-10 f0d86acfe451699d7c3d783822e2372b180798b3e4fdd7b4018524ba8a937855
BCBS_CRE54_effective_2023-01-01.pdf CRE54 Effective 1 January 2023, published 27 March 2020 2026-10-16 44d8c361e8d5d827d8ebcde630024f3b6ed0de6efdda09cb5f43e010e85895d4
CRR_575-2013_consolidated_2026-06-26_extract_CCP.pdf CRR-CCP 26.06.2026, version 021.001 2026-10-18 73acdbba784b73e9a6c47f48008523340a5818124f3b7b6f1416de784191e047
BCBS_CRE50_effective_2019-12-15.pdf CRE50 Effective 15 December 2019, updated for the FAQ published 5 July 2024 2026-10-22 f3fb4b51b278c98dff1840bfbd1cc4f8dd5ea678aa0bdd51ef584152acbd342a
BCBS_279_revised_2014-04.pdf BCBS-279 March 2014, revised April 2014 2026-10-18 5f17fea239b28bc4cf152b11d3c44284b8f2dcc5e6c034a9e2f38dad1ede0b0f
EBA_QA_2023_6962.md EBA-QA-2023_6962 Final, published 15/03/2024 2026-10-10 9eea2133a5ae404a80ef8c234b764d5c64db94b22059c0810fa618babfc37abb

Both CRR extracts were cut from the full consolidated PDF, whose own SHA-256 is 6796302ed4213bcba4d4b9b17dc48aefcaf7ef586b875c30c8c71a7689288ecf (895 pages). The addresses each file was retrieved from are in the sources README.

โœ… Verifying a copy

Run this from the repository root (it works on Windows too) and compare the output with the table:

python -c "import glob,hashlib;[print(hashlib.sha256(open(f,'rb').read()).hexdigest(),f) for f in sorted(glob.glob('docs/methodology/sources/*')) if not f.endswith('README.md')]"

Verification on 2026-10-18: the eight source files then in the main collection were retrieved and their SHA-256 hashes recomputed; all eight matched the table above. The six source files in the v1.0.1 tag have the same Git blob identities as their corresponding files in that collection; the two additional stored files were the CCP extract and BCBS 279 PDF. The CRE50 copy, the ninth file, was added with its hash on 2026-10-22 and is in the v1.0.2 tag.

A matching hash verifies that the stored bytes match the registered copy; it does not by itself establish regulatory interpretation, numerical correctness or that a newer official version has not been published.

๐Ÿ“ Rules for the copies

  • Never edit or reformat a copy, including EBA_QA_2023_6962.md: a changed byte breaks its registered hash.
  • Never replace a file. A newer version is added next to the old one, with its own row in the table and in the register.
  • A fresh Basel chapter PDF may have a different hash. Generated PDFs can contain download-time metadata. The registered hash identifies the archived file; compare the chapter version and substantive text when checking a fresh official download.

๐Ÿท๏ธ Evidence labels

Every expected value in tests/expected/ carries exactly one reference class (TEST_CASES.md). Only the first two qualify as numerical-validation references under the project's policy. Regression, boundary and rejection tests are evidence too, that the software behaves as specified, but not that a figure is correct.

Class Meaning In v1.0.2
published Printed in a registered source, with an exact locator, compared within half a unit of the last printed digit The 14 CRE99 values T01โ€“T14, all Basel
independent Computed by an external implementation by another author, registered as a source with an ID starting IMPL-, from the same inputs; a published value never cites one None: no external implementation is registered. Planned with a second source in #100
illustrative Shows a format or a behaviour; not a validated SA-CCR figure Every other value: T15โ€“T28 and the uncatalogued cases, including every CRR value and the clearing, CCP and settled-to-market values of 1.0.2

An illustrative value can come from a hand calculation, from a Python implementation that is not in the repository, from a separate derivation in tests/derivations/ that shares no code with the engine (the clearing, CCP and settled-to-market cases), or from the engine's own contract (such as a status). From 1.0.2 no independent review is required: a value derived within the project stays illustrative, and only an external implementation registered as a source can make it independent (#410). A source check, such as the 18% factor for climatic conditions checked against CRR Art. 280e(5), is not a numerical validation either.

Checking the law and validating numbers are different things. The CRR provisions K-SACCR applies have been checked against the registered sources; CRR-specific numerical validation remains incomplete under the project's evidence policy, because no published or independent CRR value exists yet. The published CRE99 tests substantiate the Basel cases and the calculation paths they exercise; they do not establish a comprehensive validation of the Basel framework either.


โš ๏ธ What is not checked

Item Status Consequence
CRR-RTS Articles 1โ€“4 (primary risk driver and risk-category mapping) and 6 (long or short position) Not checked The engine does not apply them: the user maps each leg of a transaction to its risk category and direction (#38)
Collateral eligibility and haircuts (CRR Art. 276 and the CRR collateral rules, such as Art. 223; the Basel credit risk mitigation framework) Cited, not checked: the Basel_vs_CRR sheet marks this row CITED Collateral is an input after haircuts; eligibility is the user's
CRE52 provisions beyond the original locator list Check the traceability table and clearing coverage for their individual status The clearing analysis also cites settlement/reset provisions, including CRE52.31โ€“.32 and .37(5). A rule ID CRE52 without a paragraph indicates an unresolved locator, not that all other paragraphs are unchecked
BCBS 279 Registered and copied; only Example 4 is checked Every published value is cited from CRE99
Fresh bis.org chapter-PDF downloads May differ byte for byte because of generated metadata Compare versions and substantive text; use the registered hash to verify the archived file

๐Ÿงญ Contextual references and remaining source coverage

The following references explain the wider framework. They are not additional implemented methods, and are not new source IDs in the formal register. The full official CRR consolidated text contains provisions outside the stored SA-CCR and CCP extracts.

Context Reference Boundary
Eligibility for simplified methods CRR Art. 273aโ€“273b; methods in Art. 281โ€“282 Context only; simplified SA-CCR and OEM are not implemented in v1.0.2
Legal recognition of netting CRR Art. 295โ€“298; Basel CRE52.7โ€“.8 and definitions in CRE50 The user establishes legal recognition. The stored CRR extracts do not cover Art. 295โ€“298; CRE50 is registered from 1.0.2, but only CRE50.2โ€“.4 (the QCCP definition) were checked
Collateral recognition CRR Art. 276 and applicable credit risk mitigation provisions; Basel credit risk mitigation framework, including CRE22 Eligibility and haircut derivation are not implemented; the workbook takes collateral after haircuts. CRE22 is not yet a registered archived source
Leverage-ratio derivative exposure CRR Art. 429c A separate calculation context, not implemented; the article is outside the stored extracts
Output-floor transition CRR Art. 92 and 465(4) Context only, not implemented; these articles are outside the stored extracts

References discussed in the overview are not evidence that the corresponding calculation is supported. A future implementation must record its source, exact version, relied-on provisions and checking status in the repository's register before using it. This page records a fixed reference collection; maintaining it also requires checking for amendments, updated Q&As and changes to the Basel FAQs rather than relying on a retrieval date alone.


๐Ÿ”— Related

๐Ÿฆ K-SACCR

โš–๏ธ Regulation

๐Ÿงฎ Workbook


๐Ÿ“Œ Guide, not policy: the repository documents govern.

Clone this wiki locally