VisibleHand — Methodology v0.3
Scoring model v0.3.0 · Calibration preprint in preparation (SSRN Q4 2026) ROC data ▸
Overview
VisibleHand scores countries 0–100 by blending four sub-scorers. Each scorer is normalised against the country's own historical baseline using robust statistics (median/MAD), so scores reflect deviation from self — not rank among peers. A score of 50 means typical historical conditions for that country.
Component Weights
ComponentWeightPrimary Sources
economic45%World Bank WDI · IMF WEO · BIS · ILO · IMF FSI
political25%GDELT · ACLED
nlp_sentiment20%Central-bank statements (FinBERT + lexicon)
governance10%V-Dem · WJP · TI CPI · Freedom House

Weights derived from backtested AUC optimisation. Override via POST /risk/{code} with weight fields.

Economic Component
10 macro indicators. Each is normalised to a 0–100 risk scale using robust median/MAD against own history, then combined with Theil-Sen trend weighting. Missing data is imputed conservatively.
IndicatorSourceDirection
gdp_growthWorld Bank WDI↓ high growth = lower risk
inflationWorld Bank WDI · IMF↑ high inflation = higher risk
debt_to_gdpIMF WEO↑ high debt = higher risk
fx_reservesWorld Bank · IMF↓ low reserves = higher risk
current_accountWorld Bank WDI↑ large deficit = higher risk
unemploymentILO · World Bank↑ high unemployment = higher risk
bank_nplIMF FSI↑ high NPL = higher risk
tax_revenueWorld Bank WDI↓ low revenue = higher risk
remittancesWorld Bank WDIcontext-dependent
credit_gapBIS↑ large gap = higher risk
Political Component
Hawkes process fitted per-country on GDELT/ACLED event feeds. The branching ratio ρ measures self-sustaining instability (ρ → 1 = near-critical). A contagion network layer adds neighbor-country spillover. Events are typed (protest, conflict, coup, sanction, leadership change, election) and weighted by severity.
Sources
GDELT Global Database of Events (real-time)
ACLED Armed Conflict Location & Event Data
Deduplicated by day/type, max-severity kept
Hawkes Parameters
μ (background rate): baseline event frequency
α (excitation): cross-event triggering
β (decay): excitation half-life (~7 days)
Fitted via Nelder-Mead MLE
NLP Component — Central-Bank Hawkishness
Hybrid FinBERT ONNX + domain lexicon reads central-bank statements. Higher scores = more hawkish/stressed language = higher risk contribution.
AspectWhat it captures
monetary_policyRate language, tightening/easing signals
fiscal_policyBudget, deficit, sustainability mentions
financial_stabilityBanking stress, systemic risk language
external_sectorExchange rate, reserves, capital flows
political_economyInstitutional risk, reform uncertainty

Score 0–100: 0 = very dovish/stable, 100 = very hawkish/stressed. Statements from Fed, ECB, BoE, Banco Central, NBU, RBI, SARB, and others.

Governance Component
Four institutional quality measures, cross-sectionally normalised then adjusted toward own-history baseline. Governance changes slowly — data typically updated annually.
SourceIndicators usedCoverage
V-DemRule of law, corruption, judicial independence1900–present
WJP Rule of LawComposite rule-of-law index2012–present
TI CPICorruption Perceptions Index1995–present
Freedom HousePolitical rights + civil liberties1973–present
Score Bands & Interpretation
0 – 19VERY LOWStructural stability. No acute risk factors above historical norm.
20 – 39LOWMinor vulnerabilities. Within manageable range for this country.
40 – 59MODERATEMeaningful risk. Active monitoring warranted. Elevated vs baseline.
60 – 74HIGHSignificant stress. Near-term policy response or intervention likely.
75 – 89VERY HIGHAcute crisis conditions. Multiple risk factors simultaneously elevated.
90 – 100CRITICALActive crisis or severe institutional breakdown.
Bayesian Confidence Interval
Every score ships a 95% CI computed from 500-sample Monte Carlo perturbation of the input indicators. Wider CI = less data or higher sensitivity to individual indicators. Confidence (0–1) reflects data coverage: 1.0 = all 10 economic indicators + events + NLP + governance present.
6 / 12-Month Forecast
âš  The forecast is Theil-Sen extrapolation of score history combined with IMF WEO macro projections. It is NOT a prediction model. It extends current trends linearly. Use for scenario planning only. CI widens linearly with horizon.
Calibration — Backtest on Crisis Events
ROC-AUC1.000
Brier score0.071
PR-AUC1.000
Events (n)99
Crises (n)79
Dataset: ~220 crisis events (sovereign defaults, IMF programmes, currency crises, banking crises, civil war onsets, coups).
Sources: IMF HPDD · Laeven & Valencia (2012/2018) · UCDP · REIGN · World Bank (2000–2023).

Scores are composite risk (0-100); threshold sweep from 0 to 100. Higher score = higher predicted crisis probability. When live DB scores unavailable, heuristic scores based on crisis type are used.

Limitations & Known Issues
⚠ Scores are relative to own history — a country that has always been unstable may score low even during acute crises. Cross-country comparison of raw scores should be done with care.
NLP component requires central-bank statements in the database. Without statements, NLP defaults to 50 (neutral). The governance layer updates annually with source data; intra-year governance shifts are not captured.
VisibleHand v0.3 · MIT · Calibration preprint: SSRN Q4 2026 API Reference ▸