Bank-failure nowcast
A within-quarter vulnerability percentile from public call-report ratios for appearance on the FDIC failures list within four quarters.
- Registry slug:
- bank-failure-nowcast
- Visible surface:
- /banks/nowcast
Data and implementation
Vintage
435,263 bank-quarter scores for 8,655 banks from 2008-03-31 through 2026-03-31, measured 2026-08-30
Data tables
- data/parquet/failure_nowcast.parquet
- data/parquet/failure_nowcast_eval.parquet
Engine
- engine/finweave_engine/layers/failure_nowcast.py
Producer
scripts/build/build_failure_nowcast.py
Outputs
- data/parquet/failure_nowcast.parquet
- data/parquet/failure_nowcast_eval.parquet
Source: FFIEC Central Data Repository, public call-report bulk files; FDIC BankFind Suite, failures list
Method
Mandatory miss first: on the final 2022Q4 filings before the March 2023 runs, the operative model placed Silicon Valley Bank at the 43.81833473507149th percentile, Signature at about the 56th, and First Republic at about the 16th. It did not flag any of the three.
A row is positive when a bank matched by FDIC certificate appears with RESTYPE='FAILURE' in the next four quarters. The feature set contains equity/assets, tier 1 leverage, annualized ROA, annualized net interest margin, deposits/assets, four-quarter loan growth, four-quarter asset growth, and, from the 2017 RC-N break onward, nonperforming loans as a share of loans.
For test year Y, purged walk-forward training includes only observations whose complete four-quarter label windows closed before Y began. Scores are converted to percentiles within each report quarter.
The published output is a public-ratio vulnerability percentile. It is not a prediction of which bank fails next, a CAMELS rating, or a supervisory judgment.
Methodology evidence
| Path and lines | Evidence |
|---|---|
| engine/finweave_engine/layers/failure_nowcast.py:1-60 | match_failures(), build_features(), walk_forward(), and run_nowcast() define the target, feature sets, purged evaluation, output, benchmark, and mandatory interpretation limits. |
| scripts/build/build_failure_nowcast.py:1-27 | Documents the score and evaluation artifacts plus independent score, AUC, and 2023-case verification. |
| docs/analyst_methodology.md:71-74 | Carries the shared warning that public signals are not supervisory CAMELS ratings or predictions of named-bank failure. |
| docs/analyst_methodology.md:199-205 | Requires the model's documented misses and coverage limits to accompany any nowcast interpretation. |
Equations
label_fail_4q = 1 if fail_date is in (report_date, report_date + 1 year]pctile = percentile_rank(p_fail_4q within report_date) * 100Validation
- The output contains 435,263 scored observations for 8,655 banks from 2008-03-31 through 2026-03-31; the separate evaluation parquet stores per-year, pooled, coefficient, and coverage rows.
- Only after the 2023 misses are disclosed: the pooled evaluation reports strong ranking performance, but equity/assets alone marginally beats the eight-feature model on the comparable pooled sample.
- The producer independently recomputes pooled AUC from written scores and hand-recomputes one logistic score from stored coefficients before printing the 2023 case study.
Limitations
- The eight ratios do not measure securities duration, uninsured-deposit concentration, or depositor coordination, the exposures central to the SVB, Signature, and First Republic failures.
- Washington Mutual, IndyMac, and other OTS-regulated thrift failures without FFIEC call-report rows are outside the matched panel and are reported as unmatched.
- Within-quarter percentiles rank vulnerability configurations. Even most banks in high-score buckets do not fail, and current labels remain unobservable until their full outcome window closes.
References
Metadata endpoint
| Path | Method | Returns | Example |
|---|---|---|---|
| /api/methods/[slug] | GET | Registry metadata, implementation paths, measured vintage, methodology evidence, validation, and limitations. No model observations or parquet contents. | /api/methods/bank-failure-nowcast |