SBTi.target_validation
¶
Module Contents¶
Classes¶
This class validates the targets, to make sure that only active, useful targets are considered. It then combines the targets with company-related data into a dataframe where there’s one row for each of the nine possible target types (short, mid, long * S1+S2, S3, S1+S2+S3). This class follows the procedures outlined by the target protocol that is a part of the “Temperature Rating Methodology” (2020), which has been created by CDP Worldwide and WWF International. |
-
class
SBTi.target_validation.
TargetProtocol
(config: Type[PortfolioAggregationConfig] = PortfolioAggregationConfig)¶ This class validates the targets, to make sure that only active, useful targets are considered. It then combines the targets with company-related data into a dataframe where there’s one row for each of the nine possible target types (short, mid, long * S1+S2, S3, S1+S2+S3). This class follows the procedures outlined by the target protocol that is a part of the “Temperature Rating Methodology” (2020), which has been created by CDP Worldwide and WWF International.
- Parameters
config – A Portfolio aggregation config
-
process
(self, targets: List[IDataProviderTarget], companies: List[IDataProviderCompany]) → pd.DataFrame¶ Process the targets and companies, validate all targets and return a data frame that combines all targets and company data into a 9-box grid.
- Parameters
targets – A list of targets
companies – A list of companies
- Returns
A data frame that combines the processed data
-
validate
(self, target: IDataProviderTarget) → bool¶ Validate a target, meaning it should:
Have a valid type
Not be finished
A valid end year
- Parameters
target – The target to validate
- Returns
True if it’s a valid target, false if it isn’t
-
_split_s1s2s3
(self, target: IDataProviderTarget) → Tuple[IDataProviderTarget, Optional[IDataProviderTarget]]¶ If there is a s1s2s3 scope, split it into two targets with s1s2 and s3
- Parameters
target – The input target
:return The split targets or the original target and None
-
_combine_s1_s2
(self, target: IDataProviderTarget)¶ Check if there is an S2 target that matches this target exactly (if this is a S1 target) and combine them into one target.
- Parameters
target – The input target
- Returns
The combined target (or the original if no combining was required)
-
_convert_s1_s2
(self, target: IDataProviderTarget)¶ Convert a S1 or S2 target into a S1+S2 target.
- Parameters
target – The input target
- Returns
The converted target (or the original if no conversion was required)
-
_boundary_coverage
(self, target: IDataProviderTarget) → IDataProviderTarget¶ Test on boundary coverage:
Option 1: minimal coverage threshold For S1+S2 targets: coverage% must be at or above 95%, for S3 targets coverage must be above 67%
Option 2: weighted coverage Thresholds are still 95% and 67%, target is always valid. Below threshold ambition is scaled.* New target ambition = input target ambition * coverage *either here or in tem score module
Option 3: default coverage Target is always valid, % uncovered is given default score in temperature score module.
- Parameters
target – The input target
- Returns
The original target with a weighted reduction ambition, if so required
-
_time_frame
(self, target: IDataProviderTarget) → IDataProviderTarget¶ Time frame is forward looking: target year - current year. Less than 5y = short, between 5 and 15 is mid, 15 to 30 is long
- Parameters
target – The input target
- Returns
The original target with the time_frame field filled out (if so required)
-
_prepare_target
(self, target: IDataProviderTarget)¶ Prepare a target for usage later on in the process.
- Parameters
target –
- Returns
-
prepare_targets
(self, targets: List[IDataProviderTarget])¶
-
_find_target
(self, row: pd.Series, target_columns: List[str]) → pd.Series¶ Find the target that corresponds to a given row. If there are multiple targets available, filter them.
- Parameters
row – The row from the data set that should be looked for
target_columns – The columns that need to be returned
- Returns
returns records from the input data, which contains company and target information, that meet specific criteria. For example, record of greatest emissions_in_scope
-
group_targets
(self)¶ Group the targets and create the 9-box grid (short, mid, long * s1s2, s3, s1s2s3). Group valid targets by category & filter multiple targets# Input: a list of valid targets for each company: For each company:
Group all valid targets based on scope (S1+S2 / S3 / S1+S2+S3) and time frame (short / mid / long-term) into 6 categories.
For each category: if more than 1 target is available, filter based on the following criteria – Highest boundary coverage – Latest base year – Target type: Absolute over intensity – If all else is equal: average the ambition of targets