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 fromMEID_CALC_GHG_AGGR)denominator: scalar or time-series (e.g. revenue, production volume)intensity_scope:TOTAL|SCOPE1|SCOPE2|SCOPE3alignment:BY_YEAR|BY_INDEX(defaultBY_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|SKIProunding: optional digits
2.3. Output Schema
- ZAR Address:
schema.compute.ghg.intensity.output.v1_0_0
Outputs include:
ghg_intensitymetadata(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)
- emissions unit (default
- Engine MUST propagate unit metadata to output.
Scope selection
- If emissions input contains multiple scopes:
- only the scope specified by
intensity_scopeis used
- only the scope specified by
- If emissions input is already aggregated:
intensity_scope = TOTALMUST 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_periodsdenominator_floor_appliedintensity_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_GUARDEDGHG_INT_ALIGNMENT_MISMATCHGHG_INT_SCOPE_INVALIDGHG_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 (
cmiorzar_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.
- Performance Notes
- Complexity: over periods
- Memory:
- Suitable for batch processing and reporting pipelines
- Methods Served (v1)
GHG.intensityGHG.scope1.intensityGHG.scope2.intensityGHG.scope3.intensity
Downstream engines using this output:
MEID_CALC_DELTAMEID_CALC_TARGET_GAPMEID_SCEN_GHG_ALIGN