What about our Climate Funds

Unveiling the Global Environment Facility’s Impact
news
exploratory data analysis
Author

Olamide Adu

Published

May 28, 2024

Introduction

The Global Environment Facility (GEF), a partnership between the World Bank, the United Nations Environment Programme (UNEP), and the United Nations Development Programme (UNDP), plays a critical role in empowering developing countries to tackle pressing environmental issues. By providing both financial resources and technical expertise, the GEF supports these nations in implementing sustainable development practices that benefit the planet.

Aim

This analysis delves into the GEF’s work, aiming to uncover insights through exploratory data analysis. We’ll explore key aspects like:

  • Identifying GEF Agencies: This will involve pinpointing the different entities involved within the GEF’s structure.

  • Funding Trends: We’ll analyze trends in the total funds associated with the GEF, revealing how resources have evolved over time.

  • GEF Agency Contributions: This analysis will investigate the financial contributions of each agency to the GEF’s mission.

  • Focus Area Spending: We’ll assess how much funding has been allocated to the GEF’s core areas of focus (e.g., climate change, biodiversity).

  • Top Recipient Countries: This exploration will identify the countries receiving the highest total project funding.

  • Continental Funding Distribution: We’ll examine the top 3 funded countries within each continent, providing a more granular perspective.

  • Capacity Building Investment: We’ll estimate the resources invested in building the capacity of developing countries to address environmental challenges.

  • Project Status: This analysis will categorize projects based on their completion status (cancelled, approved, completed), revealing project success rates.

  • Project Spending by Size and Stage: We’ll investigate how funding is distributed across projects of different sizes and stages (e.g., enabling activity and so on).

  • Total Funds Per GEF Replenishment Period: This analysis will explore how much funding was available during each GEF replenishment cycle. The GEF operates on a cycle where donor countries pledge contributions every four years. Examining trends in total funds across these periods can reveal changes in donor commitment and resource availability for the GEF’s work.

  • Pinpoint the Single Most Funded Project: This investigation will identify the individual project that has garnered the highest total funding from the GEF.

Explore Data

Let’s start by loading the data.

Show the code
library(pacman)
p_load(
  tidyverse, janitor, gt, countrycode, scales, ggimage, ggthemes,
  ggtext, magick, ggtextures, gtExtras, rsvg
)

theme_set(theme_hc() +
  theme(
    axis.title.y = element_text(angle = 90),
    plot.title = element_text(face = "bold", size = 15),
  )
)
Show the code
gef <- read_csv("projects.csv") |> clean_names() |> 
  filter(approval_fy >= 1991)

col_names <- str_to_upper(str_replace_all(names(gef), "_", " "))

head(gef, n = 1) |> 
  gt() |> 
  cols_label(
    title = col_names[1],
    id = col_names[2],
    countries = col_names[3],
    focal_areas = col_names[4],
    type = col_names[5],
    agencies = col_names[6],
    gef_grant = col_names[7],
    cofinancing = col_names[8],
    status = col_names[9],
    approval_fy = col_names[10],
    funding_source_indexed_field = col_names[11],
    non_grant_instrument_indexed_field = col_names[12],
    capacity_building_initiative_for_transparency = col_names[13],
    gef_period = col_names[14]
  ) |> 
  tab_header(md("**GEF Data Preview**")) |> 
  fmt_currency(columns = gef_grant, currency = "USD") |> 
  tab_style(
    style = cell_text(size = px(12)),
    locations = cells_body(columns = everything())
  ) |> 
  tab_style(
    style = cell_text(size = px(14)),
    locations = cells_column_labels(columns = everything())
  ) |> 
  cols_width(
    title ~ px(250),
    agencies ~ px(260),
    everything() ~ px(50)
  ) |> 
  gt_theme_538()
GEF Data Preview
TITLE ID COUNTRIES FOCAL AREAS TYPE AGENCIES GEF GRANT COFINANCING STATUS APPROVAL FY FUNDING SOURCE INDEXED FIELD NON GRANT INSTRUMENT INDEXED FIELD CAPACITY BUILDING INITIATIVE FOR TRANSPARENCY GEF PERIOD
First and Second Biennial Transparency Report and Fifth National Communication (1BTR + 5NC & 2BTR) 11649 Togo Climate Change Enabling Activity United Nations Development Programme $1,233,000.00 NA Project Approved 2024 GEF Trust Fund No No GEF - 8

Agencies Supporting the GEF

Show the code
gef <- gef |> 
  select(-c(id, non_grant_instrument_indexed_field))

icons <- list.files("agencies", full.names = TRUE)
agencies_abr <- c(
  "AFDB", "ADB", "BBF", "Con Int", "DBLA", "DBSA",
  "EBRD", "FAO","FECO", "GEF", "IADB", "IFC", "IFAD",
  "IUCN", "MEPC", "WB", "UNDP", "UNEP", "UNIDO",
  "WADB", "WWF"
)

agencies <- gef |> 
  select(agencies) |> 
  separate_longer_delim(agencies, delim = ",") |> 
  mutate(
    agencies = str_trim(agencies)
  ) |> 
  distinct() |> 
  arrange(agencies) 

agencies <- agencies |>  
  bind_cols(list(agencies_abr, icons)) |> 
  set_names(c("agencies", "abbr", "logo"))
  
agencies |> 
  relocate(logo) |> 
  gt() |> 
  cols_label(
    agencies = "Partners",
    abbr = "Abbreviation",
    logo = ""
  ) |> 
  tab_header(
    title = "AGENCIES SUPPORTING GEF"
  ) |> 
  text_transform(
    fn = function(x){
      local_image(
        filename = icons,
        height = 50
      )
    },
    locations = cells_body(
      columns = logo
    )
  ) |> 
  cols_align(
    columns = logo,
    align = "center"
  ) |> 
  gt_theme_538()
Table 1: Partner organizations (Agencies) of the Global Environment Facility
AGENCIES SUPPORTING GEF
Partners Abbreviation
African Development Bank AFDB
Asian Development Bank ADB
Brazilian Biodiversity Fund BBF
Conservation International Con Int
Development Bank of Latin America DBLA
Development Bank of Southern Africa DBSA
European Bank for Reconstruction and Development EBRD
Food and Agriculture Organization FAO
Foreign Economic Cooperation Office FECO
GEF Secretariat GEF
Inter-American Development Bank IADB
International Finance Corporation IFC
International Fund for Agricultural Development IFAD
International Union for Conservation of Nature IUCN
Ministry of Environmental Protection of China MEPC
The World Bank WB
United Nations Development Programme UNDP
United Nations Environment Programme UNEP
United Nations Industrial Development Organization UNIDO
West African Development Bank WADB
World Wildlife Fund - US Chapter WWF

Trend of GEF Funds since establishment in 1991

Show the code
gef |> 
  summarize(
    .by = c(countries, approval_fy),
    gef_grant = sum(gef_grant, na.rm = TRUE),
    cofinancing = sum(cofinancing, na.rm = TRUE)
  ) |> 
  pivot_longer(
    cols = gef_grant:cofinancing,
    names_to = "fund_type",
    values_to = "amount"
  ) |> 
  filter(amount > 0) |> 
  summarize(
     .by = c(fund_type, approval_fy),
     amount = sum(amount)
  ) |> 
  mutate(
    fund_type = case_when(
      fund_type == "gef_grant" ~ "GEF",
      fund_type == "cofinancing" ~ "Other Institutions"
    )
  ) |> 
  ggplot(aes(approval_fy, amount/1e6, col = fund_type, fill = fund_type)) +
  geom_line(width = .5) +
    geom_rect(
    aes(xmin = 2019, xmax = 2020, ymin = 0, ymax = 11e3),
    fill = "gray", size = .01, alpha = .2
  ) +
  geom_area(
    position = "dodge",
    alpha = .5
  ) +
  labs(
    x = "Year",
    y = "Funding Amount in Million Dollars",
    fill = "Funded By",
    col = "Funded By",
    title = "Funding Contribution from GEF and Other Bodies (1991 - 2024)",
    caption = "By: Olamide Michael Adu"
  ) +
  geom_vline(
    xintercept = 1991,
    linewidth = .3,
    col = "orange1"
  ) +
  geom_hline(
    yintercept = 6e3,
    linewidth = .3,
    col = "orange1"
  ) +
  geom_label(
    aes(x = 1995, y = 6e3, label = "GEF Established"),
    col = "white",
    fill = "tomato1"
  ) +
  geom_label(
    aes(x = 2019, y = 9e3, label = "Covid 19"),
    col = "white",
    fill = "gray"
  ) +
  scale_x_continuous(breaks = seq(1991, 2024, 4)) +
  scale_y_continuous(labels = label_dollar()) +
  scale_fill_economist() +
  scale_color_economist() +
  theme(
    axis.title.y= element_text(
      vjust = 7,
      size = 12,
      margin = margin(t = 0, r = 0, l = 10, b = 0)
    ),
    plot.margin = unit(c(.5, .5, .5, .5), "cm")
  )
Figure 1: countries with the highest fundings

Who is responsible for financing most projects?

Show the code
my_icons <- tibble(
  icons = icons,
  agencies_abr = agencies_abr
)

my_icons <- my_icons |> 
  mutate(
    icons = paste0("<img src =", icons, " width = '25'/>\ <br>**", agencies_abr, "**")
  )

gef |> 
  mutate(
    agencies = case_when(
      str_detect(agencies, ",") ~ "Multiple Organizations",
      .default = agencies
    )
  ) |> 
  summarize(
    .by = agencies,
    fund_amount = sum(cofinancing, na.rm = TRUE)
  ) |> 
  mutate(
    fund_amount = round(fund_amount/1e9, 1)
  ) |> 
  filter(agencies != "Multiple Organizations") |> 
  arrange(agencies) |> 
  bind_cols(my_icons[-c(9, 11, 15), ]) |> # agencies not among the list removed
  slice_max(fund_amount, n = 10) |> 
  ggplot(aes(fund_amount, fct_reorder(icons, fund_amount))) +
  geom_col(fill = "springgreen4") +
  geom_label(
    aes(label = paste0("$", fund_amount, " B")),
    fill = "burlywood1", 
    col = "gray2"
  ) +
  geom_image(aes(x = 33, y = 3, image = "money.jpg"), size = .7) +
  labs(
    title ="Green Giants: Top Funders Backing the GEF",
    subtitle = "The Key Player Behind Global Environmental Action (amount in Billions)",
    caption = "By: Olamide Michael Adu"
  ) +
  theme(
    axis.title.y = element_blank(),
    axis.text.x = element_blank(),
    axis.title.x = element_blank(),
    axis.ticks = element_blank(),
    axis.text.y = element_markdown(size = 9, color = "black"),
    plot.subtitle = element_text(size = 11, color = "burlywood"),
    plot.title = element_text(vjust = 1, hjust = -.1),
    plot.margin = unit(c(.5, 1, .5, 1), "cm")
  ) 
Figure 2: Top Environmental Players

Figure 2 shows that the World Bank Group and UNDP has been the top cofinancer of GEF projects.

What is the Main Areas That GEF Funds go to?

Show the code
image <- tibble(
  image = list(
  image_read_svg("focal_areas/biodiversity.svg"),
  image_read_svg("focal_areas/chemicals_and_waste.svg"),
  image_read_svg("focal_areas/climate_change.svg"),
  image_read_svg("focal_areas/international_waters.svg"),
  image_read_svg("focal_areas/land_degradation.svg")
  )
)


gef |>
  select(gef_grant, cofinancing, focal_areas, approval_fy) |> 
  replace_na(
    list(
      gef_grant = 0,
      cofinancing = 0
    )
  ) |> 
  drop_na(focal_areas) |> 
  mutate(
    total_amount = gef_grant + cofinancing,
    .keep = "unused"
  ) |> 
  summarize(
    .by = focal_areas,
    fund_amount = sum(total_amount)
  ) |> 
  separate_longer_delim(
    focal_areas,
    delim = ","
  ) |> 
  mutate(
    focal_areas = str_trim(focal_areas),
    .by = fund_amount,
    total_amount = fund_amount/n(),
    total_amount = total_amount/1e9 # Change to billions
  ) |> 
  summarize(
   .by = focal_areas,
   total_amount = mean(total_amount)
  ) |> 
  arrange(focal_areas) |> 
  bind_cols(image) |> 
  ggplot(aes(fct_reorder(focal_areas, total_amount), total_amount, ,image = image)) +
  geom_col(fill = "springgreen", alpha = .5, col = "black") +
  geom_isotype_col(
    img_height = grid::unit(1.2, "cm"),
    img_width = grid::unit(1, "cm"),
    ncol = 1, nrow = 1,
    hjust = 1, vjust = .5
  ) +
  scale_y_continuous(breaks = seq(0, 6, 1)) +
  labs(
    x = "Key Areas",
    y = "Amount Invested ($ Billions)",
    title = "Shifting Focus: How GEF Investment",
    subtitle = "GEF Strategic Prioritization in Different Environmental Areas",
    caption = "By: Olamide Michael Adu"
  ) +
  coord_flip() +
  theme(
    legend.position = "none",
    plot.title = element_text(hjust = -.7),
    plot.subtitle = element_text(hjust = -1.12),
  )
Figure 3: The GEF focus areas spending

Top funded countries

Show the code
all_funds <- gef |> 
  select(gef_grant, countries, cofinancing) |> 
  replace_na(
    list(
      gef_grant = 0,
      cofinancing = 0
    )
  ) |> 
  mutate(
    total_amount = gef_grant + cofinancing,
    .keep = "unused"
  ) |> 
  summarize(
    .by = c(countries),
    total_amount = sum(total_amount)
  ) |> 
  separate_longer_delim(
    cols = countries,
    delim = ","
  ) |> 
  mutate( # This block of code is needed to find the average for countries which have been
    countries = str_trim(countries), # grouped together during a funding round
    .by = total_amount,
    fund_amount = total_amount/n(),
  ) |> 
  summarize(
    .by = c(countries),
    total_amount = sum(fund_amount)
  ) |> 
  arrange(countries)

fund_countries <- all_funds |> 
  filter(
    !countries %in% c("Global", "Africa", "Asia/Pacific",
                      "Europe and Central Asia", "Latin America and Caribbean",
                      "Regional"
                      )
  )

fund_region <- all_funds |> 
  filter(
    countries %in% c("Global", "Africa", "Asia/Pacific",
                      "Europe and Central Asia", "Latin America and Caribbean"
                     )
  )
Show the code
countries <- list.files(path = "countries/svg", full.names = TRUE)
country_logo = tibble(logo = countries[str_detect(countries, "ch|in|me|br|ph|vn|id|za|/ng|pe")])
Show the code
fund_countries |> 
  slice_max(total_amount, n = 10) |>  
  arrange(countries) |> 
  bind_cols(country_logo) |> 
  mutate( # This block ensures countries matches their logo by replacing them with abbr
    logo = case_when(
      str_detect(logo, "id") ~ str_replace(logo, "id", "in"),
      str_detect(logo, "in") ~ str_replace(logo, "in", "id"),
      str_detect(logo, "vn") ~ str_replace(logo, "vn", "za"),
      str_detect(logo, "za") ~ str_replace(logo, "za", "vn"),
      .default = logo
    )
  ) |> 
  relocate(logo, .before = countries) |> 
  arrange(desc(total_amount)) |> 
  mutate(total_amount = round(total_amount/1e9, 2)) |> 
  gt() |> 
  cols_label(
    logo = "",
    countries = "Country",
    total_amount = "Funds (Billion)"
  ) |> 
  fmt_image(
    columns = logo, width = 30, height = 30
  ) |> 
  fmt_currency(
    columns = total_amount
  ) |> 
  tab_header(
    title = "Top Funded countries with involving the GEF",
    subtitle = "Funds can be by GEF, National Government and other interested parties"
  ) |> 
  gt_theme_538()
Table 2: Top 10 most funded countries
Top Funded countries with involving the GEF
Funds can be by GEF, National Government and other interested parties
Country Funds (Billion)
China $18.70
India $7.23
Mexico $4.58
Brazil $4.15
Philippines $3.85
Viet Nam $2.87
Indonesia $2.83
South Africa $2.43
Nigeria $2.19
Peru $2.08

Most Funded Countries in Each Continent

Show the code
continent <- codelist |> 
  select(continent, country.name.en)

fund_countries <- fund_countries |> 
  left_join(continent, join_by(countries == country.name.en))
  
europe <- c("Bosnia-Herzegovina", "Czech Republic", "Kosovo",
            "Russian Federation", "Slovak Republic", "Türkiye")
africa <- c("Cabo Verde", "Congo", "Congo DR", "Cote d'Ivoire",
            "Sao Tome and Principe")
asia <- c("Korea DPR", "Kyrgyz Republic", "Lao PDR", "Myanmar", 
          "Palestinian Authority", "Republic Of Korea",
          "Republic Of Korea", "Viet Nam")
americas <- c("Antigua And Barbuda", "St. Kitts And Nevis",
              "St. Vincent and Grenadines", "Trinidad and Tobago")
oceania <- c("Timor Leste", "Micronesia")

fund_countries <- fund_countries |> 
  filter(countries != "Yugoslavia") |> 
  mutate(
    continent = case_when(
      countries %in% europe ~ "Europe",
      countries %in% africa ~ "Africa",
      countries %in% asia ~ "Asia",
      countries %in% americas ~ "Americas",
      countries %in% oceania ~ "Oceania",
      .default = continent
    )
  )
Show the code
fund_countries |> 
  group_by(continent) |> 
  slice_max(total_amount, n = 3) |> 
  ungroup() |> 
  mutate(
    continent = str_to_upper(continent),
    total_amount = round(total_amount/1e6, 2)
  ) |> 
  gt(groupname_col = "continent") |> 
  tab_header(
    title = "Top Funded GEF (Co)Financed Countries per Continent"
  ) |> 
   cols_label(
     countries = "Country",
     total_amount = " Funds Received (millions)"
  ) |> 
  fmt_currency(
    columns = total_amount
  ) |> 
  gt_theme_538()
Table 3: Top Funded Countries Per Continent
Top Funded GEF (Co)Financed Countries per Continent
Country Funds Received (millions)
AFRICA
South Africa $2,427.83
Nigeria $2,192.91
Egypt $1,989.42
AMERICAS
Mexico $4,582.48
Brazil $4,146.98
Peru $2,080.64
ASIA
China $18,700.05
India $7,231.04
Philippines $3,851.19
EUROPE
Russian Federation $1,807.13
Türkiye $1,505.62
Ukraine $937.76
OCEANIA
Timor Leste $527.64
Papua New Guinea $473.85
Solomon Islands $424.47

What about Capacity Building

Show the code
gef |> 
  filter(capacity_building_initiative_for_transparency != "No") |> 
  select(capacity_building_initiative_for_transparency, approval_fy,
         "funding_source" = funding_source_indexed_field, cofinancing, gef_grant) |> 
  replace_na(
    list(
      gef_grant = 0,
      cofinancing = 0
    )
  ) |> 
  mutate(
    total_amount = cofinancing + gef_grant,
    .keep = "unused"
  ) |> 
  select(-capacity_building_initiative_for_transparency) |> 
  ggplot(aes(approval_fy, total_amount/1e6)) +
  geom_col(aes(fill = funding_source)) +
  scale_fill_tableau() +
  labs(
    x = "Year",
    y = "Amount (Million)",
    title = "Investment for Capacity Building",
    caption = "By: Olamide Michael Adu"
  ) +
  scale_y_continuous(labels = label_dollar()) +
  scale_x_continuous(breaks = seq(2017, 2024, 1)) +
  facet_wrap(~funding_source, scales = "free_x") +
  theme(
    legend.position = "none",
    axis.title.y = element_text(
      vjust = 8,
      margin = margin(t = 0, r = 0, b = 0, l = 1, unit = "cm")
    ),
    plot.margin = unit(c(.5, 1, .5, 1), "cm")
  )
Figure 4: Amount Spent on Capacity Building

Project Status

Show the code
gef |> 
  mutate(
    status = str_remove_all(status, "Project ")
  ) |> 
  summarize(
    .by = c(approval_fy, status),
    count = n()
  ) |> 
  ggplot(aes(approval_fy, count, fill = fct_reorder(status, count))) +
  geom_col(position = "fill") +
  labs(
    x = "Year",
    y = "Proportion",
    fill = "Project Status:",
    title = "State of GEF Projects",
    subtitle = "Higher proportion of projects are either completed or approved.\n2020 is having 100% approval with no completed project yet",
    caption = "By: Olamide Michael Adu"
  ) +
  scale_y_continuous(
    breaks = seq(0, 1, .2),
    labels = label_percent(scale = 100)
  ) +
  scale_fill_wsj() + 
  theme(
    plot.subtitle = element_text(size = 10, hjust = -.1)
  )
Figure 5: Project status since 1991

Finance involved in Different Project Stage Per Year

Show the code
gef |> 
  summarize(
    .by = c(approval_fy, type),
    gef_grant = sum(gef_grant, na.rm = TRUE),
    cofinancing = sum(cofinancing, na.rm = TRUE)
  ) |> 
  mutate(
    total_amount = gef_grant + cofinancing,
    .keep = "unused"
  ) |>
  ggplot(aes(approval_fy, total_amount/1e6, col = type, fill = type)) +
  geom_area(alpha = .3) +
  labs(
    x = "",
    y = "Funds (millions)",
    title = "Financial trend of different project stage and size",
    caption = "By: Olamide Michael Adu"
  ) +
  scale_y_continuous(labels = label_dollar()) +
  facet_wrap(~type, scales = "free_y")
Figure 6: Trend of Funds for different project stage or type according to size
Show the code
gef |> 
  replace_na(
    list(
      gef_grant = 0,
      cofinancing = 0
    )
  ) |> 
  filter(!is.na(gef_period)) |> 
  mutate(
    total_amount = gef_grant + cofinancing,
    .keep = "unused"
  ) |> 
  summarize(
    .by = c(gef_period),
    total_amount = sum(total_amount)
  ) |> 
  mutate(
    xmin = case_when(
      gef_period == "Pilot Phase" ~ 1991,
      str_match(gef_period, "\\d") == 1 ~ 1994,
      str_match(gef_period, "\\d") == 2 ~ 1998,
      str_match(gef_period, "\\d") == 3 ~ 2002,
      str_match(gef_period, "\\d") == 4 ~ 2006,
      str_match(gef_period, "\\d") == 5 ~ 2010,
      str_match(gef_period, "\\d") == 6 ~ 2014,
      str_match(gef_period, "\\d") == 7 ~ 2018,
      str_match(gef_period, "\\d") == 8 ~ 2022,
    ),
    xmax = case_when(
      gef_period == "Pilot Phase" ~ 1994 ,
      str_match(gef_period, "\\d") == 1 ~ 1998,
      str_match(gef_period, "\\d") == 2 ~ 2002,
      str_match(gef_period, "\\d") == 3 ~ 2006,
      str_match(gef_period, "\\d") == 4 ~ 2010,
      str_match(gef_period, "\\d") == 5 ~ 2014,
      str_match(gef_period, "\\d") == 6 ~ 2018,
      str_match(gef_period, "\\d") == 7 ~ 2022,
      str_match(gef_period, "\\d") == 8 ~ 2026,
    ),
    gef_period = case_when(
      gef_period == "Pilot Phase" ~ "PP",
      .default = gef_period
    )
  ) |> 
  arrange(desc(gef_period)) |>
  mutate(
    year = c(1993, 2024, 2020, 2016, 2012, 2008, 2004, 2000, 1996)
  ) |> 
  ggplot(aes(year, total_amount/1e6)) +
  geom_pointrange(aes(xmin = xmin, xmax = xmax), col = "coral2",) +
  geom_text(
    aes(x = xmin, y = total_amount/1e6, label = gef_period),
    col = "gray17",
    vjust = -.5,
    hjust = -.2
  ) +
  labs(
    x = "Years",
    y = "Amount (Millions)",
    title = "Donation + Expenses + Turnover of the Replenishment Periods",
    caption = "By: Olamide Michael Adu"
  ) +
  scale_y_continuous(labels = label_dollar()) +
  theme(
    legend.position = "none",
    plot.title = element_text(vjust = 2)
  )
Figure 7: Total amount of GEF’s replenishment periods

Most Funded Project by the GEF

Show the code
gef |> 
  replace_na(
    list(
      gef_grant = 0,
      cofinancing = 0
    )
  ) |> 
  mutate(total_amount = gef_grant + cofinancing) |> 
  summarize(
    .by = c(title, countries, approval_fy, status),
    total_amount = round(sum(total_amount)/1e6, 2)
  ) |> 
  slice_max(total_amount, n = 10) |>
  mutate(
    countries = case_when(
      str_detect(countries, ",") ~ "Some African Countries",
      .default = countries
    )
  ) |> 
  ggplot(aes(total_amount, fct_reorder(countries, total_amount))) +
  geom_col(
    aes(fill = status),
    position = position_dodge(width = .91),
    alpha = .7
  ) +
  ggrepel::geom_label_repel(
    aes(label = str_wrap(title, width = 60), fill = status),
    size = 2.5,
    col = "white",
    nudge_x= 7
  ) +
  scale_fill_stata() +
  scale_x_continuous(labels = label_dollar()) +
  labs(
    x = "Project Amount (in Millions)",
    y = "Regions",
    title = "Most Funded Project and their Status",
    caption = "By: Olamide Michael Adu"
  )
Figure 8: The GEF’s most funded project

Conclusion:

This exploratory data analysis has provided valuable insights into the Global Environment Facility’s (GEF) work and impact. By examining various aspects like funding trends, project focus areas, and recipient countries, we’ve gained a deeper understanding of how the GEF tackles global environmental challenges. The findings presented here is limited to the data provided. Limitations included is not limited to:

  • difficulty stating who the specific donor nations are

  • difficulty showing how funds were transferred from each replenishment period

  • Project investment income

  • Success of projects, especially for the completed ones.

  • Tracking projects