CPIA gender equality rating (1=low to 6=high)

Source: worldbank.org, 03.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Afghanistan Afghanistan 1 0% 8
Burundi Burundi 4 0% 2
Benin Benin 4 0% 2
Burkina Faso Burkina Faso 3.5 0% 3
Bangladesh Bangladesh 3.5 0% 3
Belize Belize 3 4
Bhutan Bhutan 4.5 +12.5% 1
Central African Republic Central African Republic 2.5 0% 5
Côte d’Ivoire Côte d’Ivoire 3.5 0% 3
Cameroon Cameroon 3 0% 4
Congo - Kinshasa Congo - Kinshasa 3 0% 4
Congo - Brazzaville Congo - Brazzaville 3 0% 4
Comoros Comoros 3 0% 4
Cape Verde Cape Verde 4 0% 2
Djibouti Djibouti 3.5 0% 3
Dominica Dominica 3 0% 4
Eritrea Eritrea 3 0% 4
Ethiopia Ethiopia 3 0% 4
Fiji Fiji 4 0% 2
Micronesia (Federated States of) Micronesia (Federated States of) 3 0% 4
Ghana Ghana 4 0% 2
Guinea Guinea 3 0% 4
Gambia Gambia 3.5 0% 3
Guinea-Bissau Guinea-Bissau 2.5 0% 5
Grenada Grenada 3.5 0% 3
Guyana Guyana 3 0% 4
Honduras Honduras 3.5 0% 3
Haiti Haiti 2.5 0% 5
Kenya Kenya 3.5 0% 3
Kyrgyzstan Kyrgyzstan 4.5 0% 1
Cambodia Cambodia 4 0% 2
Kiribati Kiribati 3 0% 4
Laos Laos 3.5 -12.5% 3
Liberia Liberia 3 0% 4
St. Lucia St. Lucia 4 0% 2
Sri Lanka Sri Lanka 4 0% 2
Lesotho Lesotho 4 0% 2
Madagascar Madagascar 4 0% 2
Maldives Maldives 3.5 0% 3
Marshall Islands Marshall Islands 3 0% 4
Mali Mali 3 0% 4
Myanmar (Burma) Myanmar (Burma) 2.5 0% 5
Mozambique Mozambique 3.5 0% 3
Mauritania Mauritania 3 -14.3% 4
Malawi Malawi 3.5 0% 3
Niger Niger 3 0% 4
Nigeria Nigeria 3 0% 4
Nicaragua Nicaragua 4 0% 2
Nepal Nepal 3 0% 4
Pakistan Pakistan 2.5 0% 5
Papua New Guinea Papua New Guinea 2.5 0% 5
Rwanda Rwanda 4.5 0% 1
Sudan Sudan 2.5 0% 5
Senegal Senegal 3.5 0% 3
Solomon Islands Solomon Islands 3 0% 4
Sierra Leone Sierra Leone 3.5 0% 3
Somalia Somalia 2 0% 6
South Sudan South Sudan 1.5 0% 7
São Tomé & Príncipe São Tomé & Príncipe 3.5 0% 3
Suriname Suriname 3 4
Eswatini Eswatini 3 4
Chad Chad 2.5 0% 5
Togo Togo 4 0% 2
Tajikistan Tajikistan 4 0% 2
Timor-Leste Timor-Leste 3.5 0% 3
Tonga Tonga 3 0% 4
Tuvalu Tuvalu 3 0% 4
Tanzania Tanzania 3.5 +16.7% 3
Uganda Uganda 3 0% 4
Uzbekistan Uzbekistan 4.5 0% 1
St. Vincent & Grenadines St. Vincent & Grenadines 3.5 0% 3
Vanuatu Vanuatu 3.5 0% 3
Samoa Samoa 4 0% 2
Kosovo Kosovo 3.5 0% 3
Yemen Yemen 1.5 +50% 7
Zambia Zambia 3 0% 4
Zimbabwe Zimbabwe 4 0% 2

The CPIA gender equality rating, which ranges from 1 to 6, provides a vital metric for assessing the extent to which gender equality is promoted within a country's policies and practices. This indicator gauges a government's commitment to gender equality by evaluating the laws, institutional frameworks, and societal norms affecting women's and men's rights, providing a comprehensive picture of how various nations are performing in this critical area.

Understanding the CPIA gender equality rating is particularly crucial in a world where gender disparities continue to create social and economic barriers. The latest rating for 2023 stands at a median value of 3.5. This signifies a moderate degree of gender equality across countries, indicating progressive improvements in various regions but also highlighting significant gaps in others.

The importance of this indicator cannot be overstated. High scores reveal the positive impacts of gender equality, including enhanced economic growth, improved health outcomes, and bolstered political stability. Conversely, low scores signify systemic inequalities that not only hinder women's empowerment but can also impede a nation's overall development. Therefore, understanding how countries score on this indicator is key for policymakers, NGOs, and international organizations working towards gender equality.

Looking closer at the data, the top regions in terms of gender equality in 2023 are Kyrgyzstan, Rwanda, and Uzbekistan, all scoring 4.5. These countries have made notable advances in women's representation in governance, education, and the labor market. For instance, Rwanda's exemplary performance can be attributed to its post-genocide policies that emphasized women's rights and their significant representation in parliament. Meanwhile, Benin and Bhutan, both scoring 4.0, are also seen as making strides toward promoting gender equality through education and health care reforms.

On the other end of the spectrum, we have the bottom five areas: Afghanistan (1.0), Yemen (1.0), South Sudan (1.5), Somalia (2.0), and the Central African Republic (2.5). The extremely low scores in these regions reflect entrenched patriarchal norms, conflict, and instability. For instance, Afghanistan's ongoing conflict and the resurgence of restrictive laws governing women's behavior and rights have severely diminished gender equality, demonstrating how political and social turbulence can directly impact women's status.

Examining the world values over the years, there is a slight decline observed initially, with scores falling to a low of 3.22 in 2017, before a gradual recovery to 3.28 by 2023. This faint upward trajectory suggests that there are global efforts to enhance gender equality, yet progress remains slow and inconsistent. The collective global average indicates that despite improvements in some regions, significant barriers to equality persist. This stagnation highlights the importance of sustained commitment and innovative strategies to foster an environment where gender equality can flourish.

Several factors can influence a country's CPIA gender equality rating. Educational access, employment opportunities for women, political representation, legal frameworks protecting against gender-based violence, and societal attitudes towards gender roles all play pivotal roles. Countries that implement comprehensive education programs, advocate for women's rights, and promote female leadership tend to score higher, while those that do not tend to suffer from lower ratings.

To enhance the CPIA gender equality rating, countries can adopt several strategies. These may include legislative reforms to protect women's rights, introduction of gender-sensitive budgeting, and the establishment of more robust institutional frameworks aimed at promoting gender equality in all facets of life. Educational programs that foster gender-neutral attitudes from a young age can also be transformative for long-term societal change. Moreover, aligning international aid and assistance with gender equality outcomes encourages countries to prioritize this issue for the sustainability of their development efforts.

However, flaws exist within this indicator. The CPIA gender equality rating can sometimes oversimplify complex social dynamics by reducing gender issues to a numerical score. Countries with similar ratings may face vastly different contexts, making it challenging to derive actionable insights solely from these scores. Furthermore, the criteria used to assess gender equality can vary significantly, which can lead to inconsistencies in how countries are evaluated.

In conclusion, the CPIA gender equality rating serves as an essential tool for understanding the status of gender equality worldwide. While the median value and the movement in score towards 3.5 in 2023 indicate some progress, the stark contrast between the highest and lowest scoring areas highlights the urgent need for continued efforts. Nations must tackle the ingrained barriers to gender equity and implement effective strategies to uplift women. Only through collective determination and innovative policies can the world hope to achieve true gender equality.

                    
# 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 = 'IQ.CPA.GNDR.XQ'

# 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 <- 'IQ.CPA.GNDR.XQ'

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