Skip to contents

The indicator "sector profile upstream" assesses the transition risk of the input products based on the sector's emissions targets the input product belongs to. This indicator can be aggregated on company level and as such inform about the supply chain risk of an SME, based on its inputs' transition risk. The sector emission reduction targets vary across scenarios (e.g., net zero scenario or 1.5° scenario) and the time horizon (e.g., reduction needed in 2030, 2040, 2050 to achieve the targets). It, therefore, is similar to the Product Sector Risk Indicator but focuses on the input products that the company needs to produce its products.The input products are, for example, resources, packaging materials, energy and enabling services (such as tractor use on farm) to produce the product.

After identifying each carbon footprint for one input product, the input products are ranked according to their footprint. The ranking method is explained in the Thresholds section.

After assessing the input products for each product, they are aggregated at company-level to derive what percentage of the input products required by the company to produce its products have high, medium and low sector transition risk. We, therefore, derive the company-level information.

Please note that carbon emissions or emissions always mean CO2e.

Usage

sector_profile_upstream(
  companies,
  scenarios,
  inputs,
  low_threshold = ifelse(scenarios$year == 2030, 1/9, 1/3),
  high_threshold = ifelse(scenarios$year == 2030, 2/9, 2/3)
)

Arguments

companies, scenarios, inputs

A dataframe like the dataset with a matching name in tiltToyData (see Reference).

low_threshold

A numeric value to segment low and medium emission profile products.

high_threshold

A numeric value to segment medium and high emission profile products.

Value

A data frame with the column companies_id, and the list columns product and company holding the outputs at product and company level. Unnesting product yields a data frame with at least columns companies_id, grouped_by, risk_category. Unnesting company yields a data frame with at least columns companies_id, grouped_by, risk_category, value. Any column in the input datasets ending with *rowid is also passed as is to the output at product level. The exception is any column named exactly rowid– which is a reserved name and throws an error. Note this feature makes no sense at company level because potentially multiple rows in the input datasets are summarized into a single row in the output at company level.

See also

Examples

library(tiltIndicator)
library(tiltToyData)
library(readr)
options(readr.show_col_types = FALSE)

companies <- read_csv(toy_sector_profile_upstream_companies())
scenarios <- read_csv(toy_sector_profile_any_scenarios())
inputs <- read_csv(toy_sector_profile_upstream_products())

both <- sector_profile_upstream(companies, scenarios, inputs)
both
#> # A tibble: 72 × 3
#>    companies_id                       product           company          
#>  * <chr>                              <list>            <list>           
#>  1 antimonarchy_canine                <tibble [4 × 12]> <tibble [16 × 3]>
#>  2 asteria_megalotomusquinquespinosus <tibble [4 × 12]> <tibble [16 × 3]>
#>  3 quasifaithful_amphiuma             <tibble [4 × 12]> <tibble [16 × 3]>
#>  4 spectacular_americanriverotter     <tibble [4 × 12]> <tibble [16 × 3]>
#>  5 contrite_silkworm                  <tibble [4 × 12]> <tibble [16 × 3]>
#>  6 harmless_owlbutterfly              <tibble [4 × 12]> <tibble [16 × 3]>
#>  7 charismatic_islandwhistler         <tibble [4 × 12]> <tibble [16 × 3]>
#>  8 leathery_acornwoodpecker           <tibble [4 × 12]> <tibble [16 × 3]>
#>  9 skarn_gallinule                    <tibble [4 × 12]> <tibble [16 × 3]>
#> 10 springloaded_newt                  <tibble [4 × 12]> <tibble [16 × 3]>
#> # ℹ 62 more rows

both |> unnest_product()
#> # A tibble: 460 × 13
#>    companies_id               grouped_by risk_category profile_ranking clustered
#>    <chr>                      <chr>      <chr>                   <dbl> <chr>    
#>  1 antimonarchy_canine        ipr_1.5C … medium                   0.18 tent     
#>  2 antimonarchy_canine        ipr_1.5C … high                     0.98 tent     
#>  3 antimonarchy_canine        weo_NZ 20… high                     0.4  tent     
#>  4 antimonarchy_canine        weo_NZ 20… high                     0.97 tent     
#>  5 asteria_megalotomusquinqu… ipr_1.5C … medium                   0.18 tent     
#>  6 asteria_megalotomusquinqu… ipr_1.5C … high                     0.98 tent     
#>  7 asteria_megalotomusquinqu… weo_NZ 20… high                     0.4  tent     
#>  8 asteria_megalotomusquinqu… weo_NZ 20… high                     0.97 tent     
#>  9 quasifaithful_amphiuma     ipr_1.5C … medium                   0.18 tent     
#> 10 quasifaithful_amphiuma     ipr_1.5C … high                     0.98 tent     
#> # ℹ 450 more rows
#> # ℹ 8 more variables: activity_uuid_product_uuid <chr>, tilt_sector <chr>,
#> #   scenario <chr>, year <dbl>, type <chr>,
#> #   input_activity_uuid_product_uuid <chr>, input_tilt_sector <chr>,
#> #   input_tilt_subsector <chr>

both |> unnest_company()
#> # A tibble: 1,152 × 4
#>    companies_id        grouped_by        risk_category value
#>    <chr>               <chr>             <chr>         <dbl>
#>  1 antimonarchy_canine ipr_1.5C RPS_2030 high              0
#>  2 antimonarchy_canine ipr_1.5C RPS_2030 medium            1
#>  3 antimonarchy_canine ipr_1.5C RPS_2030 low               0
#>  4 antimonarchy_canine ipr_1.5C RPS_2030 NA                0
#>  5 antimonarchy_canine ipr_1.5C RPS_2050 high              1
#>  6 antimonarchy_canine ipr_1.5C RPS_2050 medium            0
#>  7 antimonarchy_canine ipr_1.5C RPS_2050 low               0
#>  8 antimonarchy_canine ipr_1.5C RPS_2050 NA                0
#>  9 antimonarchy_canine weo_NZ 2050_2030  high              1
#> 10 antimonarchy_canine weo_NZ 2050_2030  medium            0
#> # ℹ 1,142 more rows