Structural Z-score
Description
This dataset accompanies the manuscript “A Structural Z-Score with Prudential Default and Memory: A Forward-Looking Measure of Bank Risk”. The research hypothesis is that the traditional accounting-based Z-score can be made more informative by redefining bank default as a forward-looking breach of regulatory capital requirements rather than as full accounting insolvency. The proposed structural Z-score preserves the distance-to-default intuition of the traditional measure, but anchors the default threshold in expected risk-weighted assets, expected expenses, and current total capital adequacy. The Data folder contains annual Excel files for eight large European banks: Banco Santander, BNP Paribas, Crédit Agricole, Deutsche Bank, Lloyds, Société Générale, UBS, and UniCredit. The files include the accounting and prudential variables required to compute the structural Z-score: income, expenses, profit, assets, equity, risk-weighted assets, total capital adequacy, and the regulatory solvency requirement. They also include macro-financial variables used in the Monte Carlo calibration and stress-classification exercises. “Solvency ratio” denotes the bank-year regulatory capital requirement, not the observed effective capital ratio. Total capital adequacy is used as a stock variable. The Scripts for original computations folder contains the Python routines used to compute the structural Z-score from the empirical bank data. These scripts implement bounded-support beta-kernel density estimation, rolling-window empirical distributions, the finite-memory prediction mechanism, the fixed-point procedure, and the graphical outputs. The memory parameter k governs the prediction step: k=0 corresponds to the structural Z-score without memory, whereas k>0 introduces finite-memory conditioning through the reference point, reference dispersion, and integration domain. The Scripts for Monte Carlo Simulations folder contains the Python scripts used to build and evaluate the representative-bank Monte Carlo framework. These scripts load the empirical panel, construct global and country macro-financial factors, partition observations into normal and stress regimes, calibrate a representative-bank data-generating process, simulate alternative stress environments, and compare the traditional and structural Z-scores. The Scripts for Monte Carlo Robustness folder contains the robustness pipeline. These scripts assess whether the main conclusions are stable under alternative empirical stress classifications, prudential requirements, and distress thresholds. They reproduce the robustness tables and appendix precision diagnostics reported in the manuscript. The dataset and scripts allow replication of the empirical application, Monte Carlo validation, robustness exercises, tables, and figures. Users can adapt the code to compute structural Z-scores for other banks, provided comparable annual accounting, prudential, and macro-financial data are available.
Files
Steps to reproduce
Step 1: Software and environment The analysis was implemented in Python. Required packages include numpy, pandas, scipy, matplotlib, scikit-learn, and openpyxl, together with standard libraries such as math, collections, pathlib, and os. No GPU or parallel computing is required. Step 2: Folder structure The replication package contains four folders: Data, Scripts for original computations, Scripts for Monte Carlo Simulations, and Scripts for Monte Carlo Robustness. The Data folder contains the Excel files for the eight banks. Step 3: Input data The Data folder contains annual Excel files for eight large European banks. Each file is named Z-score_annual_<BankName>_rest_choc.xlsx and includes the accounting, prudential, and macro-financial variables used in the manuscript. Main bank-level variables include income, expenses, profit, assets, equity, risk-weighted assets, total capital adequacy, and the regulatory solvency requirement. “Solvency ratio” denotes the bank-year regulatory capital requirement, not the observed effective capital ratio. Step 4: Original structural Z-score computations To reproduce the empirical application, use the scripts in Scripts for original computations. The main script reads the bank-level Excel file, estimates bounded-support beta-kernel densities, applies rolling-window prediction, introduces finite-memory conditioning through k, solves the fixed-point problem, and exports the structural Z-score and its components. The case k=0 corresponds to the structural Z-score without memory, while k>0 introduces finite-memory conditioning. Step 5: Monte Carlo validation To reproduce the Monte Carlo validation, use the x0-x6 _revised scripts in Scripts for Monte Carlo Simulations. The workflow covers configuration, data loading, macro-factor construction, normal/stress partition, representative-bank calibration, simulation of stress environments, and performance evaluation. Main outputs include simulated paths, event frequencies, performance measures, Monte Carlo standard errors, confidence intervals, memory-effect diagnostics, and numerical-reliability checks. Step 6: Robustness exercises To reproduce the robustness analysis, use the x0-x6 _robustness scripts in Scripts for Monte Carlo Robustness. These scripts rerun the Monte Carlo framework under alternative stress-classification rules, prudential requirements, and distress thresholds. They generate the robustness tables and appendix precision diagnostics reported in the manuscript. Step 7: Replication guidance Each script folder contains a README file describing the scripts, execution order, methodological role, and expected outputs. Users should preserve the folder structure or update paths before execution. Running the scripts according to these README files reproduces the empirical application, Monte Carlo validation, robustness exercises, tables, and figures. The code can also be adapted to other banks if comparable annual data are available.
Institutions
- Université de BordeauxNouvelle-Aquitaine, Bordeaux
- Bordeaux Sciences ÉconomiquesNouvelle-Aquitaine, Pessac
- Centre National de la Recherche ScientifiqueÎle-de-France, Paris