EmissionsAggregate table

Important

Some or all of this functionality is available as part of a preview release. The content and the functionality are subject to change.

This aggregate table stores aggregated CO2 equivalent emissions data from the following environmental, social, and governance (ESG) data model tables in these dimensions:

  • Reporting period
  • Scope
  • Emission source
  • Unit of measure
  • CountryOrRegion
  • Greenhouse Gas
  • Accounting Method
  • Party
  • Secondary Party

The CreateAggregatesForEmissionMetrics_INTB notebook contains the computation logic for the same.

Inputs

For generating the EmissionsAggregate table, you need to map your source data to the ESG data model tables for the applicable scenario.

Scenario Scope ESG data model tables
Customer stores Total CO2 equivalent emission quantity Scope 1
Scope 2
Scope 3
PARTY SCOPE CATEGORY PURPOSE GREENHOUSE GAS EQUIVALENT EMISSIONS
Greenhouse gas specific CO2 equivalent emission quantity Scope 1 PARTY GREENHOUSE GAS
PARTY PROCESS TYPE GREENHOUSE GAS
PROCESS GREENHOUSE GAS
PROCESS ASSET GREENHOUSE GAS
Scope 2 PARTY INDIRECT EMISSIONS
PARTY VENDOR INDIRECT EMISSIONS
PARTY VENDOR GENERATOR INDIRECT EMISSIONS
Scope 3 PARTY SCOPE CATEGORY GREENHOUSE GAS

Note

  • Refer to the ESG data estate documentation to understand ingesting, transforming and loading data into the ESG data model tables.

  • Ensure that data isn't duplicated across the ESG data model tables. For example, the Contoso POD Factory facility emits 200 mtCO2e of CO2 gas as scope 1 emissions, 100 mtCO2e of CH4 gas as Scope 1 emissions for the month of Jan 2024. They store this data in the Party Greenhouse Gas table as two records, one for each gas. They also store the total scope 1 emissions as 300 mtCO2e in the Party Scope Category Purpose Greenhouse Gas Equivalent Emissions table. In this case, the same emission will be double counted in the EmissionsAggregate table calculation. You should store either the data at the gas level or as total emissions.

This table shows the EmissionAggregate table’s column descriptions and mapping with ESG data model tables.

Columns Is nullable Description Mapping with ESG data model table columns
Co2eEmissionUnits Required Stores the aggregated CO2 equivalent emission value. Co2EEmissionsUnits
ReportingPeriod Required Specifies the period for which the emission value is aggregated.
Note:
- Currently only calendar years are supported in aggregate tables.
- The logic to consider a PeriodStartDate or PeriodEndDate for finding the reporting year depends on the Emission source. Refer to Logic emission sources to find logic for each emission source.
PeriodStartDate or PeriodEndDate
UnitOfMeasureName Required Specifies the unit of the emission value. CO2eEmissionsUnitOfMeasureId > UnitOfMeasure.UnitOfMeasureName

UnitOfMeasure is a reference table in the ESG data model. The default unit of measure name is mtCO2e. All the CO2eEmissions data from the ESG data model tables is converted to mtCO2e and then stored in the aggregate table.
Scope Required Specifies the Scope of emission. It can be Scope 1 - Direct emissions, Scope 2 - indirect emissions, and Scope 3 – emissions from the value chain. The mapping varies with the ESG data model as follows:
- In Party Scope Category Purpose Greenhouse Gas Equivalent Emissions or Party Scope Category Greenhouse Gas tables, this field maps to GreenhouseGasEmissionsScopeID > GreenhouseGasEmissionsScope.GreenhouseGasEmissionsScopeName.
- In Party Greenhouse Gas, Party Process Type Greenhouse Gas, Party Process Greenhouse Gas, and Party Asset Greenhouse Gas, this field is mapped to scope 1, because these four tables are used to only store scope 1 greenhouse gas level CO2 equivalent emissions.
- In Party Indirect Emissions, Party Vendor Indirect Emissions, and Party Vendor Generator Indirect Emissions the value is mapped to scope 2, because these tables are supposed to store data only for scope 2 emissions.
EmissionSource Required Used for classifying emissions within a specific scope. For example, for scope 1, EmissionSource can be Stationary, Industrial Processes, Mobile, or Fugitive. For scope 3, it can be Category 1 - Purchased Goods and Services, Category 2 - Capital Goods, for example. The mapping varies with the ESG data model as follows:
- In Party Scope Category Purpose Greenhouse Gas Equivalent Emissions or Party Scope Category Greenhouse Gas this field maps to GreenhouseGasEmissionsCategoryId > GreenhouseGasEmissionsCategory.GreenhouseGasEmissionsCategoryName.
GreenhouseGasEmissionsCategory is a reference table in the ESG data model.
- In PartyGreenhouseGas, PartyProcessTypeGreenhouseGas, PartyProcessGreenhouseGas, and PartyAssetGreenhouseGas, this field is mapped to GreenhouseGasSource TypeId> GreenhouseGasSourceType.GreenhouseGasSourceTypeName.
GreenhouseGasSourceType is a reference table in ESG data model.
- In PartyIndirectEmissions, Party VendorIndirectEmissions, and PartyVendorGeneratorIndirectEmissions map to PurchasedEnergyTypeId> PurchasedEnergyType.PurchasedEnergyTypeName.
PurchasedEnergyType is a reference table in ESG data model.
AccountingMethod Optional Approach or method to quantify and report greenhouse gas emissions. CalculationAlgorithmId > CalculationAlgorithm.CalculationAlgorithmBasisId > CalculationAlgorithmBasis.Calculation AlgorithmBasisName

Note - Currently this attribute is supported only for Scope 2 emissions. For Scope 1 and 3, you should keep this attribute as null while mapping data from outside data sources. For scope 1 and 3, the data coming from Sustainability manager, is tagged as Location based.
CountryOrRegion Optional Country/region associated with the emissions record. Maps the country/region from the location details of the Party or secondary party associated with the emission record as follows:
1. If Party or Secondary Party is of PartyType = Facility, then map corresponding Facility.Location.Country.ISOCountryName.
2. If this condition isn't satisfied, then check if Party or Secondary Party is of PartyType = Organization unit, then map corresponding PartyOrganization.Location.Country.ISOCountryName.
3. If this condition isn't satisfied, then map Party.PartyLocation.Country.ISOCountryName.
4. If this condition isn't satisfied, then map secondary party's Partylocation.Country.ISOCountryName.
5. Else country/region for the record remains null.
GreenhouseGasName Optional Name of the greenhouse gas. Not applicable if data is mapped from PartyScopeCategoryPurposeGreenhouseGasEquivalentEmissions. For other ESG data model tables, this field maps to GreenhouseGasId > GreenhouseGas.GreenhouseGasName.
GreenhouseGas is a reference table in ESG data model.
PartyName Required Name of the Party PartyId> Party.PartyName

Note: Based on the scenarios explained in Configuration parameters, the PartyName here can be the measurement table's PartyId>Party.PartyName or RelatedParty.RelatedPartyId>Party.PartyName.
PartyId Required Unique identifier of the Party PartyId

Note: Based on the scenarios explained in Configuration parameters, the PartyId here can be measurement table's PartyId or RelatedParty.RelatedPartyId.
PartyTypeName Required The Party type at which data is aggregated and stored in the aggregate tables. PartyId >Party.PartyTypeId >PartyTypeName

Note: Based on the scenarios explained in Configuration parameters, the PartyId here can be measurement table's PartyId or RelatedParty.RelatedPartyId.
Secondary PartyName Optional Name of the Party. Only applicable when the measurement data in the ESG data model table is at a combination of two parties. For example, Facility and organization unit combination. In such cases, Party and Secondary Party store the constituent parties of the combination, such as Facility and Organization unit. PartyId > RelatedParty.RelatedPartyId >Party.PartyName
Secondary PartyId Optional Unique identifier of the Party. Only applicable when the measurement data in the ESG data model table is at a combination of two parties, such as Facility and organization unit combination. In such cases, Party and Secondary Party store the constituent parties of the combination. PartyId > RelatedParty.RelatedPartyId
Secondary PartyType Optional The Party type at which data is aggregated and stored in the aggregate tables. Only applicable when the measurement data in the ESG data model table is at a combination of two parties, such as Facility and organization unit combination. PartyId> RelatedParty.RelatedPartyId >Party.PartyTypeId >PartyType.PartyTypeName
IsRolledUp Optional IsRolledUp flag indicates whether a row is a rolled-up record or not. The computation logic always generates the aggregate table with this flag as false. Capability provides a utility function to roll up records in the aggregate table along the organization's hierarchy (Party or secondary party dimension). The rolled-up records are also stored in the same aggregate table. Calculated column. Value not mapped from ESG data model tables.

Note

If there are records in the measurement tables but the attributes mapped to required fields in the aggregate table are missing, then aggregate table generation fails. You need to ensure that data for required fields is available for all the records in the ESG data model measurement tables.

Logic for emission sources

Emission Source Reporting year is year of PeriodStartDate Reporting year is year of PeriodEndDate
6. Business travel X
Fugitive emissions (Emissions) X
1. Purchased goods and services (Emissions) X
2. Capital goods (Emissions) X
3. (Preview) Fuel- and energy-related activities - Mobile combustion (Emissions) X
3. (Preview) Fuel- and energy-related activities - Purchased cooling (Emissions) X
3. (Preview) Fuel- and energy-related activities - Purchased electricity (Emissions) X
3. (Preview) Fuel- and energy-related activities - Purchased heat (Emissions) X
3. (Preview) Fuel- and energy-related activities - Purchased steam (Emissions) X
3. (Preview) Fuel- and energy-related activities - Stationary combustion (Emissions) X
3. (Preview) Fuel- and energy-related activities - Unspecified (Emissions) X
4. Upstream transportation and distribution (Emissions) X
8. Upstream leased assets - Fugitive emissions (Emissions) X
9. Downstream transportation and distribution (Emissions) X
10. Processing of sold products (Emissions) X
13. Downstream leased assets - Fugitive emissions (Emissions) X
7. Employee commuting X
12. End-of-life treatment of sold products X
11. Use of sold products - Fugitive emissions X
14. Franchises - Fugitive emissions X
Industrial Process X
10. Processing of sold products - Industrial process X
11. Use of sold products - Industrial process X
14. Franchises - Industrial process X
15. Investments - Business loans and unlisted equity X
15. Investments - Listed equity and corporate bonds X
15. Investments - Commercial real estate X
15. Investments - Sovereign bonds X
15. Investments - Project finance X
15. Investments - Motor vehicle loan X
15. Investments - Mortgages X
Mobile combustion X
3. (Preview) Fuel- and energy-related activities - Mobile combustion X
8. Upstream leased assets - Mobile combustion X
10. Processing of sold products - Mobile combustion X
11. Use of sold products - Mobile combustion X
13. Downstream leased assets - Mobile combustion X
14. Franchises - Mobile combustion X
Purchased cooling X
Purchased electricity X
Purchased heat X
Purchased steam X
3. (Preview) Fuel- and energy-related activities - Purchased cooling X
3. (Preview) Fuel- and energy-related activities - Purchased electricity X
3. (Preview) Fuel- and energy-related activities - Purchased heat X
3. (Preview) Fuel- and energy-related activities - Purchased steam X
8. Upstream leased assets - Purchased steam X
8. Upstream leased assets - Purchased heat X
8. Upstream leased assets - Purchased cooling X
8. Upstream leased assets - Purchased electricity X
10. Processing of sold products - Purchased electricity X
10. Processing of sold products - Purchased cooling X
10. Processing of sold products - Purchased heat X
10. Processing of sold products - Purchased steam X
11. Use of sold products - Purchased heat X
11. Use of sold products - Purchased cooling X
11. Use of sold products - Purchased electricity X
11. Use of sold products - Purchased steam X
13. Downstream leased assets - Purchased electricity X
13. Downstream leased assets - Purchased heat X
13. Downstream leased assets - Purchased cooling X
13. Downstream leased assets - Purchased steam X
14. Franchises - Purchased heat X
14. Franchises - Purchased electricity X
14. Franchises - Purchased cooling X
14. Franchises - Purchased steam X
Stationary combustion X
3. (Preview) Fuel- and energy-related activities - Stationary combustion X
8. Upstream leased assets - Stationary combustion X
10. Processing of sold products - Stationary combustion X
11. Use of sold products - Stationary combustion X
13. Downstream leased assets - Stationary combustion X
14. Franchises - Stationary combustion X
5. Waste generated in operations X
10. Processing of sold products - Waste generated in operations X

For these categories, in scenarios where data is mapped from Microsoft Sustainability Manager, the transaction date attribute of the emission record mapped to PeriodEndDate and the same considered in deciding the reporting year.

  • Fugitive emissions (Emissions)
  • 1 - Purchased goods and services (Emissions)
  • 2 - Capital goods (Emissions)
  • 4 - Upstream transportation and distribution (Emissions)
  • 8 - Upstream leased assets - Fugitive emissions (Emissions)
  • 9 - Downstream transportation and distribution (Emissions)
  • 10 - Processing of sold products (Emissions)
  • 13 - Downstream leased assets - Fugitive emissions (Emissions)
  • 14 - Franchises - Fugitive emissions

Configuration parameters

You can specify the parameters to compute EmissionsAggregate table for the applicable scenario. You can set the configuration parameters in the aggregate_tables_config.json file under the ESGMetrics/Config folder in the ConfigAndDemoData_LH lakehouse.

Scenario 1

Measurement data (for example, CO2 equivalent emission) is collected at a combination of parties. The measurement data is stored in the ESG data model table as a joint party. For example, a joint party record for the combination of facility F1 and organization unit OU1. To learn more about storing organizational hierarchy data, go to Store organizational hierarchy data.

Example hierarchy:

Scenario 1.

Sample records:

Facility Organization Unit Scope Emission Source Period Start Date Period End Date CO2e Emissions Unit
Facility 1 Contoso HQ Scope 1 Stationary
combustion
1/1/2023 1/31/2023 100 mtCO2e
Facility 1 Contoso EUR Scope 1 Stationary
combustion
1/1/2023 1/31/2023 200 mtCO2e

Stored in the PartyScopeCategoryPurposeGreenhouseGasEquivalentEmissions table as:

Party Scope Emission Source Period Start Date Period End Date CO2e Emissions Unit
Facility1_Contoso_HQ Scope 1 Stationary
combustion
1/1/2023 31/1/2023 100 mtCO2e
Facility1_ContosoEUR Scope 1 Stationary
combustion
1/1/2023 31/1/2023 200 mtCO2e

In this case, in the aggregate table, data needs to be stored at the facility and organizational unit level. Data can easily be rolled up along organization hierarchy as required and metrics can be generated for specific nodes in the hierarchy.

Specify these parameters:

  • Party Type: The party type at which data is aggregated and stored in the aggregate tables. Specify it as the constituent party’s party type. In this case, Facility or Organization unit. Specify Party Type as a value such that all parties in the measurement table can be rolled up to a party of the specified party type or the party type matches the party type of parties in the measurement table.

  • Secondary Party Type: Specify it as the second constituent party’s Party type. In the considered example, if Party type is specified as Organization unit, this one can be Facility. This parameter is optional and only applicable for this scenario where measurement data is stored at combination of two parties.

  • Relationship type name: The relationship type between the party at which the measurement data is stored in the measurement tables and the Party types for the aggregate table. For example, if you use FacilityOrganizationUnitJointPartyRelation as the RelationshipType to store the relation between joint party and facility and joint party and organization unit, then here you specify relationship type name as FacilityOrganizationUnitJointPartyRelation.

  • IsRelationshipHierarchical: Not applicable for this scenario. Can be kept blank.

Scenario 2

Organization hierarchy is a parent child hierarchy where each child has single parent. Data in the measurement table is stored as parties that are nodes in the organization hierarchy.

Example hierarchy:

Scenario 2.

Specify these parameters:

  • Party Type: The party type at which data is aggregated and stored in the aggregate tables. Data in the aggregate table can be aggregated as a single party type. Specify the party type as such a value that party of each measurement table record can be rolled into a party of the specified party type using the Relationship type name specified in the subsequent parameter. For this scenario:

    • If measurement data is stored at leaf nodes (Facility 1, 2, 3 level), then you can specify a party type of aggregation as Facility or Organization unit or Legal entity.
    • If measurement data is stored at leaf nodes and in some cases at Organization unit level as well, then Party type of aggregation can be organization unit or legal entity.
  • Secondary Party Type: Not applicable for this scenario. Keep blank.

  • Relationship type name: Specify the relationship name (Party Relationship Type) used to store the relationship between child and parent node.

  • IsRelationshipHierarchical: Set to true for this scenario.

Note

Metrics are computed on top of aggregate table. If you want to generate metric that contains specific party type break ups (for example, organization unit level break up), then ensure that the aggregate table stores the aggregate data at organization unit level or at more granular level than organization unit level so that you can roll up the data to organization unit level for the metrics.

Unit of measure:

By default, the UnitOfMeasureNames parameter in the config file for the EmissionAggregate table is specified as mtCO2e. If you want to generate the aggregate table and metrics in an alternate unit of measure, update the unit of measure in the parameter accordingly.

Note

The specified unit of measure names should be valid unit of measure names in the UnitOfMeasure ESG data model reference table, and the conversion record should exist in the UnitOfMeasureConversion ESG data model reference table to convert measurement data from ESG data model tables to the specified unit of measure.