Calculate the indicator "emissions profile upstream"
Source:R/emissions_profile.R
, R/emissions_profile_upstream.R
emissions_profile_upstream.Rd
The indicator "emissions profile upstream" assesses the transition risk of the upstream products due to their relative carbon footprint to other upstream products. As a default option, each upstream product is compared to the carbon footprint of every other upstream product. Upstream products with a higher carbon footprint face a higher risk. On a company-level, the indicator proxies for the supply chain risk of a company - based on its inputs.
The indicator "emissions profile upstream" is therefore similar to the Product Carbon Transition Risk Indicator, but it focuses on the upstream products and not the product of the company. Upstream 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 upstream product, the input products are ranked according to their footprint. The ranking method is explained in the Thresholds section.
After assessing the upstream products' transition risk based on the carbon footprint of each product, they are aggregated at the company-level. We derive what percentage of the upstream products are high, medium and low transition risk.
This indicator consists of 2 broad steps:
Score upstream products: Identifying the upstream products for each product, and calculating the relative carbon footprint per upstream product.
Score companies: Aggregating on the company-level.
The sample data set includes inputs and co2 footprints for each product from Ecoinvent and sectors from Europages. NOTE: the following columns are a completely random selection and do not reflect the true information:
co2 footprints (not allowed to share licensed data right now)
sectors (as the matching with ecoinvent is not done yet, we do not have one sector per product yet)
Arguments
- companies, co2
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
Other main functions:
emissions_profile()
,
sector_profile()
,
sector_profile_upstream()
Examples
library(tiltIndicator)
library(tiltToyData)
library(readr)
options(readr.show_col_types = FALSE)
companies <- read_csv(toy_emissions_profile_any_companies())
inputs <- read_csv(toy_emissions_profile_upstream_products_ecoinvent())
both <- emissions_profile_upstream(companies, inputs)
both |> unnest_product()
#> # A tibble: 690 × 8
#> companies_id grouped_by risk_category profile_ranking clustered
#> <chr> <chr> <chr> <dbl> <chr>
#> 1 antimonarchy_canine all high 0.938 tent
#> 2 antimonarchy_canine input_isic_4digit high 1 tent
#> 3 antimonarchy_canine input_tilt_subse… high 1 tent
#> 4 antimonarchy_canine input_unit high 1 tent
#> 5 antimonarchy_canine input_unit_input… high 1 tent
#> 6 antimonarchy_canine input_unit_input… high 1 tent
#> 7 celestial_lovebird all high 0.938 table hi…
#> 8 celestial_lovebird input_isic_4digit high 1 table hi…
#> 9 celestial_lovebird input_tilt_subse… high 1 table hi…
#> 10 celestial_lovebird input_unit high 1 table hi…
#> # ℹ 680 more rows
#> # ℹ 3 more variables: activity_uuid_product_uuid <chr>,
#> # input_activity_uuid_product_uuid <chr>, input_co2_footprint <dbl>
both |> unnest_company()
#> # A tibble: 1,728 × 4
#> companies_id grouped_by risk_category value
#> <chr> <chr> <chr> <dbl>
#> 1 antimonarchy_canine all high 1
#> 2 antimonarchy_canine all medium 0
#> 3 antimonarchy_canine all low 0
#> 4 antimonarchy_canine all NA 0
#> 5 antimonarchy_canine input_isic_4digit high 1
#> 6 antimonarchy_canine input_isic_4digit medium 0
#> 7 antimonarchy_canine input_isic_4digit low 0
#> 8 antimonarchy_canine input_isic_4digit NA 0
#> 9 antimonarchy_canine input_tilt_subsector high 1
#> 10 antimonarchy_canine input_tilt_subsector medium 0
#> # ℹ 1,718 more rows