Appendix C Complex Model Specification C.1 Balance Sheet Structure Our model extends the Eisenberg–Noe clearing framework ( Eisenberg and Noe 2001 ) with portfolio-based asset holdings, correlated shocks, fire sale contagion, and priority of claims. The network contagion approach follows the simulation methodology surveyed by Upper (2011) and the theoretical framework of Allen and Gale (2000) ; see Jackson and Pernoud (2021) for a recent survey. Each bank i ∈ { 1 , … , N } i\in\{1,\dots,N\} i ∈ { 1 , … , N } is characterised by a balance sheet comprising four components: • External assets a i e a_{i}^{e} a i e : holdings of tradable securities (mortgages, corporate bonds, government bonds, equities). • Interbank assets a i b a_{i}^{b} a i b : claims on other banks through interbank lending. • Interbank liabilities l i b l_{i}^{b} l i b : obligations to other banks from interbank borrowing. • External liabilities l i e l_{i}^{e} l i e : deposits and senior debt owed to non-bank creditors. Total assets, total liabilities, and equity are defined as: A i \displaystyle A_{i} A i = a i e + a i b , \displaystyle=a_{i}^{e}+a_{i}^{b}, = a i e + a i b , (3) L i \displaystyle L_{i} L i = l i b + l i e , \displaystyle=l_{i}^{b}+l_{i}^{e}, = l i b + l i e , (4) E i \displaystyle E_{i} E i = A i − L i . \displaystyle=A_{i}-L_{i}. = A i − L i . (5) The capital ratio (equity-to-assets ratio) is κ i = E i A i , \kappa_{i}=\frac{E_{i}}{A_{i}}, κ i = A i E i , (6) and a bank is solvent if and only if E i > 0 E_{i}>0 E i > 0 (equivalently, κ i > 0 \kappa_{i}>0 κ i > 0 ). Balance sheet initialisation. Banks are initialised with a target capital ratio κ i ∗ \kappa_{i}^{*} κ i ∗ , total assets A i A_{i} A i , and an interbank fraction ϕ i \phi_{i} ϕ i : a i e \displaystyle a_{i}^{e} a i e = A i ( 1 − ϕ i ) , \displaystyle=A_{i}\,(1-\phi_{i}), = A i ( 1 − ϕ i ) , (7) a i b \displaystyle a_{i}^{b} a i b = A i ϕ i , \displaystyle=A_{i}\,\phi_{i}, = A i ϕ i , (8) l i b \displaystyle l_{i}^{b} l i b = A i ϕ i , \displaystyle=A_{i}\,\phi_{i}, = A i ϕ i , (9) l i e \displaystyle l_{i}^{e} l i e = A i ( 1 − κ i ∗ ) − l i b . \displaystyle=A_{i}\,(1-\kappa_{i}^{*})-l_{i}^{b}. = A i ( 1 − κ i ∗ ) − l i b . (10) The interbank assets and liabilities are pre-allocated at initialisation and subsequently redistributed (not incremented) when individual bilateral exposures are assigned during network construction. This prevents an artificial inflation of balance sheet size. C.2 Portfolio Composition External assets are decomposed into four asset classes k ∈ K = { GOV , CORP , MTG , STK } k\in\mathcal{K}=\{\text{GOV},\,\text{CORP},\,\text{MTG},\,\text{STK}\} k ∈ K = { GOV , CORP , MTG , STK } , representing government bonds, corporate bonds, mortgages, and equities respectively. Each bank i i i holds a portfolio with weights w i , k ≥ 0 w_{i,k}\geq 0 w i , k ≥ 0 satisfying ∑ k ∈ K w i , k = 1 , \sum_{k\in\mathcal{K}}w_{i,k}=1, ∑ k ∈ K w i , k = 1 , (11) so that the value of bank i i i ’s holdings in asset class k k k is a i , k e = a i e ⋅ w i , k a_{i,k}^{e}=a_{i}^{e}\cdot w_{i,k} a i , k e = a i e ⋅ w i , k . In the heterogeneous portfolio mode, raw weights w ~ i , k \tilde{w}_{i,k} w ~ i , k are sampled independently for each bank (see Table 2 ) and then normalised: w i , k = w ~ i , k ∑ k ′ ∈ K w ~ i , k ′ . w_{i,k}=\frac{\tilde{w}_{i,k}}{\sum_{k^{\prime}\in\mathcal{K}}\tilde{w}_{i,k^{\prime}}}. w i , k = ∑ k ′ ∈ K w ~ i , k ′ w ~ i , k . (12) C.3 Interbank Network The interbank network is a directed graph G = ( V , E ) G=(V,\mathcal{E}) G = ( V , E ) where V = { 1 , … , N } V=\{1,\dots,N\} V = { 1 , … , N } is the set of banks and each edge ( i , j ) ∈ E (i,j)\in\mathcal{E} ( i , j ) ∈ E represents a loan from bank i i i (lender/creditor) to bank j j j (borrower/debtor) of amount x i j > 0 x_{ij}>0 x ij > 0 . Banks are partitioned into core banks C \mathcal{C} C and periphery banks P \mathcal{P} P , with ∣ C ∣ = N c |\mathcal{C}|=N_{c} ∣ C ∣ = N c and ∣ P ∣ = N − N c |\mathcal{P}|=N-N_{c} ∣ P ∣ = N − N c . This core–periphery topology is a stylised fact of real interbank markets: Craig and von Peter (2014) document tiered structure in the German interbank market, and Upper (2011) surveys evidence that national banking systems typically exhibit a small, densely connected core holding the majority of interbank exposures. Edges are formed independently with tier-dependent probabilities: Pr [ ( i , j ) ∈ E ] = p τ ( i ) , τ ( j ) , τ ( i ) ∈ { c , p } , \Pr\bigl[(i,j)\in\mathcal{E}\bigr]=p_{\tau(i),\tau(j)},\quad\tau(i)\in\{c,p\}, Pr [ ( i , j ) ∈ E ] = p τ ( i ) , τ ( j ) , τ ( i ) ∈ { c , p } , (13) where τ ( i ) \tau(i) τ ( i ) denotes the tier of bank i i i . For each realised edge, the exposure amount x i j x_{ij} x ij is drawn from a tier-specific distribution F τ ( i ) , τ ( j ) F_{\tau(i),\tau(j)} F τ ( i ) , τ ( j ) . The bilateral exposure is recorded symmetrically: bank i i i adds x i j x_{ij} x ij to its interbank exposures (asset side) and bank j j j adds x i j x_{ij} x ij to its interbank obligations (liability side). C.4 Shock Application Deterministic shocks Under the deterministic mode, each asset class k k k receives a fixed percentage shock s k s_{k} s k (e.g., s MTG = − 0.20 s_{\text{MTG}}=-0.20 s MTG = − 0.20 denotes a 20% loss on mortgages). The loss to bank i i i from asset class k k k is ℓ i , k shock = ∣ s k ∣ ⋅ a i , k e , \ell_{i,k}^{\text{shock}}=|s_{k}|\cdot a_{i,k}^{e}, ℓ i , k shock = ∣ s k ∣ ⋅ a i , k e , (14) and the post-shock value is a i , k e ← max ( 0 , a i , k e ( 1 + s k ) ) a_{i,k}^{e}\leftarrow\max\bigl(0,\;a_{i,k}^{e}(1+s_{k})\bigr) a i , k e ← max ( 0 , a i , k e ( 1 + s k ) ) . The total shock loss for bank i i i is ℓ i shock = ∑ k ℓ i , k shock \ell_{i}^{\text{shock}}=\sum_{k}\ell_{i,k}^{\text{shock}} ℓ i shock = ∑ k ℓ i , k shock , and external assets are updated: a i e ← max ( 0 , a i e − ℓ i shock ) . a_{i}^{e}\leftarrow\max\bigl(0,\;a_{i}^{e}-\ell_{i}^{\text{shock}}\bigr). a i e ← max ( 0 , a i e − ℓ i shock ) . (15) A bank i i i whose equity falls to E i ≤ 0 E_{i}\leq 0 E i ≤ 0 after the shock is marked as failed with cause initial_shock at round t = 0 t=0 t = 0 . Correlated stochastic shocks In the correlated mode, shocks are drawn around the base values s ˉ k \bar{s}_{k} s ˉ k using a one-factor model. The common factor captures the market-wide component that drives correlated asset price declines during financial crises ( Brunnermeier 2009 ) . For a given correlation parameter ρ ∈ [ 0 , 1 ] \rho\in[0,1] ρ ∈ [ 0 , 1 ] and volatility σ \sigma σ : Z \displaystyle Z Z ∼ N ( 0 , σ ρ ) , \displaystyle\sim\mathcal{N}\bigl(0,\;\sigma\sqrt{\rho}\bigr), ∼ N ( 0 , σ ρ ) , (16) ε k \displaystyle\varepsilon_{k} ε k ∼ N ( 0 , σ 1 − ρ ) , \displaystyle\sim\mathcal{N}\bigl(0,\;\sigma\sqrt{1-\rho}\bigr), ∼ N ( 0 , σ 1 − ρ ) , (17) s k \displaystyle s_{k} s k = s ˉ k + Z + ε k . \displaystyle=\bar{s}_{k}+Z+\varepsilon_{k}. = s ˉ k + Z + ε k . (18) Here Z Z Z is a common market factor shared across all asset classes, and ε k \varepsilon_{k} ε k is an idiosyncratic component. Each Monte Carlo run draws a fresh realisation of ( Z , ε k ) k ∈ K (Z,\varepsilon_{k})_{k\in\mathcal{K}} ( Z , ε k ) k ∈ K . Uncorrelated shocks Under the uncorrelated mode, shocks are drawn independently: s k = s ˉ k + η k , η k ∼ N ( 0 , σ ) , s_{k}=\bar{s}_{k}+\eta_{k},\quad\eta_{k}\sim\mathcal{N}(0,\sigma), s k = s ˉ k + η k , η k ∼ N ( 0 , σ ) , (19) with no common factor. C.5 Interbank Contagion After the initial shock phase, contagion propagates in discrete rounds through counterparty credit losses, following the network contagion literature ( Allen and Gale 2000 ; Gai and Kapadia 2010 ; Glasserman and Young 2015 ) . The propagation mechanism combines direct interbank losses with fire sale externalities ( Cifuentes et al. 2005 ) , integrated within each contagion round rather than applied as a separate phase. Let F t \mathcal{F}_{t} F t denote the set of banks that have failed by the end of round t t t , and Δ F t = F t ∖ F t − 1 \Delta\mathcal{F}_{t}=\mathcal{F}_{t}\setminus\mathcal{F}_{t-1} Δ F t = F t ∖ F t − 1 the set of newly failed banks at round t t t . Recovery rate. When a bank j j j fails, its creditors recover only a fraction of their claims. Without priority of claims, the recovery rate is R j = min ( 1 , A j L j ) . R_{j}=\min\!\left(1,\;\frac{A_{j}}{L_{j}}\right). R j = min ( 1 , L j A j ) . (20) With priority of claims (the default in our experiments), external creditors (depositors and senior debt holders) are senior to interbank creditors. The interbank recovery rate becomes R j b = min ( 1 , max ( 0 , A j − l j e ) l j b ) , R_{j}^{b}=\min\!\left(1,\;\frac{\max\bigl(0,\;A_{j}-l_{j}^{e}\bigr)}{l_{j}^{b}}\right), R j b = min ( 1 , l j b m a x ( 0 , A j − l j e ) ) , (21) i.e. interbank creditors receive only the residual after external liabilities are satisfied. Loss propagation. At each round t ≥ 1 t\geq 1 t ≥ 1 , for each newly failed bank j ∈ Δ F t j\in\Delta\mathcal{F}_{t} j ∈ Δ F t , every solvent creditor i ∉ F t i\notin\mathcal{F}_{t} i ∈ / F t with exposure x i j > 0 x_{ij}>0 x ij > 0 suffers a loss ℓ i j cont = ( 1 − R j b ) x i j . \ell_{ij}^{\text{cont}}=(1-R_{j}^{b})\,x_{ij}. ℓ ij cont = ( 1 − R j b ) x ij . (22) This loss is applied by reducing bank i i i ’s interbank assets: a i b ← a i b − ℓ i j cont . a_{i}^{b}\leftarrow a_{i}^{b}-\ell_{ij}^{\text{cont}}. a i b ← a i b − ℓ ij cont . (23) If E i ≤ 0 E_{i}\leq 0 E i ≤ 0 after all losses from round t t t are applied, bank i i i is added to Δ F t + 1 \Delta\mathcal{F}_{t+1} Δ F t + 1 with cause contagion . Termination. Contagion terminates when Δ F t = ∅ \Delta\mathcal{F}_{t}=\emptyset Δ F t = ∅ for some round t t t , i.e. no new failures occur. C.6 Fire Sale Mechanism Fire sales are integrated into each contagion round rather than applied as a separate post-contagion phase. When banks fail, their forced liquidation of assets depresses market prices, imposing mark-to-market losses on all surviving banks ( Shleifer and Vishny 2011 ) . This indirect contagion channel captures the empirically documented phenomenon whereby asset liquidations by distressed institutions transmit losses to other holders of the same asset classes ( Greenwood et al. 2015 ; Duarte and Eisenbach 2021 ; Ellul et al. 2011 ) . Cifuentes et al. (2005) show that such mark-to-market externalities can dominate direct interbank contagion in amplifying systemic crises. Liquidation volumes. At round t t t , the total volume of asset class k k k liquidated by newly failed banks is V k , t = ∑ j ∈ Δ F t a j , k e . V_{k,t}=\sum_{j\in\Delta\mathcal{F}_{t}}a_{j,k}^{e}. V k , t = ∑ j ∈ Δ F t a j , k e . (24) Price impact. Asset-specific markdowns are computed relative to the initial market size M k 0 M_{k}^{0} M k 0 (the total holdings of asset class k k k across all banks at time t = 0 t=0 t = 0 , before any shocks): δ k , t = λ ⋅ V k , t M k 0 , \delta_{k,t}=\lambda\cdot\frac{V_{k,t}}{M_{k}^{0}}, δ k , t = λ ⋅ M k 0 V k , t , (25) where λ ≥ 0 \lambda\geq 0 λ ≥ 0 is the fire sale intensity parameter. Using the initial market size M k 0 M_{k}^{0} M k 0 rather than the current (depleted) market size prevents compounding effects that produce unrealistic feedback loops. This non-compounding, linear approach to price impact is inspired by Greenwood et al. (2015) , whose model uses a fixed price impact coefficient; our formulation makes the market-depth dependence explicit by normalising liquidation volumes by initial market size M k 0 M_{k}^{0} M k 0 . Mark-to-market losses. Every surviving bank i ∉ F t i\notin\mathcal{F}_{t} i ∈ / F t suffers a loss in each asset class k k k for which δ k , t > 0 \delta_{k,t}>0 δ k , t > 0 : ℓ i , k fs = δ k , t ⋅ a i , k e , \ell_{i,k}^{\text{fs}}=\delta_{k,t}\cdot a_{i,k}^{e}, ℓ i , k fs = δ k , t ⋅ a i , k e , (26) and the asset value is updated: a i , k e ← max ( 0 , a i , k e ( 1 − δ k , t ) ) a_{i,k}^{e}\leftarrow\max\bigl(0,\;a_{i,k}^{e}(1-\delta_{k,t})\bigr) a i , k e ← max ( 0 , a i , k e ( 1 − δ k , t ) ) . The aggregate fire sale loss for bank i i i in round t t t is ℓ i fs = ∑ k ℓ i , k fs \ell_{i}^{\text{fs}}=\sum_{k}\ell_{i,k}^{\text{fs}} ℓ i fs = ∑ k ℓ i , k fs , and the external assets are correspondingly reduced. If E i ≤ 0 E_{i}\leq 0 E i ≤ 0 after fire sale losses, bank i i i fails with cause fire_sale . Banks failing from fire sales in round t t t become sources of contagion and liquidation in round t + 1 t+1 t + 1 . C.7 Simulation Algorithm Figure 25 summarises the complete single-period simulation in pseudocode. Algorithm 1: Single-period contagion simulation with integrated fire sales. Input: Network G G G , banks { 1 , … , N } \{1,\dots,N\} { 1 , … , N } with portfolios, shock scenario S \mathcal{S} S , fire sale intensity λ \lambda λ Output: Failed bank set F \mathcal{F} F , loss attribution // Phase 1: Initial asset shocks 1. for each bank i ∈ { 1 , … , N } i\in\{1,\dots,N\} i ∈ { 1 , … , N } do 2. Apply shocks s k s_{k} s k to each asset class k k k via Eq. ( 14 ) 3. if E i ≤ 0 E_{i}\leq 0 E i ≤ 0 then F 0 ← F 0 ∪ { i } \mathcal{F}_{0}\leftarrow\mathcal{F}_{0}\cup\{i\} F 0 ← F 0 ∪ { i } // initial failure 4. Record initial market sizes M k 0 M_{k}^{0} M k 0 for all asset classes k k k // Phase 2: Contagion with integrated fire sales 5. t ← 1 t\leftarrow 1 t ← 1 ; Δ F ← F 0 \Delta\mathcal{F}\leftarrow\mathcal{F}_{0} Δ F ← F 0 6. while Δ F ≠ ∅ \Delta\mathcal{F}\neq\emptyset Δ F = ∅ do // Phase 2a: Interbank loss propagation 7. for each failed bank j ∈ Δ F j\in\Delta\mathcal{F} j ∈ Δ F do 8. Compute R j b R_{j}^{b} R j b via Eq. ( 21 ) 9. for each solvent creditor i i i of j j j do 10. Apply loss ℓ i j cont = ( 1 − R j b ) x i j \ell_{ij}^{\text{cont}}=(1-R_{j}^{b})\,x_{ij} ℓ ij cont = ( 1 − R j b ) x ij 11. if E i ≤ 0 E_{i}\leq 0 E i ≤ 0 then mark i i i as contagion failure // Phase 2b: Fire sales 12. if λ > 0 \lambda>0 λ > 0 then 13. Compute liquidation volumes V k , t V_{k,t} V k , t via Eq. ( 24 ) 14. Compute markdowns δ k , t \delta_{k,t} δ k , t via Eq. ( 25 ) 15. for each surviving bank i ∉ F t i\notin\mathcal{F}_{t} i ∈ / F t do 16. Apply markdown losses ℓ i , k fs \ell_{i,k}^{\text{fs}} ℓ i , k fs via Eq. ( 26 ) 17. if E i ≤ 0 E_{i}\leq 0 E i ≤ 0 then mark i i i as fire sale failure 18. Δ F ← \Delta\mathcal{F}\leftarrow Δ F ← newly failed banks (contagion + + + fire sale) 19. F t ← F t − 1 ∪ Δ F \mathcal{F}_{t}\leftarrow\mathcal{F}_{t-1}\cup\Delta\mathcal{F} F t ← F t − 1 ∪ Δ F ; t ← t + 1 t\leftarrow t+1 t ← t + 1 20. return F \mathcal{F} F , per-bank loss tracking, failure metadata Figure 25: Single-period contagion simulation with integrated fire sales. Appendix D Complex Model Parameter Calibration D.1 Network Parameters Table 2 reports the full parameterisation for both regulatory regimes. All simulations use N = 50 N=50 N = 50 banks ( N c = 10 N_{c}=10 N c = 10 core, N p = 40 N_{p}=40 N p = 40 periphery) in stochastic network generation mode. The core–periphery partition ( N c / N = 20 % N_{c}/N=20\% N c / N = 20% ) reflects the tiered structure observed in real interbank markets ( Craig and Von Peter 2014 ) . Capital ratio calibration. Pre-2008 capital ratios are calibrated to actual US bank Tier 1 ratios before the financial crisis ( Federal Deposit Insurance Corporation 2007 ) : large banks held 6–8% and smaller banks 5–8%. Post-2008 ratios reflect actual Basel III CET1 ratios as of 2023 Q4 ( Federal Deposit Insurance Corporation 2023 ; Basel Committee on Banking Supervision 2010 ) : G-SIBs hold 11–13% and regional banks 9–11%. The Basel III effective minimum of 7% (4.5% CET1 plus 2.5% capital conservation buffer), rising to 8–11.5% for G-SIBs with the surcharge ( Basel Committee on Banking Supervision 2010 ) , is enforced via truncation of the sampling distribution. Portfolio calibration. Pre-2008 banks held 40–60% real estate exposure ( Federal Deposit Insurance Corporation 2007 ) , and post-2008 banks maintain 30–50% despite Dodd-Frank reforms, which imposed no concentration limits on mortgage holdings ( United States Congress 2010 ) . Portfolio weights for each asset class are sampled independently and normalised, producing bank-level heterogeneity in exposure to the primary shocked asset. Interbank exposure calibration. Pre-crisis interbank assets constituted a substantial share of total assets, with considerable variation across countries and bank types ( Upper 2011 ) ; post-crisis this share fell considerably under Basel III liquidity requirements (LCR, NSFR) ( Basel Committee on Banking Supervision 2010 ) and central clearing mandates. The variable interbank fraction is sampled from a truncated normal distribution to capture the empirically observed heterogeneity in bank interconnectedness. Table 2: Network and bank parameters by regulatory regime. Distributions are denoted N ( μ , σ ; [ min , max ] ) \mathcal{N}(\mu,\sigma;[\text{min},\text{max}]) N ( μ , σ ; [ min , max ]) for truncated normal and U ( a , b ) \mathcal{U}(a,b) U ( a , b ) for uniform. Parameter Tier Pre-2008 Post-2008 (Basel III) Capital ratio κ i ∗ \kappa_{i}^{*} κ i ∗ Core N ( 0.07 , 0.012 ; [ 0.05 , 0.09 ] ) \mathcal{N}(0.07,\,0.012;\,[0.05,\,0.09]) N ( 0.07 , 0.012 ; [ 0.05 , 0.09 ]) N ( 0.13 , 0.015 ; [ 0.10 , 0.18 ] ) \mathcal{N}(0.13,\,0.015;\,[0.10,\,0.18]) N ( 0.13 , 0.015 ; [ 0.10 , 0.18 ]) Periphery N ( 0.05 , 0.015 ; [ 0.03 , 0.08 ] ) \mathcal{N}(0.05,\,0.015;\,[0.03,\,0.08]) N ( 0.05 , 0.015 ; [ 0.03 , 0.08 ]) N ( 0.105 , 0.015 ; [ 0.10 , 0.14 ] ) \mathcal{N}(0.105,\,0.015;\,[0.10,\,0.14]) N ( 0.105 , 0.015 ; [ 0.10 , 0.14 ]) Total assets A i A_{i} A i Core 500 500 Periphery 100 100 External assets fraction 1 − ϕ i 1-\phi_{i} 1 − ϕ i Core 0.85 0.90 Periphery 0.88 0.92 Interbank fraction ϕ i \phi_{i} ϕ i Core N ( 0.15 , 0.05 ; [ 0.08 , 0.30 ] ) \mathcal{N}(0.15,\,0.05;\,[0.08,\,0.30]) N ( 0.15 , 0.05 ; [ 0.08 , 0.30 ]) N ( 0.10 , 0.03 ; [ 0.05 , 0.18 ] ) \mathcal{N}(0.10,\,0.03;\,[0.05,\,0.18]) N ( 0.10 , 0.03 ; [ 0.05 , 0.18 ]) Periphery N ( 0.12 , 0.04 ; [ 0.05 , 0.22 ] ) \mathcal{N}(0.12,\,0.04;\,[0.05,\,0.22]) N ( 0.12 , 0.04 ; [ 0.05 , 0.22 ]) N ( 0.08 , 0.025 ; [ 0.04 , 0.14 ] ) \mathcal{N}(0.08,\,0.025;\,[0.04,\,0.14]) N ( 0.08 , 0.025 ; [ 0.04 , 0.14 ]) Portfolio weights w ~ i , k \tilde{w}_{i,k} w ~ i , k (pre-normalisation) Mortgage Core U ( 0.20 , 0.60 ) \mathcal{U}(0.20,\,0.60) U ( 0.20 , 0.60 ) U ( 0.20 , 0.60 ) \mathcal{U}(0.20,\,0.60) U ( 0.20 , 0.60 ) Gov. bond Core U ( 0.10 , 0.40 ) \mathcal{U}(0.10,\,0.40) U ( 0.10 , 0.40 ) U ( 0.10 , 0.40 ) \mathcal{U}(0.10,\,0.40) U ( 0.10 , 0.40 ) Corp. bond Core U ( 0.10 , 0.40 ) \mathcal{U}(0.10,\,0.40) U ( 0.10 , 0.40 ) U ( 0.10 , 0.40 ) \mathcal{U}(0.10,\,0.40) U ( 0.10 , 0.40 ) Stock Core U ( 0.10 , 0.40 ) \mathcal{U}(0.10,\,0.40) U ( 0.10 , 0.40 ) U ( 0.10 , 0.40 ) \mathcal{U}(0.10,\,0.40) U ( 0.10 , 0.40 ) Mortgage Periphery U ( 0.25 , 0.70 ) \mathcal{U}(0.25,\,0.70) U ( 0.25 , 0.70 ) U ( 0.25 , 0.70 ) \mathcal{U}(0.25,\,0.70) U ( 0.25 , 0.70 ) Gov. bond Periphery U ( 0.05 , 0.35 ) \mathcal{U}(0.05,\,0.35) U ( 0.05 , 0.35 ) U ( 0.05 , 0.35 ) \mathcal{U}(0.05,\,0.35) U ( 0.05 , 0.35 ) Corp. bond Periphery U ( 0.05 , 0.35 ) \mathcal{U}(0.05,\,0.35) U ( 0.05 , 0.35 ) U ( 0.05 , 0.35 ) \mathcal{U}(0.05,\,0.35) U ( 0.05 , 0.35 ) Stock Periphery U ( 0.05 , 0.35 ) \mathcal{U}(0.05,\,0.35) U ( 0.05 , 0.35 ) U ( 0.05 , 0.35 ) \mathcal{U}(0.05,\,0.35) U ( 0.05 , 0.35 ) D.2 Connectivity Parameters Table 3 reports the interbank connectivity probabilities and exposure amount distributions. Pre-2008 probabilities reflect the dense interbank markets documented in the simulation literature ( Upper 2011 ; Nier et al. 2007 ) . Post-2008 values reflect the substantial contraction in unsecured interbank lending following Dodd-Frank structural reforms and Basel III liquidity requirements ( United States Congress 2010 ; Basel Committee on Banking Supervision 2010 ) . Exposure amounts are drawn from tier-specific uniform distributions, calibrated so that total interbank assets remain consistent with post-reform balance sheet data. Table 3: Interbank connectivity parameters by regulatory regime. Pre-2008 Post-2008 Link type p p p Exposure p p p Exposure Core → \to → Core 0.80 U ( 4 , 8 ) \mathcal{U}(4,8) U ( 4 , 8 ) 0.50 U ( 3 , 6 ) \mathcal{U}(3,6) U ( 3 , 6 ) Core → \to → Periphery 0.70 U ( 1.5 , 4 ) \mathcal{U}(1.5,4) U ( 1.5 , 4 ) 0.40 U ( 1 , 3 ) \mathcal{U}(1,3) U ( 1 , 3 ) Periphery → \to → Core 0.60 U ( 1 , 3 ) \mathcal{U}(1,3) U ( 1 , 3 ) 0.30 U ( 0.5 , 2 ) \mathcal{U}(0.5,2) U ( 0.5 , 2 ) Periphery → \to → Periphery 0.60 U ( 0.5 , 2 ) \mathcal{U}(0.5,2) U ( 0.5 , 2 ) 0.20 U ( 0.3 , 1.5 ) \mathcal{U}(0.3,1.5) U ( 0.3 , 1.5 ) D.3 Shock Calibration Table 4 reports the base shock values used in the mortgage shock sweep experiments. The mortgage shock is varied from − 1 % -1\% − 1% to − 30 % -30\% − 30% while other asset class shocks remain fixed. The sweep range is conservative relative to 2008 MBS losses but matches the approximate Case-Shiller Home Price Index decline peak-to-trough ( Brunnermeier 2009 ) . Multi-asset shock structure. The positive government bond shock ( + 2 % +2\% + 2% ) captures flight-to-quality dynamics, where investors buy sovereign debt during crises ( Baele et al. 2020 ) . The corporate bond shock ( − 10 % -10\% − 10% ) reflects the widening of credit spreads during stress periods, consistent with the significant non-default spread component documented by Longstaff et al. (2005) . The equity shock ( − 15 % -15\% − 15% ) captures the co-movement of financial stocks with housing markets observed during the 2007–2008 crisis ( Brunnermeier 2009 ) . Correlation parameter. The correlation ρ = 0.6 \rho=0.6 ρ = 0.6 captures moderate-to-high commonality in shocks across asset classes, reflecting the observation that asset price declines become strongly correlated during systemic crises ( Brunnermeier 2009 ) . The idiosyncratic volatility σ = 0.03 \sigma=0.03 σ = 0.03 produces realistic dispersion: at a − 20 % -20\% − 20% mean mortgage shock, individual banks experience losses in the range − 17 % -17\% − 17% to − 23 % -23\% − 23% (95% interval). Table 4: Base shock parameters. The mortgage shock s ˉ MTG \bar{s}_{\text{MTG}} s ˉ MTG is swept from − 0.01 -0.01 − 0.01 to − 0.30 -0.30 − 0.30 across experiments; the value shown is the central scenario. Parameter Gov. bond Corp. bond Mortgage Stock Base shock s ˉ k \bar{s}_{k} s ˉ k + 0.02 +0.02 + 0.02 − 0.10 -0.10 − 0.10 − 0.20 -0.20 − 0.20 − 0.15 -0.15 − 0.15 Shock mode Correlated Correlation ρ \rho ρ 0.6 0.6 0.6 Volatility σ \sigma σ 0.03 0.03 0.03 D.4 Fire Sale Intensity The baseline fire sale intensity is λ = 0.05 \lambda=0.05 λ = 0.05 . Empirical studies of fire sales document substantial price impacts: Ellul et al. (2011) find that regulatory-induced fire sales of downgraded corporate bonds by insurance companies cause cumulative abnormal returns of approximately − 10 % -10\% − 10% to − 14 % -14\% − 14% , while Shleifer and Vishny (2011) survey evidence of fire sale discounts ranging from 10–20% for aircraft to 27% for foreclosed housing. Our baseline λ = 0.05 \lambda=0.05 λ = 0.05 represents moderate fire sale effects in liquid markets; at 30% bank failures this yields a 1.5% aggregate markdown, consistent with diversified selling with circuit breakers in place. The fire sale parameter sweep tests eight intensity levels: λ ∈ { 0 , 0.01 , 0.03 , 0.05 , 0.07 , 0.10 , 0.12 , 0.15 } \lambda\in\{0,\,0.01,\,0.03,\,0.05,\,0.07,\,0.10,\,0.12,\,0.15\} λ ∈ { 0 , 0.01 , 0.03 , 0.05 , 0.07 , 0.10 , 0.12 , 0.15 } . Higher intensities ( λ ≥ 0.10 \lambda\geq 0.10 λ ≥ 0.10 ) represent scenarios with greater synchronised selling, such as those that may arise from homogeneous risk models or correlated trading strategies ( Haldane and May 2011 ) . Fire sale compounding is disabled throughout: markdowns are always computed relative to the initial market size M k 0 M_{k}^{0} M k 0 (Eq. 25 ), not the depleted current market size. This prevents unrealistic positive feedback loops where fire sales compound on an already-depleted market, which was found to produce extreme bimodal (all-or-nothing) outcomes in preliminary experiments. Appendix E Complex Model Simulation Design E.1 Network Generation Modes The simulation framework supports three network generation modes, offering different trade-offs between control and stochasticity: 1. Fixed mode: A single network is generated with fixed seeds for both structure and parameters, and reused identically across all Monte Carlo runs. This isolates the effect of shock randomness from network variation. 2. Template mode: The network topology (edge set) is generated once and held fixed, but bank parameters (capital ratios, portfolio weights, exposure amounts) are resampled each run. This tests the robustness of a given interconnection structure to parameter variation. 3. Stochastic mode (used in all reported experiments): Both network topology and bank parameters are regenerated each run, producing a population of distinct network realisations. This provides the broadest assessment of systemic risk under structural uncertainty. E.2 Seed Hierarchy and Reproducibility Reproducibility is ensured through a hierarchical seeding scheme. Let s struct s^{\text{struct}} s struct and s param s^{\text{param}} s param denote the base structure and parameter seeds respectively. For Monte Carlo run r ∈ { 0 , 1 , … , R − 1 } r\in\{0,1,\dots,R-1\} r ∈ { 0 , 1 , … , R − 1 } : s r struct \displaystyle s_{r}^{\text{struct}} s r struct = s struct + r , \displaystyle=s^{\text{struct}}+r, = s struct + r , (27) s r param \displaystyle s_{r}^{\text{param}} s r param = s param + r . \displaystyle=s^{\text{param}}+r. = s param + r . (28) The shock generator is seeded separately from the master simulation seed. All experiments use base seeds s struct = 42 s^{\text{struct}}=42 s struct = 42 , s param = 100 s^{\text{param}}=100 s param = 100 , and master seed 42 42 42 . E.3 Experiment Configurations Table 5 summarises the experiments performed. Table 5: Summary of experimental configurations. Experiment (sweep) N N N N c N_{c} N c Shock levels Runs/level Total runs Pre-2008 shock 50 10 29 200 5,800 Post-2008 shock 50 10 29 200 5,800 Fire sale intensity 50 10 8 × 29 8\times 29 8 × 29 200 46,400 Appendix F Complex Model Sensitivity Analysis F.1 Fire Sale Intensity The fire sale parameter sweep (Appendix D.4 ) reveals four dimensions along which increasing λ \lambda λ degrades systemic stability: 1. Steepness. The maximum single-step increase in mean failure rate (as the mortgage shock increases by one percentage point) grows from 12–14 pp at low λ \lambda λ to 16–17 pp at high λ \lambda λ . Economically, this reduces the time window available for policy intervention, as a small deterioration in market conditions triggers a disproportionately larger systemic impact. 2. Predictability. The standard deviation of failure outcomes across Monte Carlo runs increases from 26–35% at low λ \lambda λ to 42–44% at high λ \lambda λ . High variance (approaching the bimodal limit) means that identical macroeconomic conditions can produce vastly different systemic outcomes, undermining the reliability of stress-test forecasts. 3. Amplification. Mean fire sale losses (as a fraction of total system assets) increase from approximately 5% of total losses at baseline to 15–18% at high λ \lambda λ . This quantifies the degree to which the indirect (fire sale) channel amplifies the direct (interbank) contagion channel. 4. Threshold compression. The gap between the shock level at which systemic crises first appear with non-trivial probability and the level at which they become near-certain narrows from approximately 2 pp at low λ \lambda λ to approximately 1 pp at high λ \lambda λ . This “early warning” gap is critical for macroprudential monitoring: a narrower gap means less advance signal before a crisis becomes unavoidable. F.2 Regulatory Regime Comparing the pre-2008 and post-2008 (Basel III) regimes across identical shock sweeps, the post-2008 configuration provides an improvement of approximately 7–9 percentage points in the systemic crisis threshold (the shock magnitude at which the mean failure rate exceeds 30%). This This improvement is qualitatively consistent with the higher capital and liquidity requirements introduced under Basel III ( Basel Committee on Banking Supervision 2010 ) . The improvement derives from three simultaneous changes: • Higher capital ratios (core mean: 7% → \to → 13%; periphery mean: 5% → \to → 10.5%), with a hard floor at 10% enforced via truncation of the normal distribution. • Reduced interbank connectivity (e.g. periphery-to-periphery connection probability: 0.60 → \to → 0.20). • Lower interbank exposure fractions (core mean: 15% → \to → 10%; periphery mean: 12% → \to → 8%). Appendix G Complex Model Reproducibility G.1 Software Environment All simulations were implemented in Python 3.11. Key dependencies and their roles are listed in Table 6 . Table 6: Software dependencies. Library Role NumPy Random number generation, numerical operations NetworkX Directed graph construction and analysis Pydantic Configuration validation and type checking Matplotlib Visualisation and plot generation PyYAML Configuration file parsing pytest Automated test suite Exact dependency versions are pinned in a lock file ( uv.lock ) included in the repository. The package manager UV was used for environment management. G.2 Validation The codebase includes an automated test suite with the following coverage: • Unit tests: Bank balance sheet arithmetic, portfolio shock application, recovery rate calculations, and network construction. • Integration tests: End-to-end experiment execution from YAML configuration to JSON output, testing all three network generation modes and all shock modes. • Feature tests: Dedicated tests for each heterogeneity option (A, D, F), truncated distribution bounds (verifying Basel III floor enforcement), and fire sale compounding behaviour. • Numerical reproducibility: Tests verify that identical seeds produce bit-identical results, and that floating-point discrepancies remain below 10 − 10 10^{-10} 1 0 − 10 . Appendix I Code and STPA Artefact Availability Material relevant for the reproducability of this project are available at the following URL: https://github.com/Advai-Ltd/quantifying-ai-system-harms At the top level, this repository contains the various tables relating to the systems’ theoretic process analysis, which could not reasonably be attached within even the extended version of this paper. Within two subdirectories of the repository, the code used to produce the component level test results, and the financial contagion simulation code used to produce the system-level results, are available. The repository also contains a README file with instructions for running the various simulations and analyses. Consult the ‘license.md’ file in the repository for information on the licensing of the code and artefacts, which are not necessarily under the same license as the paper itself.
Ethical Considerations This work demonstrates adversarial manipulation of LLM-based systems in a stylised financial setting. The attacks are drawn from published literature and the primary contribution is to surface their potential systemic consequences, not to advance attack capability. The RTGS analysis is conducted at a level of abstraction chosen to avoid disclosing operationally sensitive information, and was reviewed by domain and safety experts. The framework involves normative judgements about system boundaries, stakeholder values, and the relative importance of harms. Making these judgements explicit and auditable, as STPA requires, is intended to support scrutiny and revision.
Adverse Impact Statement We identify two principal ways in which this work could produce adverse impacts once in the world. Dual-use of demonstrated attack techniques. Publishing examples of adversarial attacks on LLM-based financial tools may provide a starting point for actors seeking to exploit similar vulnerabilities in deployed systems. We note that the attacks demonstrated are low-cost, already documented in the literature, and straightforwardly mitigated by prompt-hardening. We recommend that practitioners treat the attacks presented here as a minimum threat baseline rather than a comprehensive threat model, and prioritise deployment of known mitigations. False assurance from partial or improper application. This framework is designed to articulate system-level risks from the adoption of AI, first qualitatively and then quantitatively. However, the fidelity of each stage depends heavily on the quality of inputs, the breadth of expertise brought to the analysis, and the realism of the underlying models. Partial analyses can still be useful when their assumptions and evidential limits are made explicit. They become harmful when treated as comprehensive safety assessments or as definitive evidence that unmodelled risks are absent. Hence the critical importance of highlighting the assumptions, norms and sources of information relied upon when doing this analysis. The outputs should be used to inform judgement rather than to provide assurance on their own, and practitioners should remain alert to residual risks not captured by the analysis performed. If adopted prescriptively as a compliance checklist, the framework could create incentives to perform only those analyses for which favourable results are anticipated, undermining its value as a structured reasoning tool.
Positionality Statement The authors have a background in AI safety and security. This shapes our focus on security-based failure modes and measurable behavioural properties of AI systems, and may lead us to prioritise threat pathways that are more tractable from a technical standpoint over representational or organisational harms. The worked example was conducted entirely from publicly available information, including regulatory surveys, published financial network literature, and open documentation of the RTGS, without direct engagement with operators. Our account of the system is therefore necessarily partial, and our judgements about what constitutes a plausible or significant AI-driven loss scenario are filtered through what is publicly disclosed. The authors are based in the Western hemisphere, and the choice of a UK financial infrastructure case study reflects access to documentation rather than a claim that this context is more important or more representative than others. Practitioners applying this framework in different regulatory, geographic, or sectoral contexts should expect to revisit the normative assumptions embedded in each analytical stage.
Acknowledgements This work was supported by the Laboratory for AI Security Research (LASR); the views expressed in this paper are those of the authors and do not necessarily reflect the position of LASR or His Majesty’s Government. We also acknowledge and thank colleagues whose continued support and feedback were invaluable to the development of this paper, particularly Lee C and other NCSC colleagues for their technical reviews of the work, and Molly Parnham and Michaela Coetsee at Advai for research delivery support and feedback, respectively. Generative AI tools were used throughout this project to support literature familiarisation, iterative development of the STPA analysis, code prototyping, and manuscript drafting and refinement