Immunization, HepB3 (% of one-year-old children)

Source: worldbank.org, 03.09.2025

Year: 2023

Flag Country Value Value change, % Rank
Afghanistan Afghanistan 60 +3.45% 35
Angola Angola 54 +28.6% 38
Albania Albania 97 0% 3
Andorra Andorra 97 +1.04% 3
United Arab Emirates United Arab Emirates 96 +1.05% 4
Argentina Argentina 66 -21.4% 32
Armenia Armenia 94 -2.08% 6
Antigua & Barbuda Antigua & Barbuda 98 -1.01% 2
Australia Australia 94 0% 6
Austria Austria 84 0% 16
Azerbaijan Azerbaijan 83 0% 17
Burundi Burundi 89 -2.2% 11
Belgium Belgium 97 0% 3
Benin Benin 69 0% 30
Burkina Faso Burkina Faso 94 +1.08% 6
Bangladesh Bangladesh 98 0% 2
Bulgaria Bulgaria 92 +1.1% 8
Bahrain Bahrain 99 +2.06% 1
Bahamas Bahamas 87 0% 13
Bosnia & Herzegovina Bosnia & Herzegovina 77 -1.28% 22
Belarus Belarus 97 -1.02% 3
Belize Belize 85 +1.19% 15
Bolivia Bolivia 67 -2.9% 31
Brazil Brazil 90 +16.9% 10
Barbados Barbados 85 -1.16% 15
Brunei Brunei 99 0% 1
Bhutan Bhutan 99 +1.02% 1
Botswana Botswana 95 +10.5% 5
Central African Republic Central African Republic 42 0% 42
Canada Canada 83 0% 17
Switzerland Switzerland 80 +5.26% 19
Chile Chile 96 0% 4
China China 97 -2.02% 3
Côte d’Ivoire Côte d’Ivoire 79 +8.22% 20
Cameroon Cameroon 75 +5.63% 24
Congo - Kinshasa Congo - Kinshasa 60 -7.69% 35
Congo - Brazzaville Congo - Brazzaville 78 0% 21
Colombia Colombia 90 +3.45% 10
Comoros Comoros 75 -3.85% 24
Cape Verde Cape Verde 93 0% 7
Costa Rica Costa Rica 98 +4.26% 2
Cuba Cuba 99 0% 1
Cyprus Cyprus 95 0% 5
Czechia Czechia 94 0% 6
Germany Germany 87 0% 13
Djibouti Djibouti 72 +22% 27
Dominica Dominica 56 -31.7% 36
Dominican Republic Dominican Republic 90 +3.45% 10
Algeria Algeria 94 +22.1% 6
Ecuador Ecuador 70 0% 29
Egypt Egypt 96 -1.03% 4
Eritrea Eritrea 95 0% 5
Spain Spain 93 0% 7
Estonia Estonia 84 0% 16
Ethiopia Ethiopia 72 +10.8% 27
Fiji Fiji 99 0% 1
France France 96 0% 4
Micronesia (Federated States of) Micronesia (Federated States of) 85 +13.3% 15
Gabon Gabon 70 +16.7% 29
United Kingdom United Kingdom 92 0% 8
Georgia Georgia 93 +9.41% 7
Ghana Ghana 95 -4.04% 5
Guinea Guinea 47 0% 40
Gambia Gambia 84 +6.33% 16
Guinea-Bissau Guinea-Bissau 74 0% 25
Equatorial Guinea Equatorial Guinea 74 +5.71% 25
Greece Greece 96 0% 4
Grenada Grenada 86 +11.7% 14
Guatemala Guatemala 83 +2.47% 17
Guyana Guyana 98 0% 2
Honduras Honduras 73 -6.41% 26
Croatia Croatia 92 +2.22% 8
Haiti Haiti 51 0% 39
Indonesia Indonesia 83 -8.79% 17
India India 91 -2.15% 9
Ireland Ireland 93 0% 7
Iran Iran 99 0% 1
Iraq Iraq 91 -2.15% 9
Israel Israel 96 0% 4
Italy Italy 95 0% 5
Jamaica Jamaica 98 0% 2
Jordan Jordan 96 +4.35% 4
Japan Japan 95 -1.04% 5
Kazakhstan Kazakhstan 97 -2.02% 3
Kenya Kenya 93 -1.06% 7
Kyrgyzstan Kyrgyzstan 87 -3.33% 13
Cambodia Cambodia 85 0% 15
Kiribati Kiribati 90 -1.1% 10
St. Kitts & Nevis St. Kitts & Nevis 97 +1.04% 3
South Korea South Korea 97 0% 3
Kuwait Kuwait 99 +3.13% 1
Laos Laos 84 +5% 16
Lebanon Lebanon 55 -17.9% 37
Liberia Liberia 82 +5.13% 18
Libya Libya 73 0% 26
St. Lucia St. Lucia 74 -8.64% 25
Sri Lanka Sri Lanka 99 +1.02% 1
Lesotho Lesotho 87 0% 13
Lithuania Lithuania 89 -1.11% 11
Luxembourg Luxembourg 96 0% 4
Latvia Latvia 97 +2.11% 3
Morocco Morocco 99 0% 1
Monaco Monaco 99 0% 1
Moldova Moldova 88 -2.22% 12
Madagascar Madagascar 65 +14% 33
Maldives Maldives 99 0% 1
Mexico Mexico 85 +2.41% 15
Marshall Islands Marshall Islands 89 +2.3% 11
North Macedonia North Macedonia 86 +2.38% 14
Mali Mali 77 0% 22
Malta Malta 98 0% 2
Myanmar (Burma) Myanmar (Burma) 76 +7.04% 23
Montenegro Montenegro 42 -6.67% 42
Mongolia Mongolia 96 +1.05% 4
Mozambique Mozambique 70 +27.3% 29
Mauritania Mauritania 90 +5.88% 10
Mauritius Mauritius 96 +1.05% 4
Malawi Malawi 91 +5.81% 9
Malaysia Malaysia 97 +1.04% 3
Namibia Namibia 83 -1.19% 17
Niger Niger 85 +1.19% 15
Nigeria Nigeria 62 0% 34
Nicaragua Nicaragua 89 -3.26% 11
Netherlands Netherlands 86 -2.27% 14
Norway Norway 96 0% 4
Nepal Nepal 94 +4.44% 6
Nauru Nauru 97 0% 3
New Zealand New Zealand 88 -1.12% 12
Oman Oman 99 0% 1
Pakistan Pakistan 86 +1.18% 14
Panama Panama 66 -19.5% 32
Peru Peru 84 +2.44% 16
Philippines Philippines 87 +6.1% 13
Palau Palau 98 +3.16% 2
Papua New Guinea Papua New Guinea 35 -5.41% 43
Poland Poland 90 0% 10
North Korea North Korea 16 44
Portugal Portugal 99 0% 1
Paraguay Paraguay 71 +2.9% 28
Palestinian Territories Palestinian Territories 91 -8.08% 9
Qatar Qatar 95 -3.06% 5
Romania Romania 78 -8.24% 21
Russia Russia 97 0% 3
Rwanda Rwanda 94 -4.08% 6
Saudi Arabia Saudi Arabia 97 -1.02% 3
Sudan Sudan 51 -25% 39
Senegal Senegal 83 -10.8% 17
Singapore Singapore 97 +1.04% 3
Solomon Islands Solomon Islands 84 -5.62% 16
Sierra Leone Sierra Leone 91 0% 9
El Salvador El Salvador 96 +1.05% 4
San Marino San Marino 91 0% 9
Somalia Somalia 42 0% 42
Serbia Serbia 93 +1.09% 7
South Sudan South Sudan 73 0% 26
São Tomé & Príncipe São Tomé & Príncipe 86 -6.52% 14
Suriname Suriname 72 -6.49% 27
Slovakia Slovakia 96 -1.03% 4
Slovenia Slovenia 89 0% 11
Sweden Sweden 94 0% 6
Eswatini Eswatini 85 -12.4% 15
Seychelles Seychelles 97 0% 3
Syria Syria 66 +11.9% 32
Chad Chad 67 +11.7% 31
Togo Togo 85 +3.66% 15
Thailand Thailand 92 0% 8
Tajikistan Tajikistan 96 -1.03% 4
Turkmenistan Turkmenistan 98 0% 2
Timor-Leste Timor-Leste 83 0% 17
Tonga Tonga 99 0% 1
Trinidad & Tobago Trinidad & Tobago 96 +3.23% 4
Tunisia Tunisia 97 0% 3
Turkey Turkey 99 0% 1
Tuvalu Tuvalu 94 +3.3% 6
Tanzania Tanzania 93 0% 7
Uganda Uganda 91 +2.25% 9
Ukraine Ukraine 79 +27.4% 20
Uruguay Uruguay 95 +1.06% 5
United States United States 93 0% 7
Uzbekistan Uzbekistan 99 0% 1
St. Vincent & Grenadines St. Vincent & Grenadines 94 -5.05% 6
Venezuela Venezuela 54 +25.6% 38
Vietnam Vietnam 65 -28.6% 33
Vanuatu Vanuatu 72 +5.88% 27
Samoa Samoa 83 +9.21% 17
Yemen Yemen 46 -20.7% 41
South Africa South Africa 79 -7.06% 20
Zambia Zambia 80 -2.44% 19
Zimbabwe Zimbabwe 90 0% 10
Immunization, HepB3 (% of one-year-old children)

The indicator 'Immunization, HepB3 (% of one-year-old children)' plays a critical role in assessing the health status of populations, particularly in evaluating the effectiveness of public health initiatives in combating hepatitis B. Hepatitis B is a viral infection that attacks the liver and can lead to chronic disease and increase the risk of liver failure and liver cancer. The vaccination against hepatitis B is recommended shortly after birth, making this indicator vital for understanding the coverage of one of the essential vaccines in early childhood health.

As of 2023, the global median for HepB3 vaccination coverage among one-year-old children is a promising 90.0%. This statistic reflects the significant strides made in public health efforts globally; however, it also highlights the disparities that exist between different regions. The top-five areas demonstrating outstanding coverage rates are Bahrain, Bhutan, Brunei, Cuba, and Fiji, all achieving an impressive 99.0%. These nations demonstrate a commitment to immunization as part of their public health strategies, effectively reducing the incidence of hepatitis B in their populations.

Conversely, the bottom-five areas report drastically lower immunization rates, with North Korea at a shocking 16.0%, followed by Papua New Guinea, Central African Republic, Montenegro, and Somalia all hovering around 42.0%. These stark contrasts emphasize the ongoing challenges faced by many countries in ensuring that all children receive essential vaccinations. Low coverage could be attributed to various factors including political instability, lack of healthcare infrastructure, socio-economic challenges, and misinformation about vaccines.

The relationship between HepB3 immunization and other health indicators is profound. High vaccination coverage is correlated with lower incidences of hepatitis B, reduced healthcare costs associated with disease treatment, and improved overall public health outcomes. For instance, regions with comprehensive immunization programs often exhibit lower rates of other communicable diseases, showcasing how effective health policies can have cascading effects on community health.

Several factors influence the HepB3 immunization rate. Access to healthcare services, public awareness about vaccines, and population mobility are just a few elements that contribute to vaccination success. In regions where healthcare services are accessible and public health campaigns are robust, vaccination rates tend to be higher. Countries that have invested in health education and awareness-raising have seen success in increasing vaccination coverage. Furthermore, the political will to prioritize health funding and vaccination programs also heavily impacts the results.

To address the gaps in immunization coverage, several strategies can be implemented. Firstly, increasing access to healthcare services, especially in rural and underserved areas, can help ensure that more children receive their vaccinations on time. Mobile clinics, community health initiatives, and vaccination drives can significantly improve accessibility. Secondly, public health campaigns aimed at educating families about the benefits of vaccination can foster community trust in public health systems, ultimately increasing uptake. Collaboration with non-governmental organizations and international bodies can also amplify these efforts through resource sharing and technical support.

Despite the progress made, several flaws exist in the global immunization landscape. Countries with low coverage rates often struggle with systemic challenges, including poverty, lack of education, and political disenfranchisement. These underlying issues can hinder effective immunization programs. Additionally, misinformation surrounding vaccines, fueled by social media and other channels, poses a significant challenge, undermining public trust in vaccination efforts. Addressing these issues requires a multifaceted approach, merging health strategies with socio-economic development.

By analyzing the historical data regarding HepB3 coverage, it is evident that the world has made significant advancements since 1985, when the global rate was a dismal 0.0%. Over varying years, there has been a gradual increase, reaching 84.32% in 2022 and slightly declining to 83.74% in 2023. While the upward trend demonstrates progress, the slight decline is a reminder of the vulnerabilities present in vaccination programs, potentially highlighting complacency or arising challenges from competing public health issues.

To foster continued improvements, global health bodies must remain vigilant, ensuring sustained funding, public trust, and effective health communication. Continuous monitoring and evaluation of vaccination strategies will also help identify areas of underperformance and guide necessary adjustments. Addressing the disparities between high and low coverage areas must remain a priority to move toward a future where every child receives life-saving vaccines.

In conclusion, the HepB3 immunization rate for one-year-old children is an essential indicator that reflects the health status of populations and their access to preventative care. While the current global median shows a commendable effort in public health vaccination programs, the disparities highlighted by the top and bottom regions call for urgent action, strategic planning, and community engagement to foster greater equity in immunization efforts and ultimately save lives.

                    
# 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 = 'SH.IMM.HEPB'

# 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 <- 'SH.IMM.HEPB'

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