International tourism, receipts for passenger transport items (current US$)

Source: worldbank.org, 03.09.2025

Year: 2020

Flag Country Value Value change, % Rank
Aruba Aruba 1,000,000 -80% 92
Afghanistan Afghanistan 10,000,000 -23.1% 82
Angola Angola 3,000,000 -72.7% 89
Albania Albania 109,000,000 -15.5% 53
Argentina Argentina 86,000,000 -79.2% 56
Armenia Armenia 10,000,000 -60% 82
Antigua & Barbuda Antigua & Barbuda 30,000,000 -63.9% 74
Australia Australia 567,000,000 -74.5% 24
Austria Austria 1,481,000,000 -49.6% 10
Azerbaijan Azerbaijan 36,000,000 -83.1% 72
Belgium Belgium 844,000,000 -49.8% 17
Bangladesh Bangladesh 900,000 -70% 93
Bulgaria Bulgaria 156,000,000 -71.4% 47
Bahrain Bahrain 51,000,000 -71.5% 64
Bahamas Bahamas 5,000,000 -80% 87
Bosnia & Herzegovina Bosnia & Herzegovina 12,000,000 -76.9% 80
Belarus Belarus 187,000,000 -51.9% 43
Bolivia Bolivia 52,000,000 -62.9% 63
Brazil Brazil 55,000,000 -58.3% 62
Botswana Botswana 6,000,000 -18.9% 86
Switzerland Switzerland 956,000,000 -71% 16
Chile Chile 628,000,000 -37.2% 22
Côte d’Ivoire Côte d’Ivoire 33,200,001 -67.5% 73
Colombia Colombia 364,000,000 -67% 33
Comoros Comoros 500,000 -28.6% 95
Cape Verde Cape Verde 10,000,000 -84.6% 82
Costa Rica Costa Rica 123,000,000 -55.1% 51
Cuba Cuba 15,000,000 -69.4% 78
Curaçao Curaçao 1,000,000 -66.7% 92
Czechia Czechia 258,000,000 -61.2% 39
Algeria Algeria 7,000,000 -75% 85
Ecuador Ecuador 3,000,000 -50% 89
Egypt Egypt 476,000,000 -61.2% 26
Estonia Estonia 277,000,000 -51.2% 37
Ethiopia Ethiopia 1,249,000,000 -54.5% 11
Finland Finland 512,000,000 -76.9% 25
Fiji Fiji 85,000,000 -77.8% 57
France France 3,312,000,000 -55% 4
Georgia Georgia 44,000,000 -84.4% 68
Ghana Ghana 81,000,000 +24.6% 59
Guinea Guinea 90,000 -91% 97
Gambia Gambia 6,000,000 +20% 86
Greece Greece 1,178,000,000 -56.8% 13
Guatemala Guatemala 1,500,000 -75.8% 91
Honduras Honduras 2,000,000 -77.8% 90
Croatia Croatia 63,000,000 -71.5% 60
Hungary Hungary 995,000,000 -66.2% 15
Indonesia Indonesia 221,000,000 -85.2% 42
India India 377,000,000 -59.9% 32
Ireland Ireland 2,302,000,000 -72.6% 5
Israel Israel 161,000,000 -80.8% 46
Italy Italy 423,000,000 -82.3% 28
Jordan Jordan 336,000,000 -65.7% 34
Japan Japan 798,000,000 -74.7% 18
Kazakhstan Kazakhstan 130,000,000 -71.7% 49
Kyrgyzstan Kyrgyzstan 44,000,000 -31.3% 68
Cambodia Cambodia 96,000,000 -82.2% 54
South Korea South Korea 1,248,000,000 -72.8% 12
Kuwait Kuwait 127,000,000 -74.5% 50
Laos Laos 14,000,000 -64.1% 79
Lebanon Lebanon 16,000,000 -87.1% 77
Sri Lanka Sri Lanka 394,000,000 -62.7% 30
Luxembourg Luxembourg 265,000,000 -43.4% 38
Macao SAR China Macao SAR China 82,000,000 -85.7% 58
Morocco Morocco 666,000,000 -62.2% 21
Moldova Moldova 38,000,000 -71% 70
Madagascar Madagascar 57,000,000 -72.1% 61
Maldives Maldives 11,000,000 -21.4% 81
Mexico Mexico 453,000,000 -64.4% 27
North Macedonia North Macedonia 1,000,000 -80% 92
Montenegro Montenegro 14,000,000 -73.1% 79
Mongolia Mongolia 20,000,000 -78.3% 76
Mozambique Mozambique 23,000,000 -68.1% 75
Mauritania Mauritania 900,000 -64% 93
Mauritius Mauritius 52,000,000 -78.8% 63
Malawi Malawi 5,000,000 -28.6% 87
Malaysia Malaysia 382,000,000 -83.9% 31
Namibia Namibia 37,000,000 -63.7% 71
Nigeria Nigeria 8,000,000 -63.6% 84
Netherlands Netherlands 1,825,199,951 -64.5% 8
Norway Norway 404,000,000 -65.7% 29
Nepal Nepal 41,000,000 -57.3% 69
Oman Oman 228,000,000 -82% 40
Pakistan Pakistan 326,000,000 -34.5% 35
Panama Panama 724,000,000 -71.4% 20
Peru Peru 226,000,000 -76.6% 41
Philippines Philippines 759,000,000 -54.7% 19
Poland Poland 608,000,000 -69.7% 23
Portugal Portugal 1,687,000,000 -59.3% 9
Paraguay Paraguay 23,000,000 -23.3% 75
Qatar Qatar 10,755,000,000 +5.39% 2
Romania Romania 178,000,000 -73.4% 44
Russia Russia 2,107,000,000 -66.4% 6
Rwanda Rwanda 92,000,000 -48.3% 55
Saudi Arabia Saudi Arabia 1,924,000,000 -43.7% 7
Solomon Islands Solomon Islands 1,000,000 -90.9% 92
El Salvador El Salvador 119,000,000 -66.8% 52
Serbia Serbia 177,000,000 -55.3% 45
Suriname Suriname 4,000,000 -63.6% 88
Slovakia Slovakia 49,000,000 -67.3% 66
Slovenia Slovenia 47,700,001 -72.5% 67
Eswatini Eswatini 300,000 0% 96
Sint Maarten Sint Maarten 9,000,000 -65.4% 83
Seychelles Seychelles 7,000,000 -75% 85
Thailand Thailand 1,162,000,000 -74.5% 14
Tajikistan Tajikistan 96,000,000 -42% 54
Tonga Tonga 700,000 +250% 94
Trinidad & Tobago Trinidad & Tobago 8,000,000 -82.2% 84
Tunisia Tunisia 155,000,000 -72.7% 48
Turkey Turkey 3,551,000,000 -69.4% 3
Uganda Uganda 14,000,000 -6.67% 79
Ukraine Ukraine 313,000,000 -67.9% 36
Uruguay Uruguay 30,000,000 -65.1% 74
United States United States 11,393,000,000 -71.6% 1
Uzbekistan Uzbekistan 50,000,000 -74.7% 65
St. Vincent & Grenadines St. Vincent & Grenadines 2,000,000 -66.7% 90
Vanuatu Vanuatu 5,000,000 -70.6% 87
Samoa Samoa 60,000 -40% 98
South Africa South Africa 109,000,000 -83.8% 53
Zimbabwe Zimbabwe 3,000,000 -50% 89

The indicator of international tourism receipts for passenger transport items in current US dollars serves as a critical metric for understanding the economic impact of tourism globally. This indicator reflects the income generated by foreign visitors for travel services such as airline tickets, ferries, and other modes of passenger transport. Its importance cannot be overstated, as it highlights the financial contribution that tourism makes not just to national economies but also to the global market at large.

In 2020, the measured international tourism receipts represented a significant downturn compared to previous years, mostly due to the COVID-19 pandemic that disrupted travel on a global scale. The pandemic induced travel restrictions and lockdowns led to a drastic decline in international mobility, which, in turn, severely affected tourism receipts universally. The median value for international tourism receipts was recorded at $81,500,000 in 2020, a stark contrast to the figures in preceding years, wherein robust growth was typically noted.

The financial implications are further emphasized when analyzing the top five areas that generated the highest receipts from international tourism transport items in 2020. The United States led with an impressive $11,393,000,000, indicating its status as a prime destination for international travelers and the strong demand for air transport to and from this area. Following closely was Qatar with $10,755,000,000, lambasting its ambitious tourism initiatives tied to international events such as the FIFA World Cup. Turkey, France, and Ireland followed, with receipts of $3,551,000,000, $3,312,000,000, and $2,302,000,000 respectively, showcasing their appeal as tourist destinations with diverse attractions appealing to global visitors.

On the other end of the spectrum, the bottom five areas faced an entirely different reality when it came to tourism receipts. Samoa had a meager $60,000, while Guinea and Eswatini had $90,000 and $300,000. This stark contrast emphasizes regional disparities in tourism infrastructures, attractions, and accessibility. Countries like Samoa and Guinea may face challenges like limited international connectivity or marketing resources. These issues result in lower international tourist inflows, reflected in their significantly low receipts from passenger transport.

Looking at the historical data from 1995 to 2019, one can observe the compelling growth trajectory in international tourism receipts until the sudden drop-off in 2020. The values climbed from approximately $88,842,524,479.88 in 1995 to a peak of around $276,982,067,228.72 in 2019. This upward trend highlights not only the growing demand for travel but also the expansion of the global tourism industry. However, these numbers also illuminate the vulnerability of tourism to external shocks, as evidenced by the 2020 decline. The figures are indicative of broad economic trends, including globalization, increased disposable incomes in emerging markets, and technological advancements that have made travel more accessible and affordable for many around the world.

Several factors affect the international tourism receipts for passenger transport. Among these are geopolitical stability, economic conditions, exchange rates, health epidemics, and even environmental challenges. For instance, the COVID-19 pandemic repeatedly revealed how such global health crises can completely halt travel, leading to financial instability in nations dependent on tourism. Outside of immediate impacts, long-term sustainability and environmental policies can also sway tourism patterns, as travelers become more aware and concerned about their carbon footprints.

Strategies to boost international tourism receipts often revolve around enhancing the travel experience, improving infrastructure, and marketing efforts. Countries can invest in better transport links and accommodations, creating attractive packages that can target a broader range of travelers. Moreover, emphasizing unique local experiences and ensuring a safe travel environment can entice tourists to explore areas that may have previously been overlooked. Collaborative efforts between governments and the private sector can help to devise comprehensive strategies aimed at revitalizing the tourism sector post-crisis.

Solutions to boost international receipts must also address their inherent flaws. The reliance on a tourism-heavy economy can pose risks, as dependency can lead to volatility, especially in situations like the pandemic. Diverse economic strategies that lessen this dependency while still promoting tourism can create a buffer against shocks. Additionally, the need for sustainability cannot be ignored; focusing on eco-friendly travel options and practices can enhance a destination's appeal while preserving the local environment.

Ultimately, the indicator of international tourism receipts for passenger transport items serves as a mirror reflecting the health of a nation’s tourism industry. The data from 2020 illustrates both the challenges faced and the potential for recovery with effective strategies in place. It is imperative for nations to adapt to changing circumstances, prioritizing resilience to ensure long-term success and sustainability in their tourism sectors.

                    
# 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 = 'ST.INT.TRNR.CD'

# 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 <- 'ST.INT.TRNR.CD'

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