Repository navigation
Open Items and Limitations
๐ Guide, not policy. The CHANGELOG, the support matrix and the linked issues govern; issue state can change after this snapshot, and where this page differs, the repository wins.
-
Version 1.0.2 is released. The annotated tag
v1.0.2is on commitcfb88e5, and the GitHub Release carries the production workbookK-SACCR_1.0.2.xlsm(SHA-2561ed00eba852d659b121419846e2c6f1e665ed15353f069bc7ffeea96b8ce4f3f), the user manualK-SACCR_User_Manual_1.0.2.pdfandSHA256SUMS.txt. Check the hash before unblocking the workbook (INSTALLATION.md โบ Released workbook). -
What 1.0.2 adds (clearing coverage and CCP trade exposures): a clearing
member's trade exposures to a CCP, role
CCPwith the NettingSets columns R QCCP (Y/N) and S CCP retains VM, collateral not protected (Y/N) (#112, part (a)); settled-to-market trades, with the Trades columns AB Settlement type (N/STM) and AC Next reset date, Comment moving to AD (#360); roleMULTI, which rejects a multi-level client structure, and an INFO line on Checks for everyCM,CLIENTandCCPnetting set (#359); a light-red highlight ofINVALIDandINCOMPLETErows on Results; and the clearing coverage specification (#358) with its closing evidence (#361). A portfolio entered as in 1.0.1, with the new columns blank, gives the same EAD; the new columns change the layout of both input tables (see Getting Started โบ Moving inputs from 1.0.1). - Development continues on the
active release branch;
release/1.0.0,release/1.0.1andrelease/1.0.2are closed. Behaviour on the release branch can change until the next release; use thev1.0.2tag or its workbook for stable results. - The engine implements EU CRR and Basel CRE52; only Basel rules covered by a published CRE99 output are validated (T01โT14). CRR rules, and the client-clearing, CCP and settled-to-market rules of both regimes, are implemented and tested against illustrative values, not validated.
| Item | Result at cfb88e5
|
|---|---|
| Host | Excel for Microsoft 365, Version 2608 (Build 16.0.20326.20072), 64-bit, Windows 11 Enterprise 25H2 x64 |
| Compile | PASS |
| Full regression | All eight suites PASS, each run on its own: 288 cases, 1,283 checks |
| Evidence validator | PASS |
| Release workbook source round trip |
PASS: K-SACCR_1.0.2.xlsm (production) holds exactly the source of the tag, 24 components, 0 differences, binding=VERIFIED
|
| Development workbook source round trip |
PASS: the certified development workbook holds exactly the source of the tag, 35 components, 0 differences, binding=VERIFIED
|
| Deviation | A first attempt failed TEST_MainState on a recalculation interrupted in the Excel session; it is kept in the evidence. A second attempt on a fresh workbook from the template passed every suite; no code changed between the attempts |
๐งพ Release 1.0.1 certification โ #308
| Item | Result at 31222d1
|
|---|---|
| Compile | PASS |
| Full regression | All eight suites PASS, each run on its own: 230 cases, 1,033 checks |
| Evidence validator | PASS with the candidate's own policy; no deviation |
| Release workbook source round trip |
PASS: K-SACCR_1.0.1.xlsm holds exactly the source of the tag, 24 components, 0 differences, bound to the workbook |
| Development workbook source round trip | PASS: the certified development workbook holds exactly the source of the tag, 35 components, 0 differences, bound to the workbook |
| Published workbook | Downloaded from the release, hash checked, unblocked and used as a user would: Validate, Run, Clear, save and reopen, an evidence export, and a refused export after an edited output |
๐งพ Release 1.0.0 certification โ #46
| Item | Result at 87194e8
|
|---|---|
| Compile | PASS |
| Full regression | All eight suites PASS, each run on its own: 228 cases, 1,001 checks |
| Release workbook source round trip |
PASS: K-SACCR_1.0.0.xlsm holds exactly the source of the tag, 24 components (7 standard + 17 document), 0 differences |
| Evidence validator |
Declared deviation: against the evidence policy at the tag, the validator rejects the record (EVIDENCE_INVALID) only because that policy names TEST_InputValidation's first case without the input- prefix the suite prints. The same record validates PASS against the policy as corrected in #305, which ships in 1.0.1 |
| Supported-size measurements | Done (#291): 1,000 to 500,000 legs measured on the Windows 64-bit host, with an inflated UsedRange scenario; see Getting Started โบ Portfolio size |
The tag messages and the release notes record these certifications. A fix to a released version is published as a new patch release; a published release is never changed.
From the CHANGELOG's Known limitations, the README and the methodology's support matrix:
- Only Basel rules covered by a published CRE99 output are validated; no
CRR rule is validated in this release, and no client-clearing, CCP or
settled-to-market rule in either regime: their values are
illustrative, from the derivations intests/derivations/. There are noindependentexpected values; they can come only from an external implementation registered as a source (#100). - No automated check compiles VBA or runs Excel; Excel evidence is manual and covers one 64-bit Windows host. 32-bit is best effort and untested; Excel for Mac and for the web are not supported.
- Portfolio size: 500,000 legs calculated in under two minutes on one host; the Trades dropdowns and validation cover rows 5 to 5,000 only, and an inflated used range slows every run (portfolio size).
| Item | Treatment | Planned |
|---|---|---|
| Digital options | No digital instrument; option legs of one economic trade are an ordinary combination โ neither the CRR payoff-sized collar nor the BCBS cap of the effective notional is applied | #120 (v1.4.0) |
| Optional reductions for sold options and sold credit protection (CRR Art. 274(5), (7); CRE52.1 FAQ1โ2) | Not applied, which gives an exposure not lower than with them (equal where they would not bind) | โ |
| Several margin agreements in one netting set; one agreement over several netting sets | Declared as MIXED / SHARED and rejected
|
โ |
| Settled-to-market trades in a margined netting set | The netting set is rejected (INVALID: STM requires unmargined treatment; โฆ): an all-STM set is misclassified, a mixed set needs the CRE52.74 treatment, not implemented |
โ |
| Multi-level client structures | Declared with role MULTI and rejected; entered as CM or CLIENT, they cannot be detected |
โ |
| Risk weights of CCP trade exposures | Stated on Checks (2% for a QCCP; the standardised weight, to be determined outside K-SACCR, for a non-qualifying CCP), not applied | โ |
| Default-fund contributions to a CCP, their own funds requirements and the cap of CRR Art. 303(2) / CRE54.40 | Cannot be entered | Outside K-SACCR: K-Risk Engines |
| Simplified SA-CCR, original exposure method | Cannot be entered | #107 (v1.5.0), #111 (v1.6.0) |
| SFTs, CVA, RWA | Cannot be entered | Outside K-SACCR: SFTs in K-SFTs, RWA in K-Risk Engines, CVA risk in an engine of its own |
| The 1904 date system | The run stops | โ |
- Trade-level data, the mapping of risk drivers and of legs of
multi-risk trades (
CRR-RTSArticles 1โ4 are applied by the user, not checked), and input completeness. - Collateral eligibility and haircuts: VM and NICA are entered after haircuts, in reporting currency.
- FX rates: user-supplied; K-SACCR sources no market data (the template's rates are illustrative).
- One leg per FX trade: the notional is the leg you enter; choosing it when both legs are foreign is yours.
- FX options use a fixed quote order (EUR, GBP, AUD, NZD, USD, CAD, CHF, JPY; others alphabetically), which may differ from local market practice.
- Variable notionals: one notional and one maturity per row; averages and
leverage are entered by the user. Settled-to-market trades are declared
with
STMand their next reset date; whether a contract qualifies is the user's (daily variation margin alone is notSTM), and no exchange calendar is derived. - Unrated single names under CRR: enter
CQS3, orCQS5where Art. 128 applies, or the mapped step. - Client-clearing eligibility, the large-or-illiquid flag and legal netting.
- For a CCP: the role
CCP, its QCCP status and whether it retains VM without protecting the collateral are the user's declarations. Client trades the clearing member need not reimburse on the CCP's default are not entered. A CCP entered with roleNis calculated as bilateral and cannot be detected.
- One large or illiquid flag covers more than 5,000 trades and illiquid
collateral, so it also sets 20 days where the trade-count floor does not
apply, for example for a
CCPnetting set or a clearing member's eligible client netting set. - Under BCBS a client facing its clearing member keeps the 10-day floor, a conservative interpretation of the Basel text.
- After margin disputes the engine doubles F + N โ 1 in both regimes (see Margining and MPOR).
-
INVALIDandINCOMPLETEnetting sets have no EAD (their rows are highlighted in light red from 1.0.2); the totals cover each regime'sVALIDsets only and are never added across regimes. CCP trade exposures stay in their regime's total; Checks gives their share. - A workbook built from a 1.0.1 template stops at the header check with the 1.0.2 VBA: rebuild it from the new template.
- The synchronizer changes code only; a template change needs a rebuild.
- A comparison with a bank's figures is not independent validation.
Milestone assignment is planning, not delivery. The
milestones
hold the current scope; the table follows the README roadmap on main.
The v1.0.2 milestone was delivered with this release, with part (a) of #112.
K-SACCR's milestones stay with the derivatives exposure value and the
workbook that produces it. Securities financing transactions are developed
in K-SFTs; risk-weighted assets, capital and default-fund contributions to
CCPs in K-Risk Engines; CVA risk in an engine of its own.
| Milestone | Scope | Issues |
|---|---|---|
| v1.1.0 | CSV import and staging for Trades and NettingSets; workbook protection | #206 CSV contracts and templates ยท #207 deterministic CSV parsing ยท #208 staging worksheets ยท #209 validation linked to Checks ยท #210 corrections and repeatable Validate/Commit ยท #211 atomic commit with rollback ยท #420 protection of cells and structure ยท #421 protection lifecycle for macros ยท #422 protected workflows and maintenance unlock ยท #212 regressions, evidence and docs |
| v1.2.0 | Excel Ribbon interface | #213 RibbonX tab contract ยท #214 RibbonX XML in the build ยท #215 callbacks ยท #216 command availability ยท #217 remove the sheet buttons after parity ยท #218 certification ยท #330 Home landing page ยท #329 worksheet navigation sidebar ยท #357 Restore Parameter Defaults command |
| v1.3.0 | Diagnostics and independent validation | #220 engine separated from Excel I/O ยท #81 stable Checks codes ยท #100, #352 independent second-source cross-check ยท #165 randomised FormulaTest inputs ยท #259 formatted run report (XLSX or PDF) next to the CSV evidence |
| v1.4.0 | Advanced products and FX provenance | #120 digital options ยท #157 FX quote import with provenance ยท #328 TARGET holiday calendar |
| v1.5.0 | Simplified SA-CCR | #107 |
| v1.6.0 | Original exposure method | #111 |
| v1.7.0 | Standalone Python engine: the full SA-CCR without Excel, with its own reference tests, and a reconciliation of its intermediates and EAD with the workbook's | #450 to #459 |
- Validation Approach โ what is and is not validated
- Test Catalogue โ T01โT28 and the suites
- Basel vs CRR ยท Regulatory Basis
- Getting Started ยท Troubleshooting ยท Home
๐ฆ K-SACCR ยท โ๏ธ EU CRR ยท Basel CRE52 ยท ๐งช Published CRE99 checks T01โT14; CRR implemented, not numerically validated ยท ๐ฆ Release 1.0.2 published 2026-10-23 ยท ๐งฎ No real portfolio data ยท โก 500,000 synthetic trade legs in under two minutes ยท Repository ยท Validation Approach ยท Open Items
๐ฆ K-SACCR
โ๏ธ Regulation
- ๐ SA-CCR Overview
- ๐ Regulatory Sources
- ๐งญ Regulatory Basis
- ๐ก๏ธ Replacement Cost and Collateral
- โฑ๏ธ Margining and MPOR
- ๐ Potential Future Exposure
- โ๏ธ Basel vs CRR
- ๐งฎ Worked Examples
๐งฎ Workbook
- ๐ Getting Started
- ๐บ๏ธ Workbook Guide
- ๐ฅ Inputs
- ๐ค Outputs and Statuses
- ๐ Reconciliation and Evidence
- โ๏ธ How It Works
- ๐งพ Worksheet Functions
- ๐งช Test Catalogue
- โ Validation Approach
- ๐ ๏ธ Troubleshooting
- ๐ง Open Items and Limitations
๐ Guide, not policy: the repository documents govern.