BlackRock ESG ETF Data Visualizations

Author

Jingning Feng

Introduction

ESG investing is becoming increasingly popular as more and more investors seek to align their investments with their values and make a positive impact on the world. As the ESG market continues to grow, we’d like to take a look at how ESG funds perform in the market using BlackRock ESG ETF data.

Load Our Data

library(tidyverse)
── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
✔ ggplot2 3.4.0     ✔ purrr   1.0.1
✔ tibble  3.1.8     ✔ dplyr   1.1.0
✔ tidyr   1.3.0     ✔ stringr 1.5.0
✔ readr   2.1.3     ✔ forcats 1.0.0
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
github_raw_csv_url <- "https://raw.githubusercontent.com/t-emery/sais-susfin_data/main/datasets/blackrock_etf_screener_2022-08-30.csv"
blackrock_etf_data <- read_csv(github_raw_csv_url)
Rows: 393 Columns: 22
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (14): ticker, name, incept_date, net_assets_as_of, asset_class, sub_asse...
dbl  (8): gross_expense_ratio_percent, net_expense_ratio_percent, net_assets...

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
blackrock_etf_data <- blackrock_etf_data |>
  rename(co2_intensity = msci_weighted_average_carbon_intensity_tons_co2e_m_sales, fund_rating = sustainability_characteristics_msci_esg_fund_ratings_msci_esg_fund_rating_aaa_ccc, esg_score = msci_esg_quality_score_0_10)

Data Visualizations

ggplot(blackrock_etf_data)+
  geom_bar(mapping = aes(x=is_esg, y=net_assets_usd_mn, fill=asset_class), stat = "identity")

Although ESG funds are drawing more and more attention from investors, their size is still small compared to regular funds.

ggplot(blackrock_etf_data,mapping = aes(x=esg_score, y=co2_intensity))+
    geom_point(mapping = aes(color = is_esg))+
    geom_smooth(se = FALSE)
`geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Warning: Removed 62 rows containing non-finite values (`stat_smooth()`).
Warning: Removed 62 rows containing missing values (`geom_point()`).

The ESG Quality Score measures the ability of underlying holdings to manage key medium-to long-term risks and opportunities arising from environmental, social, and governance factors. From the graph, we can see that CO2 intensity is inversely related to ESG score. The funds with higher scores are generally less carbon intensive. Most ESG funds are below the tendency line, which shows that they are less carbon intensive.

blackrock_etf_data |>
  # use mdy() from the lubridate package to turn the character string into a date object
  mutate(incept_date = lubridate::mdy(incept_date),
         # extract the year from the date
         incept_year = lubridate::year(incept_date),
         # calculate how many years since the fund was launched.
         years_since_incept = lubridate::interval(incept_date, Sys.Date())/lubridate::years(1)) |>
ggplot(blackrock_etf_data, mapping = aes(x = years_since_incept, y = net_assets_usd_mn))+
  geom_point(mapping = aes(color = asset_class, shape = is_esg))+
  geom_smooth()
`geom_smooth()` using method = 'loess' and formula = 'y ~ x'

There is no clear relationship between assets scale and years the funds. Investors are more likely to invest in equity and fixed income assets.