Firms using banks to finance investment (% of firms)

Source: worldbank.org, 03.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Angola Angola 4.46 -66% 50
Armenia Armenia 45.2 +96.1% 5
Azerbaijan Azerbaijan 31.6 18
Belgium Belgium 47.7 -7.71% 3
Benin Benin 26.6 +121% 28
Burkina Faso Burkina Faso 16 -37.6% 40
Bahrain Bahrain 34.7 12
Bhutan Bhutan 26.9 -16.5% 25
Canada Canada 29.9 19
China China 12.7 -13.7% 44
Cameroon Cameroon 32.7 +106% 14
Congo - Kinshasa Congo - Kinshasa 7.61 +6.75% 48
Congo - Brazzaville Congo - Brazzaville 8.69 +12.6% 46
Cape Verde Cape Verde 13.5 -61.8% 41
Cyprus Cyprus 25.4 +18.6% 32
Czechia Czechia 26.3 -25.2% 29
Ecuador Ecuador 37.8 +6.26% 8
Spain Spain 40 -17.9% 7
United Kingdom United Kingdom 13.3 43
Equatorial Guinea Equatorial Guinea 9.66 45
Ireland Ireland 16.9 -33.2% 39
Iceland Iceland 35 11
Israel Israel 83.2 +79.3% 1
Italy Italy 48.8 -7.04% 2
Jamaica Jamaica 32.3 -26.9% 17
Jordan Jordan 26.1 -33.4% 30
Kazakhstan Kazakhstan 27.6 +96.3% 22
South Korea South Korea 46.4 +16.2% 4
Laos Laos 17.7 +106% 38
Latvia Latvia 19.4 -4.92% 37
Moldova Moldova 27 +94.9% 23
Mali Mali 7.68 -86.1% 47
Malta Malta 20.7 -28.4% 35
Malaysia Malaysia 32.4 -8.16% 16
Namibia Namibia 26.9 -19.7% 24
Papua New Guinea Papua New Guinea 37.4 +2.16% 9
Senegal Senegal 34.7 +80.2% 13
Serbia Serbia 40.7 +3.33% 6
South Sudan South Sudan 36.1 +348% 10
Slovenia Slovenia 26.8 -19.4% 26
Sweden Sweden 25.6 +17.3% 31
Eswatini Eswatini 27.8 -8.47% 21
Tajikistan Tajikistan 20.9 +151% 34
Turkmenistan Turkmenistan 5.77 49
Tonga Tonga 13.5 -60.2% 42
Tunisia Tunisia 32.6 -9.12% 15
Turkey Turkey 26.7 -6.95% 27
Uruguay Uruguay 28.8 -9.32% 20
United States United States 19.8 36
Uzbekistan Uzbekistan 22.6 -14% 33

The indicator “Firms using banks to finance investment (% of firms)” provides critical insights into how businesses source funds for their investment activities. It reflects the proportion of firms that rely on banking institutions to secure financial resources to make investments in tangible and intangible assets, whether it be infrastructure, technology, or workforce development. This metric is significant as it indicates not only the health of the banking sector but also the general business environment and economic stability within a region.

Understanding the importance of this indicator cannot be overstated. A high percentage of firms utilizing banks for financing investment signifies a trustworthy and efficient banking system that is likely fostering business growth. It suggests that firms feel confident enough to seek external financing, which can lead to greater economic activities, employment opportunities, and innovation. Conversely, a low percentage might indicate challenges in access to financial resources, a lack of trust in banking institutions, or an underdeveloped financial market, all of which can stifle economic growth.

This indicator is closely related to several other economic markers. The health of the banking sector, indicated by metrics such as liquidity ratios and non-performing loans, can influence firms' abilities to secure loans. Additionally, factors like economic stability, regulatory frameworks, and ease of doing business often correlate directly with this percentage. For instance, regions exhibiting robust legal frameworks that protect creditors and provide clarity in loan agreements generally see higher engagement in bank financing among firms.

Various factors can influence the extent to which firms utilize banks for financing their investments. For instance, the level of economic development within a region plays a crucial role. In developing nations, firms might rely less on banks due to cautious lending practices, insufficient collateral, or bureaucratic hurdles that complicate the borrowing process. Conversely, in developed economies, where firms often enjoy stronger institutional backing and easier access to credit, the percentage significantly increases.

Strategies to enhance the utilization of bank financing among firms can include bolstering financial literacy and providing support systems that enable small and medium-sized enterprises (SMEs) to better understand and navigate the financial landscape. Additionally, governments can incentivize banks to lend to firms through guarantees or subsidy programs, thereby reducing the perceived risk associated with lending to smaller companies. Moreover, developing a larger ecosystem that supports startups and SMEs could encourage banks to invest more heavily in these sectors.

While the metric at hand offers invaluable insights, it is not without its flaws. For one, the indicator does not account for the informal financing mechanisms many firms leverage. In many developing countries, a substantial percentage of financing occurs through informal networks, which remain unaccounted for in formal statistics. Thus, while a country might display a low percentage of firms using banks for financing, that does not necessarily reflect a lack of investment activity; instead, it might indicate a reliance on alternative, possibly unregulated avenues for funding.

Analyzing the latest data for 2023, we see a global median value of 28.9%, suggesting that approximately a quarter of firms worldwide are using banks as a primary source of investment finance. Notably, some regions significantly exceed this average. The Central African Republic leads with 56.5% of firms relying on bank financing, closely followed by Peru at 54.0%. Morocco, Slovakia, and El Salvador also demonstrate higher adherence to this financing method, indicating robust banking sectors or supportive regulatory environments that promote lending.

On the contrary, there are regions exhibiting concerning figures. Chad’s dismal showing at 0.0% indicates that no firms are using banks for financing, pointing to severe constraints in the financial ecosystem. Other nations like the Palestinian Territories (1.4%), Cambodia (9.4%), Sierra Leone (10.7%), and Kyrgyzstan (13.3%) follow closely behind. Such statistics reflect underlying economic challenges, lack of trust in financial institutions, or systemic barriers that prevent firms from engaging with banks.

The global average of 26.16% further emphasizes the disparity across regions, underscoring the need for tailored approaches that address local challenges in accessing bank financing. Enhancing the capabilities of the banking sector to cater to diverse business needs, alongside policies that empower businesses, could lead to increased usage of banks for financing investments, ultimately contributing to stronger economic development in various regions.

In conclusion, the indicator assessing the percentage of firms utilizing banks for investment financing serves as a barometer for understanding broader economic dynamics. It highlights the interdependence of financial institutions and business growth while spotlighting an array of regional disparities that call for targeted interventions. By fostering an environment conducive to bank lending, economies can promote sustainable growth and transition toward more robust financial frameworks.

                    
# 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 = 'IC.FRM.BNKS.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 <- 'IC.FRM.BNKS.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))