Bribery incidence (% of firms experiencing at least one bribe payment request)

Source: worldbank.org, 03.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Angola Angola 21.5 -58.1% 8
Armenia Armenia 0.185 -87.2% 46
Azerbaijan Azerbaijan 0.746 -93.8% 41
Belgium Belgium 6.86 +58.2% 22
Benin Benin 11.4 -21.9% 14
Burkina Faso Burkina Faso 14.1 +44.7% 12
Bahrain Bahrain 4.31 25
Bhutan Bhutan 0.301 -65.9% 44
Canada Canada 5.82 23
China China 0.143 -98.8% 47
Cameroon Cameroon 21.7 -18.9% 7
Congo - Kinshasa Congo - Kinshasa 28.5 -49.5% 3
Congo - Brazzaville Congo - Brazzaville 27.3 -27.1% 6
Cape Verde Cape Verde 1.39 -31% 38
Cyprus Cyprus 5.73 +3,305% 24
Czechia Czechia 2.91 -15.8% 30
Ecuador Ecuador 14.4 +143% 11
Spain Spain 0.433 -87.6% 43
United Kingdom United Kingdom 2.07 34
Equatorial Guinea Equatorial Guinea 40.5 1
Ireland Ireland 0.252 -42% 45
Iceland Iceland 0.737 42
Israel Israel 28.5 +37,015% 4
Italy Italy 2.61 -77.9% 31
Jamaica Jamaica 1.89 -90.2% 36
Jordan Jordan 3.86 +54.1% 27
Kazakhstan Kazakhstan 16.4 +41.7% 10
South Korea South Korea 0.0178 48
Laos Laos 30.6 -24% 2
Latvia Latvia 0 -100% 49
Moldova Moldova 7.11 -40.2% 21
Mali Mali 3.99 -88.2% 26
Malta Malta 2.97 +24.7% 29
Malaysia Malaysia 3.8 +783% 28
Namibia Namibia 13.8 +51.1% 13
Papua New Guinea Papua New Guinea 19.4 -26.6% 9
Senegal Senegal 0.998 -91% 40
Serbia Serbia 2.04 -70.2% 35
South Sudan South Sudan 27.4 -42.9% 5
Slovenia Slovenia 1.77 -0.635% 37
Sweden Sweden 0 49
Eswatini Eswatini 7.59 +13% 19
Tajikistan Tajikistan 9.06 -18.2% 17
Turkmenistan Turkmenistan 10.6 16
Tonga Tonga 10.7 -56.9% 15
Tunisia Tunisia 8.09 -32% 18
Turkey Turkey 2.43 +78.3% 33
Uruguay Uruguay 1.28 -45.6% 39
United States United States 2.54 32
Uzbekistan Uzbekistan 7.45 +25.4% 20

The indicator 'Bribery incidence (% of firms experiencing at least one bribe payment request)' provides a crucial insight into the prevalence of corruption within the business environment of various countries. Tracking this indicator is essential because it helps to assess the integrity of marketplaces and the health of the overall economic system. A higher percentage of firms paying bribes often signals systemic issues in governance, inefficiency within public institutions, and a lack of enforcement of the law regarding ethical business practices, which can hinder economic growth and deter foreign investments.

Understanding bribery incidence is particularly important for several stakeholders, including policymakers, businesses, and investors. Governments can use this data to identify weaknesses in regulatory frameworks and invest in anti-corruption measures. Businesses can utilize this information to make informed decisions about where to operate, considering that high bribery incidence correlates with increased operational costs, often leading to a disadvantage in the global marketplace. Investors are increasingly aware of risk factors associated with bribery, making this indicator significant for assessing investment climates.

This indicator often relates closely to other factors such as governance quality, economic development, and regulatory effectiveness. Countries with high bribery incidence typically struggle with weak institutions and inadequate enforcement mechanisms for laws and regulations. In contrast, nations with low bribery levels tend to have strong legal frameworks and transparency measures, which not only foster trust but also encourage economic activities and investment. Moreover, there is a linkage between bribery incidence and the overall corruption perception index; as bribery grows, public trust diminishes, making it vital to examine these relationships holistically to draw effective policy conclusions.

Several factors can affect the incidence of bribery within an economy. These factors include cultural norms, economic conditions, and the strength of legal institutions. In countries where bribery is normalized as part of business operations, firms may find it challenging to avoid such practices without losing competitive advantage. Economic distress, often characterized by a lack of stable growth and job creation, also exacerbates bribery issues, as individuals and companies may feel compelled to engage in corrupt practices to survive. Furthermore, the presence—or absence—of a strong legal system plays a pivotal role in either mitigating or aggravating bribery incidence. Countries that implement and adhere to strict anti-corruption laws see lower rates of bribery requests. Increasing awareness and education on the negative impacts of corruption can also contribute positively to lowering bribery incidence.

Addressing bribery takes a multi-faceted approach, which includes legal, institutional, and societal strategies. On a legal level, enhancing the enforcement of anti-corruption laws and ensuring that violations carry substantial penalties can act as a deterrent. Institutionally, creating transparent processes for public procurement and establishing independent anti-corruption bodies can help reduce opportunities for bribery. Engaging civil society in monitoring and reporting cases of corruption also builds community awareness and responsibility. Lastly, fostering a culture of ethics through business education can encourage firms to adopt integrity-oriented practices as a matter of corporate policy instead of viewing bribery as a necessity for survival.

However, even with these strategies in place, there are inherent flaws that can complicate efforts to tackle bribery. For instance, in environments with rampant corruption, anti-corruption initiatives can be stymied by those who benefit from the status quo. Additionally, the disparity in resources available for law enforcement and corruption prevention initiatives can also hinder progress. In many instances, especially in developing countries facing economic challenges, resources are often siphoned away, meaning there is less funding for robust anti-corruption frameworks. Furthermore, the effectiveness of such strategies is often contingent upon the political will of governing bodies to genuinely pursue reform.

In 2023, the global average incidence of bribery stands at 12.74%, while the median value is 6.9%. The variation across different regions reveals stark contrasts, with the top five areas exhibiting exceedingly high bribery rates, including Chad at 34.3%, Kyrgyzstan at 31.4%, Vietnam at 31.1%, Morocco at 29.6%, and Cambodia at 27.1%. These figures indicate a troubling level of corruption that can adversely impact economic stability and attractiveness to foreign investments. On the other hand, nations like Barbados and Estonia report near-zero incidences of bribery—0.0% and 0.0%, respectively—showing that the right governance structures and cultural attitudes towards integrity can effectively mitigate corruption. Countries such as Singapore (0.6%), Bulgaria (0.9%), and Georgia (1.0%) also demonstrate low bribery incidence, yet they indicate that continued vigilance is necessary to sustain these achievements.

In conclusion, understanding bribery incidence as an indicator involves closely examining its implications on businesses, economies, and society at large. The importance of meticulously addressing bribery cannot be overstated, as it is integral to fostering healthy, transparent, and competitive environments. Continuous assessment and cross-referencing with other indicators related to governance and economic health can reveal the broader impacts of corruption while guiding effective strategies to combat bribery. Ultimately, achieving a lower bribery incidence will not only enhance market integrity but will also contribute to a sustainable economic environment conducive to growth and development worldwide.

                    
# 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 = 'IC.FRM.BRIB.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 <- 'IC.FRM.BRIB.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))