How the score works, and where it falls short
A gradient-boosted classifier reads each bank's call-report ratios and estimates the chance it enters distress within a year. Everything below is measured on data the model never saw while it was built.
The question the model answers
For a bank that is healthy today, will it enter distress in the next four quarters? A bank counts as distressed when any one of these happens:
Inputs are FDIC call-report measures of capital, asset quality, earnings, liquidity, growth, loan mix and size. Consumer complaints appear on the site for context but are not model inputs: their history starts in 2023, and only about a third of complaints can be matched to a bank. Three groups are not scored: banks already in distress, banks under three years old, and US offices of foreign banks, whose capital sits with a parent abroad.
How well it works
| Model | ROC-AUC | PR-AUC | Distress caught in riskiest 10% |
|---|
How to read these. ROC-AUC: the chance that a bank which entered distress scores higher than one which didn't (0.5 is a coin toss, 1 is perfect). PR-AUC: how many of the banks the model flags really entered distress, averaged over every cut-off; compare it with the share that entered distress overall. The last column: of all banks that entered distress, the share that were among the 10% highest scores.
What the bands mean
Each band is a level of risk set on history. Cut-offs were chosen from predictions for 2003–2019, where each year is predicted by a model trained only on earlier years. 2020–2024 is shown for honesty: distress was rarer, so every band ran lower.
| Band | Probability | Entered distress, 2003–2019 | 2020–2024 |
|---|
Calibration: does 30% mean 30%?
Almost. The model runs slightly high. Because the bands are set from what actually happened, the band labels stay accurate even where the percentages overstate risk a little.
Is it still working?
Known limitations
What comes next
Full detail in the model card and the repository.