maurolepore / r2dii.match

WORK IN PROGRESS: Match loanbook with asset level data

Home Page:https://2degreesinvesting.github.io/r2dii.match/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

r2dii.match

Lifecycle: maturing CRAN status Codecov test coverage R build status

These tools implement in R a fundamental part of the software PACTA (Paris Agreement Capital Transition Assessment), which is a free tool that calculates the alignment between financial portfolios and climate scenarios (https://2degrees-investing.org/). Financial institutions use PACTA to study how their capital allocation impacts the climate. This package matches data from financial portfolios to asset level data from market-intelligence databases (e.g. power plant capacities, emission factors, etc.). This is the first step to assess if a financial portfolio aligns with climate goals.

Installation

Before you install r2dii.match you may want to:

When you are ready, install the released version of r2dii.match from CRAN with:

# install.packages("r2dii.match")

Or install the development version of r2dii.match from GitHub with:

# install.packages("devtools")
devtools::install_github("2DegreesInvesting/r2dii.match")

How to raise an issue?

Example

library(r2dii.data)
library(r2dii.match)

Matching is achieved in two main steps:

1. Run fuzzy matching

match_name() will extract all unique counterparty names from the columns: direct_loantaker, ultimate_parent or intermediate_parent* and run fuzzy matching against all company names in the ald:

match_result <- match_name(loanbook_demo, ald_demo)
match_result 
#> # A tibble: 410 × 28
#>    id_loan id_direct_loanta… name_direct_loan… id_intermediate… name_intermedia…
#>    <chr>   <chr>             <chr>             <chr>            <chr>           
#>  1 L1      C294              Yuamen Xinneng T… <NA>             <NA>            
#>  2 L3      C292              Yuama Ethanol Llc IP5              Yuama Inc.      
#>  3 L3      C292              Yuama Ethanol Llc IP5              Yuama Inc.      
#>  4 L5      C305              Yukon Energy Cor… <NA>             <NA>            
#>  5 L5      C305              Yukon Energy Cor… <NA>             <NA>            
#>  6 L6      C304              Yukon Developmen… <NA>             <NA>            
#>  7 L6      C304              Yukon Developmen… <NA>             <NA>            
#>  8 L8      C303              Yueyang City Con… <NA>             <NA>            
#>  9 L9      C301              Yuedxiu Corp One  IP10             Yuedxiu Group   
#> 10 L10     C302              Yuexi County AAA… <NA>             <NA>            
#> # … with 400 more rows, and 23 more variables: id_ultimate_parent <chr>,
#> #   name_ultimate_parent <chr>, loan_size_outstanding <dbl>,
#> #   loan_size_outstanding_currency <chr>, loan_size_credit_limit <dbl>,
#> #   loan_size_credit_limit_currency <chr>, sector_classification_system <chr>,
#> #   sector_classification_input_type <chr>,
#> #   sector_classification_direct_loantaker <dbl>, fi_type <chr>,
#> #   flag_project_finance_loan <chr>, name_project <lgl>, …

2. Prioritize validated matches

The user should then manually validate the output of [match_name()], ensuring that the value of the column score is equal to 1 for perfect matches only.

Once validated, the prioritize() function, will choose only the valid matches, prioritizing (by default) direct_loantaker matches over ultimate_parent matches:

prioritize(match_result)
#> # A tibble: 217 × 28
#>    id_loan id_direct_loanta… name_direct_loan… id_intermediate… name_intermedia…
#>    <chr>   <chr>             <chr>             <chr>            <chr>           
#>  1 L6      C304              Yukon Developmen… <NA>             <NA>            
#>  2 L13     C297              Yuba City Cogene… <NA>             <NA>            
#>  3 L20     C287              Ytl Powerseraya … <NA>             <NA>            
#>  4 L21     C286              Ytl Power Intern… <NA>             <NA>            
#>  5 L22     C285              Ytl Corp Bhd      <NA>             <NA>            
#>  6 L23     C283              Ypic Internation… <NA>             <NA>            
#>  7 L24     C282              Ypfb Corporacion  <NA>             <NA>            
#>  8 L25     C281              Ypf Sa            <NA>             <NA>            
#>  9 L26     C280              Ypf Energia Elec… <NA>             <NA>            
#> 10 L27     C278              Younicos Ag       <NA>             <NA>            
#> # … with 207 more rows, and 23 more variables: id_ultimate_parent <chr>,
#> #   name_ultimate_parent <chr>, loan_size_outstanding <dbl>,
#> #   loan_size_outstanding_currency <chr>, loan_size_credit_limit <dbl>,
#> #   loan_size_credit_limit_currency <chr>, sector_classification_system <chr>,
#> #   sector_classification_input_type <chr>,
#> #   sector_classification_direct_loantaker <dbl>, fi_type <chr>,
#> #   flag_project_finance_loan <chr>, name_project <lgl>, …

The result is a dataset with identical columns to the input loanbook, and added columns bridging all matched loans to their ald counterpart.

Get started.

Funding

This project has received funding from the European Union LIFE program and the International Climate Initiative (IKI). The Federal Ministry for the Environment, Nature Conservation and Nuclear Safety (BMU) supports this initiative on the basis of a decision adopted by the German Bundestag. The views expressed are the sole responsibility of the authors and do not necessarily reflect the views of the funders. The funders are not responsible for any use that may be made of the information it contains.

About

WORK IN PROGRESS: Match loanbook with asset level data

https://2degreesinvesting.github.io/r2dii.match/

License:Other


Languages

Language:R 97.1%Language:HTML 1.6%Language:CSS 1.3%