Skip to main content
Jira progress: loading…

CARB-BUD

Carbon Budget Calculator

1. Identity

Loading identity…

Depends on module:

Purpose
Computes remaining carbon budget, budget used, and budget remaining ratio by comparing cumulative greenhouse gas emissions against a defined carbon budget.
This engine is foundational for transition risk analysis, science-based targets, and scenario alignment.

Typical usage

  • Remaining emissions budget tracking
  • Inputs to scenario-alignment engines
  • Long-term transition pathway analysis

2. Contract References (ZAR)

2.1. Input Schema

ZAR Address: schema.compute.ghg.carbon_budget.inputs.v1_0_0

Required conceptual fields:

  • emissions: time-series of absolute emissions
  • budget: scalar or time-series defining allowed cumulative emissions
  • cumulative_from_year: integer (start year for cumulative sum)
  • alignment: BY_YEAR | BY_INDEX (default BY_YEAR)

Optional:

  • budget_source_ref: reference to scenario/budget dataset (e.g. IPCC)
  • scope: TOTAL | SCOPE1+2 | SCOPE1+2+3

2.2. Options Schema

ZAR Address: schema.compute.ghg.carbon_budget.options.v1_0_0

Common options:

  • negative_remaining_policy: ALLOW | FLOOR_AT_ZERO
  • missing_year_policy: ERROR | INTERPOLATE | SKIP
  • rounding: optional digits

2.3. Output Schema

ZAR Address: schema.compute.ghg.carbon_budget.output.v1_0_0

Outputs include:

  • budget_used
  • budget_remaining
  • budget_remaining_pct
  • metadata (policies applied, scope, coverage)

3. Accepted Input Shapes

A. Emissions time-series with scalar budget

{
"emissions": [[2025, 12000], [2026, 11000], [2027, 10000]],
"budget": 100000,
"cumulative_from_year": 2020
}

B. Emissions with time-varying budget

{
"emissions": [[2025, 12000], [2026, 11000]],
"budget": [[2025, 90000], [2026, 80000]],
"cumulative_from_year": 2020
}

4. Compute Semantics (Normative)

4.1. Cumulative emissions

Let E(t)E(t) be emissions in year tt. Cumulative emissions from year Y0Y_0 to year tt are:

Ecum(t)=y=Y0tE(y)E_{cum}(t) = \sum_{y=Y_0}^{t} E(y)


4.2. Budget used

If budget is scalar:

Bused(t)=Ecum(t)B_{used}(t) = E_{cum}(t)

If budget is time-varying:

Bused(t)=Ecum(t)B_{used}(t) = E_{cum}(t)

(The distinction affects remaining budget, not usage.)


4.3. Budget remaining

Let B(t)B(t) be the allowed budget at time tt (scalar or series):

Brem(t)=B(t)Ecum(t)B_{rem}(t) = B(t) - E_{cum}(t)

If negative_remaining_policy = FLOOR_AT_ZERO:

Brem(t)=max(0,Brem(t))B_{rem}(t) = \max(0, B_{rem}(t))


4.4. Budget remaining percentage

Brempct(t)=Brem(t)max(B(t),ϵ)B_{rem_pct}(t) = \frac{B_{rem}(t)}{\max(|B(t)|, \epsilon)}

Where ϵ\epsilon is a small positive constant to avoid division instability.


5. Alignment Rules

BY_YEAR

  • Emissions MUST be provided per year.
  • Budget series (if provided) MUST align by year.

BY_INDEX

  • Ordered cumulative calculation.
  • Strongly discouraged for regulatory reporting.

Metadata MUST include:

  • years_included
  • cumulative_from_year
  • missing_years_handled

6. Validation & Error Model

Invariants

  • Emissions values must be finite
  • Budget must be finite and ≥ 0
  • cumulative_from_year must not exceed earliest emissions year

Error codes (suggested)

  • CARBON_BUDGET_MISSING_EMISSIONS
  • CARBON_BUDGET_INVALID_BUDGET
  • CARBON_BUDGET_NEGATIVE_REMAINING
  • CARBON_BUDGET_ALIGNMENT_MISMATCH

Errors MUST include:

  • engine cmi_short_code
  • year causing failure

7. Dependencies

MEID_CALC_CARBON_BUDGET depends on:

  • time-series normalization utilities
  • schema resolver (ZAR)
  • optional scenario/budget datasets (IPCC, IEA, SBTi)

Declared via ZAR dependencies.


8. Federation & Audit Requirements

To reproduce carbon budget outputs externally, the export MUST include:

  • Engine identity (cmi or zar_code)
  • Engine build proof (execution_ref + build_hash)
  • Input/options/output schemas
  • Emissions time-series used
  • Budget value or series
  • Budget source reference (if any)
  • Cumulative start year

Provenance chain MUST show:

… → MEID_CALC_CARBON_BUDGET → …

with cmi_short_code present in USO tail arrays.


9. Performance Notes

  • Complexity: O(n)O(n) over years
  • Memory: O(n)O(n)
  • Suitable for long-horizon scenario analysis

10. Methods Served (v1)

  • GHG.carbon_budget.remaining
  • GHG.carbon_budget.used
  • GHG.carbon_budget.remaining_pct

Downstream engines:

  • MEID_SCEN_GHG_ALIGN
  • climate transition risk scoring engines



GitHub RepoRequest for Change (RFC)