Skip to content
FinObservatory
Model methodsCrisis riskactive

Crisis early-warning model

A country-year vulnerability score for a systemic banking-crisis onset one to three years after the last observed feature year.

Registry slug:
crisis-early-warning
Visible surface:
/crises/early-warning

Data and implementation

Vintage

6,864 scored observations for 204 economies from 1985 through 2025; model ews-1.0, vintage jst-r6(2020);lv-2026-wp2694(2023);bis-gap(2025-Q4);gmd-2026_06(cut2024), measured 2026-08-30

Data tables

  • data/parquet/crisis_ews.parquet
  • data/parquet/ews_eval.parquet
  • data/parquet/ews_coefficients.parquet

Engine

  • engine/finweave_engine/layers/ews.py

Producer

scripts/build/build_ews.py

Outputs

  • data/parquet/crisis_ews.parquet
  • data/parquet/ews_eval.parquet
  • data/parquet/ews_coefficients.parquet

Source: Jordà-Schularick-Taylor Macrohistory Database, Release 6; IMF Systemic Banking Crises Database, Laeven-Valencia 2026 vintage; Bank for International Settlements, total credit and credit-to-GDP gaps; Global Macro Database, release 2026_06

Method

For country-year t, every feature is realized at t-1 or earlier and the label is one when a systemic banking-crisis episode begins in t, t+1, or t+2. JST chronology is used for its 18 advanced economies and the Laeven-Valencia chronology for all others; chronologies are never mixed within a country.

Features cover the credit gap, three-year real credit growth, current account, three-year real house-price growth, three-year public-debt-ratio change, real GDP growth, and inflation. Training-fold winsorization, imputation, standardization, and missing indicators prevent later data from entering earlier scores.

Era-blocked walk-forward evaluation trains only where each three-year label window ends before a test block. The pooled comparable gap subset reports logistic AUC 0.6479599141016464 against 0.6794201861130995 for the BIS credit-gap benchmark, so the simple benchmark wins.

Current scores describe vulnerability configurations under a historical model. They are not forecasts that a country will experience a current event.

Methodology evidence

Path and linesEvidence
engine/finweave_engine/layers/ews.py:1-79build_features(), build_panel(), walk_forward(), and fit_full() define the lagged onset target, exclusions, blocked evaluation, gap benchmark, and final fit.
docs/crises_methodology.md:21-71Defines episode onsets, the chronology discipline, and the merge and overlap rules inherited by the crisis layer.
src/app/crises/early-warning/page.tsx:331-477Publishes the target, feature lags, sample rules, blocked walk-forward design, source vintage, and current-score interpretation.
docs/analyst_methodology.md:199-205Requires the gap-benchmark loss and model limitations to accompany any early-warning interpretation.

Equations

Three-year onset targety(i,t) = 1 if an onset occurs in {t, t+1, t+2}, using features from t-1 or earlier
Walk-forward purgefor block T, train on t <= T - 3 and test on t in [T, T + 5)

Validation

  • The score output contains 6,864 observations for 204 economies from 1985 through 2025 and carries model version ews-1.0 with the stored source vintage.
  • On the pooled gap-available subset, the model's logistic AUC is 0.6479599141016464 and the BIS-gap benchmark AUC is 0.6794201861130995. The benchmark wins and that loss is published.
  • The producer verifies pooled row counts and base rates against the written output and hand-recomputes current gauge scores from the stored preprocessing statistics and coefficients.

Limitations

  • The onset chronologies end in 2020 for JST economies and 2023 for Laeven-Valencia economies, so later events cannot be learned by this model.
  • A country-year needs at least three of seven features. Missing values are not fabricated, but missingness indicators can contribute to the score.
  • Current deciles and probabilities are model-based vulnerability summaries with material false alarms and misses, not statements about current events or certain future crises.

References

Metadata endpoint

PathMethodReturnsExample
/api/methods/[slug]GETRegistry metadata, implementation paths, measured vintage, methodology evidence, validation, and limitations. No model observations or parquet contents./api/methods/crisis-early-warning
Last verified 2026-08-30