Progression to secondary school, female (%)

Source: worldbank.org, 01.09.2025

Year: 2016

Flag Country Value Value change, % Rank
Afghanistan Afghanistan 86 +4.32% 89
Albania Albania 98.4 +0.597% 49
Argentina Argentina 99.7 -0.303% 12
Armenia Armenia 98 -0.788% 54
Austria Austria 99.5 -0.324% 21
Azerbaijan Azerbaijan 100 +0.929% 1
Burundi Burundi 77 -10.1% 98
Burkina Faso Burkina Faso 75.2 -2.29% 99
Bulgaria Bulgaria 98.8 +0.361% 40
Bahrain Bahrain 99.4 -0.558% 25
Bosnia & Herzegovina Bosnia & Herzegovina 99 +0.407% 37
Belarus Belarus 98.4 +0.191% 46
Belize Belize 97 -0.821% 62
Bolivia Bolivia 96.3 -0.59% 66
Brunei Brunei 99.5 +0.732% 24
Bhutan Bhutan 100 0% 1
Switzerland Switzerland 99.8 +0.144% 9
Chile Chile 98.4 +0.238% 48
Côte d’Ivoire Côte d’Ivoire 92.5 +3.54% 77
Cape Verde Cape Verde 100 +1.13% 1
Costa Rica Costa Rica 84.2 +1.22% 91
Cuba Cuba 99.2 -0.0478% 31
Cyprus Cyprus 100 +3.36% 1
Czechia Czechia 99.9 -0.108% 7
Germany Germany 99 -0.827% 38
Djibouti Djibouti 81.1 +8.26% 93
Denmark Denmark 99.9 -0.0141% 8
Dominican Republic Dominican Republic 94.3 -0.806% 71
Ecuador Ecuador 99.2 +0.34% 29
Egypt Egypt 96 +1.07% 68
Spain Spain 100 +0.693% 1
Estonia Estonia 100 -0.0159% 3
Finland Finland 99.8 -0.209% 10
United Kingdom United Kingdom 100 4
Georgia Georgia 99.6 -0.175% 18
Ghana Ghana 93.4 -5.19% 75
Greece Greece 98.8 +1.63% 41
Guatemala Guatemala 84.9 +2.08% 90
Hong Kong SAR China Hong Kong SAR China 99.1 -0.146% 34
Croatia Croatia 98.4 -0.68% 50
Hungary Hungary 99 -0.784% 39
Indonesia Indonesia 87.4 -4.81% 87
India India 90.4 -0.854% 82
Iran Iran 94.5 -2.38% 70
Israel Israel 99.6 -0.381% 16
Italy Italy 99.9 +0.0439% 6
Jamaica Jamaica 96.2 +0.682% 67
Jordan Jordan 99.8 -0.218% 11
Japan Japan 100 -0.00923% 2
Kazakhstan Kazakhstan 100 +0.128% 1
Kyrgyzstan Kyrgyzstan 99.6 +0.155% 17
Cambodia Cambodia 89.3 +2.53% 83
South Korea South Korea 99.5 +0.00998% 23
Kuwait Kuwait 96.8 -2.55% 64
Laos Laos 86.3 -0.838% 88
Lebanon Lebanon 97.8 +1.83% 57
Liberia Liberia 81.4 +5.19% 92
St. Lucia St. Lucia 98 +0.486% 56
Liechtenstein Liechtenstein 95.6 +2.04% 69
Lithuania Lithuania 99.4 -0.646% 26
Latvia Latvia 99.2 +0.108% 30
Macao SAR China Macao SAR China 99.5 -0.487% 22
Morocco Morocco 87.9 +1.96% 86
Moldova Moldova 98.2 +0.49% 52
Maldives Maldives 100 0% 1
Mexico Mexico 96.4 +0.0512% 65
Mali Mali 79.6 +16.9% 96
Malta Malta 97.7 +0.614% 58
Montenegro Montenegro 99.7 +1.85% 13
Mongolia Mongolia 99.5 +0.46% 19
Mauritania Mauritania 61.9 +10.7% 102
Mauritius Mauritius 90.5 +0.242% 80
Malaysia Malaysia 90.4 +3.84% 81
Norway Norway 99.3 -0.665% 27
Nepal Nepal 80.8 -6.15% 94
Oman Oman 98.8 -0.0137% 42
Panama Panama 98.3 +0.88% 51
Peru Peru 93.8 -1.13% 74
Philippines Philippines 97 +0.345% 63
Poland Poland 99.5 +0.507% 20
Palestinian Territories Palestinian Territories 97.5 -2.16% 59
Qatar Qatar 98.7 -0.451% 44
Romania Romania 99.1 -0.0787% 35
Rwanda Rwanda 78.1 +10.1% 97
Saudi Arabia Saudi Arabia 94.3 +6.8% 72
Sudan Sudan 94.3 +2.83% 73
Senegal Senegal 71 -4.96% 100
Singapore Singapore 98.2 +4.61% 53
Solomon Islands Solomon Islands 93.2 +5.8% 76
Sierra Leone Sierra Leone 89.1 -2.5% 84
El Salvador El Salvador 91.7 -0.72% 79
Serbia Serbia 99.6 +0.12% 14
São Tomé & Príncipe São Tomé & Príncipe 100 +5.28% 1
Suriname Suriname 69.8 -7.42% 101
Slovakia Slovakia 99.2 +0.228% 32
Slovenia Slovenia 99.9 +0.465% 5
Sweden Sweden 99.1 -0.141% 33
Eswatini Eswatini 98 +0.529% 55
Seychelles Seychelles 99.1 -0.927% 36
Togo Togo 80 -3.31% 95
Tajikistan Tajikistan 99.2 +0.429% 28
Timor-Leste Timor-Leste 92.2 -1.74% 78
Tunisia Tunisia 97.5 +6.51% 60
Uganda Uganda 57.3 +8.45% 103
Ukraine Ukraine 99.6 +0.877% 15
United States United States 98.4 47
Uzbekistan Uzbekistan 98.8 -0.152% 43
St. Vincent & Grenadines St. Vincent & Grenadines 89.1 -10.9% 85
Venezuela Venezuela 98.5 +0.587% 45
Samoa Samoa 97.5 -2.25% 61

Progression to secondary school for females is a critical indicator that reflects the educational opportunities available to girls and highlights the broader context of gender equality in education. This indicator tracks the percentage of female students who successfully move from primary education to secondary education. When evaluating the data, the latest year reporting stood at 2018, highlighting a median progression rate of 99.53%. This percentage is strikingly high, indicating significant strides toward equitable access to education for girls.

Understanding the importance of this indicator goes beyond mere statistics. The high percentage showcases the effectiveness of educational policies and programs aimed at retaining girls in school and ensuring they transition to higher levels of education. Education for girls is pivotal for several reasons; it empowers them, enhances their future employment prospects, and generally contributes to better health and socioeconomic conditions in their communities.

The progression rate is closely related to other educational indicators, such as enrollment rates and completion rates for secondary education. For instance, high enrollment doesn't necessarily guarantee that girls will complete their education or transition to the next level, but high progression rates often suggest that retaining female students in school has been successful. It also correlates with broader gender equality indicators. When girls achieve parity in educational attainment, it often leads to economic growth and improved societal health outcomes, including reduced child and maternal mortality rates.

Many factors influence the progression rate of females to secondary school. One of the prominent factors is socio-economic status. Families with limited financial resources may prioritize boys' education over girls', particularly in communities where resources are scarce. Cultural norms and practices also play a crucial role; in some cultures, girls may be expected to fulfill domestic roles or get married at a young age, leading to early dropout rates and hindering progression to secondary education.

Government policies, such as scholarship programs or free educational resources for girls, can significantly enhance progression rates. Additionally, infrastructure such as safe transportation and appropriate school facilities also play a vital role in ensuring girls feel safe and motivated to pursue education. Furthermore, the presence of female teachers has been shown to encourage girls to attend school and continue to higher levels, creating a supportive learning environment.

Solutions to improve this indicator may involve community engagement programs focused on altering cultural perceptions surrounding female education. Awareness campaigns that showcase the long-term benefits of educating girls can help parents value and invest in their daughters' education. Governments can also work towards improving policy frameworks that eliminate barriers to secondary school for girls.

Despite the positive statistics surrounding progression, it's essential to recognize potential flaws in the data and its interpretation. A median value of 99.53% derived from a single country, Kazakhstan, suggests that while this number appears impressive, it may not reflect a global trend or the challenges faced in other regions, particularly those where progression rates remain significantly lower. This single data point could lead policymakers and stakeholders to mistakenly perceive that all areas enjoy similar success, overlooking systemic issues that still exist globally.

Furthermore, progression to secondary school alone doesn't tell the complete story of educational quality. Even if a girl progresses, she must also receive a quality education that empowers her and meets her needs. Thus, along with progression rates, it is also imperative to consider factors like the quality of education provided, dropout rates, and post-secondary education opportunities for females.

Reviewing trends over time reveals a substantial global improvement from 76.45% in 1988 to the present 99.53% in some areas, which indicates that despite challenges, there has been significant progress in female educational access worldwide. However, evaluating this progress requires a broad approach that considers intersectionality, including geographical and socio-economic factors that may impact educational opportunities.

In conclusion, the 'Progression to secondary school, female (%)' indicator serves as a valuable marker of educational achievement and gender equity. While some regions report nearly universal progress, concerted efforts to address remaining disparities and quality issues are essential. Policymakers, educators, and communities must collaborate to ensure that all girls have the chance not only to progress into secondary education but to thrive within it, thereby unlocking their potential and contributing positively to society.

                    
# 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.SEC.PROG.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.SEC.PROG.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))