# alexcrescentini/icaap_irrbb_analysis architecture

> Architecture diagram of the GitHub repository alexcrescentini/icaap_irrbb_analysis, 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/alexcrescentini/icaap_irrbb_analysis
- Repository: https://github.com/alexcrescentini/icaap_irrbb_analysis

## Overview

This repository is a notebook-based IRRBB analysis: it builds Basel III rate shocks and a synthetic bank balance sheet, calculates NII and EVE under contractual and behavioral NMD assumptions, then stress-tests those assumptions against supervisory thresholds. The README documents this workflow and lists data and output artifacts; notebook source was not available, so links beyond that documented workflow are omitted.

Main entry points: [`02_irrbb_behav_nmd.ipynb`](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/02_irrbb_behav_nmd.ipynb) (NII and EVE), [`01_balance_sheet.ipynb`](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/01_balance_sheet.ipynb) (Synthetic balance sheet), [`00_basel_shocks.ipynb`](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/00_basel_shocks.ipynb) (Basel shocks), [`03_irrbb_stress_test.ipynb`](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/03_irrbb_stress_test.ipynb) (Behavioral stress test)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inputs["Inputs"]
  node_treasury_data["Treasury rates"]
end

subgraph group_analysis["Analysis"]
  node_shock_analysis["Basel shocks"]
  node_balance_sheet["Synthetic balance sheet"]
  node_irrbb_metrics["NII and EVE"]
  node_behavioral_stress["Behavioral stress test"]
end

subgraph group_results["Results"]
  node_yield_curves["Yield curves"]
  node_assets["Assets<br/>[assets.csv]"]
  node_liabilities["Liabilities<br/>[liabilities.csv]"]
  node_figures["Analysis figures"]
end

node_analyst(("Analyst"))

node_analyst -->|"runs"| node_shock_analysis
node_analyst -->|"runs"| node_balance_sheet
node_analyst -->|"runs"| node_irrbb_metrics
node_analyst -->|"runs"| node_behavioral_stress
node_treasury_data -->|"provides rates"| node_shock_analysis
node_shock_analysis -->|"provides shocks"| node_irrbb_metrics
node_balance_sheet -->|"provides instruments"| node_irrbb_metrics
node_irrbb_metrics -->|"provides baseline"| node_behavioral_stress
node_shock_analysis -->|"writes curves"| node_yield_curves
node_balance_sheet -->|"generates"| node_assets
node_balance_sheet -->|"generates"| node_liabilities
node_irrbb_metrics -->|"reports metrics"| node_figures
node_behavioral_stress -->|"reports sensitivities"| node_figures

click node_treasury_data "https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/data/daily-treasury-rates.csv"
click node_shock_analysis "https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/00_basel_shocks.ipynb"
click node_balance_sheet "https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/01_balance_sheet.ipynb"
click node_irrbb_metrics "https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/02_irrbb_behav_nmd.ipynb"
click node_behavioral_stress "https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/03_irrbb_stress_test.ipynb"
click node_yield_curves "https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/output/basel_iii_yield_curves.csv"
click node_assets "https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/output/assets.csv"
click node_liabilities "https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/output/liabilities.csv"
click node_figures "https://github.com/alexcrescentini/icaap_irrbb_analysis/tree/main/output/figs"

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_treasury_data toneBlue
class node_shock_analysis,node_balance_sheet,node_irrbb_metrics,node_behavioral_stress toneAmber
class node_yield_curves,node_assets,node_liabilities,node_figures toneMint
class node_analyst toneIndigo
```

## Components

### Inputs

- [Treasury rates](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/data/daily-treasury-rates.csv): `data/daily-treasury-rates.csv`

### Analysis

- [Basel shocks](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/00_basel_shocks.ipynb): `00_basel_shocks.ipynb`
- [Synthetic balance sheet](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/01_balance_sheet.ipynb): `01_balance_sheet.ipynb`
- [NII and EVE](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/02_irrbb_behav_nmd.ipynb): `02_irrbb_behav_nmd.ipynb`
- [Behavioral stress test](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/03_irrbb_stress_test.ipynb): `03_irrbb_stress_test.ipynb`

### Results

- [Yield curves](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/output/basel_iii_yield_curves.csv): `output/basel_iii_yield_curves.csv`
- [Assets](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/output/assets.csv): `output/assets.csv`
- [Liabilities](https://github.com/alexcrescentini/icaap_irrbb_analysis/blob/main/output/liabilities.csv): `output/liabilities.csv`
- [Analysis figures](https://github.com/alexcrescentini/icaap_irrbb_analysis/tree/main/output/figs): `output/figs`

### Other components

- **Analyst**

## Connections

- Analyst → Basel shocks: runs
- Analyst → Synthetic balance sheet: runs
- Analyst → NII and EVE: runs
- Analyst → Behavioral stress test: runs
- Treasury rates → Basel shocks: provides rates
- Basel shocks → NII and EVE: provides shocks
- Synthetic balance sheet → NII and EVE: provides instruments
- NII and EVE → Behavioral stress test: provides baseline
- Basel shocks → Yield curves: writes curves
- Synthetic balance sheet → Assets: generates
- Synthetic balance sheet → Liabilities: generates
- NII and EVE → Analysis figures: reports metrics
- Behavioral stress test → Analysis figures: reports sensitivities
