Skip to contents

The goal of this article is to define the market-share-approach for allocating scenario efforts and to show how to calculate the market-share target for a given scenario.

Scenario market-shares

Say that you want to study how a portfolio would perform in a specific climate scenario. How can you allocate scenario efforts to the production profile of your portfolio? You can do that in two ways – by technology, or by sector.

1. Market-share by technology

We define the market-share by technology as:

\[p_{i}^{tmsr}(t) = p_{i}(t_{0}) + p_{i}(t_{0}) * \frac{s_i(t) - s_{i}(t_0)}{s_i(t_0)}\]

We can see that this reduces to:

\[p_{i}^{tmsr}(t) = p_{i}(t_{0}) \left(1 + \frac{s_i(t) - s_{i}(t_0)}{s_i(t_0)} \right) \\ p_{i}^{tmsr}(t) = p_{i}(t_{0}) \left(1 + \frac{s_i(t)}{s_i(t_0)} -1 \right) \\ p_{i}^{tmsr}(t) = p_{i}(t_{0}) * \frac{s_i(t)}{s_i(t_0)}\]

where:

  • \(s_i(t)\) is the scenario production for technology \(i\) at time \(t\),
  • \(p_{i}(t_0)\) is the production allocated to the portfolio for some technology, \(i\) at time \(t_0\), and
  • \(p_{i}^{tmsr}(t)\) is the portfolio-specific target production for that technology.

We define the “Technology Market Share Ratio” as:

\[\dfrac{s_i(t)}{s_i(t_0)}\] This method is used to set targets for “decreasing” (ie. brown) technologies.

2. Market-share by sector

To calculate the market-share by sector, we use the initial production of both the portfolio and scenario at the sector-level instead. \[p_{i}^{smsp}(t) = p_{i}(t_0) +P(t_0) * \left( \dfrac{s_i(t)-s_i(t_0)}{S(t_0)}\right)\] where:

  • \(P_i(t_0)\) is the portfolio’s total production in the sector at \(t_0\), and
  • \(S(t_0)\) is the scenario total production at \(t_0\).

We define the “Sector Market Share Percentage” as:

\[\dfrac{s_i(t)-s_i(t_0)}{S(t_0)}\] This method is used to calculate targets for “increasing” (ie. green) technologies.

How to calculate market-share targets for a given scenario

To calculate market-share targets, you need to use the package r2dii.analysis and a number of datasets. One of those datasets is a “matched” dataset (loanbook + asset-level data) that you can get with the package r2dii.match. The datasets I use here come from the package r2dii.data; they are fake but show how you should structure your own data.

  • Use packages.
  • Match the loanbook to asset level data.
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: 177 × 28
#>    id_loan id_direct_loantaker name_direct_loantaker      id_intermediate_pare…¹
#>    <chr>   <chr>               <chr>                      <chr>                 
#>  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                    
#> # ℹ 167 more rows
#> # ℹ abbreviated name: ¹​id_intermediate_parent_1
#> # ℹ 24 more variables: name_intermediate_parent_1 <chr>,
#> #   id_ultimate_parent <chr>, name_ultimate_parent <chr>,
#> #   loan_size_outstanding <dbl>, loan_size_outstanding_currency <chr>,
#> #   loan_size_credit_limit <dbl>, loan_size_credit_limit_currency <chr>,
#> #   sector_classification_system <chr>, …
  • Calculate market-share targets for production at the portfolio level.
# 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,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     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>
  • Calculate market-share targets for production at the company level.
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: 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…     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>