Expenditure on tertiary education (% of government expenditure on education)

Source: worldbank.org, 03.09.2025

Year: 2016

Flag Country Value Value change, % Rank
Aruba Aruba 18.4 -26.7% 55
Albania Albania 19.1 -9.73% 53
Andorra Andorra 5.9 +7.68% 79
Argentina Argentina 20.4 -0.819% 46
Armenia Armenia 13.2 +3.9% 68
Australia Australia 26.8 -7.04% 15
Austria Austria 32.5 -0.444% 6
Azerbaijan Azerbaijan 17.1 +33.3% 60
Belgium Belgium 22.3 +0.704% 32
Bangladesh Bangladesh 33.3 +126% 5
Belarus Belarus 16.1 -3.91% 63
Belize Belize 10.1 -14.8% 75
Barbados Barbados 31.1 -20.9% 8
Brunei Brunei 18.9 -40.8% 54
Switzerland Switzerland 26 -0.988% 18
Chile Chile 25.4 -1.11% 21
Côte d’Ivoire Côte d’Ivoire 21.9 +2.12% 34
Colombia Colombia 23 +7.46% 29
Cape Verde Cape Verde 17.6 -4.25% 59
Costa Rica Costa Rica 23 +3.15% 30
Cyprus Cyprus 20.8 +0.374% 42
Czechia Czechia 12.6 -5.49% 69
Germany Germany 26 +0.142% 19
Spain Spain 21.8 -2.54% 35
Estonia Estonia 27.1 +0.275% 14
Finland Finland 26.5 -0.578% 17
United Kingdom United Kingdom 25.6 +12.2% 20
Georgia Georgia 11.1 -42.2% 73
Guinea Guinea 36.7 -6.23% 4
Guatemala Guatemala 14.6 +6.2% 67
Hong Kong SAR China Hong Kong SAR China 30.4 +3.08% 10
Hungary Hungary 16.1 +12.2% 64
Ireland Ireland 19.6 -16.1% 51
Iran Iran 29.8 +1.48% 11
Iceland Iceland 19.9 +5.43% 48
Israel Israel 15.2 -6.63% 66
Italy Italy 19.1 +2.78% 52
Jamaica Jamaica 18.2 +4.84% 56
Jordan Jordan 19.9 +6.85% 47
Japan Japan 19.8 -4.65% 49
Kazakhstan Kazakhstan 11.6 -23.7% 72
Kyrgyzstan Kyrgyzstan 3.02 -34.8% 80
South Korea South Korea 20.4 +51% 45
Sri Lanka Sri Lanka 12.1 -37.5% 71
Lithuania Lithuania 20.5 -26.3% 44
Latvia Latvia 16 -27.4% 65
Macao SAR China Macao SAR China 39.3 -6.93% 3
Moldova Moldova 16.2 -5.65% 62
Madagascar Madagascar 0.00583 -8.04% 81
Maldives Maldives 20.6 +61.5% 43
Mexico Mexico 21.1 -1.79% 41
Mali Mali 21.7 +4.67% 36
Mongolia Mongolia 11 -4.23% 74
Mauritania Mauritania 17.7 +53.1% 58
Mauritius Mauritius 6.35 -6.87% 78
Malawi Malawi 23.1 -4.55% 28
Malaysia Malaysia 23.4 -23.3% 26
Niger Niger 21.5 +59.1% 39
Netherlands Netherlands 31.9 +5.97% 7
Norway Norway 26.7 +3.16% 16
New Zealand New Zealand 23.7 -7.16% 25
Pakistan Pakistan 22.2 -2.58% 33
Peru Peru 17 +5.57% 61
Poland Poland 22.8 -9.65% 31
Paraguay Paraguay 23.3 +4.15% 27
Romania Romania 23.8 +12.4% 24
Russia Russia 21.6 +2.21% 38
Senegal Senegal 28.1 -12.6% 13
Sierra Leone Sierra Leone 52.1 +69.7% 1
El Salvador El Salvador 8.03 +1.99% 77
Serbia Serbia 28.9 -4.01% 12
South Sudan South Sudan 50.4 +82.7% 2
Slovakia Slovakia 21.3 -28.8% 40
Slovenia Slovenia 19.7 -0.651% 50
Sweden Sweden 24.1 -3.32% 23
Seychelles Seychelles 21.6 +1,820% 37
Togo Togo 17.9 +3.5% 57
Ukraine Ukraine 30.5 -3.36% 9
Uruguay Uruguay 25.1 -6.41% 22
Samoa Samoa 9.18 -72.4% 76
Zambia Zambia 12.3 +4.22% 70

The expenditure on tertiary education as a percentage of government expenditure on education serves as a vital indicator of a nation's commitment to higher education. This expenditure reflects the prioritization of advanced educational institutions such as universities and colleges, which play a critical role in shaping a skilled workforce and fostering innovation. In 2019, data indicated that the median value for this expenditure across various regions was 14.63%. Notably, Myanmar stood out in this context, both for housing the highest and lowest value, highlighting a significant static investment level in tertiary education.

Understanding the importance of this indicator can unveil several implications for a country’s educational and economic landscape. A higher percentage of government expenditure directed towards tertiary education suggests a commitment to enhancing higher education and an anticipation of economic benefits stemming from a more educated populace. It can facilitate better job prospects for graduates, increase national productivity, and promote socioeconomic advancements. Conversely, low expenditure on tertiary education can result in a skills gap in the workforce, limiting economic growth prospects and innovation capability.

This indicator interacts intricately with several other educational and economic indicators. For example, it relates closely to literacy rates, primary and secondary education completion rates, and overall employment statistics. Countries investing more in higher education often see corresponding increases in literacy and completion rates in previous education levels. Additionally, the correlation between higher tertiary education expenditure and economic performance can be observed through GDP growth rates. Countries that prioritize education typically enjoy stronger economies, showcasing the long-term value of investing in human capital.

Several factors can affect expenditure on tertiary education, including government policies, economic stability, and demographic shifts. Economic downturns may lead to budget cuts in education, whereas prosperous times can see an increase in allocations. Government priorities play a critical role; if a nation focuses on immediate industrial needs, it may neglect the longer-term benefits of investing in higher education. Furthermore, demographic patterns, including population growth and shifts in youth populations, can also influence the funding for higher education institutions. A larger youth population may necessitate more expenditure to cater to their educational needs.

To address the shortcomings associated with static or low expenditure figures, several strategies can be implemented. Firstly, enhancing public-private partnerships can amplify funding sources, allowing for increased investment in tertiary education. Governments can also consider reallocating budget priorities to reflect a more balanced approach to education funding across all levels. Another strategy involves improving efficiency within the existing educational institutions, ensuring that more of the available resources contribute to educational outcomes rather than administrative costs. Vocational training programs can also be integrated into tertiary education frameworks to ensure that educational attainment aligns with labor market needs.

Solutions must also consider the challenges that come with increased expenditure. While investing in tertiary education is essential, there must be a simultaneous focus on ensuring that the quality of education is not compromised. Greater financial allocation should not lead to diluted educational standards. Moreover, mechanisms must be put in place to ensure that students from all backgrounds can benefit from tertiary education, such as scholarships and other funding programs, ensuring inclusivity in accessing higher education.

Analyzing the data from recent years reveals a trend where global expenditure on tertiary education has fluctuated. For instance, the world values from 2008 to 2013 indicated a decline from 20.87% in 2008 to a low of 19.69% in 2012 before rebounding slightly to 21.62% in 2013. This fluctuation highlights the challenges faced regarding consistent investment in tertiary education worldwide. The absence of a notable upward trend post-2013 until 2019 may raise concerns about the health and focus of education systems globally. The static figure of 14.63% observed for Myanmar suggests that despite potential systemic issues, the investment level has remained unchanged.

Such a scenario could represent inflexibility in policy adaptations or reflect broader socio-economic challenges within the nation that have yet to be addressed adequately. Still, keeping a close eye on expenditure levels and adapting education funding policies will be necessary for fostering a generation equipped to meet future economic challenges. While it is imperative to recognize the critical role of higher education funding, it is equally vital to ensure that these funds are utilized to cultivate an educational environment that encourages growth, innovation, and inclusivity.

                    
# 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.XPD.TERT.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.XPD.TERT.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))