Short-term debt (% of total reserves)

Source: worldbank.org, 01.09.2025

Year: 2023

Flag Country Value Value change, % Rank
Angola Angola 35.4 +15.2% 39
Albania Albania 19.4 -20.3% 57
Argentina Argentina 238 +115% 2
Armenia Armenia 86.1 +9.23% 15
Azerbaijan Azerbaijan 4.45 -0.268% 82
Burundi Burundi 0.325 +94.7% 94
Bangladesh Bangladesh 65.1 +18.6% 19
Bosnia & Herzegovina Bosnia & Herzegovina 31.4 +4.53% 43
Belarus Belarus 128 -0.117% 6
Belize Belize 2.44 +19.6% 86
Bolivia Bolivia 44.1 +162% 31
Brazil Brazil 22.7 +8.62% 52
Bhutan Bhutan 0.141 -78.8% 95
Botswana Botswana 6.1 +133% 79
Central African Republic Central African Republic 15.4 -43.6% 67
China China 37.3 -2.45% 37
Cameroon Cameroon 17.6 +2.68% 62
Congo - Kinshasa Congo - Kinshasa 11.8 -12.2% 72
Congo - Brazzaville Congo - Brazzaville 27.6 +19.6% 48
Colombia Colombia 33.7 -1.2% 41
Comoros Comoros 0.14 -74.6% 96
Cape Verde Cape Verde 48.6 -11.7% 29
Costa Rica Costa Rica 41 -48.6% 32
Djibouti Djibouti 95.3 -10.6% 12
Dominica Dominica 96.5 -0.603% 11
Dominican Republic Dominican Republic 25.5 +16.9% 50
Algeria Algeria 2.36 -2.98% 87
Ecuador Ecuador 39.2 +72.3% 33
Egypt Egypt 89.2 -5.25% 14
Ethiopia Ethiopia 10.6 -62.6% 74
Fiji Fiji 51.3 +56.9% 28
Gabon Gabon 8.57 -62.6% 75
Georgia Georgia 83.3 +6.86% 17
Ghana Ghana 104 +16% 10
Guinea Guinea 15.8 +34.8% 66
Gambia Gambia 15.8 +122% 65
Grenada Grenada 13.7 -21.4% 70
Guatemala Guatemala 0.387 -73.9% 93
Guyana Guyana 6.73 +13.8% 78
Honduras Honduras 18.2 +54.7% 60
Haiti Haiti 0.0034 -16% 97
Indonesia Indonesia 37.3 +6.62% 38
India India 20.1 -10.7% 55
Iraq Iraq 0.865 -27.3% 89
Jamaica Jamaica 53.8 +9.84% 24
Jordan Jordan 83.8 -3.37% 16
Kazakhstan Kazakhstan 53.5 +14.6% 25
Kenya Kenya 38.3 +19.3% 35
Kyrgyzstan Kyrgyzstan 34.8 +0.0167% 40
Cambodia Cambodia 21.9 -15.5% 53
Laos Laos 7.92 -83.4% 77
Lebanon Lebanon 62.3 +30.6% 22
St. Lucia St. Lucia 18.9 -24.4% 58
Sri Lanka Sri Lanka 165 -63.7% 3
Lesotho Lesotho 0.394 -79% 92
Morocco Morocco 27.6 -10.4% 47
Moldova Moldova 51.8 -5.38% 27
Madagascar Madagascar 4.88 -41.3% 81
Maldives Maldives 16.7 -69.2% 63
Mexico Mexico 28.1 +3.05% 45
North Macedonia North Macedonia 63 -16.7% 21
Myanmar (Burma) Myanmar (Burma) 0.476 +22.7% 91
Montenegro Montenegro 11 +6.08% 73
Mongolia Mongolia 38.9 -31% 34
Mozambique Mozambique 25.7 -3.91% 49
Mauritius Mauritius 130 +21.8% 5
Nigeria Nigeria 59.1 -2.13% 23
Nicaragua Nicaragua 18.9 -27.2% 59
Nepal Nepal 3.35 -2.95% 84
Pakistan Pakistan 64.7 -26.8% 20
Peru Peru 17.9 +22.8% 61
Philippines Philippines 16.5 -4.77% 64
Papua New Guinea Papua New Guinea 0.478 -99.4% 90
Paraguay Paraguay 28 +14.9% 46
Rwanda Rwanda 24.2 +10.8% 51
Solomon Islands Solomon Islands 5.93 -33.9% 80
Sierra Leone Sierra Leone 31.7 +22.4% 42
El Salvador El Salvador 94.6 +7.6% 13
Serbia Serbia 3.52 -71.6% 83
São Tomé & Príncipe São Tomé & Príncipe 47.7 +50.2% 30
Suriname Suriname 15.3 -55.7% 68
Eswatini Eswatini 11.8 +348% 71
Chad Chad 3.3 -2.59% 85
Thailand Thailand 30.2 -4.31% 44
Tajikistan Tajikistan 20.5 +26.2% 54
Timor-Leste Timor-Leste 1.19 +2,836% 88
Tonga Tonga 0 99
Tunisia Tunisia 149 -11.8% 4
Turkey Turkey 124 +7.02% 7
Ukraine Ukraine 51.9 -8.59% 26
Uzbekistan Uzbekistan 19.7 +12.4% 56
St. Vincent & Grenadines St. Vincent & Grenadines 0.000323 +18.2% 98
Vietnam Vietnam 38.1 -13.7% 36
Vanuatu Vanuatu 8.16 +64% 76
Samoa Samoa 14.9 -33.1% 69
Kosovo Kosovo 117 +16.4% 8
South Africa South Africa 67.6 -4.75% 18
Zambia Zambia 106 +19.8% 9
Zimbabwe Zimbabwe 3,410 +413% 1

The indicator "Short-term debt (% of total reserves)" is a critical metric for assessing a country's financial health and stability. It represents the proportion of a nation's short-term debt — obligations due within one year — relative to its total reserves, which primarily include foreign currency deposits and other liquid assets held by the central bank. This figure serves as a useful gauge of a country's capability to meet its short-term liabilities, especially in times of economic distress or currency volatility.

Understanding the importance of this indicator lies in its implications for economic policies, investment attractiveness, and overall financial resilience. A low percentage of short-term debt compared to total reserves generally signifies that a country has a strong liquidity position, reducing the risk of default when facing unforeseen economic shocks. Conversely, a high percentage can indicate potential vulnerabilities, suggesting that a government may struggle to meet its obligations without resorting to solutions like refinancing or increasing debt levels. As such, policymakers, investors, and economic analysts closely monitor this ratio, using it to make informed decisions regarding economic strategies and investments.

This indicator is interrelated with various other economic metrics. For instance, it can be seen in conjunction with other debt indicators, such as total public debt to GDP or external debt metrics. A nation with high total debt levels may often face higher short-term debt ratios, indicating that much of its obligations are looming closely at hand. Moreover, strong economic indicators such as GDP growth rates can positively influence total reserves, potentially leading to a healthier short-term debt ratio. Furthermore, the balance of payments and trade balance also plays a vital role; any disruptions in trade can directly impact the reserves available to cover short-term debts.

Numerous factors affect the short-term debt ratio. A nation’s currency stability, inflation rates, and interest rates all contribute to the dynamics of liquidity and the ability to manage debt. For example, high inflation may erode the value of reserves while simultaneously increasing the cost of servicing debt, pushing the short-term debt ratio higher. Political stability and economic policies also play crucial roles, influencing investor confidence as well as a country's capacity to manage its debts. Nations with strong, transparent governance structures often find it easier to maintain lower short-term debt ratios, as they are seen as lower risk by foreign investors.

Addressing high short-term debt ratios requires targeted strategies. One effective solution is to bolster foreign reserves through increased exports, foreign investment, or remittances. Strengthening the domestic economy to improve GDP growth can also naturally increase reserves, thereby helping to lower the short-term debt ratio. Countries may also consider restructuring their debt, converting short-term obligations into longer-term commitments, which can alleviate immediate financial pressures. Additionally, it would be vital to adopt sound monetary policies that reduce inflationary pressures and improve overall economic stability, thereby fostering a robust environment for businesses to thrive.

However, there are inherent flaws and limitations in relying solely on the short-term debt to reserves indicator. For instance, it does not consider the broader context of external financial obligations or the nature of a country's debt. A country may have a low short-term debt ratio while struggling with high levels of long-term debt, which could lead to serious economic consequences over time. Moreover, the absolute level of reserves matters, as a high percentage of a small reserve could still signify vulnerability. Additionally, countries may also have access to other sources of financing, such as international assistance or central bank liquidity facilities, which can provide a cushion in case of financial distress.

As of 2023, the median value for short-term debt as a percentage of total reserves stands at 25.67%. This statistic provides a critical reference point for analyzing individual countries' performances against their peers. Among the notable nations, Zimbabwe reports an astonishing figure of 3409.7%, suggesting a profound financial liquidity crisis where short-term liabilities far exceed available reserves. Such a high percentage raises alarms regarding the risk of default and necessitates immediate attention to restore economic stability.

In contrast, Argentina exhibits a relatively high percentage as well, at 238.08%, indicating significant short-term challenges, though not as severe as Zimbabwe. This situation may reflect Argentina's ongoing economic struggles and efforts to stabilize its economy amid various economic reforms and external pressures.

Other countries like Tunisia, Mauritius, and Belarus also show levels above the median, with percentages of 149.05%, 130.29%, and 127.88%, respectively. These levels are considerable and highlight challenges related to short-term financing, compelling policymakers in these regions to devise strategies for improving reserve levels and managing debt more effectively.

Conversely, the bottom five areas demonstrate extraordinary fiscal management in this context. Tonga records a low of 0.0%, indicating that it does not rely on short-term debt against its reserves at all. Similarly, nations such as St. Vincent & Grenadines, Haiti, Comoros, and Bhutan showcase minimal percentages, suggesting robust reserve positions or strategies that allow these countries to navigate their debts without the pressure of looming short-term obligations.

In summary, the short-term debt (% of total reserves) indicator serves as a pivotal tool for understanding and assessing a nation's financial stability, shaping economic policy, and guiding investment decisions. Its complexities, interrelations with other economic indicators, and the various influencing factors highlight the need for a nuanced approach in analyzing and addressing the challenges posed by short-term debt commitments.

                    
# Install missing packages
import sys
import subprocess

def install(package):
subprocess.check_call([sys.executable, "-m", "pip", "install", package])

# Required packages
for package in ['wbdata', 'country_converter']:
try:
__import__(package)
except ImportError:
install(package)

# Import libraries
import wbdata
import country_converter as coco
from datetime import datetime

# Define World Bank indicator code
dataset_code = 'DT.DOD.DSTC.IR.ZS'

# Download data from World Bank API
data = wbdata.get_dataframe({dataset_code: 'value'},
date=(datetime(1960, 1, 1), datetime.today()),
parse_dates=True,
keep_levels=True).reset_index()

# Extract year
data['year'] = data['date'].dt.year

# Convert country names to ISO codes using country_converter
cc = coco.CountryConverter()
data['iso2c'] = cc.convert(names=data['country'], to='ISO2', not_found=None)
data['iso3c'] = cc.convert(names=data['country'], to='ISO3', not_found=None)

# Filter out rows where ISO codes could not be matched — likely not real countries
data = data[data['iso2c'].notna() & data['iso3c'].notna()]

# Sort for calculation
data = data.sort_values(['iso3c', 'year'])

# Calculate YoY absolute and percent change
data['value_change'] = data.groupby('iso3c')['value'].diff()
data['value_change_percent'] = data.groupby('iso3c')['value'].pct_change() * 100

# Calculate ranks (higher GDP per capita = better rank)
data['rank'] = data.groupby('year')['value'].rank(ascending=False, method='dense')

# Calculate rank change from previous year
data['rank_change'] = data.groupby('iso3c')['rank'].diff()

# Select desired columns
final_df = data[['country', 'iso2c', 'iso3c', 'year', 'value',
'value_change', 'value_change_percent', 'rank', 'rank_change']].copy()

# Optional: Add labels as metadata (could be useful for export or UI)
column_labels = {
'country': 'Country name',
'iso2c': 'ISO 2-letter country code',
'iso3c': 'ISO 3-letter country code',
'year': 'Year',
'value': 'GDP per capita (current US$)',
'value_change': 'Year-over-Year change in value',
'value_change_percent': 'Year-over-Year percent change in value',
'rank': 'Country rank by GDP per capita (higher = richer)',
'rank_change': 'Change in rank from previous year'
}

# Display first few rows
print(final_df.head(10))

# Optional: Save to CSV
#final_df.to_csv("gdp_per_capita_cleaned.csv", index=False)
                    
                
                    
# Check and install required packages
required_packages <- c("WDI", "countrycode", "dplyr")

for (pkg in required_packages) {
  if (!requireNamespace(pkg, quietly = TRUE)) {
    install.packages(pkg)
  }
}

# Load the necessary libraries
library(WDI)
library(dplyr)
library(countrycode)

# Define the dataset code (World Bank indicator code)
dataset_code <- 'DT.DOD.DSTC.IR.ZS'

# Download data using WDI package
dat <- WDI(indicator = dataset_code)

# Filter only countries using 'is_country' from countrycode
# This uses iso2c to identify whether the entry is a recognized country
dat <- dat %>%
  filter(countrycode(iso2c, origin = 'iso2c', destination = 'country.name', warn = FALSE) %in%
           countrycode::codelist$country.name.en)

# Ensure dataset is ordered by country and year
dat <- dat %>%
  arrange(iso3c, year)

# Rename the dataset_code column to "value" for easier manipulation
dat <- dat %>%
  rename(value = !!dataset_code)

# Calculate year-over-year (YoY) change and percentage change
dat <- dat %>%
  group_by(iso3c) %>%
  mutate(
    value_change = value - lag(value),                              # Absolute change from previous year
    value_change_percent = 100 * (value - lag(value)) / lag(value) # Percent change from previous year
  ) %>%
  ungroup()

# Calculate rank by year (higher value => higher rank)
dat <- dat %>%
  group_by(year) %>%
  mutate(rank = dense_rank(desc(value))) %>% # Rank countries by descending value
  ungroup()

# Calculate rank change (positive = moved up, negative = moved down)
dat <- dat %>%
  group_by(iso3c) %>%
  mutate(rank_change = rank - lag(rank)) %>% # Change in rank compared to previous year
  ungroup()

# Select and reorder final columns
final_data <- dat %>%
  select(
    country,
    iso2c,
    iso3c,
    year,
    value,
    value_change,
    value_change_percent,
    rank,
    rank_change
  )

# Add labels (variable descriptions)
attr(final_data$country, "label") <- "Country name"
attr(final_data$iso2c, "label") <- "ISO 2-letter country code"
attr(final_data$iso3c, "label") <- "ISO 3-letter country code"
attr(final_data$year, "label") <- "Year"
attr(final_data$value, "label") <- "GDP per capita (current US$)"
attr(final_data$value_change, "label") <- "Year-over-Year change in value"
attr(final_data$value_change_percent, "label") <- "Year-over-Year percent change in value"
attr(final_data$rank, "label") <- "Country rank by GDP per capita (higher = richer)"
attr(final_data$rank_change, "label") <- "Change in rank from previous year"

# Print the first few rows of the final dataset
print(head(final_data, 10))