Title: | Measure Climate Scenario Alignment of Corporate Loans |
---|---|
Description: | These tools help you to assess if a corporate lending portfolio aligns with climate goals. They summarize key climate indicators attributed to the portfolio (e.g. production, emission factors), and calculate alignment targets based on climate scenarios. They implement in R the last step of the free software 'PACTA' (Paris Agreement Capital Transition Assessment; <https://www.transitionmonitor.com/>). Financial institutions use 'PACTA' to study how their capital allocation decisions align with climate change mitigation goals. |
Authors: | Alex Axthelm [aut, cre] , Jackson Hoffart [aut, ctr] , Mauro Lepore [aut, ctr] , Klaus Hogedorn [aut], Nicky Halterman [aut], Jacob Kastl [aut, ctr] , RMI [cph, fnd] |
Maintainer: | Alex Axthelm <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.4.0.9002 |
Built: | 2024-10-30 06:42:38 UTC |
Source: | https://github.com/rmi-pacta/r2dii.analysis |
join_abcd_scenario()
is a simple wrapper of several calls to
dplyr::join_*()
, forming the master dataset to be used in later steps of
the analysis.
join_abcd_scenario( data, abcd, scenario, region_isos = r2dii.data::region_isos, add_green_technologies = FALSE )
join_abcd_scenario( data, abcd, scenario, region_isos = r2dii.data::region_isos, add_green_technologies = FALSE )
data |
A data frame like the output of
|
abcd |
An asset level data frame like r2dii.data::abcd_demo. |
scenario |
A scenario data frame like r2dii.data::scenario_demo_2020. |
region_isos |
A data frame like r2dii.data::region_isos (default). |
add_green_technologies |
Logical vector of length 1. |
Returns a fully joined data frame, linking portfolio, abcd and scenario.
Other utility functions:
summarize_weighted_production()
library(r2dii.data) library(r2dii.match) valid_matches <- match_name(loanbook_demo, abcd_demo) %>% # WARNING: Remember to validate matches (see `?prioritize`) prioritize() valid_matches %>% join_abcd_scenario( abcd = abcd_demo, scenario = scenario_demo_2020, region_isos = region_isos_demo )
library(r2dii.data) library(r2dii.match) valid_matches <- match_name(loanbook_demo, abcd_demo) %>% # WARNING: Remember to validate matches (see `?prioritize`) prioritize() valid_matches %>% join_abcd_scenario( abcd = abcd_demo, scenario = scenario_demo_2020, region_isos = region_isos_demo )
Based on on the weight of each loan per sector per year,
summarize_weighted_production()
and summarize_weighted_percent_change()
summarize the production and percent-change, respectively.
summarize_weighted_production(data, ..., use_credit_limit = FALSE) summarize_weighted_percent_change(data, ..., use_credit_limit = FALSE)
summarize_weighted_production(data, ..., use_credit_limit = FALSE) summarize_weighted_percent_change(data, ..., use_credit_limit = FALSE)
data |
A data frame like the output of |
... |
Variables to group by. |
use_credit_limit |
Logical vector of length 1. |
A tibble with the same groups as the input (if any) and columns:
sector
, technology
, and year
; and weighted_production
or
weighted_production
for summarize_weighted_production()
and
summarize_weighted_percent_change()
, respectively.
The percent-change analysis excludes companies with 0 production. percent-change is undefined for companies that have no initial production; including such companies would cause percent-change percentage to be infinite, which is wrong.
Other utility functions:
join_abcd_scenario()
library(r2dii.data) library(r2dii.match) loanbook <- head(loanbook_demo, 150) abcd <- head(abcd_demo, 100) master <- loanbook %>% match_name(abcd) %>% prioritize() %>% join_abcd_scenario( abcd = abcd, scenario = scenario_demo_2020, region_isos = region_isos_demo ) %>% dplyr::filter(production != 0) summarize_weighted_production(master) summarize_weighted_production(master, use_credit_limit = TRUE) summarize_weighted_percent_change(master) summarize_weighted_percent_change(master, use_credit_limit = TRUE)
library(r2dii.data) library(r2dii.match) loanbook <- head(loanbook_demo, 150) abcd <- head(abcd_demo, 100) master <- loanbook %>% match_name(abcd) %>% prioritize() %>% join_abcd_scenario( abcd = abcd, scenario = scenario_demo_2020, region_isos = region_isos_demo ) %>% dplyr::filter(production != 0) summarize_weighted_production(master) summarize_weighted_production(master, use_credit_limit = TRUE) summarize_weighted_percent_change(master) summarize_weighted_percent_change(master, use_credit_limit = TRUE)
This function calculates targets of CO2 emissions per unit production at the portfolio-level, otherwise referred to as "emissions factors". It uses the sectoral-decarbonization approach (SDA) to calculate these targets.
target_sda( data, abcd, co2_intensity_scenario, use_credit_limit = FALSE, by_company = FALSE, region_isos = r2dii.data::region_isos )
target_sda( data, abcd, co2_intensity_scenario, use_credit_limit = FALSE, by_company = FALSE, region_isos = r2dii.data::region_isos )
data |
A dataframe like the output of
|
abcd |
An asset-level data frame like r2dii.data::abcd_demo. |
co2_intensity_scenario |
A scenario data frame like r2dii.data::co2_intensity_scenario_demo. |
use_credit_limit |
Logical vector of length 1. |
by_company |
Logical vector of length 1. |
region_isos |
A data frame like r2dii.data::region_isos (default). |
A tibble including the summarized columns emission_factor_metric
and
emission_factor_value
. If by_company = TRUE
, the output will also have
the column name_abcd
.
This function ignores existing groups and outputs ungrouped data.
Other functions to calculate scenario targets:
target_market_share()
library(r2dii.match) library(r2dii.data) loanbook <- head(loanbook_demo, 150) abcd <- head(abcd_demo, 100) matched <- loanbook %>% match_name(abcd) %>% prioritize() # Calculate targets at portfolio level matched %>% target_sda( abcd = abcd, co2_intensity_scenario = co2_intensity_scenario_demo, region_isos = region_isos_demo ) # Calculate targets at company level matched %>% target_sda( abcd = abcd, co2_intensity_scenario = co2_intensity_scenario_demo, region_isos = region_isos_demo, by_company = TRUE )
library(r2dii.match) library(r2dii.data) loanbook <- head(loanbook_demo, 150) abcd <- head(abcd_demo, 100) matched <- loanbook %>% match_name(abcd) %>% prioritize() # Calculate targets at portfolio level matched %>% target_sda( abcd = abcd, co2_intensity_scenario = co2_intensity_scenario_demo, region_isos = region_isos_demo ) # Calculate targets at company level matched %>% target_sda( abcd = abcd, co2_intensity_scenario = co2_intensity_scenario_demo, region_isos = region_isos_demo, by_company = TRUE )