Skip to content

Troubleshooting

Daniele Penza edited this page Oct 27, 2026 · 6 revisions

๐Ÿ› ๏ธ Troubleshooting

Section Host Checks

๐Ÿ“Œ Guide, not policy. INSTALLATION.md (its troubleshooting table) and tools/README.md govern; where this page differs, the repository wins.

Symptoms, what they mean and what to do, grouped by where you meet them. Message texts are quoted as the code at v1.0.2 writes them; โ€ฆ stands for the variable part. Suspected security problems go through SECURITY.md, not issues.


๐Ÿ” Macros and build

Symptom Cause What to do
Buttons do nothing, or "macros have been disabled" Macros not enabled for the file Open the .xlsm and click Enable Content, within your organisation's macro policy
"Microsoft has blocked macros from running because the source of this file is untrusted" The file carries the downloaded-from-internet mark Close it, right-click โ†’ Properties โ†’ tick Unblock, reopen (the README sheet's step 1). For the released K-SACCR_1.0.2.xlsm, check its SHA-256 against SHA256SUMS.txt first (INSTALLATION.md โ€บ Released workbook)
Buttons say the macro cannot be found M_Main not imported, or the workbook saved as .xlsx Save as .xlsm; import M_Main (and the other production modules)
Compile error or missing procedure Components from different commits, or an extra reference Re-import everything from one commit; keep only the four default references
"Ambiguous name detected" A duplicate or older copy of a module (for example ThisWorkbook1, or an old M_Engine) Remove the duplicate; never import a .cls document module โ€” paste its code
A production workbook holds TEST_ modules A production synchronization never removes modules Build it again from the template
Garbled accented characters after import Module copied from a browser or re-saved in another encoding Import the file from a Git clone

๐Ÿ”Œ Sync launcher messages

Message Meaning What to do
No workbook given. Drag the .xlsm workbook onto this file, or run: Sync-SACCR-VBA.cmd <path to workbook> The launcher was started without a workbook (for example by double-click). It has no default workbook and exits with code 1 Drag the closed .xlsm onto tools/Sync-SACCR-VBA.cmd, or pass its full path
ERROR: Workbook not found: The path does not exist Check the path; quote it if it has spaces
WorkbookPath must point to an .xlsm file. An .xlsx or other file was given Save the template as Excel Macro-Enabled Workbook first
Cannot access the VBA project. Enable Excel Trust Center > Macro Settings > 'Trust access to the VBA project object model' and ensure the VBA project is not password-locked. The setting is off, or the project is locked Turn the setting on (File โ†’ Options โ†’ Trust Center โ†’ Trust Center Settings โ†’ Macro Settings), or import by hand instead; turn it off again afterwards if you enabled it only for the build
Workbook opened read-only. Close any other Excel instance using it. The workbook is open elsewhere Close it in every Excel window and retry
Cancelled: the workbook was not changed. (exit code 2) An answer other than P/D, or N to an import confirmation Run again and answer P or D
Nothing else to import: the workbook was not changed. You answered N to the sheet modules with nothing else to import Answer Y, or run a full synchronization
Retired repository component 'โ€ฆ' found. Rebuild from the current template and source; no VBA changes have been made. The workbook holds a module from an old layout (M_Config, M_Engine, M_Util, M_Formulas, โ€ฆ) Build a new workbook from the current template
Component not listed in tools\vba-projects.json: โ€ฆ A .bas/.cls in src/ or tests/modules/ that the manifest does not list Use a clean checkout of one commit
FAILED: SACCR VBA synchronization returned exit code N. Any failure above; the *.pre-vba-sync.* backup is kept Read the message printed before it

๐Ÿ›‘ Run stops

A run that cannot load its inputs reports SA-CCR run stopped - see the Checks sheet. (RESULT=STOPPED in silent mode) and brings Checks forward. Errors raised by the macros appear as Unexpected error <number>: โ€ฆ.

Message Cause What to do
Workbook name 'โ€ฆ_Header' is missing or no longer refers to the first header cell, in column C, of โ€ฆ - rebuild the workbook from the template. (ERR_OUTPUT_LAYOUT for an output table, a Checks line for an input table) The workbook was built from a template older than the *_Header names (#253), or a name was deleted or moved out of column C Rebuild the workbook from the current template and copy your inputs in; syncing VBA does not add names
Workbook name 'โ€ฆ' is missing or no longer refers to a cell (#REF!); every parameter is read through its name. A Params name was deleted Rebuild from the template, or restore the name
Header must be 'โ€ฆ' (found โ€ฆ) - a column was inserted, deleted or moved, or the header renamed. Columns of NettingSets or Trades changed Undo the column change; the engine reads by column number
The same message for QCCP (Y/N) or Settlement type (N/STM) A workbook built from a 1.0.1 or earlier template, run with the 1.0.2 VBA: it lacks NettingSets R:S or Trades AB:AC (from 1.0.2) Rebuild from the 1.0.2 template and move the inputs by header (Getting Started โ€บ Moving inputs from 1.0.1)
Excel did not finish recalculating the inputs, so the operation was not started and the previous results are no longer reported as current. (ERR_RECALC_PENDING) The pre-run recalculation was interrupted (for example with Esc) or did not finish Let Excel finish (F9 in manual calculation), then Run SA-CCR again
The workbook uses the 1904 date system, which is not supported. Clear 'Use 1904 date system' in File > Options > Advanced and check the dates. The workbook (often one that came from a Mac) uses the 1904 system Clear the option and check every date, as the message says: the same serial number means a different date in the two systems (about four years apart)
Rate of the reporting currency must be 1 (found โ€ฆ): rates are units of the reporting currency per unit (#41). The FX table gives the reporting currency a rate other than 1 Set it to 1; rates are units of reporting currency per unit
Reporting date missing or not a date (enter a date, or text in the form yyyy-mm-dd; found โ€ฆ) AsOfDate blank or locale-dependent text Enter a real date or yyyy-mm-dd
Reporting currency must be three letters A to Z, e.g. EUR (found โ€ฆ) / Reporting currency missing. ReportingCcy invalid Enter a three-letter code
โ€ฆ must be from โ€ฆ to โ€ฆ (found โ€ฆ). A Params value outside its range Correct it (see Inputs)
Parameter listed twice with different values (rows โ€ฆ and โ€ฆ). A code appears twice on Params Delete one row
โ€ฆ row below a blank row - not read; remove the blank row. A blank row inside SF_Table or FX_Table Remove the blank row
The IR bucket correlations โ€ฆ do not form a valid correlation matrix โ€ฆ Inconsistent IRCorrBucket* values Restore 0.7 / 0.7 / 0.3 or a valid set
No netting sets defined. / No valid netting sets. / No trades found. Empty or fully invalid inputs Enter inputs
An SA-CCR operation is already running. A button pressed during a run Wait for the first operation
The Checks sheet could not be written (โ€ฆ); results withdrawn โ€ฆ (ERR_CHECKS_WRITE) Checks protected or damaged Unprotect or repair Checks and run again
Excel settings could not be restored: โ€ฆ Calculation mode, events or screen updating could not be put back Check them under Formulas โ†’ Calculation Options; restart Excel if needed

๐Ÿšฉ Common Checks messages

Rejected trades (ERROR, Trade excluded: โ€ฆ)

A trade is listed once with all its reasons. Its netting set becomes INCOMPLETE and its EAD is withheld โ€” fix the trade rather than reading an EAD from the rest.

Reason in the message What to do
trade has matured (maturity <= reporting date) Remove the trade or correct M / the reporting date
MtM missing (enter 0 if the trade has no value) Enter the MtM, 0 if none
unknown netting set 'โ€ฆ' Add the netting set or correct the ID
duplicate Trade ID (first used on row โ€ฆ) Give each leg a unique ID
โ€ฆ is not a date (found โ€ฆ) Enter a date or yyyy-mm-dd, not locale text
no FX rate for notional currency 'โ€ฆ' / no FX rate for currency 'โ€ฆ' of the pair โ€ฆ Add the currency to the FX table
notional currency 'โ€ฆ' is not a currency of the pair โ€ฆ Enter the notional of one leg, in that leg's currency
FX option must be entered in market quote order as โ€ฆ Enter e.g. USD/JPY, not JPY/USD, with price and strike in that quote
an interest-rate or credit option needs the start date S of its underlying โ€ฆ Enter the swaption's exercise date (earliest if Bermudan) or the cap/floor's first period start
option expiry is after the maturity date โ€ฆ / option has expired Correct T or M
price and strike must be > 0 after lambda shift (BCBS: enter lambda per CRE52.40 FAQ) Under BCBS, enter a Lambda shift on the trade
asset class OT (other risks) exists only under CRR โ€ฆ Map the trade to its primary risk driver's class under BCBS, or use CRR
no supervisory factor for 'โ€ฆ' (check sub-class) Use a sub-class that exists in the factor table for the regime
interest-rate risk factor must be a 3-letter currency code such as EUR, or EUR-INFL for inflation Correct the risk factor
exactly one leg must be the MtM leg (MtM leg = Y), found โ€ฆ / โ€ฆ must be 0 (found โ€ฆ) / its legs are in different netting sets (โ€ฆ) Fix the economic trade: one Y leg carrying the MtM, the others N with MtM 0, all in one netting set
a settled-to-market trade (STM) needs its next reset date / a next reset date is given but the settlement type is not STM โ€ฆ / settlement type must be N, STM or blank (found โ€ฆ) (from 1.0.2) Enter STM with its reset date, or clear the reset date of an ordinary trade
next reset date must be after the reporting date (the MtM is the value after that day's settlement) / next reset date is after the maturity date (from 1.0.2) Enter the first reset after the reporting date, not after M; M stays the contractual maturity
its legs have different settlement types (โ€ฆ) / its legs have different next reset dates (from 1.0.2) Give every leg of the economic trade the same settlement type and reset date
Row has trade data but no Trade ID - trade rejected. Give the row an ID, or clear it completely

Withheld netting sets (ERROR, EAD withheld: โ€ฆ)

Message Status on Results What to do
EAD withheld: N trade(s) rejected - see the Trades messages. INCOMPLETE: N of M trade(s) rejected Fix the rejected trades listed above it
EAD withheld: N invalid netting-set field(s). INVALID: N input error(s) Fix the NettingSets fields reported for that ID (Y/N flags, negative TH or MTA, regime, MIXED/SHARED, VM on an unmargined set, the CCP columns, โ€ฆ)
QCCP (Y/N) is required for Client clearing role CCP. / CCP retains VM (Y/N) is required for Client clearing role CCP. (from 1.0.2) INVALID: N input error(s) Enter Y or N in R and S of the CCP netting set
QCCP applies only to Client clearing role CCP - leave it blank (found โ€ฆ). / CCP retains VM applies only to Client clearing role CCP - leave it blank (found โ€ฆ). (from 1.0.2) INVALID: N input error(s) Clear R and S on every netting set that is not CCP
CCP retains VM is Y on an unmargined netting set: variation margin needs Margined = Y. (from 1.0.2) INVALID: N input error(s) Set Margined = Y, or S = N
A multi-level client structure is not supported (CRE54.14(3); CRR Art. 305(4)). (from 1.0.2) INVALID: multi-level client structure, not supported Role MULTI is not calculated; K-SACCR does not model multi-level client structures
Trade โ€ฆ is settled-to-market (STM) in a margined netting set: STM requires unmargined treatment; mixed margined/unmargined netting sets are not supported (CRE52.74; CRR Art. 274(4)) - netting set INVALID, EAD withheld. (from 1.0.2) INVALID: STM requires unmargined treatment; mixed margined/unmargined netting sets are not supported Enter settled trades in an unmargined netting set; do not declare daily VM as STM
Reference 'โ€ฆ' โ€ฆ on another trade of the netting set - netting set INVALID, EAD withheld. INVALID Give the entity or commodity one sub-class
IRBucketOffset is FALSE, but the CRR allows only the formula with offsets across maturity buckets (Art. 280a(3)) - netting set INVALID, EAD withheld. INVALID Set IRBucketOffset to TRUE, or use BCBS
Netting set ID listed twice - row ignored and EAD withheld. INVALID Make the IDs unique
VM received on an unmargined netting set โ€ฆ / VM posted on an unmargined CRR netting set โ€ฆ INVALID Set Margined = Y (see Inputs)

Warnings

Message Meaning
What-if: โ€ฆ is โ€ฆ (regulatory โ€ฆ). / What-if: factor row โ€ฆ differs from the regulatory set โ€ฆ / What-if: alpha override โ€ฆ (regulatory 1.4). A parameter, factor row or alpha differs from CRE52-CRR-2026-10-09; the run is WHAT-IF. Intended for sensitivity runs; restore the template values for a REGULATORY run
Parameter missing - default โ€ฆ used. A blank parameter took its regulatory default
Regime missing - CRR assumed. Params Regime blank
MPOR override โ€ฆ BD is below the regulatory floor - โ€ฆ BD applied. The override is ignored
Remargin frequency โ€ฆ BD is below 1 - daily remargining (1 BD) used. 0 read as daily
Netting set has โ€ฆ trades, more than 5000: โ€ฆ Set the large/illiquid flag if the previous quarter also exceeded 5,000
lambda input ignored under CRR - RTS lambda applied Under CRR, IR and commodity options take the computed RTS lambda; a different value entered is ignored
FX rate missing or not positive - currency ignored. That currency cannot be used

โณ OUT OF DATE results

Symptom Cause What to do
Results C5 red: OUT OF DATE - inputs changed since the last run; press Run SA-CCR. An input, header or the date system changed after the run (formatting does not count) Press Run SA-CCR
C5 still shows the old status after an edit Calculation set to manual Press F9
C5 still shows the old status after Use 1904 date system was switched Switching only the date system changes no input cell, so Excel need not recalculate C5 Press Ctrl+Alt+F9 (recalculates every formula) or edit an input: C5 then reads OUT OF DATE. A run under the 1904 date system stops; clear the option, check the dates and run again
No results: press Run SA-CCR. right after Validate inputs Validation clears outputs and never keeps a fingerprint Run SA-CCR
Status unavailable: Workbook name 'โ€ฆ' is missing โ€ฆ A Params name is broken Rebuild from the template
Reconciliation C5 OUT OF DATE - bank figures or inputs changed โ€ฆ; press Run SA-CCR (on Results or Trades). A bank figure, setting or input changed Run SA-CCR again

๐Ÿšซ Export refused

Evidence not exported: <reason>. โ€” every reason ends with what to do:

Reason What to do
Excel has not finished recalculating; press F9, then Run SA-CCR if the results are out of date F9, then run if needed
the results are not those of the current inputs; press Run SA-CCR first Run SA-CCR
the reconciliation of the bank figures on BankNettingSets is not current; press Run SA-CCR first (or BankTrades) Run SA-CCR โ€” also needed when you removed all bank figures after the run
the outputs of the last run were not recorded; press Run SA-CCR first Run SA-CCR
an output cell on Results, Checks or a reconciliation sheet was changed after the run; press Run SA-CCR first Do not edit output sheets; run again
Could not write โ€ฆ The file is read-only, open elsewhere, or the folder is not writable; choose another path

A Reconciliation not run โ€ฆ: the amount scale (BankNS_Scale) must be greater than zero (or a tolerance message) in Reconciliation C4 means the bank settings are unusable; correct D4:D6 and run again. A header message there (column N of the table is headed 'โ€ฆ', expected 'โ€ฆ') means the bank table's columns were changed.


๐Ÿ”— Related

๐Ÿฆ K-SACCR

โš–๏ธ Regulation

๐Ÿงฎ Workbook


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

Clone this wiki locally