New PCAF Methodology of Carbon Accounting for Sovereign Debt

Relevance for Investors

Author

Bentje Boer

Introduction

In order to align investors’ activities with ambitious climate commitments, the assessment of financed emissions is vital. The second edition of the carbon accounting guidelines designed by the Partnership for Carbon Accounting Financials (PCAF) and published in December 2022, for the first time includes a section on the treatment of sovereign debt. This asset class poses particular challenges for accounting financed emissions as the attribution of emissions to a particular sovereign and to the debt issued by it is not straight forward. PCAF therefore offers several measures that should be taken into account for investment decisions and acknowledges that standards around the measurement of financed emissions by sovereign debt are likely to change and evolve in the coming years. This brief thus aims to shed some light on the different measures proposed by PCAF and the impact they have on the evaluation of sovereign debt of Emerging Market Economies (EMEs).

Overview over the Types of Emissions

PCAF requires the reporting of all greenhouse gas (GHG) emissions produced within the country’s territory (scope 1 emissions). Where possible, GHG emissions from the production of energy imported to the country (scope 2 emissions) and all other emissions caused by the production of imported goods and services (scope 3 emissions) shall also be included in the overall measure of production emissions, the sum of scope 1, 2, and 3 emissions. Production emissions are the primary measure of sovereign emissions and reported in CO2 equivalents (CO2e). Sovereign emissions are attributed to investments in sovereign debt by dividing them by the PPP-adjusted GDP and multiplying them with the investor’s exposure to the sovereign debt in question. Additionally, PCAF recommends taking other aggregates of emissions data into consideration such as emissions based on the consumption of a country’s population (production emissions minus emissions caused by production of exported goods and services = consumption emissions) or emissions which include the emissions caused by land use, land use change, and forestry (emissions including LUCF). However, data availability is already a great concern for production emissions and inconsistent accounting across other data categories limits the comparability of measures based on them.

Data Coverage

Code
## loading libraries
library(tidyverse)
library(tidyquant)
library(scales)
library(ggrepel)
library(readxl)
library(readr)
library(janitor)
library(here)
library(rnaturalearth)
library(countrycode)
library(wbstats)
library(broom)
library(maps)

options(scipen=10)


## read processed datasets
final_energy_imports <- read_csv("./processed_01/final_energy_imports.csv")
final_gdp_ppp <- read_csv("./processed_01/final_gdp_ppp.csv")
final_ghg_ex_LUCF <- read_csv("./processed_01/final_ghg_ex_LUCF.csv")
final_ghg_in_LUCF <- read_csv("./processed_01/final_ghg_in_LUCF.csv")
final_total_exports <- read_csv("./processed_01/final_total_exports.csv")
final_total_imports <- read_csv("./processed_01/final_total_imports.csv")
all_data_all_2 <- read_csv("./processed_02/all_data_all_2.csv")
all_data_2018_4 <- read_csv("./processed_02/all_data_2018_4.csv")
ca_2018 <- read_csv("./processed_02/ca_2018.csv")
data_LUCF <- read_csv("./processed_02/data_LUCF.csv")

# read in bis securities outstanding debt and country features
bis_gov_securities <- read_csv("https://raw.githubusercontent.com/t-emery/sais-susfin_data/main/datasets/country_list_bis_debt_securities.csv")
country_features <- read_csv("https://raw.githubusercontent.com/t-emery/sais-susfin_data/main/datasets/country_features_2022-10.csv")

# read in bond data
emb_etf_processed <- read_csv("./processed_01/emb_etf_processed.csv")
igov_etf_processed <- read.csv("./processed_01/igov_etf_processed.csv")

# imf country groups
imf_wb_country_groups <- read_csv("https://raw.githubusercontent.com/t-emery/sais-susfin_data/main/datasets/imf_wb_country_groups.csv")

imf_wb_country_markets <- imf_wb_country_groups %>% 
  filter(country_group == "Emerging Market Economies" | country_group == "Advanced Economies" | country_group == "Low-Income Developing Countries")
# 194 countries overall, 96 EM Economies

#world_map_data
world_map_data <- rnaturalearth::ne_countries(returnclass = "sf") %>% 
  rename(iso3c = iso_a3)



## constructing scope data: if no more data than scope 1 data is available, scope 1 data is used as default 
all_data_all_3 <- all_data_all_2 %>% 
    mutate(has_scope_2 = ifelse(is.na(scope_2), 0, 1),
           scope_3 = ifelse(has_scope_2 == 1, total_imports - scope_2, NA),
           prod_total = ifelse(has_scope_2 == 1, scope_1 + scope_2 + scope_3, scope_1),
           prod_total_LUCF = ifelse(has_scope_2 == 1, scope_1_LUCF + scope_2 + scope_3, scope_1_LUCF), 
 cons_total = ifelse(has_scope_2 == 1, prod_total - total_exports, scope_1))

all_data_all_4 <- all_data_all_3 %>% 
  filter(! (is.na(scope_1) & is.na(scope_2))) %>% 
  filter(! is.na(country_name))

# calculate financed emissions
# multiplying by 1 M because emissions data in 1M tons but GDP data in international USD

ca_all <- all_data_all_4 %>% 
  filter(! is.na(GDP_PPP)) %>% 
  mutate(se_gdp_factor_prod = prod_total*1000000/GDP_PPP, 
         se_gdp_factor_LUCF = prod_total_LUCF*1000000/GDP_PPP, 
         se_gdp_factor_cons = ifelse(is.na(cons_total), 0, cons_total*1000000/GDP_PPP), 
         se_gdp_factor_scope_1 = scope_1*1000000/GDP_PPP)

# all_data_2018_4 <- all_data_2018_3 %>%  merge(imf_wb_country_markets, by = "country_name", all = TRUE)
Code
library("maps")
countries_scope_1 <- read_csv("./processed_02/countries_scope_1.csv")
countries_scope_2 <- read_csv("./processed_02/countries_scope_2.csv")

countries_scopes <- merge(countries_scope_1, countries_scope_2, by = c("country_name", "iso3c"), all = TRUE) %>% 
  mutate(has_scope_2 = ifelse(is.na(scope_2), 0, 1))  %>% 
 #merge(world_map_data, by = "iso3c") %>% 
  filter(iso3c != "ATA")

countries_scopes <- countries_scopes %>% 
  dplyr::mutate(has_scope_c = 
  case_when(
    has_scope_2 == 0 ~ "steelblue4",
    TRUE ~ "steelblue1"
  ))

world_coordinates <- map_data("world")

world_coordinates$region <- countrycode(world_coordinates$region, "country.name", "iso3c")


figure_1 <- ggplot(countries_scopes, aes(map_id = iso3c)) +
      geom_map(aes(fill = has_scope_c ), map = world_coordinates) + 
      expand_limits(x = world_coordinates$long, y = world_coordinates$lat)+ theme_void() +
      coord_fixed() + 
  scale_fill_identity(guide = "legend", name= "Data Coverage", labels = c("scope 1, 2 and 3", "only scope 1")) +
  labs(
  title = str_wrap("Figure 1: Data Coverage according to Emissions Scope"), 
   subtitle = str_wrap("Large Data Gaps for EM and Low-Income Developing Countries"), 
caption = str_wrap("Data: Climate Watch and OECD | Author Calculations")
  )
ggsave("figure_1.png")
detach("package:maps", unload = TRUE)
figure_1

Code
imf_wb_country_markets 

countries_scopes_imf <- countries_scopes %>%     merge(imf_wb_country_markets, by = "country_name", all = TRUE) %>% 
  select(!has_scope_2) %>% 
  mutate(has_scope_1 = ifelse(is.na(scope_1), 0, 1), 
         has_scope_2 = ifelse(is.na(scope_2), 0, 1))

# Advanced Economies
countries_scopes_imf %>% 
  filter(country_group == "Advanced Economies") %>% 
  filter(iso3c != "HKG" & iso3c != "TWN") %>% 
  summarize(ae_sc1 = mean(has_scope_1), 
            ae_sc2 = mean(has_scope_2))
# 87.18 % of advanced economies have scope 1 data, 92.3 % have scope 2 data
countries_scopes_imf %>% 
  filter(country_group == "Advanced Economies" & has_scope_1 == 0 & has_scope_2 == 1)
#Hong Kong and Taiwan included in OECD data but not in Climate Watch data
countries_scopes_imf %>% 
  filter(country_group == "Advanced Economies" & has_scope_1 == 1 & has_scope_2 == 0)
# all advanced economies that have scope 1 data also have scope 2 data
scope_2_ae <- countries_scopes_imf %>% 
  filter(country_group == "Advanced Economies" & has_scope_1 == 1 & has_scope_2 == 1)

# Emerging Markets
countries_scopes_imf %>% 
  filter(country_group == "Emerging Market Economies") %>% 
  summarize(em_sc1 = mean(has_scope_1), 
            em_sc2 = mean(has_scope_2))
# 96.986 % of EM have scope 1 data but only 27.1 have scope 2 data
countries_scopes_imf %>% 
  filter(country_group == "Emerging Market Economies" & has_scope_1 == 0 & has_scope_2 == 1)
# no EM country has scope 2 data but no scope 1 data
countries_scopes_imf %>% 
  filter(country_group == "Emerging Market Economies" & has_scope_1 == 1 & has_scope_2 == 1)
# 26 EM countries have both
scope_2_em <- countries_scopes_imf %>% 
  filter(country_group == "Emerging Market Economies" & has_scope_1 == 1 & has_scope_2 == 1)
scope_1_em <- countries_scopes_imf %>% 
  filter(country_group == "Emerging Market Economies" & has_scope_1 == 1) 

# Low-Income 
countries_scopes_imf %>% 
  filter(country_group == "Low-Income Developing Countries") %>% 
  summarize(li_sc1 = mean(has_scope_1), 
            li_sc2 = mean(has_scope_2))
# 100 % of EM have scope 1 data but only 6.78% have scope 2 data
countries_scopes_imf %>% 
  filter(country_group == "Low-Income Developing Countries" & has_scope_1 == 0 & has_scope_2 == 1)
# no LI country has scope 2 data but no scope 1 data
countries_scopes_imf %>% 
  filter(country_group == "Low-Income Developing Countries" & has_scope_1 == 1 & has_scope_2 == 1)
# Only four LI countries have both scopes: Cambodia, Laos, Myanmar, Vietnam

Data availability for production emissions varies strongly across countries, with scope 2 and 3 data covering only 27.1 % of Emerging Market Economies. Using the most current and extensive data recommended by PCAF (Climate Watch data for scope 1 and OECD data for scope 2 and 3), regionally concentrated data gaps are clearly visible (see figure 1). For most of Sub-Saharan Africa, no scope 2 and 3 data is available. Following IMF classifications of markets, scope 1 data exists for 96 % of Emerging Market Economies, but scope 2 and 3 data is only available for 27.1 % of them. In contrast, all Advanced Economies have scope 1, 2, and 3 data. The starkest difference in data availability concerns Low-Income Developing Countries with 100% being covered by scope 1 data and only 6.78 % by scope 2 and 3 data. Given the large share of countries for which only scope 1 data is available, it is important to understand what role scope 1 emissions play for the aggregate measures of sovereign emissions.

Scope and Aggregate Emissions over Time

Code
# goal: datasets with scope 1,2,3 emissions for country-years, possibly LUFC inclusive and exclusive
# important: with OECD data, latest data is now from 2018 instead of 2019

# scope 1 emissions are the Climate Watch GHG emissions (LUCF excl.)
# scope 2 emissions are the D35 OECD data emissions (energy imports)
# scope 3 emissions are total imports - energy imports emissions, both OECD

scope_emissions <- data_LUCF %>% 
  rename(scope_1_excl = GHG_excl_LUCF, 
         scope_1_incl = GHG_incl_LUCF,
         scope_2 = energy_imports) %>% 
   mutate(scope_3 = total_imports - scope_2) %>% 
   select(iso3c, country_name, year, scope_1_excl, scope_1_incl, scope_2, scope_3, GHG_from_LUCF, GDP_PPP, total_exports)

# EM Economies
scope_emissions_em <- scope_emissions %>% 
  filter(country_name %in% scope_2_em$country_name) %>% 
  # filter(country_name != "China") %>% 
  select(! "GDP_PPP") %>% 
  select("scope_1_excl", "scope_2", "scope_3", "total_exports", "year") 

totals_em <- aggregate(
  cbind(scope_emissions_em$scope_1_excl, scope_emissions_em$scope_2, scope_emissions_em$scope_3, scope_emissions_em$total_exports), by=list(scope_emissions_em$year), FUN = sum) %>% 
  mutate(all_scopes = V1 + V2 + V3) %>% 
  mutate(consumption_total = V1 + V3 - V4) %>% 
  rename(scope_1_total = V1,
         scope_2_total = V2, 
         scope_3_total = V3, 
         year= Group.1
         ) %>% 
  select(!"V4") %>% 
  pivot_longer(
    cols = "scope_1_total":"consumption_total", 
    names_to = "scope", 
    values_to = "total_emissions_per_scope"
  )

color_list <- c("all_scopes" = "steelblue4", "consumption_total" = "darkorange2", "scope_1_total" = "steelblue3", "scope_2_total" = "lightskyblue1", "scope_3_total" = "steelblue2")

annotation_2a <- data.frame(
  x = c(2014, 2014, 2014, 2014, 2014),
  y= c(27500, 20000, 25000, -500, 3000),
  label = c("Production Emissions", "Consumption Emissions", "Scope 1", "Scope 2", "Scope 3"),
  color = c("steelblue4", "darkorange2", "steelblue3", "lightskyblue1", "steelblue2")
)

figure_2a <- ggplot(totals_em, aes(x = year, y = total_emissions_per_scope, color = scope)) +
  geom_line(size = 1, stat = "identity") +
  scale_color_manual(values = color_list) +
  labs(
    x = str_wrap(""), 
   y = "Tons of CO2 Equivalents", 
  title = str_wrap("Figure 2a: GHG Emissions per Scope of EM Economies"), 
   subtitle = str_wrap("Scope 1 emissions contribute the largest share to total GHG emissions"), 
caption = str_wrap("Data: Climate Watch and OECD | Author Calculations")
  )+
  geom_text(data = annotation_2a, aes(x = x, y = y, label = label), color = annotation_2a$color, size = 2.5, angle = 0) +
  theme_bw() + 
  theme(legend.position = "none") + scale_y_continuous(breaks = c(10000, 20000), labels = c("10000" = "10bn", "20000" = "20bn"))
ggsave("figure_2a.png")
figure_2a

Code
# Advanced Economies
scope_emissions_ae <- scope_emissions %>% 
  filter(country_name %in% scope_2_ae$country_name) %>% 
  select(! "GDP_PPP") %>% 
  select("scope_1_excl", "scope_2", "scope_3", "total_exports", "year") 
 

totals_ae <- aggregate(
  cbind(scope_emissions_ae$scope_1_excl, scope_emissions_ae$scope_2, scope_emissions_ae$scope_3, scope_emissions_ae$total_exports), by=list(scope_emissions_ae$year), FUN = sum) %>% 
  mutate(all_scopes = V1 + V2 + V3) %>% 
  mutate(consumption_total = V1 + V3 - V4) %>% 
  rename(scope_1_total = V1,
         scope_2_total = V2, 
         scope_3_total = V3, 
         year= Group.1
         ) %>% 
    select(!"V4") %>% 
  pivot_longer(
    cols = "scope_1_total":"consumption_total", 
    names_to = "scope", 
    values_to = "total_emissions_per_scope"
  )


annotation_2c <- data.frame(
  x = c(2010, 2010, 2010, 2010, 2010),
  y= c(19250, 15500, 12500, 0, 4000),
  label = c("Production Emissions", "Consumption Emissions", "Scope 1", "Scope 2", "Scope 3"),
  color = c("steelblue4", "darkorange2", "steelblue3", "lightskyblue1", "steelblue2")
)

figure_2c <- ggplot(totals_ae, aes(x = year, y = total_emissions_per_scope, color = scope)) +
  geom_line(size = 1, stat = "identity") +
  scale_color_manual(values = color_list) +
  labs(
    x = str_wrap(""), 
   y = "Tons of CO2 Equivalents", 
  title = str_wrap("Figure 2b: GHG Emissions per Scope of Advanced Economies"), 
   subtitle = str_wrap("Consumption emissions closely track Scope 1 emissions"), 
caption = str_wrap("Data: Climate Watch and OECD | Author Calculations")
  )+
  geom_text(data = annotation_2c, aes(x = x, y = y, label = label), color = annotation_2c$color, size = 2.5, angle = 0) +
  theme_bw() + 
  theme(legend.position = "none") + scale_y_continuous(breaks = c(10000, 20000), labels = c("10000" = "10bn", "20000" = "20bn"))
ggsave("figure_2c.png")
figure_2c

Both in Emerging Market and Advanced Economies, scope 1 emissions have consistently contributed the largest part to production emissions (figures 2a and 2b). Focusing on Emerging Market Economies with all data available, scope 1 emissions were responsible for more than 90% of production emissions, whereas they contributed about 77% to production emissions in Advanced Economies in 2018. This underlines the assumption that Advanced Economies are responsible for a significant amount of emissions produced abroad through their imports of energy and other products. The concept of consumption emissions attempts to capture this issue by counting only emissions related to the consumption pattern of a country. This method avoids unfairly favoring Advanced Economies for outsourcing (and then importing) emission-intensive production. Consumption emissions require all scope emissions data and data on emissions “exported” from a country. The coverage issues of this data mean that for most of EMEs and Low-Income Developing Countries, this data is not be widely available. In Advanced Economies, consumption emissions closely track scope 1 emissions (figure 2b) but the pattern looks fairly different for the EMEs for which all necessary data is available (figure 2a). Here, consumption emissions are substantially lower than scope 1 emissions discrediting scope 1 emissions as a proxy for consumption emissions. Relying only on the widely available scope 1 data would greatly overestimate and somewhat underestimate emissions attributed to the consumption of EMEs and AEs respectively, assuming that the patterns of scope and aggregate data is comparable for those EMEs without scope 2, 3, and exports data.

Thus, while consumption emissions arguably is a fairer concept that does not reward the outsourcing of emission intensive production, the lack of widely available data severely limits its usefulness. The fact that only scope 1 data is widely available but using scope 1 data as a proxy for consumption data exacerbates the very problem it tries to prevent explains why production emissions remain the primary concept of accounting for financed emissions of sovereign debt across different market groups.

Financed Emissions of Sovereign Debt Portfolios

Code
# emb_etf_processed: 51 countries
# igov_etf_processed: 19 countries
# ca_2018: 181 countries

## EMB 

emb_ca <- merge(emb_etf_processed, ca_2018, by = c("country_name", "iso3c"), all = TRUE) %>% 
  filter(!(is.na(original_weight))) 
# all 51 countries covered in EMB also have at least scope 1 data

emb_perc <- emb_ca %>% 
  summarize(perc_scope_2 = mean(has_scope_2)*100)

# 39.22 % of bond data has more than scope 1 data

# multiplying by 1 M for hypothetical investment of 1M USD
emb_ca_2 <- emb_ca %>% 
  mutate(fin_em_prod = 1000000*new_weight*se_gdp_factor_prod, 
         fin_em_cons = 1000000*new_weight*se_gdp_factor_cons, 
         fin_em_LUCF = 1000000*new_weight*se_gdp_factor_LUCF, 
         fin_em_scope_1 = 1000000*new_weight*se_gdp_factor_scope_1)


summary_emb <- emb_ca_2 %>% 
  summarize(sum_fin_em_prod = sum(fin_em_prod), 
                       sum_fin_em_cons = sum(fin_em_cons),
                       sum_fin_em_LUCF = sum(fin_em_LUCF),
                       sum_fin_em_scope_1 = sum(fin_em_scope_1)) %>% 
  pivot_longer(
    cols = "sum_fin_em_prod":"sum_fin_em_scope_1", 
    names_to = "sum_stat", 
    values_to = "EMB")

# Holding 1 Million USD in an EMB like portfolio, the investor finances 36,432.67 tons of CO2 equivalent emissions if calculated production based. She finances 40,543.87 tons of CO2 equivalent emissions if LUCF data are included and 33,198.68 tons if consumption based. If only scope 1 data is taken into consideration she finances 33,374.19 tons of CO2 equivalents. 


## IGOV
igov_ca <- merge(igov_etf_processed, ca_2018, by = c("country_name", "iso3c"), all = TRUE) %>% 
  filter(!(is.na(original_weight))) 
# all 19 countries covered in IGOV also have at least scope 1 data

igov_perc <- igov_ca %>% 
  summarize(perc_scope_2 = mean(has_scope_2)*100)

# 100 % of bond data has all data available 

# multiplying by 1 M for hypothetical investment of 1M USD
igov_ca_2 <- igov_ca %>% 
  mutate(fin_em_prod = 1000000*new_weight*se_gdp_factor_prod, 
         fin_em_cons = 1000000*new_weight*se_gdp_factor_cons, 
         fin_em_LUCF = 1000000*new_weight*se_gdp_factor_LUCF, 
         fin_em_scope_1 = 1000000*new_weight*se_gdp_factor_scope_1)

summary_igov <- igov_ca_2 %>% 
  summarize(sum_fin_em_prod = sum(fin_em_prod), 
                       sum_fin_em_cons = sum(fin_em_cons),
                       sum_fin_em_LUCF = sum(fin_em_LUCF),
                       sum_fin_em_scope_1 = sum(fin_em_scope_1)) %>% 
  pivot_longer(
    cols = "sum_fin_em_prod":"sum_fin_em_scope_1", 
    names_to = "sum_stat", 
    values_to = "IGOV"
  )

fin_em_emb_igov <- merge( summary_emb,summary_igov, by = "sum_stat") %>% 
  pivot_longer(
    cols = "EMB":"IGOV", 
    names_to = "etf_type", 
    values_to = "fin_em"
  ) 
fin_em_emb_igov$rounded <- round(fin_em_emb_igov$fin_em /1000, 1)

y_labels <- c("Scope 1 Emissions", "Consumption Emissions", "Production Emissions", "Emissions incl. LUCF"     )

write_csv(fin_em_emb_igov, "./processed_02/fin_em_emb_igov.csv")

figure_3 <- ggplot(fin_em_emb_igov, aes(x = fin_em, y = fct_reorder(.f = sum_stat, .x = fin_em), fill = etf_type)) + 
  geom_bar(stat = "identity", position = "dodge") + 
  scale_fill_manual(values = c("steelblue2", "steelblue4")) +
  labs(title = str_wrap("Figure 3: Financed Emissions by 1M USD of Sov. Debt Portfolio"),
       subtitle = str_wrap("", width = 70),
       x = "Financed Emissions in Tons CO2e (Thousands)",
       y = "", 
       caption = str_wrap("Data: BlackRock iShares (EMB, IGOV), Climate Watch & OECD | Author Calculations"),
       fill = "Portfolio Base:"
       ) +
  scale_x_continuous(labels = c("0" = "0", "10000" = "10 K", "20000" = "20 K", "30000" = "30 K", "40000" = "40 K")) +   
  geom_text(aes(label = rounded), 
            hjust = 1.4,
            color = "white", size = 3,
            vjust = .6, position = position_dodge(.9)) +
  scale_y_discrete(labels = y_labels) +
  theme_minimal()
ggsave("figure_3.png") 
figure_3

Code
# Holding 1M USD in a IGOV-like portfolio would mean financing 28,530.76 tons of CO2e in production based emissions,    22,130.61 in consumption based emissions,   27,949.7 tons of CO2e including LUCF, and only 20,185.85 of scope 1 emissions.

# finding comparable emissions, if holding 100M  in an EMB like portfolio, the investor finances 3,643,267 tons which is about as much as Tunisia and Costa Rica imported in energy emissions in 2018 together or about a third of all emissions of Gabon (production based). 

# emb_ca_2 %>% filter(scope_2 < 4 )
# emb_ca_2 %>% filter(prod_total < 30)

Generally, one million USD exposure to an Emerging Market Economies’ sovereign debt portfolio leads to higher financed emissions than the same exposure to an Advanced Economies’ sovereign debt portfolio. Production based accounting of financed emissions presents the most favorable approach for EMEs (figure 3). Based on the weighting of Black Rock’s two standard ETFs for international sovereign debt in Advanced Economies (IGOV) and Emerging Market Economies (EMB), I calculated the financed emissions incurred by holding one million USD of each of the constructed portfolios. According to all concepts of sovereign emissions, investing in sovereign debt of EMEs results in about 10,000 tons more CO2e emissions than investing in AEs’ sovereign debt. Reliance on solely scope 1 emissions leads to the largest gap between EMEs and AEs (13.2 K tons CO2e) and following the consumption emissions approach only slightly narrows the gap (11.1 K tons CO2e). This is likely due to the scarce data availability on the other scopes and export-related emissions for EMEs which lower the scope 1-based emissions only for the few countries with the necessary data and increase it only slightly for AEs. Production emissions are therefore the most favorable approach for EMEs where the gap between financed emissions by an EMEs portfolio vs an AEs portfolio is smallest. Accounting for emissions released by LUCF activities leads to the highest financed emissions for an EMEs portfolio and a large disadvantageous difference compared to financed emissions from an AEs portfolio. Accounting methods for LUCF emissions are the least standardized between countries but could become more important in the future and will be touched upon in the outlook below.

Relation of Production Emissions and Financed Emissions

Code
### Figure Factor/Production Emissions
ca_2018_ae_em <- ca_2018 %>% filter(country_group == "Advanced Economies" | country_group == "Emerging Market Economies")
color_list_ae_em <- c("Advanced Economies" = "steelblue4", "Emerging Market Economies" = "darkorange2")

figure_4 <- ggplot(ca_2018_ae_em, aes(x = prod_total, y = se_gdp_factor_prod, color = country_group, size = prod_total)) +
  geom_point(alpha = .6) +
  geom_text_repel(aes(label = ca_2018_ae_em$country_name), size = 3) +
  scale_color_manual(values = color_list_ae_em) +
  scale_y_continuous(breaks = c(0.0000, 0.0005, 0.0010, 0.0015), labels = c("0.0000" = "0", "0.0005" = "500", "0.0010" = "1000", "0.0015" = "1500")) +
  scale_x_continuous(breaks = c(0, 5000, 10000), labels = c("0" = "0", "5000" = "5 Bn", "10000" = "10 Bn")) + 
  labs(
    title = "Figure 4: Production Emissions vs. Financed Emissions per 1M Sov. Debt", 
    x = "Production Emissions in Tons Co2e (Bn)", 
    y = "Financed Emissions in Tons CO2e", 
    size = "Production Emissions", 
    color = "Country Group",
    caption = "Data: Climate Watch and OECD | Author Calculations"
  )+
  theme_minimal() +
  theme(legend.position = "none")
ggsave("figure_4.png")

### Figure Violin Plot
figure_5 <- ggplot(ca_2018 %>%  filter(country_group == "Advanced Economies" | country_group == "Emerging Market Economies"), aes(x = country_group, y = se_gdp_factor_prod, fill = country_group)) +
  geom_violin(alpha = .7) +
  scale_fill_manual(values = color_list_ae_em) +
  geom_boxplot(width = 0.1, fill = "white") +
   geom_text_repel(aes(label = ifelse(se_gdp_factor_prod > quantile(se_gdp_factor_prod, 0.75) + 1.5*IQR(se_gdp_factor_prod) | se_gdp_factor_prod < quantile(se_gdp_factor_prod, 0.25) - 1.5*IQR(se_gdp_factor_prod), country_name, "")),
            position = position_jitter(width = 0.1))+
  scale_y_continuous(breaks = c(0.0000, 0.0005, 0.0010, 0.0015), labels = c("0.0000" = "0", "0.0005" = "500", "0.0010" = "1000", "0.0015" = "1500")) +
  labs(
    title = "Figure 5: Financed Emissions per 1M Sovereign Sov. Debt", 
    subtitle = "", 
    x = "", 
    y = "Financed Emissions in Tons CO2e",
    caption = "Data: Climate Watch and OECD | Author Calculations"
  ) +
  theme_minimal() +
  theme(legend.position = "none")
ggsave("figure_5.png")

figure_4

Code
figure_5

Production emissions do not translate directly to financed emissions because they are set in relation to a country’s PPP-adjusted GDP. This leads to favorable financed emissions values for several of the largest emitters due to their high PPP-adjusted GDP (figure 4). For the attribution of production emissions to sovereign debt, total (production) emissions are divided by the PPP-adjusted GDP of the country and then multiplied with the exposure to sovereign debt of the portfolio. Even though China, the US, India, and Russia were the four largest emitters by production emissions in 2018, holding sovereign debt from EMEs like Turkmenistan, Mongolia, and the Marshall Islands would comparatively lead to much higher financed emissions.

Financed emissions by sovereign debt of EMEs vary greatly and they are less concentrated than those from AEs’ sovereign debt even though the median financed emissions are similar (figure 5). Several sovereign debt investments into EMEs are even associated with lower financed emissions per one million USD exposure than investments in sovereign debt of the AEs with the smallest financed emissions. This suggests that EME portfolios with very similar financed emissions to an average AE portfolio could be constructed if special attention is paid to investments in (both negative and positive) outliers. Disadvantageous gaps in financed emissions as seen in the portfolios above could thus be mitigated.

Financed Emissions: The Example of China

Code
G_data_China <- ca_all %>% 
  filter(country_name == "China") %>% 
  select(! "has_scope_2") %>% 
  mutate(GDP_PPP_Tn = GDP_PPP/1000000000000) %>% 
  mutate(cons_total_Bn = cons_total/1000, 
         prod_total_Bn = prod_total/1000, 
         se_prod_1000_USD = se_gdp_factor_prod*1000)

G_data_China <- G_data_China%>%
    arrange(year) %>%
    mutate(pct.chg_GDP = (GDP_PPP - lag(GDP_PPP))/lag(GDP_PPP)*100)

G_data_China <- G_data_China%>%
    arrange(year) %>%
    mutate(pct.chg_prod = (prod_total - lag(prod_total))/lag(prod_total)*100)

# Figure 6a
annotation_China_3 <- data.frame(
  x = c(2010, 2010),
  y= c(12.5, 2.5),
  label = c("PPP-adj. GDP", "Production Emissions"),
  color = c("steelblue4", "steelblue2")
)

figure_6a <- ggplot(G_data_China, aes(x = year)) +
  geom_line(data = G_data_China, aes(x = year, y = pct.chg_GDP), color = "steelblue4")+
  geom_line(data = G_data_China, aes(x = year, y = pct.chg_prod), color = "steelblue2") +
  scale_y_continuous(breaks = c(0, 5, 10, 15), labels = c("0" = "0 %", "5" = "5 %", "10" = "10 %", "15" = "15%")) +
  geom_text(data = annotation_China_3, aes(x = x, y = y, label = label), color = annotation_China_3$color, size = 3, angle = 0) +
  labs(
    title = "Figure 6a: PPP-adj. GDP and Production Emissions Growth Rates of China",
    x = "", 
    y = "Growth Rate (%)", 
    caption = "Data: Climate Watch, OECD, WBG | Author Calculations"
  ) +
  theme_minimal()
ggsave("figure_6a.png")

#Figure 6b
annotation_China_4 <- data.frame(
  x = c(2010),
  y= c(1),
  label = c("Financed Emissions"),
  color = c("darkorange2")
)

  
figure_6b <- ggplot(G_data_China, aes(year, se_prod_1000_USD)) + geom_line(aes(year, se_prod_1000_USD), color = "darkorange") +
  geom_text(data = annotation_China_4, aes(x = x, y = y, label = label), color = annotation_China_4$color, size = 3, angle = 0) +
  scale_y_continuous(labels = c("0.0" = "", "1.0" = "1 K", "1.5" = "1.5 K", "2.0" = "2 K")) +
  labs(
    title = "Figure 6b: Financed Emissions per 1M USD Chinese Sovereign Debt",
    x = "", 
    y = "Thousand Tons CO2e", 
    caption = "Data: Climate Watch and OECD | Author Calculations"
  ) +
  theme_minimal()
ggsave("figure_6b.png")

figure_6a

Code
figure_6b

The example of China illustrates that financed emissions will decrease as long as PPP-adjusted GDP grows faster than (production) emissions (figures 6a and 6b). Between 1995 and 2018, China’s PPP-adjusted GDP always grew stronger than China’s production emissions except for the years of 2003 and 2004. As a consequence, the measure of financed emissions decreased from almost 2,000 tons CO2e to less than 500 tons CO2e. The development of China’s financed emissions thus reflects more the evolution of the GHG emission-intensity of its economy than of overall production emissions. Using financed emissions as a determining factor for investment decisions will favor countries with high PPP-adjusted GDPs in comparison to their production emissions and will steer investments towards relatively emission efficient economies rather than those with low levels of absolute emissions. While absolute emissions will eventually determine the further change of the global climate the attribution mechanism of PCAF’s sovereign debt methodology lays greater focus on a reduction of GHG-intensity which can be achieved by the PPP-adjusted GDP growing faster than aggregate emissions.

Outlook: Importance of standardized LUCF accounting for EMEs

Code
all_data_all_5 <- all_data_all_4 %>% 
  mutate(GHG_from_LUCF = scope_1_LUCF - scope_1, 
         LUCF_percent_change = GHG_from_LUCF/scope_1*100)

summary_var_all_data_5 <- all_data_all_5 %>% 
  group_by(country_name) %>% 
  summarize(GHG_from_LUCF_var = var(GHG_from_LUCF), 
            scope_1_var = var(scope_1), 
            scope_1_LUCF_var = var(scope_1_LUCF), 
            scope_2_var = var(scope_2), 
            scope_3_var = var(scope_3), 
            ) 
  #ungroup()

summary_mean_all_data_5 <- all_data_all_5 %>% 
  filter(year <= 2018 & year >= 2014) %>% 
  group_by(country_name) %>% 
  summarize(GHG_from_LUCF_mean = mean(GHG_from_LUCF), 
            scope_1_mean = mean(scope_1), 
            scope_1_LUCF_mean = mean(scope_1_LUCF), 
            scope_2_mean = mean(scope_2), 
            scope_3_mean = mean(scope_3), 
            )
  #ungroup()

summary_all_data_5_2018 <- all_data_all_5 %>% 
  filter(year == 2018) %>% 
  group_by(country_name) %>% 
  summarize(GHG_from_LUCF_2018 = GHG_from_LUCF, 
            scope_1_2018 = scope_1, 
            scope_1_LUCF_2018 = scope_1_LUCF, 
            scope_2_2018 = scope_2, 
            scope_3_2018 = scope_3, 
          GDP_PPP_2018 = GDP_PPP
            ) 

summary_data <- merge(summary_var_all_data_5, summary_mean_all_data_5, by = "country_name", all = TRUE) %>% 
  mutate(country_name = summary_var_all_data_5$country_name[match(country_name, summary_var_all_data_5$country_name)]) %>% 
  merge(summary_all_data_5_2018, by = "country_name", all = TRUE) %>% 
  merge(imf_wb_country_markets, by = "country_name", all = TRUE)
  

color_list_markets <- c("Advanced Economies" = "steelblue4", "Emerging Market Economies" = "darkorange", "Low-Income Developing Countries" = "steelblue1")

set.seed(123) 

summary_data$vertical = runif(200, min = 1, max = 5)

figure_7 <- ggplot(summary_data, aes(x = GHG_from_LUCF_mean, y = vertical, size = GHG_from_LUCF_var, color = country_group)) +
  geom_point(alpha = .5) +
  geom_text_repel(data = summary_data, aes(label = country_name), size = 3) +
scale_color_manual(values = color_list_markets) + theme(axis.line.y = element_blank(),
             axis.text.y = element_blank(),
             axis.ticks.y = element_blank()) + 
scale_y_continuous(labels = c("1" = "", "2" = "", "3" = "", "4" = "", "5" = "")) +
scale_x_continuous(labels = c("-1000" = "", "-500" = "- 500", "0" = "Million Tons CO2e", "500" = "500", "1000" = "")) +
  labs(
    title = "Figure 7: Variance and Size of Reported LUCF-Emissions", 
    x = "Average Change in reported Emissions when LUCF is included", 
    color = "Country Group", 
    size = "Variance of LUCF-Emissions"
  )+
   ylab("") +
  theme_minimal()
ggsave("figure_7.png")
figure_7

Accounting for emissions captured by forests has become an important topic of international climate talks as the One Forest Summit in Gabon demonstrated most recently. The establishment of standardized LUCF emissions accounting and its inclusion in the PCAF guidelines would matter particularly for EMEs. Under current PCAF methodology, countries are encouraged to report emissions both including and excluding the emissions due to land use, land use change, and forestry (LUCF). Methodological differences in accounting for LUCF generated emissions (e.g., definitions of forest areas) currently prevent its wide use. In addition to methodological inconsistencies, the accuracy of the data available for LUCF emissions remains a great challenge to its meaningful inclusion. Especially the data for countries with the largest discrepancies between LUCF inclusive and exclusive emissions (mostly EMEs) is highly variable (figure 7). Often, data is only updated every 5 to 10 years and extrapolated in between. However, given the rising international attention to the topic, it is likely that LUCF emissions accounting will eventually be standardized and required to be reported. This will greatly impact the evaluation of EMEs’ financed emissions. EMEs are the countries for which the inclusion of LUCF makes the largest difference in their overall emissions, both positively (by reducing their total emissions, as for China and Russia) and negatively (by increasing their total emissions, as for Indonesia and Brazil). Furthermore, many of the countries which are home to the most important carbon sinks globally, the tropical rain forests in South America, the Congo river basin and South East Asia, are EMEs. The stance of these regions’ sovereigns towards protection and management of rain forests on their territories will greatly influence global climate. Including LUCF emissions into the aggregate measure of emissions could drastically change these EMEs’ attractiveness for investors. In the short term, investing in sovereign debt of countries like Brazil and Indonesia would increase financed emissions. In the medium to long run, if these EMEs manage to harness the enormous potential of protecting the carbon sequestration function of their rain forests, their sovereign debt could become much more attractive under a financed emissions perspective. Progress in improving data collection, standardizing and including LUCF emissions data into the PCAF methodology merits close monitoring for investors in sovereign debt of EMEs.

Conclusions

The newest PCAF methodology of carbon accounting offers an approach to assess financed emissions from holding sovereign debt while highlighting the need for better data provision of sovereign emissions. The separate methods of calculating sovereign emissions impact the relative attractiveness of EME sovereign debt versus AE sovereign debt differently. For example, while consumption emissions seem a fair approach to account for outsourced emission-intensive production, as long as gaps in data availability for EMEs remain large, consumption emissions are rather disadvantageous for EMEs as a group. Generally, standard portfolios of EME sovereign debt will be associated with more financed emissions than standard AE sovereign debt portfolios but the distribution of financed emissions among EMEs would allow for a narrowing of this gap. As financed emissions greatly depend on the relation between PPP-adjusted GDP and total emissions, relatively low emission-intensity explains favorable financed emissions scores of large emitters such as China and the US. Finally, the potential standardization and inclusion of LUCF-emissions would particularly impact EMEs and should be followed closely.

Sources

PCAF: Financed Emissions - The Standard / Part A (2022), https://carbonaccountingfinancials.com/files/downloads/PCAF-Global-GHG-Standard.pdf Climate Watch: Historical GHG Emissions (2023), https://www.climatewatchdata.org/ghg-emissions?end_year=2018&start_year=1990 OECD: Carbon Dioxide Emissions embodied in international trade (2021), https://stats.oecd.org/Index.aspx?DataSetCode=IO_GHG_2021 World Bank: GDP, PPP-adjusted (2021), https://data.worldbank.org/indicator/NY.GDP.MKTP.PP.CD Black Rock: EMB and IGOV Holdings (2023), https://www.blackrock.com/us/financial-professionals/products/239572/ishares-jp-morgan-usd-emerging-markets-bond-etf https://www.blackrock.com/us/individual/products/239830/ishares-international-treasury-bond-etf FAOSTAT: Forestry (2023), https://www.fao.org/forestry/en/