FinObservatory

Sovereign / Stress score

Can a model predict a sovereign default?

We built one, then tested it the only way that counts: on defaults it had never seen. The model is fitted on sovereign credit events that end in 2017, then asked to score every country as of 2019. Between 2020 and 2024, 12 countries actually defaulted on their private creditors. Here is what it got right, what it missed, and the number that beats it.

The headline result is negative, and we are publishing it anyway. An eight-variable model of fiscal, external and monetary fundamentals scores an out-of-sample AUC of 0.649 on the 2020-2024 defaults. A single number, government debt as a share of GDP, scores 0.718 on the identical test. The model loses, and it loses on every variant of the test we ran. If you want one sovereign risk indicator from public data, use the debt ratio.

The natural experiment: who defaulted, and where the model ranked them

The crisis labels the model learns from stop in 2017, so the entire 2020s default wave is absent from its training data, in every form. Each country below is scored purely on what was observable in 2018, ranked against the 142 countries in the test universe. A rank of 1 is the most stressed country in the world on this model. 7 of the 12 eventual defaulters were in the model’s riskiest quartile in 2019.

CountryDefaulted2019 rankPercentileDebt/GDP 2018
LBN Lebanon20204 of 14297.9155.1%
ARG Argentina20206 of 14296.585.2%
MWI Malawi202316 of 14289.440.8%
UKR Ukraine202219 of 14287.260.4%
ZMB Zambia202020 of 14286.581.2%
GHA Ghana202222 of 14285.162.0%
SUR Suriname202027 of 14281.668.6%
LKA Sri Lanka202259 of 14258.983.6%
TCD Chad202179 of 14244.733.8%
BLZ Belize2021117 of 14217.779.0%
COG Republic of the Congo2020127 of 14210.671.2%
ECU Ecuador2020130 of 1428.549.5%

Read this honestly, in both directions. The model ranked Lebanon 4th and Argentina 6th in the world in 2019, a year before both defaulted, which is a real result. But Sri Lanka, the most widely watched default of the period, sat 59th of 142, squarely mid-pack, and Ecuador ranked 130th months before it restructured. Those are real failures, not rounding. And the countries the model called most stressed of all in 2019 (Venezuela, Sudan, South Sudan, Yemen) did not default in 2020-2024 for a reason no model of fundamentals can see: they had already defaulted, and had no performing private debt left to default on. The at-risk row of the scoreboard removes them, and the model still loses.

Every test we ran

AUC is the probability that a randomly chosen defaulter is ranked above a randomly chosen non-defaulter: 0.5 is a coin flip, 1.0 is perfect. Every row compares the full model against a benchmark on the identical test set. We report all of them, including the ones we would rather not.

TestnEventsModelBenchmarkVerdict
Walk-forward, 1995-2015
Pooled out-of-sample across four blocks, historical panel
4,445790.6890.746
debt/GDP alone
model loses
Natural experiment
Scored in 2019, judged on the 2020-2024 defaults
142120.6490.718
debt/GDP alone
model loses
Same, at-risk universe
Excluding countries already in private default in 2019
128100.6020.715
debt/GDP alone
model loses
Same, looser event rule
2pp default-jump threshold instead of 5pp
142190.6110.732
debt/GDP alone
model loses
Versus the official rating
OECD Country Risk Classification, same 2019 cross-section
117110.6730.669
OECD rating
model wins

The one test the model does not lose is against the official rating: on the same 2019 cross-section it edges the OECD Country Risk Classification (0.673 against 0.669), a difference far too small on 11 events to call a win. The honest summary is that a public-data model, an official export-credit rating, and a single debt ratio all land in the same modest band, and the debt ratio is on top.

The historical walk-forward, block by block

Before the natural experiment, the standard test: train on everything up to a cutoff, predict the next five years, never letting a training label see into the test window. The pattern is consistent, and it is the same pattern the natural experiment shows. Note the last two blocks: debt/GDP alone gets stronger over time as a predictor, and the model does not follow it.

Trained throughTest rowsOnsetsModel AUCDebt/GDP alone
19951,069270.7010.663
20001,117190.6060.673
20051,132160.6590.836
20101,127170.7250.845
Pooled4,445790.6890.746

Why one variable beats eight

Each feature on its own, ranked by how far it lands from a coin flip on the 2019 test. An AUC below 0.5 is not an absent signal, it is a protective one: countries with more reserves, a stronger fiscal balance and faster growth default less, so those features rank defaulters low by construction. Debt/GDP is simply the single sharpest thing in the file, and combining it with seven noisier, partly redundant variables on 299 historical onsets costs more in estimation noise than it adds in information.

FeatureAUC aloneDirection
FX reserves / GDP liquidity buffer0.233protective
Government debt / GDP level, percent0.718raises risk
Change in debt / GDP 3-year change, points0.688raises risk
Fiscal balance / GDP positive = surplus0.319protective
Real GDP growth percent0.381protective
Inflation signed log, tames hyperinflations0.615raises risk
Depreciation vs USD percent, 1 year0.559raises risk
Current account / GDP positive = surplus0.475no signal

The model’s current ranking, 2024

Published for completeness, and to be read alongside the debt ratio rather than instead of it. This is a ranking of vulnerability from public annual macro data, not a forecast, not a rating, and not a claim that any country here will default. Several of the names at the top have been in default for years already.

#CountryPercentileDebt/GDPFiscal bal.Reserves/GDP
1SDN Sudan100.0252.3%-0.7%n/a
2ARG Argentina99.6154.6%-5.3%3.6%
3VEN Venezuela99.1146.3%-4.2%n/a
4MWI Malawi98.786.7%-7.8%n/a
5LBN Lebanon98.2195.5%-0.4%13.8%
6PLW Palau97.876.4%0.7%n/a
7SEN Senegal97.4118.4%-14.8%n/a
8IRN Iran96.929.6%-2.5%n/a
9ZWE Zimbabwe96.576.1%-3.9%n/a
10SUR Suriname96.098.2%-1.7%39.0%
11LAO Laos95.6116.5%-0.0%11.8%
12BDI Burundi95.258.1%-7.7%2.3%
13LKA Sri Lanka94.7110.4%-8.3%5.2%
14EGY Egypt94.395.9%-6.1%10.0%
15GHA Ghana93.879.1%-3.4%4.5%
16PAK Pakistan93.478.5%-7.8%4.6%
17MMR Myanmar93.070.3%-6.3%14.0%
18HTI Haiti92.528.5%0.8%13.0%
19SLE Sierra Leone92.149.5%-5.0%7.7%
20GNB Guinea-Bissau91.679.4%-8.2%n/a

How it is built. A logistic model of a sovereign credit event starting within three years, on a country-year panel from 236 countries (7,833 country-years, 299 onsets), fitted on eight fiscal, external and monetary variables observed the year before. Labels are the Global Macro Database’s sovereign-debt-crisis flags, which mark credit events rather than years spent in default: Argentina flags 2001 and 2005, and this layer folds the 2005 exchange into the 2001 episode rather than counting it as a fresh crisis. Rows in the five years after an onset leave the sample instead of being labelled zero.

The 2020-2024 defaults are identified independently. Not from the training labels, which end in 2017, but from the Bank of Canada and Bank of England database of debt actually in default, by one rule: the stock owed to private creditors jumps by at least 5 points of GDP in a single year. A jump, not a level, because roughly 110 countries carry small legacy arrears in any given year, and countries chronically in arrears would otherwise look like fresh defaulters annually. That rule selects exactly the 12 countries above, which is the documented 2020s default wave, and the threshold was chosen to reproduce that public record rather than to move any metric. The looser 2pp variant is in the scoreboard: the verdict does not change.

What this cannot see, stated plainly. Ethiopia defaulted on its Eurobond in December 2023 and is absent from the event list: that bond is around 0.6% of Ethiopian GDP, below any percent-of-GDP threshold, and we did not special-case it. Annual macro data cannot see a rollover crisis that opens and closes inside a year. And the model has no market prices in it at all: spreads would very likely beat every column on this page, which is precisely why they are not a fair comparison for a fundamentals model.

Built by scripts/build/build_sovereign_stress.py over engine/finweave_engine/layers/sovereign_stress.py. Crisis labels and macro data: Global Macro Database (Müller, Xu, Lehbib and Chen 2025), free for academic and non-profit research only. Defaults: Bank of Canada and Bank of England sovereign default database. Official ratings: OECD Country Risk Classification. The banking-crisis counterpart, which loses to its own single-variable benchmark in the same way, is at /crises/early-warning.