Progression to secondary school, male (%)

Source: worldbank.org, 01.09.2025

Year: 2016

Flag Country Value Value change, % Rank
Afghanistan Afghanistan 96.4 +8.75% 44
Albania Albania 98 -0.333% 33
Argentina Argentina 100 +1.01% 1
Armenia Armenia 98.2 -0.0301% 29
Austria Austria 100 0% 1
Azerbaijan Azerbaijan 95.5 -4.23% 48
Burundi Burundi 75.5 -14.3% 79
Burkina Faso Burkina Faso 77 -1.55% 78
Bulgaria Bulgaria 99.8 +0.898% 3
Bahrain Bahrain 99.3 -0.714% 12
Bosnia & Herzegovina Bosnia & Herzegovina 98.3 -0.848% 28
Belarus Belarus 97.6 -0.318% 37
Belize Belize 93.5 -2.41% 53
Bolivia Bolivia 96.9 -0.65% 42
Brunei Brunei 100 0% 1
Bhutan Bhutan 99.1 +1.15% 15
Switzerland Switzerland 100 0% 1
Chile Chile 97.4 +0.427% 39
Côte d’Ivoire Côte d’Ivoire 91.5 -2.79% 60
Cape Verde Cape Verde 98.9 +2.56% 19
Costa Rica Costa Rica 86.4 +0.327% 69
Cuba Cuba 98.1 -0.359% 31
Cyprus Cyprus 99.5 -0.507% 9
Czechia Czechia 100 +0.0834% 1
Germany Germany 100 0% 1
Djibouti Djibouti 86.2 +11.7% 71
Denmark Denmark 100 0% 1
Dominican Republic Dominican Republic 91 +0.906% 61
Ecuador Ecuador 98.8 +0.402% 21
Egypt Egypt 92.9 +0.536% 54
Spain Spain 99.9 +0.745% 2
Estonia Estonia 99.7 +0.197% 6
Finland Finland 100 +0.0222% 1
United Kingdom United Kingdom 100 1
Georgia Georgia 99.5 -0.433% 11
Ghana Ghana 92.8 -5.21% 56
Greece Greece 99 +2.07% 18
Guatemala Guatemala 94.2 -1.36% 50
Hong Kong SAR China Hong Kong SAR China 100 0% 1
Croatia Croatia 98.8 -0.365% 23
Hungary Hungary 100 +0.0748% 1
Indonesia Indonesia 95.4 +4.21% 49
India India 90.3 -0.248% 63
Iran Iran 96.9 -0.32% 41
Israel Israel 99.6 +0.157% 8
Italy Italy 100 0% 1
Jamaica Jamaica 92.9 +8.02% 55
Jordan Jordan 98.8 +1.2% 20
Japan Japan 100 +0.0549% 1
Kazakhstan Kazakhstan 98.3 -1.64% 27
Kyrgyzstan Kyrgyzstan 99.2 -0.713% 13
Cambodia Cambodia 85.1 +2.6% 73
South Korea South Korea 99.8 -0.0271% 4
Kuwait Kuwait 97.4 -2.59% 38
Laos Laos 89 -0.698% 67
Lebanon Lebanon 97.4 +2.87% 40
Liberia Liberia 78.1 -3.73% 76
St. Lucia St. Lucia 95.8 -0.824% 47
Liechtenstein Liechtenstein 100 0% 1
Lithuania Lithuania 99.1 -0.335% 16
Latvia Latvia 98.8 +0.0623% 22
Macao SAR China Macao SAR China 100 +0.613% 1
Morocco Morocco 92.5 +1.47% 57
Moldova Moldova 98.6 -0.0312% 24
Maldives Maldives 97.8 -1.32% 35
Mexico Mexico 96.8 +0.662% 43
Mali Mali 77.2 -12.7% 77
Malta Malta 100 0% 1
Montenegro Montenegro 100 +4.73% 1
Mongolia Mongolia 98.6 -0.849% 25
Mauritania Mauritania 54.6 -12.8% 82
Mauritius Mauritius 84.6 +3.91% 74
Malaysia Malaysia 91.7 +5% 59
Norway Norway 100 +0.083% 1
Nepal Nepal 84.1 -5.48% 75
Oman Oman 97.8 -0.454% 36
Panama Panama 100 0% 1
Peru Peru 93.8 -1.29% 52
Philippines Philippines 96.2 -0.319% 45
Poland Poland 100 0% 1
Palestinian Territories Palestinian Territories 100 +1.2% 1
Qatar Qatar 99.2 -0.85% 14
Romania Romania 100 +0.151% 1
Rwanda Rwanda 88.2 +20.3% 68
Saudi Arabia Saudi Arabia 90.2 +4.66% 64
Sudan Sudan 89.9 -1.65% 65
Senegal Senegal 75.3 -4.07% 80
Singapore Singapore 100 +13.6% 1
Solomon Islands Solomon Islands 89.3 -0.741% 66
Sierra Leone Sierra Leone 86 -6.15% 72
El Salvador El Salvador 92.4 -0.373% 58
Serbia Serbia 99.5 -0.174% 10
São Tomé & Príncipe São Tomé & Príncipe 93.9 +3.41% 51
Suriname Suriname 54.4 -10.3% 83
Slovakia Slovakia 99.1 -0.163% 17
Slovenia Slovenia 100 +0.958% 1
Sweden Sweden 100 0% 1
Eswatini Eswatini 98.1 -1.67% 30
Seychelles Seychelles 98 +3.42% 32
Togo Togo 86.3 -1.49% 70
Tajikistan Tajikistan 99.7 -0.265% 5
Timor-Leste Timor-Leste 90.9 -2.68% 62
Tunisia Tunisia 97.9 +13.3% 34
Uganda Uganda 60.7 +10.4% 81
Ukraine Ukraine 99.6 +0.796% 7
United States United States 100 1
Uzbekistan Uzbekistan 100 0% 1
St. Vincent & Grenadines St. Vincent & Grenadines 100 +5.81% 1
Venezuela Venezuela 98.6 +0.908% 26
Samoa Samoa 96.1 -1.01% 46

The progression to secondary school indicator for males is a crucial metric that reflects the percentage of boys who successfully transition from primary education to secondary education. This statistic provides insight into the educational landscape of a region, highlighting not only the accessibility and quality of education available but also broader socio-economic factors. As of the latest data from 2018, the median value globally stands impressively at 99.54%, underscoring a significant trend towards educational continuity at this level for boys.

This indicator serves multiple roles: it is a benchmark for educational attainment, an accountability measure for educational systems, and a critical factor in assessing future economic potential and stability within a country. Higher progression rates typically correlate with increased literacy levels, improved job prospects, and enhanced economic growth. Therefore, the importance of examining this metric should not be underestimated, especially in understanding how education systems can influence societal structures.

The statistics reveal that, from 1986 to 2017, there has been a steady increase in the average global progression to secondary school for males. For example, the world value for this indicator rose from 78.66% in 1986 to 91.46% in 2017. This positive trend indicates a growing recognition of the importance of education and investments made towards market-relevant schooling facilities, teaching quality, and curricula designed to engage students more effectively.

As for Kazakhstan, it reflects the unique scenario where it stands at both the highest and lowest point of the progression scale, recording a value of 99.54%. This peculiarity may suggest that while the nationwide average is commendable, there are underlying disparities that need to be explored and addressed at local levels. It raises questions about whether all boys in various regions of Kazakhstan are benefiting equally from the educational opportunities or if there are specific populations that are still facing barriers to entry at the secondary level.

Various factors influence the progression to secondary education. Economic stability and growth hugely impact this metric. In affluent areas, families are more likely to invest in education, understanding the long-term benefits that arise from a solid secondary education. Conversely, in economically disadvantaged regions, boys may be compelled to drop out of school to support their families, adversely affecting progression rates. Cultural factors can also play a significant role; in certain societies, boys might be prioritized over girls for educational opportunities, showcasing a gender bias within schools that affects overall educational equality.

The availability and quality of secondary educational institutions directly impact progression rates. Areas with an adequate number of schools, trained teachers, and learning resources exhibit higher percentages of boys progressing to secondary education. Additionally, governmental policies that prioritize education spend, subsidies, and incentives for families to keep their children in school can significantly uplift these figures. Initiatives that focus specifically on engaging and retaining boys in education can prove beneficial as well, especially in areas where dropout rates are most concerning.

Strategies to enhance the proportion of boys moving onwards to secondary education could include outreach programs that educate families about the value of sustained education, financial incentives for low-income families to send children to school, and the development of community centers that provide tutoring and support for students at risk of dropping out. Establishing mentorship opportunities wherein older students guide younger ones through academic challenges could also be effective. Addressing logistical challenges, such as transportation issues or school infrastructure, can create a more favorable environment for boys to continue their education.

However, even with positive trends, flaws exist within this indicator. For example, while certain areas display commendable progression rates, it does not necessarily indicate that all boys are receiving a quality education or that the curriculum is effectively preparing them for future challenges. The figures can mask disparities within regions or between different socioeconomic groups, leading policymakers to overlook the nuanced realities of education equity. It is crucial that the progression to secondary school is evaluated alongside qualitative measures, ensuring that not only are boys attending school, but they are also receiving appropriate support that leads to successful learning outcomes.

In conclusion, the progression to secondary school for males is a key indicator of educational health both on a national and global scale. As countries continue to strive for educational attainment, it is essential to analyze the statistics critically, understanding the contributing factors and behaviors that impact this progression. While the global average offers a snapshot of success, delving deeper into the local data, implementing inclusive strategies, and addressing systemic flaws will ultimately help every boy have the opportunity to transition smoothly into secondary education.

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