Skip to main content
Jira progress: loading…

GHG-INT

GHG Intensity Calculator

1. Identity

Loading identity…

Depends on module:

  • Purpose: Computes greenhouse gas intensity metrics by normalizing absolute GHG emissions against an activity denominator (typically revenue), in line with ESRS E1 and GHG Protocol intensity guidance.
  • Typical usage:
    • GHG emissions per € revenue
    • Scope-specific intensity indicators
    • Inputs to benchmarking, trends, and scenario alignment

Versioning policy

  • MEID remains stable.
  • Calculation logic versions are governed via ZAR (engine CMI/version + execution_ref + build_hash).

2. Contract References (ZAR)

2.1. Input Schema

  • ZAR Address: schema.compute.ghg.intensity.inputs.v1_0_0

Required conceptual fields

  • emissions: scalar or time-series (absolute emissions, usually from MEID_CALC_GHG_AGGR)
  • denominator: scalar or time-series (e.g. revenue, production volume)
  • intensity_scope: TOTAL | SCOPE1 | SCOPE2 | SCOPE3
  • alignment: BY_YEAR | BY_INDEX (default BY_YEAR)

At least one emission value and one denominator value MUST be provided.


2.2. Options Schema

  • ZAR Address: schema.compute.ghg.intensity.options.v1_0_0

Common options:

  • denominator_floor (default: 1e-9)
  • unit_output: e.g. tCO2e_per_EURm (default derived)
  • missing_policy: ERROR | SKIP
  • rounding: optional digits

2.3. Output Schema

  • ZAR Address: schema.compute.ghg.intensity.output.v1_0_0

Outputs include:

  • ghg_intensity
  • metadata (scope used, denominator floor applied, alignment info)

3. Accepted Input Shapes

A. Scalar intensity

{
"emissions": 12500,
"denominator": 250,
"intensity_scope": "TOTAL"
}

(Example: 12,500 tCO₂e / €250m revenue)


B. Time-series (preferred)

{
"emissions": [[2025, 12500], [2026, 12000]],
"denominator": [[2025, 250], [2026, 260]],
"intensity_scope": "TOTAL",
"alignment": "BY_YEAR"
}

C. Scope-specific input

{
"emissions": {
"scope1": [[2025, 3000]],
"scope2": [[2025, 2000]],
"scope3": [[2025, 7500]]
},
"denominator": [[2025, 250]],
"intensity_scope": "SCOPE3"
}

All inputs MUST be normalized internally to:

Map<period, emissions_value> + Map<period, denominator_value>

4. Compute Semantics (Normative)

For each aligned period t:

Base formula

GHG_INTENSITY(t) =
emissions(t) / max(|denominator(t)|, denominator_floor)

Units

  • Output unit is derived from:
    • emissions unit (default tCO2e)
    • denominator unit (e.g. EURm)
  • Engine MUST propagate unit metadata to output.

Scope selection

  • If emissions input contains multiple scopes:
    • only the scope specified by intensity_scope is used
  • If emissions input is already aggregated:
    • intensity_scope = TOTAL MUST be used

5. Alignment Rules

BY_YEAR

  • Emissions and denominator MUST share the same period keys.
  • Missing values handled per missing_policy.

BY_INDEX

  • Ordered comparison.
  • Length mismatches handled per schema/options.

Metadata MUST include:

  • aligned_periods
  • denominator_floor_applied
  • intensity_scope_used

6. Validation & Error Model

Invariants

  • Denominator must be finite and ≥ 0
  • denominator_floor > 0
  • Emissions must be finite
  • Units must be compatible

Error codes (suggested)

  • GHG_INT_DENOMINATOR_ZERO_GUARDED
  • GHG_INT_ALIGNMENT_MISMATCH
  • GHG_INT_SCOPE_INVALID
  • GHG_INT_NON_FINITE_VALUE

Errors MUST include:

  • engine cmi_short_code
  • scope and period causing failure (if applicable)

7. Dependencies

MEID_CALC_GHG_INT depends on:

  • MEID_CALC_GHG_AGGR (upstream aggregation)
  • time-series normalization utilities
  • schema resolver (ZAR)
  • unit conversion utilities

Dependencies are declared in the ZAR registry via CMIs.


8. Federation & Audit Requirements

To reproduce a GHG intensity metric externally, the bundle MUST include:

  • Engine identity (cmi or zar_code)
  • Engine build proof (execution_ref + build_hash)
  • Input, options, and output schemas
  • Absolute emissions values used
  • Denominator values (e.g. revenue)
  • Scope selection (intensity_scope)

Provenance chain MUST show:

… → MEID_CALC_GHG_AGGR → MEID_CALC_GHG_INT → …

with cmi_short_code entries in USO tails.


  1. Performance Notes
  • Complexity: O(n)O(n) over periods
  • Memory: O(n)O(n)
  • Suitable for batch processing and reporting pipelines

  1. Methods Served (v1)
  • GHG.intensity
  • GHG.scope1.intensity
  • GHG.scope2.intensity
  • GHG.scope3.intensity

Downstream engines using this output:

  • MEID_CALC_DELTA
  • MEID_CALC_TARGET_GAP
  • MEID_SCEN_GHG_ALIGN



GitHub RepoRequest for Change (RFC)