Skip to content

Bank Z-score


z_score(roa, capital_ratio, past_roas)


A measure of bank insolvency risk, defined as:

\text{Z-score} = \frac{\text{ROA}+\text{CAR}}{\sigma_{\text{ROA}}}

where \text{ROA} is the bank's ROA, \text{CAR} is the bank's capital ratio and \sigma_{\text{ROA}} is the standard deviation of bank ROA.

The rationale behind Z-score is simple. A bank is insolvent when its loss -\pi exceeds equity E, i.e., -\pi>E. The probability of insolvency is P(-\pi>E).

If bank assets is A, then P(-\pi>E)=P(-\frac{\pi}{A}>\frac{E}{A})=P(-ROA>CAR).

Assuming profits are normally distributed, then scaling (\text{ROA}+\text{CAR}) by \sigma_{\text{ROA}} yields an estimate of the distance to insolvency.

A higher Z-score implies that larger shocks to profitability are required to cause the losses to exceed bank equity.

  • roa (float) the current bank ROA.
  • capital_ratio (float) the current bank equity to asset ratio.
  • past_roas (np.ndarray) (n_periods,) array of past bank ROAs used to calculate the standard deviation.
Returns (float)

The bank's Z-score

>>> from import z_score
>>> import numpy as np
>>> z_score(roa=0.2, capital_ratio=0.5, past_roas=np.array([0.1,0.2,0.15,0.18,0.2]))

Source code | Bug report | Sponsor me

Last update: August 5, 2021
Back to top