sustainable_loans <- process_iif_gb_issuance(range = "P4:U41",
issuance_type = "Sustainable loans")
iif_issuance_data <- iif_issuance_data %>%
bind_rows(sustainable_loans)
green_bonds <- process_iif_gb_issuance(range = "W4:AB41",
issuance_type = "Green bonds")
iif_issuance_data <- iif_issuance_data %>%
bind_rows(green_bonds)
green_abs <- process_iif_gb_issuance(range = "AD4:AI41",
issuance_type = "Green ABS")
iif_issuance_data <- iif_issuance_data %>%
bind_rows(green_abs)
sustainability_bonds <- process_iif_gb_issuance(range = "AK4:AP41",
issuance_type = "Sustainability bonds")
iif_issuance_data <- iif_issuance_data %>%
bind_rows(sustainability_bonds)
social_bonds <- process_iif_gb_issuance(range = "AR4:AW41",
issuance_type = "Social bonds")
iif_issuance_data <- iif_issuance_data %>%
bind_rows(social_bonds)
green_municipal_bonds <- process_iif_gb_issuance(range = "AY4:BD41",
issuance_type = "Green municipal bonds")
iif_issuance_data <- iif_issuance_data %>%
bind_rows(green_municipal_bonds)
sustainability_linked_bonds <- process_iif_gb_issuance(range = "BF4:BK41",
issuance_type = "Sustainability-linked bonds")
iif_issuance_data <- iif_issuance_data %>%
bind_rows(sustainability_linked_bonds)
green_loans <- process_iif_gb_issuance(range = "BM4:BR41",
issuance_type = "Green loans")
iif_issuance_data <- iif_issuance_data %>%
bind_rows(green_loans)
sustainability_linked_loans <- process_iif_gb_issuance(range = "BT4:BY41",
issuance_type = "Sustainability-linked loans")
iif_issuance_data <- iif_issuance_data %>%
bind_rows(sustainability_linked_loans)
iif_issuance_data %>% glimpse()
Rows: 2,035
Columns: 4
$ date <date> 2013-03-31, 2013-03-31, 2013-03-31, 2013-03-31, 2013-03-31, 2013-06-30, 2013-06-30, 2013…
$ geography <chr> "Mature markets", "Emerging markets", "Offshore centers", "Supranationals", "Global", "Ma…
$ issuance_bn_usd <dbl> 6.18958089, 0.45115568, 0.00000000, 1.15915118, 7.79988775, 4.07821059, 0.59500834, 0.000…
$ issuance_type <chr> "Sustainable debt (bonds and loans)", "Sustainable debt (bonds and loans)", "Sustainable …
Here, I save the data as a CSV file.
write_csv(iif_issuance_data, here("02_data_processed", "iif_combined.csv"))
Now, the fun part…
library(ggplot2)
library (stringr)
ggplot(iif_issuance_data) +
aes(x = date, y = issuance_bn_usd, color = geography) +
geom_line(size = 0.5) +
scale_color_hue(direction = 1) +
labs(x = "Date", y = "Billions of USD Issued", title = "Sustainable Debt Over Time by Type of Holding",
caption = "Source: IIF", color = "Geography") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
facet_wrap(~issuance_type, labeller = labeller(issuance_type = label_wrap_gen(20)))
It appears from the bumps in our time series data that there is a bit of seasonality to debt issuance in this space (beyond the fact that this data is quartlerly), so I want to look at this time series data with a little bit more granularity. Looking at a monthly heat map will allow us to look at concentrations of debt issuance over time, with some idea of amount issued per month.
Let’s look at our data from 2017 and on by month to look at these trends:
iif_issuance_data <- iif_issuance_data %>%
mutate(year = year(date),
month = month(date, label=TRUE),
day = day(date))
issuance_data_17_22 <- iif_issuance_data %>%
filter(date >= "2017-01-01")
heatmap <- ggplot(data=issuance_data_17_22) +
geom_tile(aes(x = year, y = month, fill = issuance_bn_usd)) +
scale_x_continuous(breaks = c(2017,2018,2019,2020,2021,2022)) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
facet_wrap(~issuance_type, labeller = labeller(issuance_type = label_wrap_gen(20))) +
labs(x=NULL, y=NULL, title="Debt issuance by type\n") +
scale_fill_viridis(name="Billions of USD Issued")
heatmap
Now, let’s channel in on sustainable debt because that seems to be where we see the most action. ### How does this differ by geography?
issuance_data_17_22_sd <- iif_issuance_data %>%
filter(date >= "2017-01-01", issuance_type == "Sustainable debt (bonds and loans)")
geoheat <- ggplot(data=issuance_data_17_22_sd) +
geom_tile(aes(x = year, y = month, fill = issuance_bn_usd)) +
scale_x_continuous(breaks = c(2017,2018,2019,2020,2021,2022)) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
facet_wrap(~geography, labeller = labeller(geography = label_wrap_gen(20))) +
labs(x=NULL, y=NULL, title="Sustainable Debt Issuance Around the Globe\n") +
scale_fill_viridis(name="Billions of USD Issued")
geoheat