From b34b2c7fc1581048f6a8fc6b52a0b3752a55c7f0 Mon Sep 17 00:00:00 2001 From: jdhoffa Date: Tue, 26 Mar 2024 09:02:51 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20RMI-PACT?= =?UTF-8?q?A/r2dii.analysis@de4ecbd4ca0b5050329c86bf9b49437248307f67=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dev/apple-touch-icon-120x120.png | Bin 3287 -> 3287 bytes dev/apple-touch-icon-152x152.png | Bin 4250 -> 4250 bytes dev/apple-touch-icon-180x180.png | Bin 4997 -> 4997 bytes dev/apple-touch-icon-60x60.png | Bin 1741 -> 1741 bytes dev/apple-touch-icon-76x76.png | Bin 2177 -> 2177 bytes dev/apple-touch-icon.png | Bin 4997 -> 4997 bytes .../figure-html/trajetory-portfolio-1.png | Bin 104797 -> 104792 bytes dev/favicon-16x16.png | Bin 777 -> 777 bytes dev/favicon-32x32.png | Bin 1355 -> 1355 bytes dev/index.html | 80 +++++++++--------- dev/news/index.html | 10 ++- dev/pkgdown.yml | 2 +- dev/search.json | 2 +- 13 files changed, 49 insertions(+), 45 deletions(-) diff --git a/dev/apple-touch-icon-120x120.png b/dev/apple-touch-icon-120x120.png index a0c6d0bbc065d4350cb7944cd7a9dd346f51b3ce..4042fa12de452aeb6878d07827b10ac804f2dbb7 100644 GIT binary patch delta 69 zcmcaEd0lcs6^9fjqt!e{U5SlN3%NziLJTae3=FMIEwl{`tPBj&=dE5l*_=lfLqhDZ Ku;Anjo_qkSND{LE delta 69 zcmcaEd0lcs6^EoCv-rylzmprA7IKT2h8UV#85mm`8EYFDSQ!|ocGSC1Hs_JWkO;YY K{P*Mxo_ql3Wfc(s diff --git a/dev/apple-touch-icon-152x152.png b/dev/apple-touch-icon-152x152.png index 0dc1c3ebeefabce8ae4b086faf96d0dd51090f4b..ec3ec782d11ea5375ad45af555c7e5dcbed68311 100644 GIT binary patch delta 69 zcmbQGI7@Lt6^9fjqxDNR*}jcUDf}X4AqJLK28LFqmf8jeRt5$KUoMcG{EJ@}Lt?`g KiKUaZ1@ZyPixhwW delta 69 zcmbQGI7@Lt6^EoCvqa_f;E0V)Df}X)A%^Bw2F6xKCfWuDRt5$S^c_!5{>3kgAu+M& KXX#{ZfqVeZn-skO diff --git a/dev/apple-touch-icon-180x180.png b/dev/apple-touch-icon-180x180.png index d82553ee9797fc69050f333cb5be6d28c387b80a..bab4d34286cbc6850a95925150e24d5df201f671 100644 GIT binary patch delta 93 zcmZowZ&jaA#UaJX#89lTJac1{zmTh0h=HY*fsvJgfwqAGko>+ZU@Zd!gKCLuL`h0w iNvc(DeoAIqC4-THk%_K>v91xihPK}?1Sg9L=K}!VNE)aB delta 93 zcmZowZ&jaA#UUxkEXj8v`P{}Pe<4@X5JPh-17j;AQ*8qSD+2?!2(MZO1_sp<*NBpo j#FA92-29Zxv`Pje10xe%17lqybPeXLpAJqI6V3+!!l@a7 diff --git a/dev/apple-touch-icon-60x60.png b/dev/apple-touch-icon-60x60.png index b6eecd975e4c41d18a44138f28f89e87c5065d85..7b93499187dbfce722d09b0282ee7c7421f44295 100644 GIT binary patch delta 69 zcmX@hdzN=X6^9fjqeTI~kIBZS>8v7VAqJLK28LFqX4(b@Rt5&<3om?_tji{gA>sBX K!)J0FTRs4*8v8AA%^Bw2F6xK2HFM&Rt5$l38}Xx>$1sWNTk}{ KO`9CYmJa}&d=lXR diff --git a/dev/apple-touch-icon-76x76.png b/dev/apple-touch-icon-76x76.png index 9252a8b5e59763be3b34fa1056d3d73894f4265c..c51cac116fc567e735a5b382d6137a2e434fb4df 100644 GIT binary patch delta 69 zcmZn^Y!sYO#UaJXXvxk|vuIgh=HY*fuWVDxwe6Um4U&;Yqwn{KV+B1ka*CY K{A02ZM?L_T7Ze}> delta 69 zcmZn^Y!sYO#UUxkEXtmy|8!%MH@k>wh@rWafw7g5p|*j6m4U$~@w~jr57}igBo2FB KyEIvdBOd^S!V^^h diff --git a/dev/apple-touch-icon.png b/dev/apple-touch-icon.png index 09eb72e4a3d90e195c7db0142c9296141526af90..450ed7d95f9446fb231d26beb294b334ef676c11 100644 GIT binary patch delta 93 zcmZowZ&jaA#UaJX#K@vP{r|=$e<4@15Ccmq10yQ~Lu~^CD+7bTi_ww{3=FCzt`Q|E ji6yC4x%nxXX_X8{21X{j2FAKZ=o%Dy9xt6NCY%ods{t8* delta 93 zcmZowZ&jaA#UUxkEH(Y6QOU+8e<4@X5JPh-17j;AGi?I{D+7b_4FL}r7#LJbTq844UBb-&^55VeGxNROgJ9^{ooqK diff --git a/dev/articles/r2dii-analysis_files/figure-html/trajetory-portfolio-1.png b/dev/articles/r2dii-analysis_files/figure-html/trajetory-portfolio-1.png index a06d57c13d909f5cb3a63f5ba2bb21a54a40864f..8b62d5f6b264467abc0feccaa14f7971b15dfbb6 100644 GIT binary patch delta 63614 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 delta 63641 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 diff --git a/dev/favicon-16x16.png b/dev/favicon-16x16.png index f02e29fa357949a79ef24f1dcc615a71d58c96c9..5f0841e563aedda892efd08b1cd410b90cc5c3ff 100644 GIT binary patch delta 70 zcmeBV>tx%ohmk{ylZlntEBM*uBa9P8%t8z-tqhE;3{15R46Fl^nw-fbiy?94 M@bPVvXEEgi0IKU0lmGw# delta 70 zcmeBV>tx%ohmk{4kXa${>g!{Zk1$RYF%2;^w=yucGB(mSFt9Q(@DDA?ot()eiy>jh LapvOWSxor=>Zuft diff --git a/dev/favicon-32x32.png b/dev/favicon-32x32.png index df97a3d1a18578a41bbb240dcaef005b037909fa..46dab9725c47cc9c4497a6d7283422b592e7bd7b 100644 GIT binary patch delta 71 zcmX@jb((8K05gXaCllK&XQr6V5zO|CB4!~5mR1HvRt9F;1_o9J22;vXr%ztZB8wsM MRQs;>B$#+=t0o_9tDgXcg diff --git a/dev/index.html b/dev/index.html index 97f20206..4301bbe5 100644 --- a/dev/index.html +++ b/dev/index.html @@ -181,20 +181,20 @@

Add Scenario Targets= scenario_demo_2020, region_isos = region_isos_demo ) -#> # A tibble: 792 × 10 +#> # A tibble: 1,076 × 10 #> sector technology year region scenario_source metric production #> <chr> <chr> <int> <chr> <chr> <chr> <dbl> -#> 1 automotive electric 2020 global demo_2020 projected 324592. -#> 2 automotive electric 2020 global demo_2020 target_cps 324592. -#> 3 automotive electric 2020 global demo_2020 target_sds 324592. -#> 4 automotive electric 2020 global demo_2020 target_sps 324592. -#> 5 automotive electric 2021 global demo_2020 projected 339656. -#> 6 automotive electric 2021 global demo_2020 target_cps 329191. -#> 7 automotive electric 2021 global demo_2020 target_sds 352505. -#> 8 automotive electric 2021 global demo_2020 target_sps 330435. -#> 9 automotive electric 2022 global demo_2020 projected 354720. -#> 10 automotive electric 2022 global demo_2020 target_cps 333693. -#> # ℹ 782 more rows +#> 1 automotive electric 2020 global demo_2020 projected 145649. +#> 2 automotive electric 2020 global demo_2020 target_cps 145649. +#> 3 automotive electric 2020 global demo_2020 target_sds 145649. +#> 4 automotive electric 2020 global demo_2020 target_sps 145649. +#> 5 automotive electric 2021 global demo_2020 projected 147480. +#> 6 automotive electric 2021 global demo_2020 target_cps 146915. +#> 7 automotive electric 2021 global demo_2020 target_sds 153332. +#> 8 automotive electric 2021 global demo_2020 target_sps 147258. +#> 9 automotive electric 2022 global demo_2020 projected 149310. +#> 10 automotive electric 2022 global demo_2020 target_cps 148155. +#> # ℹ 1,066 more rows #> # ℹ 3 more variables: technology_share <dbl>, scope <chr>, #> # percentage_of_initial_production_by_scope <dbl>
    @@ -212,20 +212,20 @@

    Add Scenario Targets#> This will result in company-level results, weighted by the portfolio #> loan size, which is rarely useful. Did you mean to set one of these #> arguments to `FALSE`? -#> # A tibble: 12,140 × 11 +#> # A tibble: 14,505 × 11 #> sector technology year region scenario_source name_abcd metric production #> <chr> <chr> <int> <chr> <chr> <chr> <chr> <dbl> -#> 1 automoti… electric 2020 global demo_2020 Bernardi… proje… 324592. -#> 2 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. -#> 3 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. -#> 4 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. -#> 5 automoti… electric 2021 global demo_2020 Bernardi… proje… 339656. -#> 6 automoti… electric 2021 global demo_2020 Bernardi… targe… 329191. -#> 7 automoti… electric 2021 global demo_2020 Bernardi… targe… 352505. -#> 8 automoti… electric 2021 global demo_2020 Bernardi… targe… 330435. -#> 9 automoti… electric 2022 global demo_2020 Bernardi… proje… 354720. -#> 10 automoti… electric 2022 global demo_2020 Bernardi… targe… 333693. -#> # ℹ 12,130 more rows +#> 1 automoti… electric 2020 global demo_2020 Bernardi… proje… 17951. +#> 2 automoti… electric 2020 global demo_2020 Bernardi… targe… 17951. +#> 3 automoti… electric 2020 global demo_2020 Bernardi… targe… 17951. +#> 4 automoti… electric 2020 global demo_2020 Bernardi… targe… 17951. +#> 5 automoti… electric 2020 global demo_2020 Christia… proje… 11471. +#> 6 automoti… electric 2020 global demo_2020 Christia… targe… 11471. +#> 7 automoti… electric 2020 global demo_2020 Christia… targe… 11471. +#> 8 automoti… electric 2020 global demo_2020 Christia… targe… 11471. +#> 9 automoti… electric 2020 global demo_2020 Donati, … proje… 5611. +#> 10 automoti… electric 2020 global demo_2020 Donati, … targe… 5611. +#> # ℹ 14,495 more rows #> # ℹ 3 more variables: technology_share <dbl>, scope <chr>, #> # percentage_of_initial_production_by_scope <dbl> @@ -250,7 +250,7 @@

    Utility Functions# portfolio level loanbook_joined_to_abcd_scenario %>% summarize_weighted_production(scenario, tmsr, smsp, region) -#> # A tibble: 306 × 9 +#> # A tibble: 756 × 9 #> sector_abcd technology year scenario tmsr smsp region #> <chr> <chr> <int> <chr> <dbl> <dbl> <chr> #> 1 automotive electric 2020 cps 1 0 global @@ -263,27 +263,27 @@

    Utility Functions#> 8 automotive electric 2022 sds 1.32 0.0131 global #> 9 automotive electric 2022 sps 1.29 0.00273 global #> 10 automotive electric 2023 cps 1.35 0.00316 global -#> # ℹ 296 more rows +#> # ℹ 746 more rows #> # ℹ 2 more variables: weighted_production <dbl>, #> # weighted_technology_share <dbl> # company level loanbook_joined_to_abcd_scenario %>% summarize_weighted_production(scenario, tmsr, smsp, region, name_abcd) -#> # A tibble: 4,005 × 10 -#> sector_abcd technology year scenario tmsr smsp region name_abcd -#> <chr> <chr> <int> <chr> <dbl> <dbl> <chr> <chr> -#> 1 automotive electric 2020 cps 1 0 global Bernardi, Bernard… -#> 2 automotive electric 2020 sds 1 0 global Bernardi, Bernard… -#> 3 automotive electric 2020 sps 1 0 global Bernardi, Bernard… -#> 4 automotive electric 2021 cps 1.12 0.00108 global Bernardi, Bernard… -#> 5 automotive electric 2021 sds 1.16 0.00653 global Bernardi, Bernard… -#> 6 automotive electric 2021 sps 1.14 0.00137 global Bernardi, Bernard… -#> 7 automotive electric 2022 cps 1.24 0.00213 global Bernardi, Bernard… -#> 8 automotive electric 2022 sds 1.32 0.0131 global Bernardi, Bernard… -#> 9 automotive electric 2022 sps 1.29 0.00273 global Bernardi, Bernard… -#> 10 automotive electric 2023 cps 1.35 0.00316 global Bernardi, Bernard… -#> # ℹ 3,995 more rows +#> # A tibble: 13,023 × 10 +#> sector_abcd technology year scenario tmsr smsp region name_abcd +#> <chr> <chr> <int> <chr> <dbl> <dbl> <chr> <chr> +#> 1 automotive electric 2020 cps 1 0 global Bernardi, Bernardi … +#> 2 automotive electric 2020 cps 1 0 global Christiansen PLC +#> 3 automotive electric 2020 cps 1 0 global Donati, Donati e Do… +#> 4 automotive electric 2020 cps 1 0 global DuBuque-DuBuque +#> 5 automotive electric 2020 cps 1 0 global Ferrari-Ferrari SPA +#> 6 automotive electric 2020 cps 1 0 global Ferry and Sons +#> 7 automotive electric 2020 cps 1 0 global Goyette-Goyette +#> 8 automotive electric 2020 cps 1 0 global Guerra, Guerra e Gu… +#> 9 automotive electric 2020 cps 1 0 global Gutkowski, Gutkowsk… +#> 10 automotive electric 2020 cps 1 0 global Hilpert, Hilpert an… +#> # ℹ 13,013 more rows #> # ℹ 2 more variables: weighted_production <dbl>, #> # weighted_technology_share <dbl>

    Get started.

    diff --git a/dev/news/index.html b/dev/news/index.html index 1c5194be..1de01f47 100644 --- a/dev/news/index.html +++ b/dev/news/index.html @@ -71,9 +71,13 @@

    r2dii.analysis (development version)

    -
    • Completed deprecation of ald in favour of abcd (#466).

    • -
    • target_market_share now correctly handles input scenarios with a hyphen in their name (#425).

    • -
    • target_market_share now handles abcd with rows where production is NA by filling with 0 (#423).

    • +
      • +target_market_share now outputs target_* value for all years in scenario (#481).
      • +
      • Complete deprecation of ald in favour of abcd (#466).
      • +
      • +target_market_share now correctly handles input scenarios with a hyphen in their name (#425).
      • +
      • +target_market_share now handles abcd with rows where production is NA by filling with 0 (#423).

    r2dii.analysis 0.3.0

    CRAN release: 2023-10-23

    diff --git a/dev/pkgdown.yml b/dev/pkgdown.yml index 57ca6fd1..0c57a9c7 100644 --- a/dev/pkgdown.yml +++ b/dev/pkgdown.yml @@ -6,7 +6,7 @@ articles: r2dii-analysis: r2dii-analysis.html target-market-share: target-market-share.html target-sda: target-sda.html -last_built: 2024-03-25T17:03Z +last_built: 2024-03-26T09:02Z urls: reference: https://rmi-pacta.github.io/r2dii.analysis/reference article: https://rmi-pacta.github.io/r2dii.analysis/articles diff --git a/dev/search.json b/dev/search.json index e2983e55..d957a1e4 100644 --- a/dev/search.json +++ b/dev/search.json @@ -1 +1 @@ -[{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2020 Rocky Mountain Institute Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/production-percent-change.html","id":"weighted-production","dir":"Articles","previous_headings":"","what":"Weighted Production","title":"Indicator Choices:","text":"intents purposes, recommend calculating targets using loan weighted production indicator. particular, define loan weighted production given company, \\(j\\) : \\[ \\overline{p}_{,j}(t) = p_{,j}(t) * \\dfrac{l_j}{\\sum_j l_j}\\] \\(p_{,j}\\) production company \\(\\) technology \\(j\\) \\(l_j\\) loan given company \\(j\\). calculate portfolio targets, aggregate value summing every company portfolio: \\[ \\overline{p}_i (t) = \\sum_j \\left[ p_{,j}(t) * \\dfrac{l_j}{\\sum_j l_j} \\right] \\] Effectively, loan-weighted average production attributed company portfolio. significant result indicator choice small companies (little production) favorably weighted, given loan company sufficiently large. can useful reflect large investments green start-ups. calculate weighted production:","code":"library(r2dii.data) library(r2dii.match) library(r2dii.analysis) master <- loanbook_demo %>% match_name(abcd_demo) %>% prioritize() %>% join_abcd_scenario( abcd = abcd_demo, scenario = scenario_demo_2020, region_isos = region_isos_demo, add_green_technologies = FALSE ) summarize_weighted_production(master) #> # A tibble: 231 × 5 #> sector_abcd technology year weighted_production weighted_technology_share #> #> 1 automotive electric 2020 973775. 0.114 #> 2 automotive electric 2021 1018967. 0.118 #> 3 automotive electric 2022 1064159. 0.122 #> 4 automotive electric 2023 1109351. 0.126 #> 5 automotive electric 2024 1154543. 0.130 #> 6 automotive electric 2025 1199735. 0.133 #> 7 automotive electric 2026 NA NA #> 8 automotive electric 2027 NA NA #> 9 automotive electric 2028 NA NA #> 10 automotive electric 2029 NA NA #> # ℹ 221 more rows"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/production-percent-change.html","id":"weighted-percent-change-in-production","dir":"Articles","previous_headings":"","what":"Weighted Percent Change in Production","title":"Indicator Choices:","text":"-hand, ’re keen understand large corporations portfolio planning make significant changes, percent change production may useful indicator. company, define percent change, \\(\\chi_i(t)\\), compared start year, \\(t_0\\): \\[ \\chi_i(t) = \\dfrac{p_{}(t)-p_{}(t_0)}{p_i(t_0)} * 100\\] \\(p_i(t)\\) indicator (production capacity) technology \\(\\), \\(t0\\) start year analysis. aggregate percent-change production company portfolio-level, using loan-weighted average . particular, loan \\(l_j\\) company \\(j\\), : \\[ \\overline{\\chi_i} = \\sum_j \\left[ \\chi_{,j} * \\dfrac{l_j}{\\sum_j l_j} \\right]\\] noted percent change, \\(\\chi\\), undefined 0 initial production. Intuitively, makes sense, since require “infinite percent” build-grow anything 0. reason, company 0 initial production filtered prior calculating percent change indicator. calculate weighted percent change:","code":"# using the master dataset defined in the previous chunk: summarize_weighted_percent_change(master) #> # A tibble: 231 × 4 #> sector_abcd technology year weighted_percent_change #> #> 1 automotive electric 2020 0 #> 2 automotive electric 2021 0.0881 #> 3 automotive electric 2022 0.176 #> 4 automotive electric 2023 0.264 #> 5 automotive electric 2024 0.352 #> 6 automotive electric 2025 0.440 #> 7 automotive electric 2026 NA #> 8 automotive electric 2027 NA #> 9 automotive electric 2028 NA #> 10 automotive electric 2029 NA #> # ℹ 221 more rows"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"load-your-r2dii-libraries","dir":"Articles","previous_headings":"","what":"Load your r2dii libraries","title":"Introduction to r2dii.analysis","text":"first step analysis load recommended r2dii packages current R session. r2dii.data includes fake data help demonstrate tool r2dii.match provides functions help easily match loanbook asset-level data. plot results, may also load package r2dii.plot. also recommend packages tidyverse; optional useful.","code":"library(r2dii.data) library(r2dii.match) library(r2dii.analysis) library(r2dii.plot) library(tidyverse) #> ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ── #> ✔ dplyr 1.1.4 ✔ readr 2.1.5 #> ✔ forcats 1.0.0 ✔ stringr 1.5.1 #> ✔ ggplot2 3.5.0 ✔ tibble 3.2.1 #> ✔ lubridate 1.9.3 ✔ tidyr 1.3.1 #> ✔ purrr 1.0.2 #> ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ── #> ✖ dplyr::filter() masks stats::filter() #> ✖ dplyr::lag() masks stats::lag() #> ℹ Use the conflicted package () to force all conflicts to become errors"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"match-your-loanbook-to-climate-related-asset-level-data","dir":"Articles","previous_headings":"","what":"Match your loanbook to climate-related asset-level data","title":"Introduction to r2dii.analysis","text":"See r2dii.match complete description process.","code":"# Use these datasets to practice but eventually you should use your own data. # The optional syntax `package::data` is to clarify where the data comes from. loanbook <- r2dii.data::loanbook_demo abcd <- r2dii.data::abcd_demo matched <- match_name(loanbook, abcd) %>% prioritize() matched #> # A tibble: 168 × 28 #> id_loan id_direct_loantaker name_direct_loantaker id_intermediate_pare…¹ #> #> 1 L6 C304 Kassulke-Kassulke NA #> 2 L13 C297 Ladeck NA #> 3 L20 C287 Weinhold NA #> 4 L21 C286 Gallo Group NA #> 5 L22 C285 Austermuhle GmbH NA #> 6 L24 C282 Ferraro-Ferraro Group NA #> 7 L25 C281 Lockman, Lockman and Lock… NA #> 8 L26 C280 Ankunding, Ankunding and … NA #> 9 L27 C278 Donati-Donati Group NA #> 10 L28 C276 Ferraro, Ferraro e Ferrar… NA #> # ℹ 158 more rows #> # ℹ abbreviated name: ¹​id_intermediate_parent_1 #> # ℹ 24 more variables: name_intermediate_parent_1 , #> # id_ultimate_parent , name_ultimate_parent , #> # loan_size_outstanding , loan_size_outstanding_currency , #> # loan_size_credit_limit , loan_size_credit_limit_currency , #> # sector_classification_system , …"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"calculate-targets","dir":"Articles","previous_headings":"","what":"Calculate targets","title":"Introduction to r2dii.analysis","text":"can calculate scenario targets using two different approaches: Market Share Approach, Sectoral Decarbonization Approach.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"market-share-approach","dir":"Articles","previous_headings":"Calculate targets","what":"Market Share Approach","title":"Introduction to r2dii.analysis","text":"Market Share Approach used calculate scenario targets production technology sector. example, can use approach set targets production electric vehicles automotive sector. approach recommended sectors granular technology scenario roadmap exists. Targets can set portfolio level: company level:","code":"# Use these datasets to practice but eventually you should use your own data. scenario <- r2dii.data::scenario_demo_2020 regions <- r2dii.data::region_isos_demo market_share_targets_portfolio <- matched %>% target_market_share( abcd = abcd, scenario = scenario, region_isos = regions ) market_share_targets_portfolio #> # A tibble: 1,501 × 10 #> sector technology year region scenario_source metric production #> #> 1 automotive electric 2020 global demo_2020 projected 324592. #> 2 automotive electric 2020 global demo_2020 target_cps 324592. #> 3 automotive electric 2020 global demo_2020 target_sds 324592. #> 4 automotive electric 2020 global demo_2020 target_sps 324592. #> 5 automotive electric 2021 global demo_2020 projected 339656. #> 6 automotive electric 2021 global demo_2020 target_cps 329191. #> 7 automotive electric 2021 global demo_2020 target_sds 352505. #> 8 automotive electric 2021 global demo_2020 target_sps 330435. #> 9 automotive electric 2022 global demo_2020 projected 354720. #> 10 automotive electric 2022 global demo_2020 target_cps 333693. #> # ℹ 1,491 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope market_share_targets_company <- matched %>% target_market_share( abcd = abcd, scenario = scenario, region_isos = regions, # Output results at company-level. by_company = TRUE ) #> Warning: You've supplied `by_company = TRUE` and `weight_production = TRUE`. #> This will result in company-level results, weighted by the portfolio #> loan size, which is rarely useful. Did you mean to set one of these #> arguments to `FALSE`? market_share_targets_company #> # A tibble: 15,876 × 11 #> sector technology year region scenario_source name_abcd metric production #> #> 1 automoti… electric 2020 global demo_2020 Bernardi… proje… 324592. #> 2 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 3 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 4 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 5 automoti… electric 2021 global demo_2020 Bernardi… proje… 339656. #> 6 automoti… electric 2021 global demo_2020 Bernardi… targe… 329191. #> 7 automoti… electric 2021 global demo_2020 Bernardi… targe… 352505. #> 8 automoti… electric 2021 global demo_2020 Bernardi… targe… 330435. #> 9 automoti… electric 2022 global demo_2020 Bernardi… proje… 354720. #> 10 automoti… electric 2022 global demo_2020 Bernardi… targe… 333693. #> # ℹ 15,866 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"sectoral-decarbonization-approach","dir":"Articles","previous_headings":"Calculate targets","what":"Sectoral Decarbonization Approach","title":"Introduction to r2dii.analysis","text":"Sectoral Decarbonization Approach used calculate scenario targets emission_factor sector. example, can use approach set targets average emission factor cement sector. approach recommended sectors lacking technology roadmaps.","code":"# Use this dataset to practice but eventually you should use your own data. co2 <- r2dii.data::co2_intensity_scenario_demo sda_targets <- matched %>% target_sda(abcd = abcd, co2_intensity_scenario = co2, region_isos = regions) %>% filter(sector == \"cement\", year >= 2020) #> Warning: Removing rows in abcd where `emission_factor` is NA sda_targets #> # A tibble: 110 × 6 #> sector year region scenario_source emission_factor_metric #> #> 1 cement 2020 advanced economies demo_2020 projected #> 2 cement 2020 developing asia demo_2020 projected #> 3 cement 2020 global demo_2020 projected #> 4 cement 2021 advanced economies demo_2020 projected #> 5 cement 2021 developing asia demo_2020 projected #> 6 cement 2021 global demo_2020 projected #> 7 cement 2022 advanced economies demo_2020 projected #> 8 cement 2022 developing asia demo_2020 projected #> 9 cement 2022 global demo_2020 projected #> 10 cement 2023 advanced economies demo_2020 projected #> # ℹ 100 more rows #> # ℹ 1 more variable: emission_factor_value "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"visualization","dir":"Articles","previous_headings":"","what":"Visualization","title":"Introduction to r2dii.analysis","text":"large variety possible visualizations stemming outputs target_market_share() target_sda(). , highlight couple common plots can easily created using r2dii.plot package.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"market-share-sector-level-technology-mix","dir":"Articles","previous_headings":"Visualization","what":"Market Share: Sector-level technology mix","title":"Introduction to r2dii.analysis","text":"market share output, can plot portfolio’s exposure various climate sensitive technologies (projected), compare corporate economy, various scenario targets.","code":"# Pick the targets you want to plot. data <- filter( market_share_targets_portfolio, scenario_source == \"demo_2020\", sector == \"power\", region == \"global\", metric %in% c(\"projected\", \"corporate_economy\", \"target_sds\") ) # Plot the technology mix qplot_techmix(data) #> The `technology_share` values are plotted for extreme years. #> Do you want to plot different years? E.g. filter . with:`subset(., year %in% c(2020, 2030))`. #> Warning: Removed 3 rows containing missing values or values outside the scale range #> (`geom_bar()`)."},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"market-share-technology-level-volume-trajectory","dir":"Articles","previous_headings":"Visualization","what":"Market Share: Technology-level volume trajectory","title":"Introduction to r2dii.analysis","text":"can also plot technology-specific volume trend. starting values normalized 1, emphasize comparing rates buildout /retirement.","code":"data <- filter( market_share_targets_portfolio, sector == \"power\", technology == \"renewablescap\", region == \"global\", scenario_source == \"demo_2020\" ) qplot_trajectory(data)"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"sda-target","dir":"Articles","previous_headings":"Visualization","what":"SDA Target","title":"Introduction to r2dii.analysis","text":"SDA output, can compare projected average emission intensity attributed portfolio, actual emission intensity scenario, scenario compliant SDA pathway portfolio must follow achieve scenario ambition 2050.","code":"data <- filter(sda_targets, sector == \"cement\", region == \"global\") qplot_emission_intensity(data)"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-market-share.html","id":"scenario-market-shares","dir":"Articles","previous_headings":"","what":"Scenario market-shares","title":"Market Share Approach","text":"Say want study portfolio perform specific climate scenario. can allocate scenario efforts production profile portfolio? can two ways – technology, sector.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-market-share.html","id":"market-share-by-technology","dir":"Articles","previous_headings":"Scenario market-shares","what":"1. Market-share by technology","title":"Market Share Approach","text":"define market-share technology : \\[p_{}^{tmsr}(t) = p_{}(t_{0}) + p_{}(t_{0}) * \\frac{s_i(t) - s_{}(t_0)}{s_i(t_0)}\\] can see reduces : \\[p_{}^{tmsr}(t) = p_{}(t_{0}) \\left(1 + \\frac{s_i(t) - s_{}(t_0)}{s_i(t_0)} \\right) \\\\ p_{}^{tmsr}(t) = p_{}(t_{0}) \\left(1 + \\frac{s_i(t)}{s_i(t_0)} -1 \\right) \\\\ p_{}^{tmsr}(t) = p_{}(t_{0}) * \\frac{s_i(t)}{s_i(t_0)}\\] : \\(s_i(t)\\) scenario production technology \\(\\) time \\(t\\), \\(p_{}(t_0)\\) production allocated portfolio technology, \\(\\) time \\(t_0\\), \\(p_{}^{tmsr}(t)\\) portfolio-specific target production technology. define “Technology Market Share Ratio” : \\[\\dfrac{s_i(t)}{s_i(t_0)}\\] method used set targets “decreasing” (ie. brown) technologies.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-market-share.html","id":"market-share-by-sector","dir":"Articles","previous_headings":"Scenario market-shares","what":"2. Market-share by sector","title":"Market Share Approach","text":"calculate market-share sector, use initial production portfolio scenario sector-level instead. \\[p_{}^{smsp}(t) = p_{}(t_0) +P(t_0) * \\left( \\dfrac{s_i(t)-s_i(t_0)}{S(t_0)}\\right)\\] : \\(P_i(t_0)\\) portfolio’s total production sector \\(t_0\\), \\(S(t_0)\\) scenario total production \\(t_0\\). define “Sector Market Share Percentage” : \\[\\dfrac{s_i(t)-s_i(t_0)}{S(t_0)}\\] method used calculate targets “increasing” (ie. green) technologies.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-market-share.html","id":"how-to-calculate-market-share-targets-for-a-given-scenario","dir":"Articles","previous_headings":"","what":"How to calculate market-share targets for a given scenario","title":"Market Share Approach","text":"calculate market-share targets, need use package r2dii.analysis number datasets. One datasets “matched” dataset (loanbook + asset-level data) can get package r2dii.match. datasets use come package r2dii.data; fake show structure data. Use packages. Match loanbook asset level data. Calculate market-share targets production portfolio level. Calculate market-share targets production company level.","code":"library(r2dii.data) library(r2dii.match) library(r2dii.analysis) loanbook <- r2dii.data::loanbook_demo abcd <- r2dii.data::abcd_demo matched <- match_name(loanbook, abcd) %>% # WARNING: Remember to validate the output of match_name() before prioritize() prioritize() matched #> # A tibble: 168 × 28 #> id_loan id_direct_loantaker name_direct_loantaker id_intermediate_pare…¹ #> #> 1 L6 C304 Kassulke-Kassulke NA #> 2 L13 C297 Ladeck NA #> 3 L20 C287 Weinhold NA #> 4 L21 C286 Gallo Group NA #> 5 L22 C285 Austermuhle GmbH NA #> 6 L24 C282 Ferraro-Ferraro Group NA #> 7 L25 C281 Lockman, Lockman and Lock… NA #> 8 L26 C280 Ankunding, Ankunding and … NA #> 9 L27 C278 Donati-Donati Group NA #> 10 L28 C276 Ferraro, Ferraro e Ferrar… NA #> # ℹ 158 more rows #> # ℹ abbreviated name: ¹​id_intermediate_parent_1 #> # ℹ 24 more variables: name_intermediate_parent_1 , #> # id_ultimate_parent , name_ultimate_parent , #> # loan_size_outstanding , loan_size_outstanding_currency , #> # loan_size_credit_limit , loan_size_credit_limit_currency , #> # sector_classification_system , … # portfolio level targets scenario <- r2dii.data::scenario_demo_2020 regions <- r2dii.data::region_isos_demo matched %>% target_market_share(abcd, scenario, regions) #> # A tibble: 1,501 × 10 #> sector technology year region scenario_source metric production #> #> 1 automotive electric 2020 global demo_2020 projected 324592. #> 2 automotive electric 2020 global demo_2020 target_cps 324592. #> 3 automotive electric 2020 global demo_2020 target_sds 324592. #> 4 automotive electric 2020 global demo_2020 target_sps 324592. #> 5 automotive electric 2021 global demo_2020 projected 339656. #> 6 automotive electric 2021 global demo_2020 target_cps 329191. #> 7 automotive electric 2021 global demo_2020 target_sds 352505. #> 8 automotive electric 2021 global demo_2020 target_sps 330435. #> 9 automotive electric 2022 global demo_2020 projected 354720. #> 10 automotive electric 2022 global demo_2020 target_cps 333693. #> # ℹ 1,491 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope matched %>% target_market_share(abcd, scenario, regions, by_company = TRUE) #> Warning: You've supplied `by_company = TRUE` and `weight_production = TRUE`. #> This will result in company-level results, weighted by the portfolio #> loan size, which is rarely useful. Did you mean to set one of these #> arguments to `FALSE`? #> # A tibble: 15,876 × 11 #> sector technology year region scenario_source name_abcd metric production #> #> 1 automoti… electric 2020 global demo_2020 Bernardi… proje… 324592. #> 2 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 3 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 4 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 5 automoti… electric 2021 global demo_2020 Bernardi… proje… 339656. #> 6 automoti… electric 2021 global demo_2020 Bernardi… targe… 329191. #> 7 automoti… electric 2021 global demo_2020 Bernardi… targe… 352505. #> 8 automoti… electric 2021 global demo_2020 Bernardi… targe… 330435. #> 9 automoti… electric 2022 global demo_2020 Bernardi… proje… 354720. #> 10 automoti… electric 2022 global demo_2020 Bernardi… targe… 333693. #> # ℹ 15,866 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-sda.html","id":"sda-methodology","dir":"Articles","previous_headings":"","what":"SDA Methodology","title":"Sectoral Decarbonization Approach (SDA)","text":"Sectoral Decarbonization Approach (SDA) method setting corporate CO2 emissions intensity reduction targets line climate science. method developed Science-Based Targets Initiative (SBTI), international initiative science-based target setting companies initiated CDP, United Nations Global Compact, World Resources Institute (WRI), Worldwide Fund Nature (WWF). context PACTA, methodology used calculate emission factor targets homogenous sectors (.e. sectors technology-level scenario pathways). First, distance, \\(d\\), company’s CO2 emissions intensity per unit production (emissions factor), \\(^{Co}(t)\\) base year, \\(t_0\\), scenario target intensity 2050, \\(^{Sc}(2050)\\) calculated. target intensity 2050 can taken relevant climate scenario: \\[d = ^{Co}(t_0) - ^{Sc}(2050)\\] company’s market share parameter, \\(m(t)\\), defined company’s expected future activity, \\(P^{Co}(t)\\) divided sector’s future activity, \\(P^{Sc}(t)\\) reflect expected forward-looking market share company. given ratio company’s base year market share, derived activity, \\(P^{Co}(t_0)\\) divided sector’s activity year, \\(P^{Sc}(t_0)\\). cases former calculated per company, latter determined climate scenario: \\[m (t) = \\dfrac{P^{Co}(t_0) / P^{Sc}(t_0)}{P^{Co}(t) / P^{Sc}(t)}\\] noted parameter capture change market share company rather inverse. useful equates decreasing parameter company’s market share increasing. equates larger reduction efforts companies market share increasing time. sector decarbonization factor, \\(p(t)\\) defined : \\[ p(t) = \\frac{^{Sc}(t) - ^{Sc}(2050)}{^{Sc}(t_0) - ^{Sc}(2050)}\\] \\(^{}(t)\\) \\(^{Sc}(t)\\) average market scenario emission intensities respectively, time \\(t\\). variable captures remaining effort needed market meet target 2050, per year. SDA assumptions CO2 intensity companies sector converge 2050. Note \\(p(t_0) = 1\\) \\(p(2050) = 0\\), indicating 100% expected decarbonization efforts still met base year 0% left 2050. company-level emission intensity target defined : \\[^{Target}(t) = \\left( d * p (t) * m (t) \\right) + ^{Sc}(2050)\\]","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-sda.html","id":"pacta-assumptions","dir":"Articles","previous_headings":"","what":"PACTA Assumptions","title":"Sectoral Decarbonization Approach (SDA)","text":"SDA applied PACTA differs slightly way applied SBTI. particular, must align top-approach laid climate scenarios bottom-asset-based company data used PACTA analysis. Assumption: Market share stays constant (\\(m(t)\\) = 1) Due lack quantitative data expected market share changes throughout entire time horizon 2050. \\(m(t)\\) set 1 years. SBTI method calculating \\(m(t)\\), higher intensity reduction target cases absolute pathway sector exceeds scenario target. makes sense. However, applying company level counter-intuitive: Companies decrease market share allowed higher CO2-Intensity average market actor. , companies increasing market share forced terms CO2-Intensity ones whose market share remains constant. follows company reaches targeted CO2-Intensity allowed increase share market. desirable outcome. assumption, target calculation reduces : \\[^{Target}(t) = \\left( d * p (t) \\right) + ^{Sc}(2050)\\] Approximation: Adjust base year scenario emission intensity SBTI PACTA methodology target emissions sector taken climate scenarios. implement global economy top-approach applies absolute emissions value year 2050 converts yearly emission intensities. However, may discrepancies Scenario projected emission intensities, bottom-ABCD emission intensities. reflect discrepancy, adjust scenario projections following factor, \\[\\dfrac{^{ABCD}(t_0)}{^{Sc}(t_0)}\\] yielding adjusted scenario pathway: \\['^{Sc}(t) = \\left(\\dfrac{^{ABCD}(t_0)}{^{Sc}(t_0)}\\right) * ^{Sc}(t)\\] yields final PACTA SDA target equation: \\[^{Target}(t) = \\left( d * p (t) \\right) + '^{Sc}(t)\\] Note: \\(d\\) \\(p(t)\\) also must re-calculated using adjusted scenario intensity, \\('^{Sc}\\).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-sda.html","id":"calculating-sda-targets","dir":"Articles","previous_headings":"","what":"Calculating SDA Targets","title":"Sectoral Decarbonization Approach (SDA)","text":"calculate SDA targets need use package r2dii.analysis number datasets, including “matched” dataset (loanbook + asset-level data) can get package r2dii.match. datasets use come package r2dii.data; fake show structure data. Use packages. Match loanbook asset level data. Calculate SDA targets CO2 emissions intensities:","code":"library(r2dii.data) library(r2dii.match) library(r2dii.analysis) loanbook <- r2dii.data::loanbook_demo abcd <- r2dii.data::abcd_demo matched <- match_name(loanbook, abcd) %>% # WARNING: Remember to validate the output of match_name() before prioritize() prioritize() matched #> # A tibble: 168 × 28 #> id_loan id_direct_loantaker name_direct_loantaker id_intermediate_pare…¹ #> #> 1 L6 C304 Kassulke-Kassulke NA #> 2 L13 C297 Ladeck NA #> 3 L20 C287 Weinhold NA #> 4 L21 C286 Gallo Group NA #> 5 L22 C285 Austermuhle GmbH NA #> 6 L24 C282 Ferraro-Ferraro Group NA #> 7 L25 C281 Lockman, Lockman and Lock… NA #> 8 L26 C280 Ankunding, Ankunding and … NA #> 9 L27 C278 Donati-Donati Group NA #> 10 L28 C276 Ferraro, Ferraro e Ferrar… NA #> # ℹ 158 more rows #> # ℹ abbreviated name: ¹​id_intermediate_parent_1 #> # ℹ 24 more variables: name_intermediate_parent_1 , #> # id_ultimate_parent , name_ultimate_parent , #> # loan_size_outstanding , loan_size_outstanding_currency , #> # loan_size_credit_limit , loan_size_credit_limit_currency , #> # sector_classification_system , … co2_intensity <- r2dii.data::co2_intensity_scenario_demo matched %>% target_sda(abcd, co2_intensity) #> Warning: Removing rows in abcd where `emission_factor` is NA #> Warning: Found no matching regions for input scenario #> # A tibble: 0 × 4 #> # ℹ 4 variables: sector , year , emission_factor_metric , #> # emission_factor_value "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Alex Axthelm. Author, maintainer. Jackson Hoffart. Author, contractor. Mauro Lepore. Author, contractor. Klaus Hogedorn. Author. Nicky Halterman. Author. Rocky Mountain Institute. Copyright holder, funder.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Axthelm , Hoffart J, Lepore M, Hogedorn K, Halterman N (2024). r2dii.analysis: Measure Climate Scenario Alignment Corporate Loans. R package version 0.3.0.9000, https://rmi-pacta.github.io/r2dii.analysis/, https://github.com/RMI-PACTA/r2dii.analysis.","code":"@Manual{, title = {r2dii.analysis: Measure Climate Scenario Alignment of Corporate Loans}, author = {Alex Axthelm and Jackson Hoffart and Mauro Lepore and Klaus Hogedorn and Nicky Halterman}, year = {2024}, note = {R package version 0.3.0.9000, https://rmi-pacta.github.io/r2dii.analysis/}, url = {https://github.com/RMI-PACTA/r2dii.analysis}, }"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"r2diianalysis-","dir":"","previous_headings":"","what":"Measure Climate Scenario Alignment of Corporate Loans","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"tools help assess financial portfolio aligns climate goals. summarize key metrics attributed portfolio (e.g. production, emission factors), calculate targets based climate scenarios. implement R last step free software ‘PACTA’ (Paris Agreement Capital Transition Assessment; https://www.transitionmonitor.com/). Financial institutions use ‘PACTA’ study capital allocation impacts climate.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"Install released version r2dii.analysis CRAN : install development version r2dii.analysis GitHub :","code":"install.packages(\"r2dii.analysis\") # install.packages(\"pak\") pak::pak(\"RMI-PACTA/r2dii.analysis\")"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"example","dir":"","previous_headings":"","what":"Example","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"Use library() attach packages need. r2dii.analysis depend packages r2dii.data r2dii.match; suggest install – install.packages(c(\"r2dii.data\", \"r2dii.match\")) – can reproduce examples. Use r2dii.match::match_name() identify matches loanbook asset level data.","code":"library(r2dii.data) library(r2dii.match) library(r2dii.analysis) matched <- match_name(loanbook_demo, abcd_demo) %>% prioritize()"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"add-scenario-targets","dir":"","previous_headings":"Example","what":"Add Scenario Targets","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"Use target_sda() calculate SDA targets CO2 emissions. Use target_market_share calculate market-share scenario targets portfolio level: company level:","code":"matched %>% target_sda( abcd = abcd_demo, co2_intensity_scenario = co2_intensity_scenario_demo, region_isos = region_isos_demo ) #> Warning: Removing rows in abcd where `emission_factor` is NA #> # A tibble: 220 × 6 #> sector year region scenario_source emission_factor_metric #> #> 1 cement 2020 advanced economies demo_2020 projected #> 2 cement 2020 developing asia demo_2020 projected #> 3 cement 2020 global demo_2020 projected #> 4 cement 2021 advanced economies demo_2020 projected #> 5 cement 2021 developing asia demo_2020 projected #> 6 cement 2021 global demo_2020 projected #> 7 cement 2022 advanced economies demo_2020 projected #> 8 cement 2022 developing asia demo_2020 projected #> 9 cement 2022 global demo_2020 projected #> 10 cement 2023 advanced economies demo_2020 projected #> # ℹ 210 more rows #> # ℹ 1 more variable: emission_factor_value matched %>% target_market_share( abcd = abcd_demo, scenario = scenario_demo_2020, region_isos = region_isos_demo ) #> # A tibble: 792 × 10 #> sector technology year region scenario_source metric production #> #> 1 automotive electric 2020 global demo_2020 projected 324592. #> 2 automotive electric 2020 global demo_2020 target_cps 324592. #> 3 automotive electric 2020 global demo_2020 target_sds 324592. #> 4 automotive electric 2020 global demo_2020 target_sps 324592. #> 5 automotive electric 2021 global demo_2020 projected 339656. #> 6 automotive electric 2021 global demo_2020 target_cps 329191. #> 7 automotive electric 2021 global demo_2020 target_sds 352505. #> 8 automotive electric 2021 global demo_2020 target_sps 330435. #> 9 automotive electric 2022 global demo_2020 projected 354720. #> 10 automotive electric 2022 global demo_2020 target_cps 333693. #> # ℹ 782 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope matched %>% target_market_share( abcd = abcd_demo, scenario = scenario_demo_2020, region_isos = region_isos_demo, by_company = TRUE ) #> Warning: You've supplied `by_company = TRUE` and `weight_production = TRUE`. #> This will result in company-level results, weighted by the portfolio #> loan size, which is rarely useful. Did you mean to set one of these #> arguments to `FALSE`? #> # A tibble: 12,140 × 11 #> sector technology year region scenario_source name_abcd metric production #> #> 1 automoti… electric 2020 global demo_2020 Bernardi… proje… 324592. #> 2 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 3 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 4 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 5 automoti… electric 2021 global demo_2020 Bernardi… proje… 339656. #> 6 automoti… electric 2021 global demo_2020 Bernardi… targe… 329191. #> 7 automoti… electric 2021 global demo_2020 Bernardi… targe… 352505. #> 8 automoti… electric 2021 global demo_2020 Bernardi… targe… 330435. #> 9 automoti… electric 2022 global demo_2020 Bernardi… proje… 354720. #> 10 automoti… electric 2022 global demo_2020 Bernardi… targe… 333693. #> # ℹ 12,130 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"utility-functions","dir":"","previous_headings":"Example","what":"Utility Functions","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"target_*() functions provide shortcuts common operations. wrap utility functions may also use directly: Use join_abcd_scenario() join matched dataset relevant scenario data, pick assets relevant regions. Use summarize_weighted_production() different grouping arguments calculate scenario-targets: Get started.","code":"loanbook_joined_to_abcd_scenario <- matched %>% join_abcd_scenario( abcd = abcd_demo, scenario = scenario_demo_2020, region_isos = region_isos_demo ) # portfolio level loanbook_joined_to_abcd_scenario %>% summarize_weighted_production(scenario, tmsr, smsp, region) #> # A tibble: 306 × 9 #> sector_abcd technology year scenario tmsr smsp region #> #> 1 automotive electric 2020 cps 1 0 global #> 2 automotive electric 2020 sds 1 0 global #> 3 automotive electric 2020 sps 1 0 global #> 4 automotive electric 2021 cps 1.12 0.00108 global #> 5 automotive electric 2021 sds 1.16 0.00653 global #> 6 automotive electric 2021 sps 1.14 0.00137 global #> 7 automotive electric 2022 cps 1.24 0.00213 global #> 8 automotive electric 2022 sds 1.32 0.0131 global #> 9 automotive electric 2022 sps 1.29 0.00273 global #> 10 automotive electric 2023 cps 1.35 0.00316 global #> # ℹ 296 more rows #> # ℹ 2 more variables: weighted_production , #> # weighted_technology_share # company level loanbook_joined_to_abcd_scenario %>% summarize_weighted_production(scenario, tmsr, smsp, region, name_abcd) #> # A tibble: 4,005 × 10 #> sector_abcd technology year scenario tmsr smsp region name_abcd #> #> 1 automotive electric 2020 cps 1 0 global Bernardi, Bernard… #> 2 automotive electric 2020 sds 1 0 global Bernardi, Bernard… #> 3 automotive electric 2020 sps 1 0 global Bernardi, Bernard… #> 4 automotive electric 2021 cps 1.12 0.00108 global Bernardi, Bernard… #> 5 automotive electric 2021 sds 1.16 0.00653 global Bernardi, Bernard… #> 6 automotive electric 2021 sps 1.14 0.00137 global Bernardi, Bernard… #> 7 automotive electric 2022 cps 1.24 0.00213 global Bernardi, Bernard… #> 8 automotive electric 2022 sds 1.32 0.0131 global Bernardi, Bernard… #> 9 automotive electric 2022 sps 1.29 0.00273 global Bernardi, Bernard… #> 10 automotive electric 2023 cps 1.35 0.00316 global Bernardi, Bernard… #> # ℹ 3,995 more rows #> # ℹ 2 more variables: weighted_production , #> # weighted_technology_share "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"funding","dir":"","previous_headings":"","what":"Funding","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"project received funding European Union LIFE program International Climate Initiative (IKI). Federal Ministry Environment, Nature Conservation Nuclear Safety (BMU) supports initiative basis decision adopted German Bundestag. views expressed sole responsibility authors necessarily reflect views funders. funders responsible use may made information contains.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/join_abcd_scenario.html","id":null,"dir":"Reference","previous_headings":"","what":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","title":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","text":"join_abcd_scenario() simple wrapper several calls dplyr::join_*(), forming master dataset used later steps analysis.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/join_abcd_scenario.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","text":"","code":"join_abcd_scenario( data, abcd, scenario, region_isos = r2dii.data::region_isos, add_green_technologies = FALSE )"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/join_abcd_scenario.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","text":"data data frame like output r2dii.match::prioritize. abcd asset level data frame like r2dii.data::abcd_demo. scenario scenario data frame like r2dii.data::scenario_demo_2020. region_isos data frame like r2dii.data::region_isos (default). add_green_technologies Logical vector length 1. FALSE defaults outputting technologies present data abcd. Set FALSE add rows possible green technologies (0 production).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/join_abcd_scenario.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","text":"Returns fully joined data frame, linking portfolio, abcd scenario.","code":""},{"path":[]},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/join_abcd_scenario.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","text":"","code":"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 ) #> # A tibble: 15,207 × 45 #> id_loan id_direct_loantaker name_direct_loantaker id_intermediate_parent_1 #> #> 1 L6 C304 Kassulke-Kassulke NA #> 2 L6 C304 Kassulke-Kassulke NA #> 3 L6 C304 Kassulke-Kassulke NA #> 4 L6 C304 Kassulke-Kassulke NA #> 5 L6 C304 Kassulke-Kassulke NA #> 6 L6 C304 Kassulke-Kassulke NA #> 7 L6 C304 Kassulke-Kassulke NA #> 8 L6 C304 Kassulke-Kassulke NA #> 9 L6 C304 Kassulke-Kassulke NA #> 10 L6 C304 Kassulke-Kassulke NA #> # ℹ 15,197 more rows #> # ℹ 41 more variables: name_intermediate_parent_1 , #> # id_ultimate_parent , name_ultimate_parent , #> # loan_size_outstanding , loan_size_outstanding_currency , #> # loan_size_credit_limit , loan_size_credit_limit_currency , #> # sector_classification_system , sector_classification_input_type , #> # sector_classification_direct_loantaker , fi_type , …"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/pipe.html","id":null,"dir":"Reference","previous_headings":"","what":"Pipe operator — %>%","title":"Pipe operator — %>%","text":"See magrittr::%>% details.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/pipe.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pipe operator — %>%","text":"","code":"lhs %>% rhs"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/pipe.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pipe operator — %>%","text":"lhs value magrittr placeholder. rhs function call using magrittr semantics.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/pipe.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pipe operator — %>%","text":"result calling rhs(lhs).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/r2dii.analysis-package.html","id":null,"dir":"Reference","previous_headings":"","what":"r2dii.analysis: Measure Climate Scenario Alignment of Corporate Loans — r2dii.analysis-package","title":"r2dii.analysis: Measure Climate Scenario Alignment of Corporate Loans — r2dii.analysis-package","text":"tools help assess corporate lending portfolio aligns climate goals. summarize key climate indicators attributed portfolio (e.g. production, emission factors), calculate alignment targets based climate scenarios. implement R last step free software 'PACTA' (Paris Agreement Capital Transition Assessment; https://www.transitionmonitor.com/). Financial institutions use 'PACTA' study capital allocation decisions align climate change mitigation goals.","code":""},{"path":[]},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/r2dii.analysis-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"r2dii.analysis: Measure Climate Scenario Alignment of Corporate Loans — r2dii.analysis-package","text":"Maintainer: Alex Axthelm aaxthelm@rmi.org (ORCID) Authors: Jackson Hoffart jackson.hoffart@gmail.com (ORCID) [contractor] Mauro Lepore maurolepore@gmail.com (ORCID) [contractor] Klaus Hogedorn klaus@2degrees-investing.org Nicky Halterman nicholas..halterman@gmail.com contributors: Rocky Mountain Institute PACTA4banks@rmi.org [copyright holder, funder]","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":null,"dir":"Reference","previous_headings":"","what":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"Based weight loan per sector per year, summarize_weighted_production() summarize_weighted_percent_change() summarize production percent-change, respectively.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"","code":"summarize_weighted_production(data, ..., use_credit_limit = FALSE) summarize_weighted_percent_change(data, ..., use_credit_limit = FALSE)"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"data data frame like output join_abcd_scenario(). ... Variables group . use_credit_limit Logical vector length 1. FALSE defaults using column loan_size_outstanding. Set TRUE instead use column loan_size_credit_limit.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"tibble groups input () columns: sector, technology, year; weighted_production weighted_production summarize_weighted_production() summarize_weighted_percent_change(), respectively.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":"warning","dir":"Reference","previous_headings":"","what":"Warning","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"percent-change analysis excludes companies 0 production. percent-change undefined companies initial production; including companies cause percent-change percentage infinite, wrong.","code":""},{"path":[]},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"","code":"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) #> # A tibble: 12 × 5 #> sector_abcd technology year weighted_production weighted_technology_share #> #> 1 power hydrocap 2020 50971. 0.421 #> 2 power hydrocap 2021 50230. 0.421 #> 3 power hydrocap 2022 49490. 0.421 #> 4 power hydrocap 2023 48749. 0.421 #> 5 power hydrocap 2024 48009. 0.421 #> 6 power hydrocap 2025 47268. 0.421 #> 7 power renewablescap 2020 61070. 3.35 #> 8 power renewablescap 2021 61103. 3.35 #> 9 power renewablescap 2022 61137. 3.35 #> 10 power renewablescap 2023 61170. 3.35 #> 11 power renewablescap 2024 61204. 3.35 #> 12 power renewablescap 2025 42533. 2.85 summarize_weighted_production(master, use_credit_limit = TRUE) #> # A tibble: 12 × 5 #> sector_abcd technology year weighted_production weighted_technology_share #> #> 1 power hydrocap 2020 46073. 0.381 #> 2 power hydrocap 2021 45404. 0.381 #> 3 power hydrocap 2022 44734. 0.381 #> 4 power hydrocap 2023 44065. 0.381 #> 5 power hydrocap 2024 43396. 0.381 #> 6 power hydrocap 2025 42726. 0.381 #> 7 power renewablescap 2020 60695. 3.37 #> 8 power renewablescap 2021 60416. 3.37 #> 9 power renewablescap 2022 60138. 3.37 #> 10 power renewablescap 2023 59860. 3.37 #> 11 power renewablescap 2024 59582. 3.37 #> 12 power renewablescap 2025 44619. 2.98 summarize_weighted_percent_change(master) #> # A tibble: 12 × 4 #> sector_abcd technology year weighted_percent_change #> #> 1 power hydrocap 2020 0 #> 2 power hydrocap 2021 -0.0873 #> 3 power hydrocap 2022 -0.175 #> 4 power hydrocap 2023 -0.262 #> 5 power hydrocap 2024 -0.349 #> 6 power hydrocap 2025 -0.436 #> 7 power renewablescap 2020 0 #> 8 power renewablescap 2021 0.000439 #> 9 power renewablescap 2022 0.000877 #> 10 power renewablescap 2023 0.00132 #> 11 power renewablescap 2024 0.00175 #> 12 power renewablescap 2025 -0.0858 summarize_weighted_percent_change(master, use_credit_limit = TRUE) #> # A tibble: 12 × 4 #> sector_abcd technology year weighted_percent_change #> #> 1 power hydrocap 2020 0 #> 2 power hydrocap 2021 -0.0789 #> 3 power hydrocap 2022 -0.158 #> 4 power hydrocap 2023 -0.237 #> 5 power hydrocap 2024 -0.316 #> 6 power hydrocap 2025 -0.395 #> 7 power renewablescap 2020 0 #> 8 power renewablescap 2021 -0.00364 #> 9 power renewablescap 2022 -0.00729 #> 10 power renewablescap 2023 -0.0109 #> 11 power renewablescap 2024 -0.0146 #> 12 power renewablescap 2025 -0.0898"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":null,"dir":"Reference","previous_headings":"","what":"Add targets for production, using the market share approach — target_market_share","title":"Add targets for production, using the market share approach — target_market_share","text":"function calculates portfolio-level production targets, calculated using market share approach applied relevant climate production forecast.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add targets for production, using the market share approach — target_market_share","text":"","code":"target_market_share( data, abcd, scenario, region_isos = r2dii.data::region_isos, use_credit_limit = FALSE, by_company = FALSE, weight_production = TRUE, increasing_or_decreasing = r2dii.data::increasing_or_decreasing )"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add targets for production, using the market share approach — target_market_share","text":"data \"data.frame\" like output r2dii.match::prioritize. abcd asset level data frame like r2dii.data::abcd_demo. scenario scenario data frame like r2dii.data::scenario_demo_2020. region_isos data frame like r2dii.data::region_isos (default). use_credit_limit Logical vector length 1. FALSE defaults using column loan_size_outstanding. Set TRUE use column loan_size_credit_limit instead. by_company Logical vector length 1. FALSE defaults outputting production_value portfolio-level. Set TRUE output production_value company-level. weight_production Logical vector length 1. TRUE defaults outputting production, weighted relative loan-size. Set FALSE output unweighted production values. increasing_or_decreasing data frame like r2dii.data::increasing_or_decreasing.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add targets for production, using the market share approach — target_market_share","text":"tibble including summarized columns metric, production, technology_share, percentage_of_initial_production_by_scope scope. by_company = TRUE, output also column name_abcd.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":"handling-grouped-data","dir":"Reference","previous_headings":"","what":"Handling grouped data","title":"Add targets for production, using the market share approach — target_market_share","text":"function ignores existing groups outputs ungrouped data.","code":""},{"path":[]},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add targets for production, using the market share approach — target_market_share","text":"","code":"library(r2dii.data) library(r2dii.match) loanbook <- head(loanbook_demo, 100) abcd <- head(abcd_demo, 100) matched <- loanbook %>% match_name(abcd) %>% prioritize() # Calculate targets at portfolio level matched %>% target_market_share( abcd = abcd, scenario = scenario_demo_2020, region_isos = region_isos_demo ) #> # A tibble: 373 × 10 #> sector technology year region scenario_source metric production #> #> 1 power hydrocap 2020 global demo_2020 projected 16990. #> 2 power hydrocap 2020 global demo_2020 target_cps 16990. #> 3 power hydrocap 2020 global demo_2020 target_sds 16990. #> 4 power hydrocap 2020 global demo_2020 target_sps 16990. #> 5 power hydrocap 2021 global demo_2020 projected 16743. #> 6 power hydrocap 2021 global demo_2020 target_cps 17004. #> 7 power hydrocap 2021 global demo_2020 target_sds 17012. #> 8 power hydrocap 2021 global demo_2020 target_sps 17005. #> 9 power hydrocap 2022 global demo_2020 projected 16497. #> 10 power hydrocap 2022 global demo_2020 target_cps 17018. #> # ℹ 363 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope # Calculate targets at company level matched %>% target_market_share( abcd = abcd, scenario = scenario_demo_2020, region_isos = region_isos_demo, by_company = TRUE ) #> Warning: You've supplied `by_company = TRUE` and `weight_production = TRUE`. #> This will result in company-level results, weighted by the portfolio #> loan size, which is rarely useful. Did you mean to set one of these #> arguments to `FALSE`? #> # A tibble: 1,408 × 11 #> sector technology year region scenario_source name_abcd metric production #> #> 1 power hydrocap 2020 global demo_2020 Giordano, G… proje… 16990. #> 2 power hydrocap 2020 global demo_2020 Giordano, G… targe… 16990. #> 3 power hydrocap 2020 global demo_2020 Giordano, G… targe… 16990. #> 4 power hydrocap 2020 global demo_2020 Giordano, G… targe… 16990. #> 5 power hydrocap 2021 global demo_2020 Giordano, G… proje… 16743. #> 6 power hydrocap 2021 global demo_2020 Giordano, G… targe… 17004. #> 7 power hydrocap 2021 global demo_2020 Giordano, G… targe… 17012. #> 8 power hydrocap 2021 global demo_2020 Giordano, G… targe… 17005. #> 9 power hydrocap 2022 global demo_2020 Giordano, G… proje… 16497. #> 10 power hydrocap 2022 global demo_2020 Giordano, G… targe… 17018. #> # ℹ 1,398 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope matched %>% target_market_share( abcd = abcd, scenario = scenario_demo_2020, region_isos = region_isos_demo, # Calculate unweighted targets weight_production = FALSE ) #> # A tibble: 373 × 10 #> sector technology year region scenario_source metric production #> #> 1 power hydrocap 2020 global demo_2020 projected 121032. #> 2 power hydrocap 2020 global demo_2020 target_cps 121032. #> 3 power hydrocap 2020 global demo_2020 target_sds 121032. #> 4 power hydrocap 2020 global demo_2020 target_sps 121032. #> 5 power hydrocap 2021 global demo_2020 projected 119274. #> 6 power hydrocap 2021 global demo_2020 target_cps 121129. #> 7 power hydrocap 2021 global demo_2020 target_sds 121187. #> 8 power hydrocap 2021 global demo_2020 target_sps 121139. #> 9 power hydrocap 2022 global demo_2020 projected 117515. #> 10 power hydrocap 2022 global demo_2020 target_cps 121227. #> # ℹ 363 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":null,"dir":"Reference","previous_headings":"","what":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"function calculates targets CO2 emissions per unit production portfolio-level, otherwise referred \"emissions factors\". uses sectoral-decarbonization approach (SDA) calculate targets.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"","code":"target_sda( data, abcd, co2_intensity_scenario, use_credit_limit = FALSE, by_company = FALSE, region_isos = r2dii.data::region_isos )"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"data dataframe like output r2dii.match::prioritize(). abcd asset-level data frame like r2dii.data::abcd_demo. co2_intensity_scenario scenario data frame like r2dii.data::co2_intensity_scenario_demo. use_credit_limit Logical vector length 1. FALSE defaults using column loan_size_outstanding. Set TRUE instead use column loan_size_credit_limit. by_company Logical vector length 1. FALSE defaults outputting weighted_production_value portfolio-level. Set TRUE output weighted_production_value company-level. region_isos data frame like r2dii.data::region_isos (default).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"tibble including summarized columns emission_factor_metric emission_factor_value. by_company = TRUE, output also column name_abcd.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":"handling-grouped-data","dir":"Reference","previous_headings":"","what":"Handling grouped data","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"function ignores existing groups outputs ungrouped data.","code":""},{"path":[]},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"","code":"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 ) #> Warning: Removing rows in abcd where `emission_factor` is NA #> Warning: Found no match between loanbook and abcd. #> # A tibble: 0 × 4 #> # ℹ 4 variables: sector , year , emission_factor_metric , #> # emission_factor_value # 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 ) #> Warning: Removing rows in abcd where `emission_factor` is NA #> Warning: Found no match between loanbook and abcd. #> # A tibble: 0 × 4 #> # ℹ 4 variables: sector , year , emission_factor_metric , #> # emission_factor_value "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/tidyeval.html","id":null,"dir":"Reference","previous_headings":"","what":"Tidy eval helpers — tidyeval","title":"Tidy eval helpers — tidyeval","text":"learn tidy eval use tools, check Metaprogramming section Advanced R.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/tidyeval.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Tidy eval helpers — tidyeval","text":"sym() creates symbol string syms() creates list symbols character vector. enquo() enquos() delay execution one several function arguments. enquo() returns single quoted expression, like blueprint delayed computation. enquos() returns list quoted expressions. expr() quotes new expression locally. mostly useful build new expressions around arguments captured enquo() enquos(): expr(mean(!!enquo(arg), na.rm = TRUE)). as_name() transforms quoted variable name string. Supplying something else quoted variable name error. unlike as_label() also returns single string supports kind R object input, including quoted function calls vectors. purpose summarise object single label. label often suitable default name. know quoted expression contains (instance expressions captured enquo() variable name, call function, unquoted constant), use as_label(). know quoted simple variable name, like enforce , use as_name().","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-development-version","dir":"Changelog","previous_headings":"","what":"r2dii.analysis (development version)","title":"r2dii.analysis (development version)","text":"Completed deprecation ald favour abcd (#466). target_market_share now correctly handles input scenarios hyphen name (#425). target_market_share now handles abcd rows production NA filling 0 (#423).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-030","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.3.0","title":"r2dii.analysis 0.3.0","text":"CRAN release: 2023-10-23 target_sda now uses final year scenario convergence target by_company = TRUE (#445). target_market_share gains argument increasing_or_decreasing (#426).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-021","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.2.1","title":"r2dii.analysis 0.2.1","text":"CRAN release: 2022-11-03 r2dii.analysis transferred new organization: https://github.com/RMI-PACTA/.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-020","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.2.0","title":"r2dii.analysis 0.2.0","text":"CRAN release: 2022-05-05 New argument abcd target_market_share() target_sda supersedes argument ald (#404). target_sda() now outputs data sector values three input datasets (data, ald co2_intensity_scenario) (#390). target_sda() now outputs unweighted emission_factor by_company TRUE (#376). target_sda() gains region_isos argument (#323). target_market_share() now outputs values years ald scenario inputs (#394). target_market_share() now outputs two new columns, percentage_of_initial_production_by_scope scope (ADO #4143).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-0112","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.12","title":"r2dii.analysis 0.1.12","text":"CRAN release: 2021-08-18 target_market_share() now outputs 0 technology_share, companies 0 sectoral production (#306 @Antoine-Lalechere). target_sda() now filters scenario start year consistent ald start year (#346 @waltjl).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-0110","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.10","title":"r2dii.analysis 0.1.10","text":"CRAN release: 2021-07-09 target_market_share() now sets negative smsp targets zero (#336). target_market_share() now outputs sectors present input datasets (#329). target_market_share() now always adds targets green technologies (defined r2dii.data::green_or_brown), even present input data (#318 @Antoine-Lalechere). target_market_share() now correctly groups region calculating technology_share (#315 @Antoine-Lalechere).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-019","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.9","title":"r2dii.analysis 0.1.9","text":"CRAN release: 2021-06-30 target_sda() now outputs sector values present input co2_intensity_scenario data (#308). target_sda() now outputs targets range years input co2_intenstiy_scenario (#307).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-018","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.8","title":"r2dii.analysis 0.1.8","text":"CRAN release: 2021-05-22 target_market_share() now correctly outputs target technology share, line methodology (@georgeharris2deg #277). target_market_share() now correctly projects technology share ‘production / total production’ computing company, unweighted relative loan size (@KapitanKombajn #288). target_market_share() longer outputs columns sector_weighted_production technology_weighted_production. columns internal shouldn’t face users (#291).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-016","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.6","title":"r2dii.analysis 0.1.6","text":"CRAN release: 2021-03-10 target_market_share() now correctly outputs technology_share multiple loans different level company (@ab-bbva #265).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-015","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.5","title":"r2dii.analysis 0.1.5","text":"CRAN release: 2021-01-22 target_market_share() now errors input data unexpected column (@georgeharris2deg #267). target_market_share() now correctly outputs technology_share multiple loans company (@georgeharris2deg #262, @ab-bbva #265).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-014","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.4","title":"r2dii.analysis 0.1.4","text":"CRAN release: 2021-01-05 target_market_share() now correctly outputs unweighted production company, equal ald-production one company multiple loans different size (#255 @georgeharris2deg).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-013","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.3","title":"r2dii.analysis 0.1.3","text":"CRAN release: 2020-12-15 target_market_share() now correctly outputs unweighted production multiple levels exist company (#249).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-012","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.2","title":"r2dii.analysis 0.1.2","text":"CRAN release: 2020-12-05 target_market_share() now outputs weighted_technology_share correctly sums 1 grouped sector, metric scenario (#218). target_market_share() now correctly outputs unweighted production multiple loans exist company (#239). target_market_share() now outputs empty named tibble matching region definitions can found (#236). target_market_share now outputs technologies present ald, even present data (#235). target_sda() now interpolates input scenario file year correctly calculates target, regardless time-horizon ald (#234). Hyperlinks “Get Started” tab website now points correct links (#222 @apmanning). Depend dplyr >= 0.8.5, explicitly. commit version newer dplyr 1 still relatively new, represents major change users initially resist. Relax dependency rlang, mostly driven dynamically recursive dependencies. example, dplyr 0.8.5 depends specific version rlang recent version explicitly depended – suggests explicit rlang unhelpful misleading. New internal data loanbook_stable region_isos_stable make regression tests stable (#227).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-011","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.1","title":"r2dii.analysis 0.1.1","text":"CRAN release: 2020-09-12 Change license MIT. website’s home page now thanks founders. target_market_share() now works expected value column scenario missing value column region. longer results output columns production technology_share type “list” (#203). website now shows News tab.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-010","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.0","title":"r2dii.analysis 0.1.0","text":"CRAN release: 2020-09-03 target_sda() now correctly handles differing country_of_domicile inputs (#171). target_market_share() now outputs technology_share (#184). join_ald_scenario() now returns visibly dev-magrittr (#188 @lionel-). target_market_share() gains weight_production parameter (#181). target_market_share() now correctly use sector_ald column input data argument (#178). target_sda() now automatically filters ald rows emissions_factor values NA (#173). join_ald_scenario() now converts lower case values columns sector_ald technology (#172). target_sda() now aggregates input ald technology plant_location prior calculating targets (@QianFeng2020 #160). target_sda() now errors input data duplicated id_loan (@QianFeng2020 #164). target_sda() gains by_company parameter (#155). target_market_share() now outputs actual aggregated corporate economy. Previously, output , erroneously, normalized starting portfolio value (#158). target_sda() now correctly calculates SDA targets (#153): Targets now calculated using scenario data adjusted corporate economy data. adjusted scenario data also output function along usual metrics. Methodology error fixed, reflected code. Previously, target , incorrectly, calculated multiplying adjusted scenario. Now scenario data added instead. New summarize_weighted_percent_change() allows user calculate new indicator (#141). target_market_share() longer errors combination sector scenario_target_value uniquely identify observation (@georgeharris2deg #142).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-001","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.0.1","title":"r2dii.analysis 0.0.1","text":"CRAN release: 2020-06-28 First release CRAN","code":""}] +[{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2020 Rocky Mountain Institute Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/production-percent-change.html","id":"weighted-production","dir":"Articles","previous_headings":"","what":"Weighted Production","title":"Indicator Choices:","text":"intents purposes, recommend calculating targets using loan weighted production indicator. particular, define loan weighted production given company, \\(j\\) : \\[ \\overline{p}_{,j}(t) = p_{,j}(t) * \\dfrac{l_j}{\\sum_j l_j}\\] \\(p_{,j}\\) production company \\(\\) technology \\(j\\) \\(l_j\\) loan given company \\(j\\). calculate portfolio targets, aggregate value summing every company portfolio: \\[ \\overline{p}_i (t) = \\sum_j \\left[ p_{,j}(t) * \\dfrac{l_j}{\\sum_j l_j} \\right] \\] Effectively, loan-weighted average production attributed company portfolio. significant result indicator choice small companies (little production) favorably weighted, given loan company sufficiently large. can useful reflect large investments green start-ups. calculate weighted production:","code":"library(r2dii.data) library(r2dii.match) library(r2dii.analysis) master <- loanbook_demo %>% match_name(abcd_demo) %>% prioritize() %>% join_abcd_scenario( abcd = abcd_demo, scenario = scenario_demo_2020, region_isos = region_isos_demo, add_green_technologies = FALSE ) summarize_weighted_production(master) #> # A tibble: 231 × 5 #> sector_abcd technology year weighted_production weighted_technology_share #> #> 1 automotive electric 2020 973775. 0.114 #> 2 automotive electric 2021 1018967. 0.118 #> 3 automotive electric 2022 1064159. 0.122 #> 4 automotive electric 2023 1109351. 0.126 #> 5 automotive electric 2024 1154543. 0.130 #> 6 automotive electric 2025 1199735. 0.133 #> 7 automotive electric 2026 NA NA #> 8 automotive electric 2027 NA NA #> 9 automotive electric 2028 NA NA #> 10 automotive electric 2029 NA NA #> # ℹ 221 more rows"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/production-percent-change.html","id":"weighted-percent-change-in-production","dir":"Articles","previous_headings":"","what":"Weighted Percent Change in Production","title":"Indicator Choices:","text":"-hand, ’re keen understand large corporations portfolio planning make significant changes, percent change production may useful indicator. company, define percent change, \\(\\chi_i(t)\\), compared start year, \\(t_0\\): \\[ \\chi_i(t) = \\dfrac{p_{}(t)-p_{}(t_0)}{p_i(t_0)} * 100\\] \\(p_i(t)\\) indicator (production capacity) technology \\(\\), \\(t0\\) start year analysis. aggregate percent-change production company portfolio-level, using loan-weighted average . particular, loan \\(l_j\\) company \\(j\\), : \\[ \\overline{\\chi_i} = \\sum_j \\left[ \\chi_{,j} * \\dfrac{l_j}{\\sum_j l_j} \\right]\\] noted percent change, \\(\\chi\\), undefined 0 initial production. Intuitively, makes sense, since require “infinite percent” build-grow anything 0. reason, company 0 initial production filtered prior calculating percent change indicator. calculate weighted percent change:","code":"# using the master dataset defined in the previous chunk: summarize_weighted_percent_change(master) #> # A tibble: 231 × 4 #> sector_abcd technology year weighted_percent_change #> #> 1 automotive electric 2020 0 #> 2 automotive electric 2021 0.0881 #> 3 automotive electric 2022 0.176 #> 4 automotive electric 2023 0.264 #> 5 automotive electric 2024 0.352 #> 6 automotive electric 2025 0.440 #> 7 automotive electric 2026 NA #> 8 automotive electric 2027 NA #> 9 automotive electric 2028 NA #> 10 automotive electric 2029 NA #> # ℹ 221 more rows"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"load-your-r2dii-libraries","dir":"Articles","previous_headings":"","what":"Load your r2dii libraries","title":"Introduction to r2dii.analysis","text":"first step analysis load recommended r2dii packages current R session. r2dii.data includes fake data help demonstrate tool r2dii.match provides functions help easily match loanbook asset-level data. plot results, may also load package r2dii.plot. also recommend packages tidyverse; optional useful.","code":"library(r2dii.data) library(r2dii.match) library(r2dii.analysis) library(r2dii.plot) library(tidyverse) #> ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ── #> ✔ dplyr 1.1.4 ✔ readr 2.1.5 #> ✔ forcats 1.0.0 ✔ stringr 1.5.1 #> ✔ ggplot2 3.5.0 ✔ tibble 3.2.1 #> ✔ lubridate 1.9.3 ✔ tidyr 1.3.1 #> ✔ purrr 1.0.2 #> ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ── #> ✖ dplyr::filter() masks stats::filter() #> ✖ dplyr::lag() masks stats::lag() #> ℹ Use the conflicted package () to force all conflicts to become errors"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"match-your-loanbook-to-climate-related-asset-level-data","dir":"Articles","previous_headings":"","what":"Match your loanbook to climate-related asset-level data","title":"Introduction to r2dii.analysis","text":"See r2dii.match complete description process.","code":"# Use these datasets to practice but eventually you should use your own data. # The optional syntax `package::data` is to clarify where the data comes from. loanbook <- r2dii.data::loanbook_demo abcd <- r2dii.data::abcd_demo matched <- match_name(loanbook, abcd) %>% prioritize() matched #> # A tibble: 168 × 28 #> id_loan id_direct_loantaker name_direct_loantaker id_intermediate_pare…¹ #> #> 1 L6 C304 Kassulke-Kassulke NA #> 2 L13 C297 Ladeck NA #> 3 L20 C287 Weinhold NA #> 4 L21 C286 Gallo Group NA #> 5 L22 C285 Austermuhle GmbH NA #> 6 L24 C282 Ferraro-Ferraro Group NA #> 7 L25 C281 Lockman, Lockman and Lock… NA #> 8 L26 C280 Ankunding, Ankunding and … NA #> 9 L27 C278 Donati-Donati Group NA #> 10 L28 C276 Ferraro, Ferraro e Ferrar… NA #> # ℹ 158 more rows #> # ℹ abbreviated name: ¹​id_intermediate_parent_1 #> # ℹ 24 more variables: name_intermediate_parent_1 , #> # id_ultimate_parent , name_ultimate_parent , #> # loan_size_outstanding , loan_size_outstanding_currency , #> # loan_size_credit_limit , loan_size_credit_limit_currency , #> # sector_classification_system , …"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"calculate-targets","dir":"Articles","previous_headings":"","what":"Calculate targets","title":"Introduction to r2dii.analysis","text":"can calculate scenario targets using two different approaches: Market Share Approach, Sectoral Decarbonization Approach.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"market-share-approach","dir":"Articles","previous_headings":"Calculate targets","what":"Market Share Approach","title":"Introduction to r2dii.analysis","text":"Market Share Approach used calculate scenario targets production technology sector. example, can use approach set targets production electric vehicles automotive sector. approach recommended sectors granular technology scenario roadmap exists. Targets can set portfolio level: company level:","code":"# Use these datasets to practice but eventually you should use your own data. scenario <- r2dii.data::scenario_demo_2020 regions <- r2dii.data::region_isos_demo market_share_targets_portfolio <- matched %>% target_market_share( abcd = abcd, scenario = scenario, region_isos = regions ) market_share_targets_portfolio #> # A tibble: 1,501 × 10 #> sector technology year region scenario_source metric production #> #> 1 automotive electric 2020 global demo_2020 projected 324592. #> 2 automotive electric 2020 global demo_2020 target_cps 324592. #> 3 automotive electric 2020 global demo_2020 target_sds 324592. #> 4 automotive electric 2020 global demo_2020 target_sps 324592. #> 5 automotive electric 2021 global demo_2020 projected 339656. #> 6 automotive electric 2021 global demo_2020 target_cps 329191. #> 7 automotive electric 2021 global demo_2020 target_sds 352505. #> 8 automotive electric 2021 global demo_2020 target_sps 330435. #> 9 automotive electric 2022 global demo_2020 projected 354720. #> 10 automotive electric 2022 global demo_2020 target_cps 333693. #> # ℹ 1,491 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope market_share_targets_company <- matched %>% target_market_share( abcd = abcd, scenario = scenario, region_isos = regions, # Output results at company-level. by_company = TRUE ) #> Warning: You've supplied `by_company = TRUE` and `weight_production = TRUE`. #> This will result in company-level results, weighted by the portfolio #> loan size, which is rarely useful. Did you mean to set one of these #> arguments to `FALSE`? market_share_targets_company #> # A tibble: 15,876 × 11 #> sector technology year region scenario_source name_abcd metric production #> #> 1 automoti… electric 2020 global demo_2020 Bernardi… proje… 324592. #> 2 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 3 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 4 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 5 automoti… electric 2021 global demo_2020 Bernardi… proje… 339656. #> 6 automoti… electric 2021 global demo_2020 Bernardi… targe… 329191. #> 7 automoti… electric 2021 global demo_2020 Bernardi… targe… 352505. #> 8 automoti… electric 2021 global demo_2020 Bernardi… targe… 330435. #> 9 automoti… electric 2022 global demo_2020 Bernardi… proje… 354720. #> 10 automoti… electric 2022 global demo_2020 Bernardi… targe… 333693. #> # ℹ 15,866 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"sectoral-decarbonization-approach","dir":"Articles","previous_headings":"Calculate targets","what":"Sectoral Decarbonization Approach","title":"Introduction to r2dii.analysis","text":"Sectoral Decarbonization Approach used calculate scenario targets emission_factor sector. example, can use approach set targets average emission factor cement sector. approach recommended sectors lacking technology roadmaps.","code":"# Use this dataset to practice but eventually you should use your own data. co2 <- r2dii.data::co2_intensity_scenario_demo sda_targets <- matched %>% target_sda(abcd = abcd, co2_intensity_scenario = co2, region_isos = regions) %>% filter(sector == \"cement\", year >= 2020) #> Warning: Removing rows in abcd where `emission_factor` is NA sda_targets #> # A tibble: 110 × 6 #> sector year region scenario_source emission_factor_metric #> #> 1 cement 2020 advanced economies demo_2020 projected #> 2 cement 2020 developing asia demo_2020 projected #> 3 cement 2020 global demo_2020 projected #> 4 cement 2021 advanced economies demo_2020 projected #> 5 cement 2021 developing asia demo_2020 projected #> 6 cement 2021 global demo_2020 projected #> 7 cement 2022 advanced economies demo_2020 projected #> 8 cement 2022 developing asia demo_2020 projected #> 9 cement 2022 global demo_2020 projected #> 10 cement 2023 advanced economies demo_2020 projected #> # ℹ 100 more rows #> # ℹ 1 more variable: emission_factor_value "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"visualization","dir":"Articles","previous_headings":"","what":"Visualization","title":"Introduction to r2dii.analysis","text":"large variety possible visualizations stemming outputs target_market_share() target_sda(). , highlight couple common plots can easily created using r2dii.plot package.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"market-share-sector-level-technology-mix","dir":"Articles","previous_headings":"Visualization","what":"Market Share: Sector-level technology mix","title":"Introduction to r2dii.analysis","text":"market share output, can plot portfolio’s exposure various climate sensitive technologies (projected), compare corporate economy, various scenario targets.","code":"# Pick the targets you want to plot. data <- filter( market_share_targets_portfolio, scenario_source == \"demo_2020\", sector == \"power\", region == \"global\", metric %in% c(\"projected\", \"corporate_economy\", \"target_sds\") ) # Plot the technology mix qplot_techmix(data) #> The `technology_share` values are plotted for extreme years. #> Do you want to plot different years? E.g. filter . with:`subset(., year %in% c(2020, 2030))`. #> Warning: Removed 3 rows containing missing values or values outside the scale range #> (`geom_bar()`)."},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"market-share-technology-level-volume-trajectory","dir":"Articles","previous_headings":"Visualization","what":"Market Share: Technology-level volume trajectory","title":"Introduction to r2dii.analysis","text":"can also plot technology-specific volume trend. starting values normalized 1, emphasize comparing rates buildout /retirement.","code":"data <- filter( market_share_targets_portfolio, sector == \"power\", technology == \"renewablescap\", region == \"global\", scenario_source == \"demo_2020\" ) qplot_trajectory(data)"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/r2dii-analysis.html","id":"sda-target","dir":"Articles","previous_headings":"Visualization","what":"SDA Target","title":"Introduction to r2dii.analysis","text":"SDA output, can compare projected average emission intensity attributed portfolio, actual emission intensity scenario, scenario compliant SDA pathway portfolio must follow achieve scenario ambition 2050.","code":"data <- filter(sda_targets, sector == \"cement\", region == \"global\") qplot_emission_intensity(data)"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-market-share.html","id":"scenario-market-shares","dir":"Articles","previous_headings":"","what":"Scenario market-shares","title":"Market Share Approach","text":"Say want study portfolio perform specific climate scenario. can allocate scenario efforts production profile portfolio? can two ways – technology, sector.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-market-share.html","id":"market-share-by-technology","dir":"Articles","previous_headings":"Scenario market-shares","what":"1. Market-share by technology","title":"Market Share Approach","text":"define market-share technology : \\[p_{}^{tmsr}(t) = p_{}(t_{0}) + p_{}(t_{0}) * \\frac{s_i(t) - s_{}(t_0)}{s_i(t_0)}\\] can see reduces : \\[p_{}^{tmsr}(t) = p_{}(t_{0}) \\left(1 + \\frac{s_i(t) - s_{}(t_0)}{s_i(t_0)} \\right) \\\\ p_{}^{tmsr}(t) = p_{}(t_{0}) \\left(1 + \\frac{s_i(t)}{s_i(t_0)} -1 \\right) \\\\ p_{}^{tmsr}(t) = p_{}(t_{0}) * \\frac{s_i(t)}{s_i(t_0)}\\] : \\(s_i(t)\\) scenario production technology \\(\\) time \\(t\\), \\(p_{}(t_0)\\) production allocated portfolio technology, \\(\\) time \\(t_0\\), \\(p_{}^{tmsr}(t)\\) portfolio-specific target production technology. define “Technology Market Share Ratio” : \\[\\dfrac{s_i(t)}{s_i(t_0)}\\] method used set targets “decreasing” (ie. brown) technologies.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-market-share.html","id":"market-share-by-sector","dir":"Articles","previous_headings":"Scenario market-shares","what":"2. Market-share by sector","title":"Market Share Approach","text":"calculate market-share sector, use initial production portfolio scenario sector-level instead. \\[p_{}^{smsp}(t) = p_{}(t_0) +P(t_0) * \\left( \\dfrac{s_i(t)-s_i(t_0)}{S(t_0)}\\right)\\] : \\(P_i(t_0)\\) portfolio’s total production sector \\(t_0\\), \\(S(t_0)\\) scenario total production \\(t_0\\). define “Sector Market Share Percentage” : \\[\\dfrac{s_i(t)-s_i(t_0)}{S(t_0)}\\] method used calculate targets “increasing” (ie. green) technologies.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-market-share.html","id":"how-to-calculate-market-share-targets-for-a-given-scenario","dir":"Articles","previous_headings":"","what":"How to calculate market-share targets for a given scenario","title":"Market Share Approach","text":"calculate market-share targets, need use package r2dii.analysis number datasets. One datasets “matched” dataset (loanbook + asset-level data) can get package r2dii.match. datasets use come package r2dii.data; fake show structure data. Use packages. Match loanbook asset level data. Calculate market-share targets production portfolio level. Calculate market-share targets production company level.","code":"library(r2dii.data) library(r2dii.match) library(r2dii.analysis) loanbook <- r2dii.data::loanbook_demo abcd <- r2dii.data::abcd_demo matched <- match_name(loanbook, abcd) %>% # WARNING: Remember to validate the output of match_name() before prioritize() prioritize() matched #> # A tibble: 168 × 28 #> id_loan id_direct_loantaker name_direct_loantaker id_intermediate_pare…¹ #> #> 1 L6 C304 Kassulke-Kassulke NA #> 2 L13 C297 Ladeck NA #> 3 L20 C287 Weinhold NA #> 4 L21 C286 Gallo Group NA #> 5 L22 C285 Austermuhle GmbH NA #> 6 L24 C282 Ferraro-Ferraro Group NA #> 7 L25 C281 Lockman, Lockman and Lock… NA #> 8 L26 C280 Ankunding, Ankunding and … NA #> 9 L27 C278 Donati-Donati Group NA #> 10 L28 C276 Ferraro, Ferraro e Ferrar… NA #> # ℹ 158 more rows #> # ℹ abbreviated name: ¹​id_intermediate_parent_1 #> # ℹ 24 more variables: name_intermediate_parent_1 , #> # id_ultimate_parent , name_ultimate_parent , #> # loan_size_outstanding , loan_size_outstanding_currency , #> # loan_size_credit_limit , loan_size_credit_limit_currency , #> # sector_classification_system , … # portfolio level targets scenario <- r2dii.data::scenario_demo_2020 regions <- r2dii.data::region_isos_demo matched %>% target_market_share(abcd, scenario, regions) #> # A tibble: 1,501 × 10 #> sector technology year region scenario_source metric production #> #> 1 automotive electric 2020 global demo_2020 projected 324592. #> 2 automotive electric 2020 global demo_2020 target_cps 324592. #> 3 automotive electric 2020 global demo_2020 target_sds 324592. #> 4 automotive electric 2020 global demo_2020 target_sps 324592. #> 5 automotive electric 2021 global demo_2020 projected 339656. #> 6 automotive electric 2021 global demo_2020 target_cps 329191. #> 7 automotive electric 2021 global demo_2020 target_sds 352505. #> 8 automotive electric 2021 global demo_2020 target_sps 330435. #> 9 automotive electric 2022 global demo_2020 projected 354720. #> 10 automotive electric 2022 global demo_2020 target_cps 333693. #> # ℹ 1,491 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope matched %>% target_market_share(abcd, scenario, regions, by_company = TRUE) #> Warning: You've supplied `by_company = TRUE` and `weight_production = TRUE`. #> This will result in company-level results, weighted by the portfolio #> loan size, which is rarely useful. Did you mean to set one of these #> arguments to `FALSE`? #> # A tibble: 15,876 × 11 #> sector technology year region scenario_source name_abcd metric production #> #> 1 automoti… electric 2020 global demo_2020 Bernardi… proje… 324592. #> 2 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 3 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 4 automoti… electric 2020 global demo_2020 Bernardi… targe… 324592. #> 5 automoti… electric 2021 global demo_2020 Bernardi… proje… 339656. #> 6 automoti… electric 2021 global demo_2020 Bernardi… targe… 329191. #> 7 automoti… electric 2021 global demo_2020 Bernardi… targe… 352505. #> 8 automoti… electric 2021 global demo_2020 Bernardi… targe… 330435. #> 9 automoti… electric 2022 global demo_2020 Bernardi… proje… 354720. #> 10 automoti… electric 2022 global demo_2020 Bernardi… targe… 333693. #> # ℹ 15,866 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-sda.html","id":"sda-methodology","dir":"Articles","previous_headings":"","what":"SDA Methodology","title":"Sectoral Decarbonization Approach (SDA)","text":"Sectoral Decarbonization Approach (SDA) method setting corporate CO2 emissions intensity reduction targets line climate science. method developed Science-Based Targets Initiative (SBTI), international initiative science-based target setting companies initiated CDP, United Nations Global Compact, World Resources Institute (WRI), Worldwide Fund Nature (WWF). context PACTA, methodology used calculate emission factor targets homogenous sectors (.e. sectors technology-level scenario pathways). First, distance, \\(d\\), company’s CO2 emissions intensity per unit production (emissions factor), \\(^{Co}(t)\\) base year, \\(t_0\\), scenario target intensity 2050, \\(^{Sc}(2050)\\) calculated. target intensity 2050 can taken relevant climate scenario: \\[d = ^{Co}(t_0) - ^{Sc}(2050)\\] company’s market share parameter, \\(m(t)\\), defined company’s expected future activity, \\(P^{Co}(t)\\) divided sector’s future activity, \\(P^{Sc}(t)\\) reflect expected forward-looking market share company. given ratio company’s base year market share, derived activity, \\(P^{Co}(t_0)\\) divided sector’s activity year, \\(P^{Sc}(t_0)\\). cases former calculated per company, latter determined climate scenario: \\[m (t) = \\dfrac{P^{Co}(t_0) / P^{Sc}(t_0)}{P^{Co}(t) / P^{Sc}(t)}\\] noted parameter capture change market share company rather inverse. useful equates decreasing parameter company’s market share increasing. equates larger reduction efforts companies market share increasing time. sector decarbonization factor, \\(p(t)\\) defined : \\[ p(t) = \\frac{^{Sc}(t) - ^{Sc}(2050)}{^{Sc}(t_0) - ^{Sc}(2050)}\\] \\(^{}(t)\\) \\(^{Sc}(t)\\) average market scenario emission intensities respectively, time \\(t\\). variable captures remaining effort needed market meet target 2050, per year. SDA assumptions CO2 intensity companies sector converge 2050. Note \\(p(t_0) = 1\\) \\(p(2050) = 0\\), indicating 100% expected decarbonization efforts still met base year 0% left 2050. company-level emission intensity target defined : \\[^{Target}(t) = \\left( d * p (t) * m (t) \\right) + ^{Sc}(2050)\\]","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-sda.html","id":"pacta-assumptions","dir":"Articles","previous_headings":"","what":"PACTA Assumptions","title":"Sectoral Decarbonization Approach (SDA)","text":"SDA applied PACTA differs slightly way applied SBTI. particular, must align top-approach laid climate scenarios bottom-asset-based company data used PACTA analysis. Assumption: Market share stays constant (\\(m(t)\\) = 1) Due lack quantitative data expected market share changes throughout entire time horizon 2050. \\(m(t)\\) set 1 years. SBTI method calculating \\(m(t)\\), higher intensity reduction target cases absolute pathway sector exceeds scenario target. makes sense. However, applying company level counter-intuitive: Companies decrease market share allowed higher CO2-Intensity average market actor. , companies increasing market share forced terms CO2-Intensity ones whose market share remains constant. follows company reaches targeted CO2-Intensity allowed increase share market. desirable outcome. assumption, target calculation reduces : \\[^{Target}(t) = \\left( d * p (t) \\right) + ^{Sc}(2050)\\] Approximation: Adjust base year scenario emission intensity SBTI PACTA methodology target emissions sector taken climate scenarios. implement global economy top-approach applies absolute emissions value year 2050 converts yearly emission intensities. However, may discrepancies Scenario projected emission intensities, bottom-ABCD emission intensities. reflect discrepancy, adjust scenario projections following factor, \\[\\dfrac{^{ABCD}(t_0)}{^{Sc}(t_0)}\\] yielding adjusted scenario pathway: \\['^{Sc}(t) = \\left(\\dfrac{^{ABCD}(t_0)}{^{Sc}(t_0)}\\right) * ^{Sc}(t)\\] yields final PACTA SDA target equation: \\[^{Target}(t) = \\left( d * p (t) \\right) + '^{Sc}(t)\\] Note: \\(d\\) \\(p(t)\\) also must re-calculated using adjusted scenario intensity, \\('^{Sc}\\).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/articles/target-sda.html","id":"calculating-sda-targets","dir":"Articles","previous_headings":"","what":"Calculating SDA Targets","title":"Sectoral Decarbonization Approach (SDA)","text":"calculate SDA targets need use package r2dii.analysis number datasets, including “matched” dataset (loanbook + asset-level data) can get package r2dii.match. datasets use come package r2dii.data; fake show structure data. Use packages. Match loanbook asset level data. Calculate SDA targets CO2 emissions intensities:","code":"library(r2dii.data) library(r2dii.match) library(r2dii.analysis) loanbook <- r2dii.data::loanbook_demo abcd <- r2dii.data::abcd_demo matched <- match_name(loanbook, abcd) %>% # WARNING: Remember to validate the output of match_name() before prioritize() prioritize() matched #> # A tibble: 168 × 28 #> id_loan id_direct_loantaker name_direct_loantaker id_intermediate_pare…¹ #> #> 1 L6 C304 Kassulke-Kassulke NA #> 2 L13 C297 Ladeck NA #> 3 L20 C287 Weinhold NA #> 4 L21 C286 Gallo Group NA #> 5 L22 C285 Austermuhle GmbH NA #> 6 L24 C282 Ferraro-Ferraro Group NA #> 7 L25 C281 Lockman, Lockman and Lock… NA #> 8 L26 C280 Ankunding, Ankunding and … NA #> 9 L27 C278 Donati-Donati Group NA #> 10 L28 C276 Ferraro, Ferraro e Ferrar… NA #> # ℹ 158 more rows #> # ℹ abbreviated name: ¹​id_intermediate_parent_1 #> # ℹ 24 more variables: name_intermediate_parent_1 , #> # id_ultimate_parent , name_ultimate_parent , #> # loan_size_outstanding , loan_size_outstanding_currency , #> # loan_size_credit_limit , loan_size_credit_limit_currency , #> # sector_classification_system , … co2_intensity <- r2dii.data::co2_intensity_scenario_demo matched %>% target_sda(abcd, co2_intensity) #> Warning: Removing rows in abcd where `emission_factor` is NA #> Warning: Found no matching regions for input scenario #> # A tibble: 0 × 4 #> # ℹ 4 variables: sector , year , emission_factor_metric , #> # emission_factor_value "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Alex Axthelm. Author, maintainer. Jackson Hoffart. Author, contractor. Mauro Lepore. Author, contractor. Klaus Hogedorn. Author. Nicky Halterman. Author. Rocky Mountain Institute. Copyright holder, funder.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Axthelm , Hoffart J, Lepore M, Hogedorn K, Halterman N (2024). r2dii.analysis: Measure Climate Scenario Alignment Corporate Loans. R package version 0.3.0.9000, https://rmi-pacta.github.io/r2dii.analysis/, https://github.com/RMI-PACTA/r2dii.analysis.","code":"@Manual{, title = {r2dii.analysis: Measure Climate Scenario Alignment of Corporate Loans}, author = {Alex Axthelm and Jackson Hoffart and Mauro Lepore and Klaus Hogedorn and Nicky Halterman}, year = {2024}, note = {R package version 0.3.0.9000, https://rmi-pacta.github.io/r2dii.analysis/}, url = {https://github.com/RMI-PACTA/r2dii.analysis}, }"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"r2diianalysis-","dir":"","previous_headings":"","what":"Measure Climate Scenario Alignment of Corporate Loans","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"tools help assess financial portfolio aligns climate goals. summarize key metrics attributed portfolio (e.g. production, emission factors), calculate targets based climate scenarios. implement R last step free software ‘PACTA’ (Paris Agreement Capital Transition Assessment; https://www.transitionmonitor.com/). Financial institutions use ‘PACTA’ study capital allocation impacts climate.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"Install released version r2dii.analysis CRAN : install development version r2dii.analysis GitHub :","code":"install.packages(\"r2dii.analysis\") # install.packages(\"pak\") pak::pak(\"RMI-PACTA/r2dii.analysis\")"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"example","dir":"","previous_headings":"","what":"Example","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"Use library() attach packages need. r2dii.analysis depend packages r2dii.data r2dii.match; suggest install – install.packages(c(\"r2dii.data\", \"r2dii.match\")) – can reproduce examples. Use r2dii.match::match_name() identify matches loanbook asset level data.","code":"library(r2dii.data) library(r2dii.match) library(r2dii.analysis) matched <- match_name(loanbook_demo, abcd_demo) %>% prioritize()"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"add-scenario-targets","dir":"","previous_headings":"Example","what":"Add Scenario Targets","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"Use target_sda() calculate SDA targets CO2 emissions. Use target_market_share calculate market-share scenario targets portfolio level: company level:","code":"matched %>% target_sda( abcd = abcd_demo, co2_intensity_scenario = co2_intensity_scenario_demo, region_isos = region_isos_demo ) #> Warning: Removing rows in abcd where `emission_factor` is NA #> # A tibble: 220 × 6 #> sector year region scenario_source emission_factor_metric #> #> 1 cement 2020 advanced economies demo_2020 projected #> 2 cement 2020 developing asia demo_2020 projected #> 3 cement 2020 global demo_2020 projected #> 4 cement 2021 advanced economies demo_2020 projected #> 5 cement 2021 developing asia demo_2020 projected #> 6 cement 2021 global demo_2020 projected #> 7 cement 2022 advanced economies demo_2020 projected #> 8 cement 2022 developing asia demo_2020 projected #> 9 cement 2022 global demo_2020 projected #> 10 cement 2023 advanced economies demo_2020 projected #> # ℹ 210 more rows #> # ℹ 1 more variable: emission_factor_value matched %>% target_market_share( abcd = abcd_demo, scenario = scenario_demo_2020, region_isos = region_isos_demo ) #> # A tibble: 1,076 × 10 #> sector technology year region scenario_source metric production #> #> 1 automotive electric 2020 global demo_2020 projected 145649. #> 2 automotive electric 2020 global demo_2020 target_cps 145649. #> 3 automotive electric 2020 global demo_2020 target_sds 145649. #> 4 automotive electric 2020 global demo_2020 target_sps 145649. #> 5 automotive electric 2021 global demo_2020 projected 147480. #> 6 automotive electric 2021 global demo_2020 target_cps 146915. #> 7 automotive electric 2021 global demo_2020 target_sds 153332. #> 8 automotive electric 2021 global demo_2020 target_sps 147258. #> 9 automotive electric 2022 global demo_2020 projected 149310. #> 10 automotive electric 2022 global demo_2020 target_cps 148155. #> # ℹ 1,066 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope matched %>% target_market_share( abcd = abcd_demo, scenario = scenario_demo_2020, region_isos = region_isos_demo, by_company = TRUE ) #> Warning: You've supplied `by_company = TRUE` and `weight_production = TRUE`. #> This will result in company-level results, weighted by the portfolio #> loan size, which is rarely useful. Did you mean to set one of these #> arguments to `FALSE`? #> # A tibble: 14,505 × 11 #> sector technology year region scenario_source name_abcd metric production #> #> 1 automoti… electric 2020 global demo_2020 Bernardi… proje… 17951. #> 2 automoti… electric 2020 global demo_2020 Bernardi… targe… 17951. #> 3 automoti… electric 2020 global demo_2020 Bernardi… targe… 17951. #> 4 automoti… electric 2020 global demo_2020 Bernardi… targe… 17951. #> 5 automoti… electric 2020 global demo_2020 Christia… proje… 11471. #> 6 automoti… electric 2020 global demo_2020 Christia… targe… 11471. #> 7 automoti… electric 2020 global demo_2020 Christia… targe… 11471. #> 8 automoti… electric 2020 global demo_2020 Christia… targe… 11471. #> 9 automoti… electric 2020 global demo_2020 Donati, … proje… 5611. #> 10 automoti… electric 2020 global demo_2020 Donati, … targe… 5611. #> # ℹ 14,495 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"utility-functions","dir":"","previous_headings":"Example","what":"Utility Functions","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"target_*() functions provide shortcuts common operations. wrap utility functions may also use directly: Use join_abcd_scenario() join matched dataset relevant scenario data, pick assets relevant regions. Use summarize_weighted_production() different grouping arguments calculate scenario-targets: Get started.","code":"loanbook_joined_to_abcd_scenario <- matched %>% join_abcd_scenario( abcd = abcd_demo, scenario = scenario_demo_2020, region_isos = region_isos_demo ) # portfolio level loanbook_joined_to_abcd_scenario %>% summarize_weighted_production(scenario, tmsr, smsp, region) #> # A tibble: 756 × 9 #> sector_abcd technology year scenario tmsr smsp region #> #> 1 automotive electric 2020 cps 1 0 global #> 2 automotive electric 2020 sds 1 0 global #> 3 automotive electric 2020 sps 1 0 global #> 4 automotive electric 2021 cps 1.12 0.00108 global #> 5 automotive electric 2021 sds 1.16 0.00653 global #> 6 automotive electric 2021 sps 1.14 0.00137 global #> 7 automotive electric 2022 cps 1.24 0.00213 global #> 8 automotive electric 2022 sds 1.32 0.0131 global #> 9 automotive electric 2022 sps 1.29 0.00273 global #> 10 automotive electric 2023 cps 1.35 0.00316 global #> # ℹ 746 more rows #> # ℹ 2 more variables: weighted_production , #> # weighted_technology_share # company level loanbook_joined_to_abcd_scenario %>% summarize_weighted_production(scenario, tmsr, smsp, region, name_abcd) #> # A tibble: 13,023 × 10 #> sector_abcd technology year scenario tmsr smsp region name_abcd #> #> 1 automotive electric 2020 cps 1 0 global Bernardi, Bernardi … #> 2 automotive electric 2020 cps 1 0 global Christiansen PLC #> 3 automotive electric 2020 cps 1 0 global Donati, Donati e Do… #> 4 automotive electric 2020 cps 1 0 global DuBuque-DuBuque #> 5 automotive electric 2020 cps 1 0 global Ferrari-Ferrari SPA #> 6 automotive electric 2020 cps 1 0 global Ferry and Sons #> 7 automotive electric 2020 cps 1 0 global Goyette-Goyette #> 8 automotive electric 2020 cps 1 0 global Guerra, Guerra e Gu… #> 9 automotive electric 2020 cps 1 0 global Gutkowski, Gutkowsk… #> 10 automotive electric 2020 cps 1 0 global Hilpert, Hilpert an… #> # ℹ 13,013 more rows #> # ℹ 2 more variables: weighted_production , #> # weighted_technology_share "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/index.html","id":"funding","dir":"","previous_headings":"","what":"Funding","title":"Measure Climate Scenario Alignment of Corporate Loans","text":"project received funding European Union LIFE program International Climate Initiative (IKI). Federal Ministry Environment, Nature Conservation Nuclear Safety (BMU) supports initiative basis decision adopted German Bundestag. views expressed sole responsibility authors necessarily reflect views funders. funders responsible use may made information contains.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/join_abcd_scenario.html","id":null,"dir":"Reference","previous_headings":"","what":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","title":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","text":"join_abcd_scenario() simple wrapper several calls dplyr::join_*(), forming master dataset used later steps analysis.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/join_abcd_scenario.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","text":"","code":"join_abcd_scenario( data, abcd, scenario, region_isos = r2dii.data::region_isos, add_green_technologies = FALSE )"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/join_abcd_scenario.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","text":"data data frame like output r2dii.match::prioritize. abcd asset level data frame like r2dii.data::abcd_demo. scenario scenario data frame like r2dii.data::scenario_demo_2020. region_isos data frame like r2dii.data::region_isos (default). add_green_technologies Logical vector length 1. FALSE defaults outputting technologies present data abcd. Set FALSE add rows possible green technologies (0 production).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/join_abcd_scenario.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","text":"Returns fully joined data frame, linking portfolio, abcd scenario.","code":""},{"path":[]},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/join_abcd_scenario.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Join a data-loanbook object to the abcd and scenario — join_abcd_scenario","text":"","code":"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 ) #> # A tibble: 15,207 × 45 #> id_loan id_direct_loantaker name_direct_loantaker id_intermediate_parent_1 #> #> 1 L6 C304 Kassulke-Kassulke NA #> 2 L6 C304 Kassulke-Kassulke NA #> 3 L6 C304 Kassulke-Kassulke NA #> 4 L6 C304 Kassulke-Kassulke NA #> 5 L6 C304 Kassulke-Kassulke NA #> 6 L6 C304 Kassulke-Kassulke NA #> 7 L6 C304 Kassulke-Kassulke NA #> 8 L6 C304 Kassulke-Kassulke NA #> 9 L6 C304 Kassulke-Kassulke NA #> 10 L6 C304 Kassulke-Kassulke NA #> # ℹ 15,197 more rows #> # ℹ 41 more variables: name_intermediate_parent_1 , #> # id_ultimate_parent , name_ultimate_parent , #> # loan_size_outstanding , loan_size_outstanding_currency , #> # loan_size_credit_limit , loan_size_credit_limit_currency , #> # sector_classification_system , sector_classification_input_type , #> # sector_classification_direct_loantaker , fi_type , …"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/pipe.html","id":null,"dir":"Reference","previous_headings":"","what":"Pipe operator — %>%","title":"Pipe operator — %>%","text":"See magrittr::%>% details.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/pipe.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pipe operator — %>%","text":"","code":"lhs %>% rhs"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/pipe.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pipe operator — %>%","text":"lhs value magrittr placeholder. rhs function call using magrittr semantics.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/pipe.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pipe operator — %>%","text":"result calling rhs(lhs).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/r2dii.analysis-package.html","id":null,"dir":"Reference","previous_headings":"","what":"r2dii.analysis: Measure Climate Scenario Alignment of Corporate Loans — r2dii.analysis-package","title":"r2dii.analysis: Measure Climate Scenario Alignment of Corporate Loans — r2dii.analysis-package","text":"tools help assess corporate lending portfolio aligns climate goals. summarize key climate indicators attributed portfolio (e.g. production, emission factors), calculate alignment targets based climate scenarios. implement R last step free software 'PACTA' (Paris Agreement Capital Transition Assessment; https://www.transitionmonitor.com/). Financial institutions use 'PACTA' study capital allocation decisions align climate change mitigation goals.","code":""},{"path":[]},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/r2dii.analysis-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"r2dii.analysis: Measure Climate Scenario Alignment of Corporate Loans — r2dii.analysis-package","text":"Maintainer: Alex Axthelm aaxthelm@rmi.org (ORCID) Authors: Jackson Hoffart jackson.hoffart@gmail.com (ORCID) [contractor] Mauro Lepore maurolepore@gmail.com (ORCID) [contractor] Klaus Hogedorn klaus@2degrees-investing.org Nicky Halterman nicholas..halterman@gmail.com contributors: Rocky Mountain Institute PACTA4banks@rmi.org [copyright holder, funder]","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":null,"dir":"Reference","previous_headings":"","what":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"Based weight loan per sector per year, summarize_weighted_production() summarize_weighted_percent_change() summarize production percent-change, respectively.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"","code":"summarize_weighted_production(data, ..., use_credit_limit = FALSE) summarize_weighted_percent_change(data, ..., use_credit_limit = FALSE)"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"data data frame like output join_abcd_scenario(). ... Variables group . use_credit_limit Logical vector length 1. FALSE defaults using column loan_size_outstanding. Set TRUE instead use column loan_size_credit_limit.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"tibble groups input () columns: sector, technology, year; weighted_production weighted_production summarize_weighted_production() summarize_weighted_percent_change(), respectively.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":"warning","dir":"Reference","previous_headings":"","what":"Warning","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"percent-change analysis excludes companies 0 production. percent-change undefined companies initial production; including companies cause percent-change percentage infinite, wrong.","code":""},{"path":[]},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/summarize_weighted_production.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Summaries based on the weight of each loan per sector per year — summarize_weighted_production","text":"","code":"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) #> # A tibble: 12 × 5 #> sector_abcd technology year weighted_production weighted_technology_share #> #> 1 power hydrocap 2020 50971. 0.421 #> 2 power hydrocap 2021 50230. 0.421 #> 3 power hydrocap 2022 49490. 0.421 #> 4 power hydrocap 2023 48749. 0.421 #> 5 power hydrocap 2024 48009. 0.421 #> 6 power hydrocap 2025 47268. 0.421 #> 7 power renewablescap 2020 61070. 3.35 #> 8 power renewablescap 2021 61103. 3.35 #> 9 power renewablescap 2022 61137. 3.35 #> 10 power renewablescap 2023 61170. 3.35 #> 11 power renewablescap 2024 61204. 3.35 #> 12 power renewablescap 2025 42533. 2.85 summarize_weighted_production(master, use_credit_limit = TRUE) #> # A tibble: 12 × 5 #> sector_abcd technology year weighted_production weighted_technology_share #> #> 1 power hydrocap 2020 46073. 0.381 #> 2 power hydrocap 2021 45404. 0.381 #> 3 power hydrocap 2022 44734. 0.381 #> 4 power hydrocap 2023 44065. 0.381 #> 5 power hydrocap 2024 43396. 0.381 #> 6 power hydrocap 2025 42726. 0.381 #> 7 power renewablescap 2020 60695. 3.37 #> 8 power renewablescap 2021 60416. 3.37 #> 9 power renewablescap 2022 60138. 3.37 #> 10 power renewablescap 2023 59860. 3.37 #> 11 power renewablescap 2024 59582. 3.37 #> 12 power renewablescap 2025 44619. 2.98 summarize_weighted_percent_change(master) #> # A tibble: 12 × 4 #> sector_abcd technology year weighted_percent_change #> #> 1 power hydrocap 2020 0 #> 2 power hydrocap 2021 -0.0873 #> 3 power hydrocap 2022 -0.175 #> 4 power hydrocap 2023 -0.262 #> 5 power hydrocap 2024 -0.349 #> 6 power hydrocap 2025 -0.436 #> 7 power renewablescap 2020 0 #> 8 power renewablescap 2021 0.000439 #> 9 power renewablescap 2022 0.000877 #> 10 power renewablescap 2023 0.00132 #> 11 power renewablescap 2024 0.00175 #> 12 power renewablescap 2025 -0.0858 summarize_weighted_percent_change(master, use_credit_limit = TRUE) #> # A tibble: 12 × 4 #> sector_abcd technology year weighted_percent_change #> #> 1 power hydrocap 2020 0 #> 2 power hydrocap 2021 -0.0789 #> 3 power hydrocap 2022 -0.158 #> 4 power hydrocap 2023 -0.237 #> 5 power hydrocap 2024 -0.316 #> 6 power hydrocap 2025 -0.395 #> 7 power renewablescap 2020 0 #> 8 power renewablescap 2021 -0.00364 #> 9 power renewablescap 2022 -0.00729 #> 10 power renewablescap 2023 -0.0109 #> 11 power renewablescap 2024 -0.0146 #> 12 power renewablescap 2025 -0.0898"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":null,"dir":"Reference","previous_headings":"","what":"Add targets for production, using the market share approach — target_market_share","title":"Add targets for production, using the market share approach — target_market_share","text":"function calculates portfolio-level production targets, calculated using market share approach applied relevant climate production forecast.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add targets for production, using the market share approach — target_market_share","text":"","code":"target_market_share( data, abcd, scenario, region_isos = r2dii.data::region_isos, use_credit_limit = FALSE, by_company = FALSE, weight_production = TRUE, increasing_or_decreasing = r2dii.data::increasing_or_decreasing )"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add targets for production, using the market share approach — target_market_share","text":"data \"data.frame\" like output r2dii.match::prioritize. abcd asset level data frame like r2dii.data::abcd_demo. scenario scenario data frame like r2dii.data::scenario_demo_2020. region_isos data frame like r2dii.data::region_isos (default). use_credit_limit Logical vector length 1. FALSE defaults using column loan_size_outstanding. Set TRUE use column loan_size_credit_limit instead. by_company Logical vector length 1. FALSE defaults outputting production_value portfolio-level. Set TRUE output production_value company-level. weight_production Logical vector length 1. TRUE defaults outputting production, weighted relative loan-size. Set FALSE output unweighted production values. increasing_or_decreasing data frame like r2dii.data::increasing_or_decreasing.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add targets for production, using the market share approach — target_market_share","text":"tibble including summarized columns metric, production, technology_share, percentage_of_initial_production_by_scope scope. by_company = TRUE, output also column name_abcd.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":"handling-grouped-data","dir":"Reference","previous_headings":"","what":"Handling grouped data","title":"Add targets for production, using the market share approach — target_market_share","text":"function ignores existing groups outputs ungrouped data.","code":""},{"path":[]},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_market_share.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add targets for production, using the market share approach — target_market_share","text":"","code":"library(r2dii.data) library(r2dii.match) loanbook <- head(loanbook_demo, 100) abcd <- head(abcd_demo, 100) matched <- loanbook %>% match_name(abcd) %>% prioritize() # Calculate targets at portfolio level matched %>% target_market_share( abcd = abcd, scenario = scenario_demo_2020, region_isos = region_isos_demo ) #> # A tibble: 373 × 10 #> sector technology year region scenario_source metric production #> #> 1 power hydrocap 2020 global demo_2020 projected 16990. #> 2 power hydrocap 2020 global demo_2020 target_cps 16990. #> 3 power hydrocap 2020 global demo_2020 target_sds 16990. #> 4 power hydrocap 2020 global demo_2020 target_sps 16990. #> 5 power hydrocap 2021 global demo_2020 projected 16743. #> 6 power hydrocap 2021 global demo_2020 target_cps 17004. #> 7 power hydrocap 2021 global demo_2020 target_sds 17012. #> 8 power hydrocap 2021 global demo_2020 target_sps 17005. #> 9 power hydrocap 2022 global demo_2020 projected 16497. #> 10 power hydrocap 2022 global demo_2020 target_cps 17018. #> # ℹ 363 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope # Calculate targets at company level matched %>% target_market_share( abcd = abcd, scenario = scenario_demo_2020, region_isos = region_isos_demo, by_company = TRUE ) #> Warning: You've supplied `by_company = TRUE` and `weight_production = TRUE`. #> This will result in company-level results, weighted by the portfolio #> loan size, which is rarely useful. Did you mean to set one of these #> arguments to `FALSE`? #> # A tibble: 1,408 × 11 #> sector technology year region scenario_source name_abcd metric production #> #> 1 power hydrocap 2020 global demo_2020 Giordano, G… proje… 16990. #> 2 power hydrocap 2020 global demo_2020 Giordano, G… targe… 16990. #> 3 power hydrocap 2020 global demo_2020 Giordano, G… targe… 16990. #> 4 power hydrocap 2020 global demo_2020 Giordano, G… targe… 16990. #> 5 power hydrocap 2021 global demo_2020 Giordano, G… proje… 16743. #> 6 power hydrocap 2021 global demo_2020 Giordano, G… targe… 17004. #> 7 power hydrocap 2021 global demo_2020 Giordano, G… targe… 17012. #> 8 power hydrocap 2021 global demo_2020 Giordano, G… targe… 17005. #> 9 power hydrocap 2022 global demo_2020 Giordano, G… proje… 16497. #> 10 power hydrocap 2022 global demo_2020 Giordano, G… targe… 17018. #> # ℹ 1,398 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope matched %>% target_market_share( abcd = abcd, scenario = scenario_demo_2020, region_isos = region_isos_demo, # Calculate unweighted targets weight_production = FALSE ) #> # A tibble: 373 × 10 #> sector technology year region scenario_source metric production #> #> 1 power hydrocap 2020 global demo_2020 projected 121032. #> 2 power hydrocap 2020 global demo_2020 target_cps 121032. #> 3 power hydrocap 2020 global demo_2020 target_sds 121032. #> 4 power hydrocap 2020 global demo_2020 target_sps 121032. #> 5 power hydrocap 2021 global demo_2020 projected 119274. #> 6 power hydrocap 2021 global demo_2020 target_cps 121129. #> 7 power hydrocap 2021 global demo_2020 target_sds 121187. #> 8 power hydrocap 2021 global demo_2020 target_sps 121139. #> 9 power hydrocap 2022 global demo_2020 projected 117515. #> 10 power hydrocap 2022 global demo_2020 target_cps 121227. #> # ℹ 363 more rows #> # ℹ 3 more variables: technology_share , scope , #> # percentage_of_initial_production_by_scope "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":null,"dir":"Reference","previous_headings":"","what":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"function calculates targets CO2 emissions per unit production portfolio-level, otherwise referred \"emissions factors\". uses sectoral-decarbonization approach (SDA) calculate targets.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"","code":"target_sda( data, abcd, co2_intensity_scenario, use_credit_limit = FALSE, by_company = FALSE, region_isos = r2dii.data::region_isos )"},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"data dataframe like output r2dii.match::prioritize(). abcd asset-level data frame like r2dii.data::abcd_demo. co2_intensity_scenario scenario data frame like r2dii.data::co2_intensity_scenario_demo. use_credit_limit Logical vector length 1. FALSE defaults using column loan_size_outstanding. Set TRUE instead use column loan_size_credit_limit. by_company Logical vector length 1. FALSE defaults outputting weighted_production_value portfolio-level. Set TRUE output weighted_production_value company-level. region_isos data frame like r2dii.data::region_isos (default).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"tibble including summarized columns emission_factor_metric emission_factor_value. by_company = TRUE, output also column name_abcd.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":"handling-grouped-data","dir":"Reference","previous_headings":"","what":"Handling grouped data","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"function ignores existing groups outputs ungrouped data.","code":""},{"path":[]},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/target_sda.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add targets for CO2 emissions per unit production at the portfolio level,\nusing the SDA approach — target_sda","text":"","code":"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 ) #> Warning: Removing rows in abcd where `emission_factor` is NA #> Warning: Found no match between loanbook and abcd. #> # A tibble: 0 × 4 #> # ℹ 4 variables: sector , year , emission_factor_metric , #> # emission_factor_value # 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 ) #> Warning: Removing rows in abcd where `emission_factor` is NA #> Warning: Found no match between loanbook and abcd. #> # A tibble: 0 × 4 #> # ℹ 4 variables: sector , year , emission_factor_metric , #> # emission_factor_value "},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/tidyeval.html","id":null,"dir":"Reference","previous_headings":"","what":"Tidy eval helpers — tidyeval","title":"Tidy eval helpers — tidyeval","text":"learn tidy eval use tools, check Metaprogramming section Advanced R.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/reference/tidyeval.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Tidy eval helpers — tidyeval","text":"sym() creates symbol string syms() creates list symbols character vector. enquo() enquos() delay execution one several function arguments. enquo() returns single quoted expression, like blueprint delayed computation. enquos() returns list quoted expressions. expr() quotes new expression locally. mostly useful build new expressions around arguments captured enquo() enquos(): expr(mean(!!enquo(arg), na.rm = TRUE)). as_name() transforms quoted variable name string. Supplying something else quoted variable name error. unlike as_label() also returns single string supports kind R object input, including quoted function calls vectors. purpose summarise object single label. label often suitable default name. know quoted expression contains (instance expressions captured enquo() variable name, call function, unquoted constant), use as_label(). know quoted simple variable name, like enforce , use as_name().","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-development-version","dir":"Changelog","previous_headings":"","what":"r2dii.analysis (development version)","title":"r2dii.analysis (development version)","text":"target_market_share now outputs target_* value years scenario (#481). Complete deprecation ald favour abcd (#466). target_market_share now correctly handles input scenarios hyphen name (#425). target_market_share now handles abcd rows production NA filling 0 (#423).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-030","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.3.0","title":"r2dii.analysis 0.3.0","text":"CRAN release: 2023-10-23 target_sda now uses final year scenario convergence target by_company = TRUE (#445). target_market_share gains argument increasing_or_decreasing (#426).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-021","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.2.1","title":"r2dii.analysis 0.2.1","text":"CRAN release: 2022-11-03 r2dii.analysis transferred new organization: https://github.com/RMI-PACTA/.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-020","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.2.0","title":"r2dii.analysis 0.2.0","text":"CRAN release: 2022-05-05 New argument abcd target_market_share() target_sda supersedes argument ald (#404). target_sda() now outputs data sector values three input datasets (data, ald co2_intensity_scenario) (#390). target_sda() now outputs unweighted emission_factor by_company TRUE (#376). target_sda() gains region_isos argument (#323). target_market_share() now outputs values years ald scenario inputs (#394). target_market_share() now outputs two new columns, percentage_of_initial_production_by_scope scope (ADO #4143).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-0112","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.12","title":"r2dii.analysis 0.1.12","text":"CRAN release: 2021-08-18 target_market_share() now outputs 0 technology_share, companies 0 sectoral production (#306 @Antoine-Lalechere). target_sda() now filters scenario start year consistent ald start year (#346 @waltjl).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-0110","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.10","title":"r2dii.analysis 0.1.10","text":"CRAN release: 2021-07-09 target_market_share() now sets negative smsp targets zero (#336). target_market_share() now outputs sectors present input datasets (#329). target_market_share() now always adds targets green technologies (defined r2dii.data::green_or_brown), even present input data (#318 @Antoine-Lalechere). target_market_share() now correctly groups region calculating technology_share (#315 @Antoine-Lalechere).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-019","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.9","title":"r2dii.analysis 0.1.9","text":"CRAN release: 2021-06-30 target_sda() now outputs sector values present input co2_intensity_scenario data (#308). target_sda() now outputs targets range years input co2_intenstiy_scenario (#307).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-018","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.8","title":"r2dii.analysis 0.1.8","text":"CRAN release: 2021-05-22 target_market_share() now correctly outputs target technology share, line methodology (@georgeharris2deg #277). target_market_share() now correctly projects technology share ‘production / total production’ computing company, unweighted relative loan size (@KapitanKombajn #288). target_market_share() longer outputs columns sector_weighted_production technology_weighted_production. columns internal shouldn’t face users (#291).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-016","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.6","title":"r2dii.analysis 0.1.6","text":"CRAN release: 2021-03-10 target_market_share() now correctly outputs technology_share multiple loans different level company (@ab-bbva #265).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-015","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.5","title":"r2dii.analysis 0.1.5","text":"CRAN release: 2021-01-22 target_market_share() now errors input data unexpected column (@georgeharris2deg #267). target_market_share() now correctly outputs technology_share multiple loans company (@georgeharris2deg #262, @ab-bbva #265).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-014","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.4","title":"r2dii.analysis 0.1.4","text":"CRAN release: 2021-01-05 target_market_share() now correctly outputs unweighted production company, equal ald-production one company multiple loans different size (#255 @georgeharris2deg).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-013","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.3","title":"r2dii.analysis 0.1.3","text":"CRAN release: 2020-12-15 target_market_share() now correctly outputs unweighted production multiple levels exist company (#249).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-012","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.2","title":"r2dii.analysis 0.1.2","text":"CRAN release: 2020-12-05 target_market_share() now outputs weighted_technology_share correctly sums 1 grouped sector, metric scenario (#218). target_market_share() now correctly outputs unweighted production multiple loans exist company (#239). target_market_share() now outputs empty named tibble matching region definitions can found (#236). target_market_share now outputs technologies present ald, even present data (#235). target_sda() now interpolates input scenario file year correctly calculates target, regardless time-horizon ald (#234). Hyperlinks “Get Started” tab website now points correct links (#222 @apmanning). Depend dplyr >= 0.8.5, explicitly. commit version newer dplyr 1 still relatively new, represents major change users initially resist. Relax dependency rlang, mostly driven dynamically recursive dependencies. example, dplyr 0.8.5 depends specific version rlang recent version explicitly depended – suggests explicit rlang unhelpful misleading. New internal data loanbook_stable region_isos_stable make regression tests stable (#227).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-011","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.1","title":"r2dii.analysis 0.1.1","text":"CRAN release: 2020-09-12 Change license MIT. website’s home page now thanks founders. target_market_share() now works expected value column scenario missing value column region. longer results output columns production technology_share type “list” (#203). website now shows News tab.","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-010","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.1.0","title":"r2dii.analysis 0.1.0","text":"CRAN release: 2020-09-03 target_sda() now correctly handles differing country_of_domicile inputs (#171). target_market_share() now outputs technology_share (#184). join_ald_scenario() now returns visibly dev-magrittr (#188 @lionel-). target_market_share() gains weight_production parameter (#181). target_market_share() now correctly use sector_ald column input data argument (#178). target_sda() now automatically filters ald rows emissions_factor values NA (#173). join_ald_scenario() now converts lower case values columns sector_ald technology (#172). target_sda() now aggregates input ald technology plant_location prior calculating targets (@QianFeng2020 #160). target_sda() now errors input data duplicated id_loan (@QianFeng2020 #164). target_sda() gains by_company parameter (#155). target_market_share() now outputs actual aggregated corporate economy. Previously, output , erroneously, normalized starting portfolio value (#158). target_sda() now correctly calculates SDA targets (#153): Targets now calculated using scenario data adjusted corporate economy data. adjusted scenario data also output function along usual metrics. Methodology error fixed, reflected code. Previously, target , incorrectly, calculated multiplying adjusted scenario. Now scenario data added instead. New summarize_weighted_percent_change() allows user calculate new indicator (#141). target_market_share() longer errors combination sector scenario_target_value uniquely identify observation (@georgeharris2deg #142).","code":""},{"path":"https://rmi-pacta.github.io/r2dii.analysis/dev/news/index.html","id":"r2diianalysis-001","dir":"Changelog","previous_headings":"","what":"r2dii.analysis 0.0.1","title":"r2dii.analysis 0.0.1","text":"CRAN release: 2020-06-28 First release CRAN","code":""}]