Suicide mortality rate (per 100,000 population)

Source: worldbank.org, 03.09.2025

Year: 2021

Flag Country Value Value change, % Rank
Afghanistan Afghanistan 3.6 +3.15% 140
Angola Angola 8.11 +9.45% 77
Albania Albania 2.75 -18.2% 153
United Arab Emirates United Arab Emirates 1.71 -28.2% 162
Argentina Argentina 7.94 -2.22% 81
Armenia Armenia 2.46 +12.8% 156
Antigua & Barbuda Antigua & Barbuda 1.46 +89.6% 167
Australia Australia 13.1 +0.384% 43
Austria Austria 14.5 +3.64% 33
Azerbaijan Azerbaijan 1.56 -51.7% 164
Burundi Burundi 7.65 +14.7% 86
Belgium Belgium 18.4 +8.7% 15
Benin Benin 7.12 +3.34% 94
Burkina Faso Burkina Faso 8.5 +2.41% 72
Bangladesh Bangladesh 2.81 0% 152
Bulgaria Bulgaria 9.51 -5.18% 59
Bahrain Bahrain 4.66 -15% 128
Bahamas Bahamas 3.25 +4.84% 145
Bosnia & Herzegovina Bosnia & Herzegovina 8.97 -8.19% 64
Belarus Belarus 15.6 -4.06% 25
Belize Belize 4.18 +13% 137
Bolivia Bolivia 4.2 -12.3% 136
Brazil Brazil 7.59 +9.52% 88
Barbados Barbados 3.5 -15.5% 142
Brunei Brunei 3.05 +4.1% 147
Bhutan Bhutan 4.9 -3.54% 122
Botswana Botswana 8.35 -6.29% 73
Central African Republic Central African Republic 9.19 -5.55% 63
Canada Canada 9.44 -18.9% 60
Switzerland Switzerland 14 +2.41% 35
Chile Chile 7.69 -6.9% 84
China China 8.95 +1.47% 65
Côte d’Ivoire Côte d’Ivoire 7.39 +1.23% 91
Cameroon Cameroon 8.5 +7.46% 72
Congo - Kinshasa Congo - Kinshasa 8.77 +7.61% 66
Congo - Brazzaville Congo - Brazzaville 6.71 +2.29% 101
Colombia Colombia 4.96 +3.12% 120
Comoros Comoros 6 -3.38% 107
Cape Verde Cape Verde 14.9 +8.84% 29
Costa Rica Costa Rica 8.06 +26.7% 79
Cuba Cuba 13.8 -5.61% 37
Cyprus Cyprus 3.02 -21.8% 148
Czechia Czechia 13.3 +4.71% 40
Germany Germany 12.9 +0.233% 44
Djibouti Djibouti 7.96 +0.887% 80
Denmark Denmark 10.5 -4.04% 54
Dominican Republic Dominican Republic 4.2 +0.478% 136
Algeria Algeria 2.18 +27.5% 159
Ecuador Ecuador 7.56 -0.395% 90
Egypt Egypt 0.63 -20.3% 175
Eritrea Eritrea 13.2 +2.8% 41
Spain Spain 8.72 +1.16% 67
Estonia Estonia 14.9 -14.8% 28
Ethiopia Ethiopia 6.07 +6.87% 106
Finland Finland 14.6 +3.04% 32
Fiji Fiji 8.27 -12.2% 75
France France 16.6 +2.03% 20
Micronesia (Federated States of) Micronesia (Federated States of) 19.8 +3.35% 11
Gabon Gabon 7.3 -1.62% 92
United Kingdom United Kingdom 9.55 +7.3% 58
Georgia Georgia 5.1 -11.1% 117
Ghana Ghana 5.32 +4.72% 114
Guinea Guinea 4.82 -4.17% 123
Gambia Gambia 4.81 -1.64% 124
Guinea-Bissau Guinea-Bissau 7.67 -1.03% 85
Equatorial Guinea Equatorial Guinea 7.03 -5.13% 95
Greece Greece 4.68 +5.88% 127
Grenada Grenada 1.3 +20.4% 168
Guatemala Guatemala 4.94 -2.76% 121
Guyana Guyana 24.8 -16.1% 4
Honduras Honduras 2.97 +1.71% 149
Croatia Croatia 15.7 +6.88% 23
Haiti Haiti 7.81 -1.01% 83
Hungary Hungary 16.5 -9.71% 21
Indonesia Indonesia 1.2 -13% 169
India India 12.6 -3.46% 45
Ireland Ireland 8.55 -0.812% 71
Iran Iran 4.07 +19.7% 139
Iraq Iraq 2.97 +3.85% 149
Iceland Iceland 11.9 -7.96% 48
Israel Israel 4.37 -14% 132
Italy Italy 6.99 +3.25% 96
Jamaica Jamaica 1.69 +8.33% 163
Jordan Jordan 0.6 -9.09% 176
Japan Japan 17.4 +1.57% 17
Kazakhstan Kazakhstan 14.6 -14.1% 31
Kenya Kenya 4.58 -18.1% 129
Kyrgyzstan Kyrgyzstan 6.8 -1.88% 99
Cambodia Cambodia 4.5 +3.93% 130
Kiribati Kiribati 17.5 -6.08% 16
South Korea South Korea 27.5 +1.36% 2
Kuwait Kuwait 2.31 +5.48% 158
Laos Laos 4.58 +15.7% 129
Lebanon Lebanon 0.7 -11.4% 173
Liberia Liberia 5.97 +1.36% 108
Libya Libya 5 +0.806% 118
St. Lucia St. Lucia 5.27 -28.2% 115
Sri Lanka Sri Lanka 14.7 +18.5% 30
Lesotho Lesotho 28.7 -14.1% 1
Lithuania Lithuania 22.1 -9.79% 8
Luxembourg Luxembourg 8.22 -15.2% 76
Latvia Latvia 15.2 -15.5% 26
Morocco Morocco 2.91 +0.345% 150
Moldova Moldova 14.1 +21.7% 34
Madagascar Madagascar 6.09 -3.33% 105
Maldives Maldives 1.47 -23.8% 166
Mexico Mexico 6.95 +9.28% 97
North Macedonia North Macedonia 5.78 +10.9% 109
Mali Mali 4.16 +2.72% 138
Malta Malta 6.47 +13.7% 102
Myanmar (Burma) Myanmar (Burma) 2.89 0% 151
Montenegro Montenegro 11.3 -25.6% 51
Mongolia Mongolia 18.5 -1.8% 14
Mozambique Mozambique 10.6 -1.67% 52
Mauritania Mauritania 2.71 +1.5% 154
Mauritius Mauritius 10.5 -7.8% 53
Malawi Malawi 7.57 +7.07% 89
Malaysia Malaysia 5.65 +32.6% 110
Namibia Namibia 8.59 +2.75% 70
Niger Niger 4.48 +3.46% 131
Nigeria Nigeria 4.99 +9.43% 119
Nicaragua Nicaragua 4.24 +16.2% 134
Netherlands Netherlands 11.5 +3.98% 50
Norway Norway 13.2 +5.35% 42
Nepal Nepal 10.1 +3.47% 55
New Zealand New Zealand 11.9 +5.02% 47
Oman Oman 0.91 -24.8% 171
Pakistan Pakistan 5.64 +3.87% 111
Panama Panama 3.29 +34.3% 144
Peru Peru 1.54 +2.67% 165
Philippines Philippines 3.49 +10.1% 143
Papua New Guinea Papua New Guinea 1.82 +7.69% 161
Poland Poland 13.7 -1.51% 38
Puerto Rico Puerto Rico 5.42 -8.29% 113
North Korea North Korea 9.31 +0.215% 62
Portugal Portugal 11.5 -4.64% 49
Paraguay Paraguay 6.36 +1.27% 103
Palestinian Territories Palestinian Territories 0.65 +1.56% 174
Qatar Qatar 4.7 -11% 126
Romania Romania 9.62 -1.23% 57
Russia Russia 21.4 +1.71% 9
Rwanda Rwanda 8.68 +10% 68
Saudi Arabia Saudi Arabia 0.95 -10.4% 170
Sudan Sudan 3.16 +3.95% 146
Senegal Senegal 6.76 -1.17% 100
Singapore Singapore 8.1 -9.4% 78
Solomon Islands Solomon Islands 19.6 +0.307% 12
Sierra Leone Sierra Leone 6.14 +13.7% 104
El Salvador El Salvador 7.63 +2.55% 87
Somalia Somalia 7.96 -0.995% 80
Serbia Serbia 15.1 -3.01% 27
South Sudan South Sudan 7.89 +3.41% 82
São Tomé & Príncipe São Tomé & Príncipe 0.86 +3.61% 172
Suriname Suriname 22.3 -21.8% 7
Slovakia Slovakia 9.91 +5.88% 56
Slovenia Slovenia 18.9 +6.26% 13
Sweden Sweden 13.8 +3.59% 36
Eswatini Eswatini 27.2 +14.3% 3
Seychelles Seychelles 4.27 -35.4% 133
Syria Syria 0.59 +3.51% 177
Chad Chad 5.21 -0.382% 116
Togo Togo 9.34 -0.426% 61
Thailand Thailand 16.6 +7.31% 19
Tajikistan Tajikistan 2.43 +9.46% 157
Turkmenistan Turkmenistan 6.83 +4.75% 98
Timor-Leste Timor-Leste 3.56 +11.3% 141
Tonga Tonga 4.73 +1.72% 125
Trinidad & Tobago Trinidad & Tobago 13.3 -5.05% 39
Tunisia Tunisia 1.84 -2.65% 160
Turkey Turkey 2.69 -9.73% 155
Tanzania Tanzania 5.1 +16.7% 117
Uganda Uganda 5.5 +11.6% 112
Ukraine Ukraine 21.2 -4.11% 10
Uruguay Uruguay 24.8 +8.7% 5
United States United States 15.6 +4.48% 24
Uzbekistan Uzbekistan 8.34 -2.8% 74
St. Vincent & Grenadines St. Vincent & Grenadines 0.41 +28.1% 178
Venezuela Venezuela 8.63 +17.7% 69
Vietnam Vietnam 7.3 +6.88% 92
Vanuatu Vanuatu 15.7 +2.54% 22
Samoa Samoa 12 +0.251% 46
Yemen Yemen 4.21 +7.12% 135
South Africa South Africa 22.3 +5.69% 6
Zambia Zambia 7.13 +18.8% 93
Zimbabwe Zimbabwe 17.3 +11.8% 18

The suicide mortality rate, expressed as the number of suicides per 100,000 population, is a crucial health indicator that reflects the mental health and overall well-being of a population. With a median value of 7.5 in 2019, this statistic serves as a barometer for societal distress and functionality, capturing the levels of despair and mental health crises faced by different communities. This metric is indicative not only of individual tragedies but also of broader social issues, making it essential for policymakers, healthcare providers, and communities to address.

The importance of tracking suicide mortality rates cannot be overstated. High rates can indicate underlying mental health issues, substance abuse problems, or socio-economic challenges that need to be addressed. Conversely, low rates, as seen in some Caribbean nations where Antigua & Barbuda reported a low rate of 0.4, suggest a healthier population or perhaps a robust support system for mental health. These insights are invaluable for tailoring mental health interventions and resources effectively.

Furthermore, suicide mortality rates often correlate with other socio-economic indicators such as unemployment rates, income inequality, and access to mental health services. For example, the high suicide rates in Lesotho (72.4), Guyana (40.3), and Eswatini (29.4) may reflect not only individual despair but also systemic issues such as poverty, political instability, and inadequate healthcare systems. By interlinking these data points, we can gain a deeper understanding of the societal conditions that contribute to these alarming numbers.

Various factors affect the suicide mortality rate, ranging from individual psychological conditions to broader cultural attitudes towards mental health. Cultural stigma surrounding mental health issues in countries like South Korea (28.6), where a high suicide rate persists, can inhibit individuals from seeking help, exacerbating the issue. Other contributing factors include economic stressors, family dynamics, traumatic experiences, and access to means of suicide. It is essential to consider these multifaceted influences when looking at suicide rates.

Addressing the issue of suicide requires comprehensive strategies at various levels. Public awareness campaigns aimed at reducing stigma, increasing access to mental health services, providing training to schools and workplaces, and implementing better healthcare policies can make significant differences. Community programs that promote social connectivity and provide immediate support to individuals in crisis are paramount. Moreover, integrating mental health education into school curricula can help foster resilience and coping strategies among young people, potentially reducing the rate of suicides among future generations.

However, it's crucial to recognize the limitations and flaws in existing models for reporting and analyzing suicide mortality rates. For example, not all countries have accurate reporting mechanisms, leading to underestimation or overestimation of suicide cases. Cultural taboos may also suppress the disclosure of suicide cases, skewing data. Additionally, mental health issues can often manifest in various ways, and their link to suicide may not always be direct or obvious, complicating statistical analysis and interpretation. Moreover, while international comparisons can yield insights, differences in definitions, reporting standards, and cultural attitudes toward suicide can lead to misleading conclusions.

To illustrate the global context, the world suicide mortality rate has shown a downward trend from 12.93 in 2000 to 9.16 in 2019. This decline may suggest improvements in mental health awareness, access to care, or societal conditions, yet the persistence of high rates in specific regions signals the need for continued attention and intervention. These global numbers provide a backdrop against which individual countries can measure their progress or lack thereof.

The stark contrast between the highest and lowest suicide rates highlights the disparities faced by different populations. Lesotho's staggering rate of 72.4 is a cry for urgent attention, reflecting perhaps not just individual despair but a complete systemic failure in mental health support and social stability. On the other end of the spectrum, the low rates in countries like Antigua & Barbuda (0.4) imply successful preventive measures or socio-economic advantages that help protect against such tragedies. It becomes critical for governments and health organizations to analyze these variances, understanding that solutions cannot be one-size-fits-all but rather tailored to the unique challenges and resources of each area.

In conclusion, the suicide mortality rate serves as a pivotal societal indicator that encapsulates a myriad of influences. Its implications go far beyond statistical values, reflecting the mental health landscape of communities worldwide. By recognizing the importance of these rates, understanding the associated factors, and implementing targeted strategies, global society can work towards not only lowering suicide rates but also improving the overall mental health and quality of life for individuals everywhere.

                    
# 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 = 'SH.STA.SUIC.P5'

# 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 <- 'SH.STA.SUIC.P5'

# 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))