Net intake rate in grade 1 (% of official school-age population)

Source: worldbank.org, 03.09.2025

Year: 2015

Flag Country Value Value change, % Rank
Afghanistan Afghanistan 69.9 +1.31% 56
Albania Albania 76.9 -0.308% 39
United Arab Emirates United Arab Emirates 46.5 +0.215% 77
Armenia Armenia 88.6 +0.613% 17
Azerbaijan Azerbaijan 72.9 -8.11% 47
Burundi Burundi 71.1 -2.8% 53
Burkina Faso Burkina Faso 27 -8.26% 83
Bulgaria Bulgaria 82.3 -3.47% 33
Bahrain Bahrain 84.9 +3.75% 25
Bahamas Bahamas 66.5 +9.57% 60
Belarus Belarus 81 +0.964% 34
Belize Belize 62.8 -3.33% 67
Bolivia Bolivia 87.9 +4.46% 18
Chile Chile 83.4 +0.999% 30
China China 76.8 40
Côte d’Ivoire Côte d’Ivoire 42.6 +5.16% 79
Cameroon Cameroon 65.4 -2.14% 62
Colombia Colombia 67.6 -1.61% 58
Cape Verde Cape Verde 93.2 -2.55% 12
Costa Rica Costa Rica 91.9 -0.794% 13
Cuba Cuba 97.8 +10.2% 4
Dominican Republic Dominican Republic 82.9 +11% 32
Algeria Algeria 85.6 -0.0974% 23
Eritrea Eritrea 29.6 -10.8% 82
Spain Spain 97.7 -0.196% 5
Estonia Estonia 75.5 +0.633% 43
Ethiopia Ethiopia 79.1 +2.87% 35
Fiji Fiji 78.6 +1.96% 36
Micronesia (Federated States of) Micronesia (Federated States of) 70 +32.6% 55
Georgia Georgia 85.6 +14.1% 22
Equatorial Guinea Equatorial Guinea 20 -7.59% 84
Guatemala Guatemala 63.7 +4.76% 64
Honduras Honduras 65.2 +0.768% 63
Hungary Hungary 62.3 68
India India 59.2 +3.13% 74
Ireland Ireland 63 +3.18% 65
Iceland Iceland 98.9 +1.52% 3
Israel Israel 84.8 +3.26% 26
Jamaica Jamaica 69.5 57
Kyrgyzstan Kyrgyzstan 55.7 -0.664% 75
Kiribati Kiribati 73.4 45
Laos Laos 90.4 -3.21% 16
Liechtenstein Liechtenstein 46 -20.6% 78
Lesotho Lesotho 70.7 +6.43% 54
Lithuania Lithuania 94.1 +1.27% 10
Luxembourg Luxembourg 86.8 -1.52% 20
Macao SAR China Macao SAR China 91.5 -1.81% 14
Moldova Moldova 74.6 +1.07% 44
Madagascar Madagascar 76.6 -0.0684% 41
Mexico Mexico 72 +1.16% 49
Mali Mali 16.8 +0.159% 85
Montenegro Montenegro 94.3 9
Mongolia Mongolia 91.4 +0.743% 15
Mozambique Mozambique 75.9 -0.408% 42
Mauritania Mauritania 51.8 +22.9% 76
Mauritius Mauritius 78.2 -3.27% 37
Malaysia Malaysia 99.5 -0.484% 1
Niger Niger 60.5 +4.22% 72
Norway Norway 99.2 +0.0922% 2
New Zealand New Zealand 95.8 +1.3% 8
Pakistan Pakistan 84.2 +3.68% 28
Panama Panama 72 50
Peru Peru 83 +14.6% 31
Philippines Philippines 85.1 +12.7% 24
Puerto Rico Puerto Rico 60.9 -15.1% 70
Qatar Qatar 60.5 +2.99% 71
Romania Romania 77.5 +0.249% 38
Rwanda Rwanda 85.8 -10.5% 21
Saudi Arabia Saudi Arabia 84.5 -4.68% 27
Senegal Senegal 39.6 +19.6% 80
Sierra Leone Sierra Leone 71.4 +4.1% 52
El Salvador El Salvador 60.9 +4.31% 69
Serbia Serbia 83.9 +1.43% 29
São Tomé & Príncipe São Tomé & Príncipe 87.1 -1.12% 19
Suriname Suriname 65.4 +5.28% 61
Sweden Sweden 96.6 -0.898% 7
Seychelles Seychelles 71.5 +3.83% 51
Togo Togo 67.1 +18.4% 59
Thailand Thailand 63 66
Tajikistan Tajikistan 94 +0.971% 11
Timor-Leste Timor-Leste 37.4 +0.0324% 81
Uganda Uganda 60.1 -12.1% 73
Uruguay Uruguay 96.9 +2.38% 6
United States United States 72.7 -0.564% 48
Venezuela Venezuela 73.2 -0.00003% 46

The net intake rate in grade 1, expressed as a percentage of the official school-age population, serves as a vital indicator of educational access and quality within a country. This measurement reflects the proportion of children of official school age who are newly enrolled in grade 1 and provides insight into how well a country's education system is engaging its youth from the outset. The net intake rate in grade 1 is essential not only for understanding enrollment trends but also for gauging the overall effectiveness of educational policies and their alignment with demographic changes.

Why is this indicator important? A high net intake rate signals that a country is successfully enrolling its young population into the education system, which is foundational for the development of human capital. Education plays a pivotal role in socioeconomic development, leading to a more skilled workforce, reduced poverty levels, and improved health outcomes. Conversely, a low net intake rate may indicate barriers to education such as socioeconomic challenges, lack of infrastructure, or cultural factors that impede access to schooling.

The net intake rate in grade 1 has strong correlations with various other indicators. For instance, it often relates closely to literacy rates among adults and youths, socioeconomic status, and general health indicators within a population. Countries that prioritize education frequently experience higher literacy rates, improved public health outcomes, and better economic performance. Furthermore, the gender gap in education can also be observed through this metric, as regions with significant disparities might reveal skewed net intake rates for boys versus girls, impacting future societal equity.

Several factors can impact the net intake rate in grade 1. Economic conditions play a fundamental role; in wealthier nations or regions, families are more likely to have the resources to send their children to school. Conversely, in poorer areas, families may prioritize labor supply over education, causing lower enrollment. Political stability and government investment in educational infrastructure also substantially influence these rates. Countries facing conflict or instability often see significant drops in educational access, particularly for young children. Additionally, cultural perceptions surrounding education, particularly for girls, can drastically affect net intake figures. In regions where education is not valued for certain demographics, intake rates may be critically low.

To improve net intake rates, several strategies can be employed. Governments can implement policies aimed at eliminating financial barriers to education, such as providing free school meals, uniforms, or transport. Community awareness programs can enhance perceptions around the importance of education. Additionally, investing in school infrastructure, especially in rural or underserved areas, can make education more accessible. Outreach programs targeting marginalized populations can ensure inclusivity, thereby increasing overall enrollment.

Despite the importance of the net intake rate in grade 1, some flaws in its application and interpretation exist. For instance, this indicator may not account for the quality of education being provided, nor does it distinguish between those who remain in the system beyond grade 1. Thus, a high net intake rate could coexist with poor educational outcomes if the quality of schooling suffers due to inadequate pedagogical approaches or lack of resources. Furthermore, data collection methods may vary, leading to inconsistencies across regions, thus complicating comparative analyses.

In reviewing the latest data on net intake rates, the median value in 2019 stood at 56.28%, suggesting that just over half of the official school-age population was newly enrolled in grade 1. This figure highlights considerable room for improvement and underscores the importance of targeted educational policies. Among the top areas, Djibouti leads with a net intake rate of 65.75%, signaling stronger enrollment efforts, while Kazakhstan, interestingly, shows a figure of 46.81%, indicating challenges that may stem from socioeconomic or infrastructure-related barriers. The contrast between these two regions illustrates the diversity of educational access and the differing strategies needed to address specific local challenges.

When examining world values historically from 2005 to 2018, we observe an upward trend in net intake rates reaching a high of 70.12% in 2016. However, subsequent years witnessed a slight decline, with numbers falling back to 69.91% in 2018. This fluctuation raises concerns about sustaining educational progress globally and underlines the necessity for continuous investment and attention to educational systems worldwide. As we consider the path ahead, focusing on innovative solutions that not only boost enrollment rates but also improve educational quality will be vital for achieving global education goals.

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