Control of Corruption

Source: worldbank.org, 03.09.2025

Year: 2023

Flag Country Value Value change, % Rank
Aruba Aruba 0.709 -6.27% 44
Afghanistan Afghanistan -1.15 -2.43% 169
Angola Angola -0.61 -0.401% 136
Albania Albania -0.332 -18.6% 106
Andorra Andorra 1.25 -1.49% 27
United Arab Emirates United Arab Emirates 1.07 -7.09% 31
Argentina Argentina -0.361 -19.3% 109
Armenia Armenia 0.0584 +109% 79
American Samoa American Samoa 1.25 -1.49% 27
Antigua & Barbuda Antigua & Barbuda 0.327 +5.17% 68
Australia Australia 1.78 +0.954% 10
Austria Austria 1.13 -9.93% 29
Azerbaijan Azerbaijan -1.2 +14.8% 172
Burundi Burundi -1.56 +2.49% 191
Belgium Belgium 1.34 -10.6% 24
Benin Benin -0.0496 -44.8% 87
Burkina Faso Burkina Faso -0.17 +51.9% 94
Bangladesh Bangladesh -1.12 +4.19% 167
Bulgaria Bulgaria -0.138 -12.9% 93
Bahrain Bahrain 0.178 +27.4% 74
Bahamas Bahamas 1.27 +0.833% 26
Bosnia & Herzegovina Bosnia & Herzegovina -0.582 -15% 133
Belarus Belarus -0.665 +14.7% 141
Belize Belize -0.226 -4.56% 96
Bermuda Bermuda 1.25 -1.49% 27
Bolivia Bolivia -0.838 -5.78% 152
Brazil Brazil -0.504 -11.1% 125
Barbados Barbados 1.34 +4.66% 23
Brunei Brunei 1.28 +8.75% 25
Bhutan Bhutan 1.53 +1.1% 20
Botswana Botswana 0.686 +3.61% 48
Central African Republic Central African Republic -1.31 +5.24% 179
Canada Canada 1.67 +0.779% 12
Switzerland Switzerland 2.02 +0.629% 7
Chile Chile 0.969 +0.0496% 34
China China -0.00537 -133% 84
Côte d’Ivoire Côte d’Ivoire -0.313 -7.59% 104
Cameroon Cameroon -1.16 +2.91% 170
Congo - Kinshasa Congo - Kinshasa -1.48 -4.17% 187
Congo - Brazzaville Congo - Brazzaville -1.35 -1.07% 181
Colombia Colombia -0.309 -14.6% 103
Comoros Comoros -0.99 -20.5% 157
Cape Verde Cape Verde 0.985 +2.6% 33
Costa Rica Costa Rica 0.654 +40.3% 50
Cuba Cuba -0.0551 -20.5% 88
Cayman Islands Cayman Islands 0.438 -4.39% 63
Cyprus Cyprus 0.333 -21.1% 67
Czechia Czechia 0.768 +15.8% 41
Germany Germany 1.66 -8.48% 13
Djibouti Djibouti -0.781 -1.56% 148
Dominica Dominica 0.545 +0.913% 58
Denmark Denmark 2.38 -1.11% 1
Dominican Republic Dominican Republic -0.449 +2.2% 118
Algeria Algeria -0.589 -7.64% 134
Ecuador Ecuador -0.647 +2.71% 139
Egypt Egypt -0.748 +10.1% 146
Eritrea Eritrea -1.48 +15.1% 186
Spain Spain 0.629 -8.18% 52
Estonia Estonia 1.54 -0.427% 19
Ethiopia Ethiopia -0.465 +7.34% 119
Finland Finland 2.22 -1.13% 2
Fiji Fiji 0.506 +30.2% 61
France France 1.18 -5.92% 28
Micronesia (Federated States of) Micronesia (Federated States of) 0.784 +62.2% 38
Gabon Gabon -1.02 -2.63% 160
United Kingdom United Kingdom 1.48 -8.59% 21
Georgia Georgia 0.618 -0.439% 53
Ghana Ghana -0.099 +53.8% 90
Guinea Guinea -0.898 -7.63% 155
Gambia Gambia -0.281 +2.03% 100
Guinea-Bissau Guinea-Bissau -1.18 -0.598% 171
Equatorial Guinea Equatorial Guinea -1.57 -1.97% 192
Greece Greece 0.0978 +160% 77
Grenada Grenada 0.558 +15.3% 56
Greenland Greenland 1.03 -0.0795% 32
Guatemala Guatemala -1.12 -7.32% 168
Guam Guam 1.25 -1.49% 27
Guyana Guyana -0.384 +29.9% 112
Hong Kong SAR China Hong Kong SAR China 1.63 +0.893% 15
Honduras Honduras -1.11 +10.9% 166
Croatia Croatia 0.182 +23.1% 73
Haiti Haiti -1.44 -1.05% 185
Hungary Hungary -0.000498 -99.5% 83
Indonesia Indonesia -0.487 +11.8% 121
India India -0.366 +13.6% 110
Ireland Ireland 1.58 -5.92% 16
Iran Iran -1.23 +9.34% 176
Iraq Iraq -1.32 +8.87% 180
Iceland Iceland 1.55 -1.03% 18
Israel Israel 0.829 +6.19% 37
Italy Italy 0.55 +4.25% 57
Jamaica Jamaica -0.112 +381% 91
Jordan Jordan 0.0887 +21.4% 78
Japan Japan 1.4 -9.37% 22
Kazakhstan Kazakhstan -0.267 +43.6% 98
Kenya Kenya -0.771 +1.5% 147
Kyrgyzstan Kyrgyzstan -1.22 -0.756% 174
Cambodia Cambodia -1.3 +4.64% 178
Kiribati Kiribati 0.412 +74.1% 65
St. Kitts & Nevis St. Kitts & Nevis 0.413 +6.02% 64
South Korea South Korea 0.894 +19.5% 35
Kuwait Kuwait 0.207 +62.3% 72
Laos Laos -0.974 +0.834% 156
Lebanon Lebanon -1.23 +8.85% 175
Liberia Liberia -0.888 -4.01% 154
Libya Libya -1.53 -0.0838% 190
St. Lucia St. Lucia 0.544 -6.09% 59
Liechtenstein Liechtenstein 1.71 -0.275% 11
Sri Lanka Sri Lanka -0.384 +0.194% 113
Lesotho Lesotho -0.509 +38.2% 127
Lithuania Lithuania 0.782 +4.63% 39
Luxembourg Luxembourg 1.93 +2.29% 8
Latvia Latvia 0.698 +0.621% 46
Macao SAR China Macao SAR China 0.849 -2.24% 36
Morocco Morocco -0.536 +38.4% 128
Monaco Monaco 1.25 -1.49% 27
Moldova Moldova -0.28 -18.1% 99
Madagascar Madagascar -1 +3.12% 159
Maldives Maldives -0.397 +19.3% 114
Mexico Mexico -1.02 +0.839% 161
Marshall Islands Marshall Islands 0.412 +6.75% 65
North Macedonia North Macedonia -0.349 +7.6% 108
Mali Mali -0.862 +2.1% 153
Malta Malta 0.11 -54% 76
Myanmar (Burma) Myanmar (Burma) -1.22 +5.64% 173
Montenegro Montenegro -0.0793 -33.2% 89
Mongolia Mongolia -0.493 -12.2% 123
Mozambique Mozambique -0.828 -0.875% 151
Mauritania Mauritania -0.823 +4.04% 150
Mauritius Mauritius 0.453 +7.81% 62
Malawi Malawi -0.603 -0.992% 135
Malaysia Malaysia 0.296 +18.8% 69
Namibia Namibia 0.11 -48.8% 75
Niger Niger -0.564 -3.58% 131
Nigeria Nigeria -1.04 -7.85% 162
Nicaragua Nicaragua -1.39 +7.83% 183
Netherlands Netherlands 1.87 -2.61% 9
Norway Norway 2.11 +2.22% 3
Nepal Nepal -0.508 -4.66% 126
Nauru Nauru 0.589 -2.19% 54
New Zealand New Zealand 2.08 -3.66% 4
Oman Oman 0.215 +309% 71
Pakistan Pakistan -0.999 +24.2% 158
Panama Panama -0.628 -1.07% 138
Peru Peru -0.721 -10.8% 144
Philippines Philippines -0.538 -0.66% 129
Palau Palau 0.589 -2.19% 54
Papua New Guinea Papua New Guinea -0.657 -5.62% 140
Poland Poland 0.565 +11.6% 55
Puerto Rico Puerto Rico 0.0196 -82.8% 82
North Korea North Korea -1.58 -1.34% 193
Portugal Portugal 0.696 -4.47% 47
Paraguay Paraguay -1.06 -3.01% 164
Palestinian Territories Palestinian Territories -0.676 -3.78% 142
Qatar Qatar 0.702 -12.7% 45
Romania Romania 0.0405 +146% 81
Russia Russia -1.1 +12.7% 165
Rwanda Rwanda 0.672 +19.6% 49
Saudi Arabia Saudi Arabia 0.536 +50% 60
Sudan Sudan -1.5 +6.25% 189
Senegal Senegal 0.0578 -539% 80
Singapore Singapore 2.04 -2.6% 5
Solomon Islands Solomon Islands -0.135 -27% 92
Sierra Leone Sierra Leone -0.575 +2.62% 132
El Salvador El Salvador -0.561 -12.6% 130
San Marino San Marino 1.25 -1.49% 27
Somalia Somalia -1.73 -3.33% 196
Serbia Serbia -0.447 -2.05% 117
South Sudan South Sudan -1.97 +6.13% 198
São Tomé & Príncipe São Tomé & Príncipe 0.36 +18.1% 66
Suriname Suriname -0.404 -0.149% 115
Slovakia Slovakia 0.293 +37.2% 70
Slovenia Slovenia 0.777 +1.22% 40
Sweden Sweden 2.03 -1.61% 6
Eswatini Eswatini -0.735 +1.2% 145
Seychelles Seychelles 1.63 -4.1% 14
Syria Syria -1.75 -1.46% 197
Chad Chad -1.48 -0.412% 188
Togo Togo -0.619 -2.89% 137
Thailand Thailand -0.489 +8.09% 122
Tajikistan Tajikistan -1.38 -3.87% 182
Turkmenistan Turkmenistan -1.42 -0.94% 184
Timor-Leste Timor-Leste -0.227 -14.6% 97
Tonga Tonga -0.308 -26.7% 102
Trinidad & Tobago Trinidad & Tobago -0.374 -1.39% 111
Tunisia Tunisia -0.342 +14% 107
Turkey Turkey -0.502 +7.35% 124
Tuvalu Tuvalu 0.646 -0.942% 51
Tanzania Tanzania -0.32 -9.86% 105
Uganda Uganda -1.04 -1.75% 163
Ukraine Ukraine -0.686 +8.22% 143
Uruguay Uruguay 1.57 -2.27% 17
United States United States 1.12 +1.75% 30
Uzbekistan Uzbekistan -0.808 +6.57% 149
St. Vincent & Grenadines St. Vincent & Grenadines 0.737 -2.54% 42
Venezuela Venezuela -1.69 +2.33% 195
U.S. Virgin Islands U.S. Virgin Islands -0.0185 +214% 86
Vietnam Vietnam -0.416 +44.8% 116
Vanuatu Vanuatu -0.0149 -48% 85
Samoa Samoa 0.727 +31.2% 43
Kosovo Kosovo -0.185 -29.8% 95
Yemen Yemen -1.65 -1.84% 194
South Africa South Africa -0.285 -13.8% 101
Zambia Zambia -0.478 -5.39% 120
Zimbabwe Zimbabwe -1.26 +0.0989% 177

The "Control of Corruption" indicator represents an important measure of governance that assesses the extent to which public power is exercised for private gain, including both petty and grand forms of corruption. It derives from expert assessments and surveys that compile perceptions of corruption within various public institutions and mechanisms. In 2023, the median value of this indicator stood at -0.23, reflecting a global challenge where many nations continue to grapple with corruption at varying degrees.

The significance of the Control of Corruption indicator cannot be overstated. Corruption undermines economic development, distorts public spending, erodes trust in institutions, and deepens inequalities. By minimizing corrupt practices, nations can improve their public services, foster a conducive business environment, and ultimately enhance the quality of life for their citizens. Therefore, tracking this indicator is critical for policymakers and stakeholders aiming to promote good governance and transparency.

This indicator is closely related to various other governance indicators such as "Government Effectiveness," "Political Stability," and "Rule of Law." For instance, a country with high levels of corruption is likely to experience governmental inefficiencies, which can negatively impact its political stability. Additionally, improvements in the control of corruption are often accompanied by enhanced rule of law, as both promote accountability and transparency within a government structure.

Several factors influence a country's control of corruption. Political culture plays a significant role; in societies where corruption is normalized or overlooked, it becomes deeply entrenched. Moreover, the strength and independence of judicial and legislative bodies can either mitigate or exacerbate corruption levels. Economic factors also contribute—countries with greater wealth and resources may have more means to combat corruption, while those struggling economically might find it harder to hold corrupt officials accountable.

Strategies to improve control of corruption are multifaceted and require long-term commitment from governments, civil society, and international organizations. Enhancing transparency is a critical step, which includes implementing open government initiatives where citizens have access to information regarding public spending, procurements, and decision-making processes. Empowering judicial systems by providing them with the necessary independence and resources can help in holding individuals accountable. Furthermore, adopting stringent laws to prevent and punish corrupt practices can create a deterrent effect.

Education also plays a fundamental role in fighting corruption. By embedding anti-corruption themes into educational curricula and promoting civic awareness, future generations may possess a strengthened ethical framework to reject corrupt practices altogether. Moreover, the involvement of civil society in monitoring government actions provides an additional layer of scrutiny that can pressure institutions to remain accountable and operate transparently.

Nevertheless, there are notable flaws within the indicator itself. One significant issue is that it relies heavily on perceptions rather than objective measures of corruption, making it susceptible to biases based on individual experiences and societal narratives. In areas where media freedom is restricted, reports of corruption may be less visible or significantly downplayed, leading to an underestimated prevalence of such practices. Furthermore, the indicator’s focus on public corruption may overlook corruption in private sectors or informal economies, which can be rampant in various contexts.

Regarding the recent data from 2023, the top-rated countries for control of corruption were Denmark (2.38), Finland (2.22), Norway (2.11), New Zealand (2.08), and Singapore (2.04). These nations exhibit strong governance frameworks, high levels of public trust, and robust enforcement mechanisms against corruption. For instance, Denmark's long-standing tradition of transparency and accountability, alongside its strong welfare system, minimizes opportunities for corruption. Similarly, Singapore’s effective anti-corruption agencies and strict penalties for corrupt behavior contribute to its low corruption perception.

In stark contrast, countries at the lower end of the scale, including South Sudan (-1.97), Syria (-1.75), Somalia (-1.73), Venezuela (-1.69), and Yemen (-1.65), demonstrate the severity of corruption and its deep ramifications on societal stability and growth. South Sudan, facing ongoing conflict, struggles with governance challenges that further deteriorate its control over corruption. Somalia, historically plagued by instability, deals with systemic corruption at various levels of governance that impede any meaningful progress in public sector reform. Similarly, Venezuela’s economic crisis has been compounded by corruption, eroding public trust and damaging the political landscape.

In conclusion, the Control of Corruption indicator serves as a crucial barometer of governance quality across nations. Its implications extend beyond the mere prevalence of corrupt practices, influencing economic health, political legitimacy, and social equity. By comprehensively understanding its significance, the interrelations with other governance metrics, the influencing factors, and the implementation of effective strategies, stakeholders may work towards promoting environments that curtail corruption. Addressing the flaws inherent in corrupt practices measurement will further refine efforts, enabling a clearer picture of where to direct anti-corruption initiatives while fostering nations that align with the ideals of transparency and accountability.

                    
# 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 = 'CC.EST'

# 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 <- 'CC.EST'

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