Birth rate, crude (per 1,000 people)

Source: worldbank.org, 01.09.2025

Year: 2023

Flag Country Value Value change, % Rank
Aruba Aruba 7.97 -6.5% 184
Afghanistan Afghanistan 35.4 -1.69% 9
Angola Angola 37.6 -1.35% 7
Albania Albania 10.2 -0.592% 154
Andorra Andorra 6.86 +0.131% 192
United Arab Emirates United Arab Emirates 9.77 +5.15% 161
Argentina Argentina 11.1 +1.26% 138
Armenia Armenia 12.3 0% 122
American Samoa American Samoa 15.4 -0.863% 104
Antigua & Barbuda Antigua & Barbuda 11.8 -1.27% 126
Australia Australia 10.8 -6.9% 145
Austria Austria 8.5 -6.59% 175
Azerbaijan Azerbaijan 11.1 -8.26% 136
Burundi Burundi 33.7 -1.86% 17
Belgium Belgium 9.4 -4.08% 165
Benin Benin 33.9 -1.37% 14
Burkina Faso Burkina Faso 31.6 -1.25% 24
Bangladesh Bangladesh 20.4 -1.12% 75
Bulgaria Bulgaria 8.9 +1.14% 171
Bahrain Bahrain 12.5 -6.19% 118
Bahamas Bahamas 10.9 -0.823% 144
Bosnia & Herzegovina Bosnia & Herzegovina 7.71 -0.439% 186
Belarus Belarus 7.14 -11.5% 191
Belize Belize 18 +3.65% 85
Bermuda Bermuda 8.05 -1.67% 182
Bolivia Bolivia 21.2 -1.48% 67
Brazil Brazil 12.3 -1.86% 121
Barbados Barbados 11.2 -0.676% 135
Brunei Brunei 13.6 -1.86% 110
Bhutan Bhutan 12.7 -1.12% 116
Botswana Botswana 24.7 -2.14% 54
Central African Republic Central African Republic 46.4 +2.05% 1
Canada Canada 8.8 -2.22% 172
Switzerland Switzerland 9 -4.26% 169
Chile Chile 8.96 -7.33% 170
China China 6.39 -5.61% 196
Côte d’Ivoire Côte d’Ivoire 32 -1.57% 22
Cameroon Cameroon 33.7 -1.53% 16
Congo - Kinshasa Congo - Kinshasa 41.3 -0.764% 5
Congo - Brazzaville Congo - Brazzaville 30.6 -1.01% 28
Colombia Colombia 13.5 -1.86% 111
Comoros Comoros 28.7 -1.41% 35
Cape Verde Cape Verde 12.3 -0.868% 120
Costa Rica Costa Rica 10.2 -1.36% 156
Cuba Cuba 8.71 +0.508% 173
Curaçao Curaçao 7.5 -8.54% 188
Cayman Islands Cayman Islands 11.8 -2.9% 127
Cyprus Cyprus 10.8 -2.25% 146
Czechia Czechia 8.4 -11.6% 176
Germany Germany 8.3 -5.68% 179
Djibouti Djibouti 20.8 -1.25% 71
Dominica Dominica 11.1 -0.502% 137
Denmark Denmark 9.7 -2.02% 162
Dominican Republic Dominican Republic 17.9 -1.77% 87
Algeria Algeria 19.6 -4.23% 79
Ecuador Ecuador 15 -2.53% 106
Egypt Egypt 21 -0.412% 69
Eritrea Eritrea 28.5 -0.457% 37
Spain Spain 6.7 -2.9% 194
Estonia Estonia 8 -6.98% 183
Ethiopia Ethiopia 31.9 -1.57% 23
Finland Finland 7.8 -3.7% 185
Fiji Fiji 18 -1.35% 86
France France 9.9 -7.48% 159
Faroe Islands Faroe Islands 10.6 -10.2% 151
Micronesia (Federated States of) Micronesia (Federated States of) 22.3 -0.933% 60
Gabon Gabon 27.7 -2.24% 42
United Kingdom United Kingdom 10 -0.762% 157
Georgia Georgia 11.5 -1.02% 131
Ghana Ghana 26.3 -1.08% 47
Gibraltar Gibraltar 12.1 +0.366% 124
Guinea Guinea 33.8 -1.55% 15
Gambia Gambia 30.4 -1.11% 30
Guinea-Bissau Guinea-Bissau 30 -1.38% 32
Equatorial Guinea Equatorial Guinea 29.6 -1.72% 33
Greece Greece 6.8 -6.85% 193
Grenada Grenada 11.7 -1.88% 129
Greenland Greenland 12.6 -4.55% 117
Guatemala Guatemala 20.8 -1.21% 70
Guam Guam 17.7 -1.92% 88
Guyana Guyana 20.3 -2.22% 76
Hong Kong SAR China Hong Kong SAR China 4.4 0% 203
Honduras Honduras 22 -1.25% 64
Croatia Croatia 8.3 -5.68% 179
Haiti Haiti 22.2 -1.54% 61
Hungary Hungary 9.1 -2.15% 168
Indonesia Indonesia 15.9 -1.62% 101
Isle of Man Isle of Man 8.34 -1.15% 177
India India 16.1 -1.16% 96
Ireland Ireland 10.3 -0.962% 153
Iran Iran 13 -2.73% 113
Iraq Iraq 25.7 -1.06% 51
Iceland Iceland 11 -4.35% 140
Israel Israel 18.6 -2.11% 84
Italy Italy 6.4 -4.48% 195
Jamaica Jamaica 11.6 -1.96% 130
Jordan Jordan 20.6 -1.49% 73
Japan Japan 6 -4.76% 197
Kazakhstan Kazakhstan 20.1 -3.27% 77
Kenya Kenya 27.1 -0.863% 43
Kyrgyzstan Kyrgyzstan 20.6 -4.19% 74
Cambodia Cambodia 20.8 -2.48% 72
Kiribati Kiribati 25.8 -2.23% 50
St. Kitts & Nevis St. Kitts & Nevis 11.7 -1.78% 128
South Korea South Korea 4.5 -8.16% 202
Kuwait Kuwait 10.3 -5.03% 152
Laos Laos 21.3 -1.95% 66
Lebanon Lebanon 16.1 -1.39% 97
Liberia Liberia 31 -0.734% 27
Libya Libya 17 -2.93% 91
St. Lucia St. Lucia 11.3 -1.36% 133
Liechtenstein Liechtenstein 9.1 -1.09% 168
Sri Lanka Sri Lanka 11.2 -9.68% 134
Lesotho Lesotho 24.1 -1.16% 56
Lithuania Lithuania 7.2 -7.69% 190
Luxembourg Luxembourg 9.5 -4.04% 163
Latvia Latvia 7.7 -9.41% 187
Macao SAR China Macao SAR China 5.5 -14.1% 201
Saint Martin (French part) Saint Martin (French part) 17.1 -1.48% 90
Morocco Morocco 16.7 -1.96% 93
Monaco Monaco 9.44 +8.68% 164
Moldova Moldova 10.8 +1.99% 147
Madagascar Madagascar 32.1 -1.24% 21
Maldives Maldives 11 -3.32% 139
Mexico Mexico 15.7 -2.09% 103
Marshall Islands Marshall Islands 21.1 -3.87% 68
North Macedonia North Macedonia 9.2 -7.07% 166
Mali Mali 40 -0.783% 6
Malta Malta 8.1 0% 181
Myanmar (Burma) Myanmar (Burma) 16.7 -1.28% 94
Montenegro Montenegro 11.2 -0.885% 134
Mongolia Mongolia 19 -2.56% 82
Northern Mariana Islands Northern Mariana Islands 12.9 -6.44% 115
Mozambique Mozambique 37.5 -1.33% 8
Mauritania Mauritania 34.4 -1.21% 13
Mauritius Mauritius 10.2 +6.25% 155
Malawi Malawi 31.4 -1.12% 25
Malaysia Malaysia 12.4 +0.145% 119
Namibia Namibia 25.9 -1.72% 49
New Caledonia New Caledonia 14.3 -1.63% 107
Niger Niger 41.9 -0.138% 4
Nigeria Nigeria 33 -0.717% 20
Nicaragua Nicaragua 19.4 -1.62% 80
Netherlands Netherlands 9.2 -3.16% 166
Norway Norway 9.4 0% 165
Nepal Nepal 19.3 -1.54% 81
Nauru Nauru 25.5 -4.16% 52
New Zealand New Zealand 10.9 -5.48% 143
Oman Oman 16.8 +3.02% 92
Pakistan Pakistan 27.8 -1.15% 41
Panama Panama 16 -1.29% 98
Peru Peru 15.9 -1.48% 100
Philippines Philippines 16 -0.237% 99
Palau Palau 10.9 -1.96% 142
Papua New Guinea Papua New Guinea 24.6 -2.32% 55
Poland Poland 7.4 -10.8% 189
Puerto Rico Puerto Rico 5.8 -1.69% 198
North Korea North Korea 12.9 -1.54% 114
Portugal Portugal 8.1 +1.25% 181
Paraguay Paraguay 20 -1.82% 78
Palestinian Territories Palestinian Territories 27.1 -1.86% 44
French Polynesia French Polynesia 10.9 -2.23% 141
Qatar Qatar 9.91 -1.89% 158
Romania Romania 8 -14.9% 183
Russia Russia 8.6 -3.37% 174
Rwanda Rwanda 28.3 -1.77% 38
Saudi Arabia Saudi Arabia 16.4 +7.87% 95
Sudan Sudan 33.6 +0.23% 18
Senegal Senegal 29.4 -0.126% 34
Singapore Singapore 7.4 -6.33% 189
Solomon Islands Solomon Islands 26.9 -1.28% 45
Sierra Leone Sierra Leone 30.6 -1.51% 29
El Salvador El Salvador 15.8 -1.02% 102
San Marino San Marino 5.6 -8.2% 200
Somalia Somalia 43 -1.88% 2
Serbia Serbia 9.2 -1.08% 166
South Sudan South Sudan 28.6 -1.64% 36
São Tomé & Príncipe São Tomé & Príncipe 28.2 -0.325% 39
Suriname Suriname 17.3 -0.985% 89
Slovakia Slovakia 9 -7.22% 169
Slovenia Slovenia 8 -3.61% 183
Sweden Sweden 9.5 -5% 163
Eswatini Eswatini 24.1 -2.19% 57
Sint Maarten Sint Maarten 9.13 -0.783% 167
Seychelles Seychelles 13 -0.763% 112
Syria Syria 22.1 +4.11% 62
Turks & Caicos Islands Turks & Caicos Islands 10.7 -2.21% 148
Chad Chad 42.4 -2.2% 3
Togo Togo 31.1 -1.25% 26
Thailand Thailand 8.25 -1.61% 180
Tajikistan Tajikistan 26.1 -3.4% 48
Turkmenistan Turkmenistan 21.7 -3.95% 65
Timor-Leste Timor-Leste 22.1 -1.55% 63
Tonga Tonga 23.1 -0.998% 58
Trinidad & Tobago Trinidad & Tobago 10.7 -2.54% 149
Tunisia Tunisia 13.7 -2.66% 109
Turkey Turkey 11.2 -8.2% 134
Tuvalu Tuvalu 23.1 -4.19% 59
Tanzania Tanzania 35.2 -1.16% 10
Uganda Uganda 35.2 -1.67% 12
Ukraine Ukraine 5.63 -0.951% 199
Uruguay Uruguay 9.87 -0.874% 160
United States United States 10.7 -2.73% 150
Uzbekistan Uzbekistan 26.5 -0.222% 46
St. Vincent & Grenadines St. Vincent & Grenadines 12.2 -1.9% 123
Venezuela Venezuela 15.1 +0.413% 105
British Virgin Islands British Virgin Islands 8.33 -0.998% 178
U.S. Virgin Islands U.S. Virgin Islands 11.4 -1.72% 132
Vietnam Vietnam 13.8 -3.09% 108
Vanuatu Vanuatu 28.1 -2.17% 40
Samoa Samoa 25.4 -2.68% 53
Kosovo Kosovo 12.1 -1.69% 125
Yemen Yemen 35.2 -0.559% 11
South Africa South Africa 18.8 -1.59% 83
Zambia Zambia 33.1 -1.37% 19
Zimbabwe Zimbabwe 30.4 -1.53% 31

The birth rate, defined as the crude number of births per 1,000 people in a given population, provides crucial insights into demographic trends, public health, and economic development. As of 2022, the global median birth rate stands at 14.64 births per 1,000 people, a testament to the significant changes in fertility patterns observed over the decades.

Historically, the world saw an average birth rate of approximately 31.86 births per 1,000 people in 1960, indicating a dramatic decline over the years. The data shows a gradual decrease, with rates falling consistently through the 1990s and into the early 2000s. By 2022, this figure had reduced to approximately 16.7 births per 1,000, reflecting a worldwide trend towards lower fertility rates.

Examining regional disparities reveals stark contrasts. The top five areas with the highest crude birth rates in 2022 include Niger (45.03), Chad (43.18), Somalia (43.09), the Central African Republic (42.34), and Congo - Kinshasa (41.74). These figures show that these countries experience significantly higher fertility rates, which can be attributed to factors such as cultural norms favoring larger families, limited access to education, and healthcare resources, particularly reproductive health services.

In contrast, the bottom five areas for crude birth rates illustrate an entirely different demographic landscape. Hong Kong SAR China (4.4), South Korea (4.9), Puerto Rico (5.9), San Marino (6.1), and Andorra (6.2) showcase some of the lowest birth rates in the world. Such low fertility figures point to urbanization, higher education levels, increased participation of women in the workforce, and access to family planning and reproductive health services that allow for more reproductive choices.

This divergence in birth rates has broad implications. High birth rates often correlate with high levels of youth population, challenging governments to provide adequate education, healthcare, and employment opportunities. Conversely, countries with low birth rates might face aging populations, potentially leading to economic strains as the working-age population dwindles.

In summary, the crude birth rate serves as a vital demographic indicator not only of population growth trends but also of socioeconomic conditions in different regions. Policymakers and health organizations watch these statistics closely to inform strategies that promote sustainable development, healthcare access, and education, ultimately aiming for a balanced and healthy population growth.

                    
# 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 = 'SP.DYN.CBRT.IN'

# 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 <- 'SP.DYN.CBRT.IN'

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