Repeaters, primary, female (% of female enrollment)

Source: worldbank.org, 01.09.2025

Year: 2018

Flag Country Value Value change, % Rank
Afghanistan Afghanistan 3.81 +8.32% 23
Albania Albania 0.689 -9.58% 55
Andorra Andorra 0.725 -29.3% 54
Armenia Armenia 0.313 +8.42% 64
Antigua & Barbuda Antigua & Barbuda 1.04 -26.2% 50
Azerbaijan Azerbaijan 0.125 +110% 68
Burundi Burundi 24.3 +5.9% 2
Benin Benin 14.8 +54.5% 3
Burkina Faso Burkina Faso 5.63 -11.2% 17
Bangladesh Bangladesh 3.78 -15.3% 24
Bahrain Bahrain 0.358 -4.61% 62
Bahamas Bahamas 2.52 +0.526% 31
Bosnia & Herzegovina Bosnia & Herzegovina 0.0892 -28.8% 69
Belarus Belarus 0.0424 +8.61% 73
Belize Belize 5.12 -4.33% 20
Bolivia Bolivia 1.83 -3.09% 37
Brunei Brunei 0.0522 -75% 71
Bhutan Bhutan 6.06 +52.4% 16
China China 0.00571 -54.3% 78
Cameroon Cameroon 11.9 +0.489% 8
Colombia Colombia 1.62 -9.99% 42
Comoros Comoros 14.5 -8.1% 4
Cape Verde Cape Verde 5.51 -5.32% 18
Costa Rica Costa Rica 1.92 -16% 35
Cuba Cuba 0.258 -0.494% 66
Cayman Islands Cayman Islands 0 -100% 80
Djibouti Djibouti 8.39 -16.5% 10
Dominican Republic Dominican Republic 2.81 -2.72% 29
Algeria Algeria 3.67 -4.7% 25
Ecuador Ecuador 0.396 -33.9% 60
Egypt Egypt 1.5 -10.6% 44
Eritrea Eritrea 6.97 +4.22% 15
Georgia Georgia 0.332 +76.2% 63
Ghana Ghana 1.69 -4.27% 41
Grenada Grenada 1.6 -21.9% 43
Guatemala Guatemala 7.76 -5.24% 12
Hong Kong SAR China Hong Kong SAR China 0.368 -10.2% 61
Indonesia Indonesia 0.989 +2.48% 51
India India 0.581 +4.39% 56
Jamaica Jamaica 2.36 -0.179% 33
Jordan Jordan 1.08 -9.49% 49
Kazakhstan Kazakhstan 0.033 +28% 75
Kyrgyzstan Kyrgyzstan 0.0136 -32.3% 76
Cambodia Cambodia 4.98 -0.617% 21
Kuwait Kuwait 0.454 +4.64% 59
Laos Laos 3.37 -2.24% 27
Lebanon Lebanon 4.89 -13.9% 22
St. Lucia St. Lucia 2.21 -22.6% 34
Macao SAR China Macao SAR China 1.29 -4.04% 46
Morocco Morocco 7.6 -3.01% 13
Monaco Monaco 2.73 +355% 30
Moldova Moldova 0 80
Madagascar Madagascar 24.8 +23.3% 1
Montenegro Montenegro 0.312 -33.9% 65
Mongolia Mongolia 0.0489 -56.6% 72
Mozambique Mozambique 8.16 -8.34% 11
Mauritania Mauritania 1.78 -24.8% 39
Mauritius Mauritius 0.00673 -98.7% 77
Namibia Namibia 12.8 +3.21% 6
Oman Oman 0 -100% 80
Pakistan Pakistan 1.81 -15.8% 38
Peru Peru 2.47 +1.36% 32
Palestinian Territories Palestinian Territories 0.0406 -48% 74
Rwanda Rwanda 12.6 -13.6% 7
Saudi Arabia Saudi Arabia 1.14 -14.3% 48
Senegal Senegal 3.51 -4.33% 26
Solomon Islands Solomon Islands 5.26 -16% 19
Sierra Leone Sierra Leone 1.49 -75.9% 45
El Salvador El Salvador 2.97 +19.1% 28
San Marino San Marino 0 80
Serbia Serbia 0.542 -10.3% 57
Suriname Suriname 13.6 -3.79% 5
Turks & Caicos Islands Turks & Caicos Islands 1.89 -59.2% 36
Togo Togo 7.44 -6.12% 14
Thailand Thailand 0.814 -11.5% 53
Timor-Leste Timor-Leste 11.2 -13.5% 9
Tuvalu Tuvalu 0.162 +0.977% 67
Tanzania Tanzania 1.71 -59.5% 40
Ukraine Ukraine 0.0559 +10.9% 70
Uzbekistan Uzbekistan 0.00133 -23.1% 79
St. Vincent & Grenadines St. Vincent & Grenadines 1.27 -40.2% 47
Vietnam Vietnam 0.489 -3.49% 58
Samoa Samoa 0.83 -28.5% 52

The indicator 'Repeaters, primary, female (% of female enrollment)' is a critical measure in educational statistics, reflecting the percentage of girls who are enrolled in primary education but have not progressed to the next grade level. This suggests that such students are repeating grades, which can be influenced by various factors including quality of education, socio-economic status, and gender-related issues. This indicator is significant in understanding the challenges that female students face in educational systems around the world.

Its importance lies in the fact that educational attainment is not just a personal achievement but also a contributor to national development. High repeater rates among female students can signal systemic problems within educational environments, including inadequate teaching methods, insufficient educational resources, or underlying socio-cultural barriers. For instance, if girls are frequently required to repeat grades, it is likely indicative of a lack of support systems that can assist them in overcoming challenges such as language barriers, financial constraints, or familial expectations about education.

Examining the relations between this indicator and other educational measures can provide a more nuanced understanding of educational equity. For example, as the percentage of repeaters increases, one can also observe a possible decline in overall educational quality or significant gaps in access to resources. A high repeater rate can correlate with lower overall female enrollment in subsequent grades, meaning that many girls may eventually drop out of school altogether. Conversely, areas with lower repeater rates may reflect more effective educational practices, better-trained teachers, and resources that directly benefit girls in their learning environments.

The data for 2019 reveals a median value of 0.41%, indicating that across the globe, a small percentage of enrolled girls are failing to progress in the primary schooling system relative to their male counterparts. This figure, while seemingly low, can still mask serious inequalities faced by subpopulations, particularly in low-income countries where other systemic issues lead to broader educational disparities.

Looking at the top areas, Nepal shows a significantly high repeater percentage at 7.34%. This statistic suggests that many girls are struggling in their primary education, possibly due to issues such as language barriers, cultural expectations, or inadequate support. The presence of high numbers like this indicates a serious need for increased educational interventions in locations where the barriers to learning for girls are most pronounced.

In contrast, Kazakhstan and Monaco have much lower percentages at 0.03% and 0.41%, respectively. These low figures imply that the educational systems in these areas are likely more effective in retaining girls in school and facilitating their progression to the next grade. Countries with such success may have well-funded educational programs, policies that cater to girls’ unique needs, and strong socio-economic support systems that encourage parental investment in their daughters’ education.

Analyzing world values from the years 1970 to 2018 reveals an overall downward trend in female repeating rates over the years, from 8.82% in 1970 to 2.86% in 2018. While this is a positive development, the ongoing presence of repeaters highlights that further efforts are necessary, especially in regions where inequities persist. The decline in repeaters suggests that educational reforms, awareness campaigns, and increased investment in education may be effective strategies to reduce gender disparity in learning outcomes.

Factors affecting the rate of repeaters include socio-economic status, cultural beliefs about gender roles, educational quality, and governmental policies towards education. Families living in poverty may prioritize boys' education over that of girls, particularly in regions where resources are scarce. Alternatively, cultural norms may lead to a lower emphasis on the importance of girls' education, resulting in increased dropout rates and repeaters among female learners. Additionally, the presence of strong educational institutions that are inclusive and well-resourced generally leads to lower rates of repeaters.

Addressing the challenges indicated by the repeater rates requires targeted strategies. Implementing comprehensive educational reforms that focus on improving the quality of education, appropriate teacher training, and inclusive curricula are essential. Creating mentorship programs that support girls within schools can foster a more conducive learning environment. Community outreach programs can also play a significant role in raising awareness about the value of female education, as well as advocating for girls' rights within the community and beyond.

Despite these potential strategies and solutions, flaws within the educational frameworks can impede progress. Issues such as inadequate funding for schools, lack of community engagement, and insufficient family support often exacerbate the situation. If policies are not regularly evaluated and adjusted to meet the needs of students, particularly girls, the intended benefits of educational reforms may not be realized.

Ultimately, the repeater rate for female students is more than just a statistic; it is an indicator of broader educational inequalities. By addressing the underlying factors that contribute to high repeater rates, societies can work towards achieving gender equity in education, ensuring that every girl has the opportunity to learn, grow, and contribute to her community.

                    
# 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 = 'SE.PRM.REPT.FE.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 <- 'SE.PRM.REPT.FE.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))