# jliu2025/irrbb-optionrisk-stresstest architecture

> Architecture diagram of the GitHub repository jliu2025/irrbb-optionrisk-stresstest, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jliu2025/irrbb-optionrisk-stresstest
- Repository: https://github.com/jliu2025/irrbb-optionrisk-stresstest

## Overview

This is an exploratory IRRBB option-risk stress-testing project. The documented workflow is to provide a loan/deposit balance sheet, run the stress-testing notebook across rate shocks, export scenario results, and explore them in Power BI. The graph separates behavioral assumptions, financial impact measures, and reporting. Notebook internals are not available, so the modeled stages reflect README descriptions rather than verified implementation details.

Main entry points: [`StressTesting.ipynb`](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb) (Stress simulation), [`StressTesting_Report.pbix`](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting_Report.pbix) (Power BI dashboard), [`Balance_sheet.csv`](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/Balance_sheet.csv) (Portfolio data), [`Stress_Test_Output.csv`](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/Stress_Test_Output.csv) (Scenario results)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_behavior["Behavioral Modeling"]
  node_balance_sheet["Portfolio data<br/>[Balance_sheet.csv]"]
  node_prepayment["Loan prepayment"]
  node_nmd_withdrawal["NMD withdrawals"]
end

subgraph group_analysis["Stress Analysis"]
  node_stress_notebook["Stress simulation"]
  node_rate_shocks["Rate shock scenarios"]
  node_nii["12-month ΔNII"]
  node_eve["Lifetime ΔEVE"]
  node_liquidity["Year-end cash"]
end

subgraph group_reporting["Results and Reporting"]
  node_output["Scenario results"]
  node_dashboard["Power BI dashboard"]
end

node_analyst(("Portfolio analyst"))

node_analyst -->|"edits portfolio"| node_balance_sheet
node_analyst -->|"runs simulation"| node_stress_notebook
node_stress_notebook -->|"reads portfolio"| node_balance_sheet
node_stress_notebook -->|"simulates"| node_rate_shocks
node_stress_notebook -->|"models"| node_prepayment
node_stress_notebook -->|"models"| node_nmd_withdrawal
node_stress_notebook -->|"calculates"| node_nii
node_stress_notebook -->|"calculates"| node_eve
node_stress_notebook -->|"calculates"| node_liquidity
node_stress_notebook -->|"writes results"| node_output
node_analyst -->|"explores results"| node_dashboard
node_dashboard -->|"loads results"| node_output

click node_balance_sheet "https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/Balance_sheet.csv"
click node_stress_notebook "https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb"
click node_rate_shocks "https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb"
click node_prepayment "https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb"
click node_nmd_withdrawal "https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb"
click node_nii "https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb"
click node_eve "https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb"
click node_liquidity "https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb"
click node_output "https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/Stress_Test_Output.csv"
click node_dashboard "https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting_Report.pbix"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_balance_sheet,node_prepayment,node_nmd_withdrawal toneBlue
class node_stress_notebook,node_rate_shocks,node_nii,node_eve,node_liquidity toneAmber
class node_output,node_dashboard toneMint
class node_analyst toneIndigo
```

## Components

### Behavioral Modeling

- [Portfolio data](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/Balance_sheet.csv): `Balance_sheet.csv`
- [Loan prepayment](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb): `StressTesting.ipynb`
- [NMD withdrawals](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb): `StressTesting.ipynb`

### Stress Analysis

- [Stress simulation](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb): `StressTesting.ipynb`
- [Rate shock scenarios](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb): `StressTesting.ipynb`
- [12-month ΔNII](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb): `StressTesting.ipynb`
- [Lifetime ΔEVE](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb): `StressTesting.ipynb`
- [Year-end cash](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting.ipynb): `StressTesting.ipynb`

### Results and Reporting

- [Scenario results](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/Stress_Test_Output.csv): `Stress_Test_Output.csv`
- [Power BI dashboard](https://github.com/jliu2025/irrbb-optionrisk-stresstest/blob/main/StressTesting_Report.pbix): `StressTesting_Report.pbix`

### Other components

- **Portfolio analyst**

## Connections

- Portfolio analyst → Portfolio data: edits portfolio
- Portfolio analyst → Stress simulation: runs simulation
- Stress simulation → Portfolio data: reads portfolio
- Stress simulation → Rate shock scenarios: simulates
- Stress simulation → Loan prepayment: models
- Stress simulation → NMD withdrawals: models
- Stress simulation → 12-month ΔNII: calculates
- Stress simulation → Lifetime ΔEVE: calculates
- Stress simulation → Year-end cash: calculates
- Stress simulation → Scenario results: writes results
- Portfolio analyst → Power BI dashboard: explores results
- Power BI dashboard → Scenario results: loads results
