CARB-BUD
Carbon Budget Calculator
1. 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 emissionsbudget: scalar or time-series defining allowed cumulative emissionscumulative_from_year: integer (start year for cumulative sum)alignment:BY_YEAR|BY_INDEX(defaultBY_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_ZEROmissing_year_policy:ERROR|INTERPOLATE|SKIProunding: optional digits
2.3. Output Schema
ZAR Address: schema.compute.ghg.carbon_budget.output.v1_0_0
Outputs include:
budget_usedbudget_remainingbudget_remaining_pctmetadata(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 be emissions in year . Cumulative emissions from year to year are:
4.2. Budget used
If budget is scalar:
If budget is time-varying:
(The distinction affects remaining budget, not usage.)
4.3. Budget remaining
Let be the allowed budget at time (scalar or series):
If negative_remaining_policy = FLOOR_AT_ZERO:
4.4. Budget remaining percentage
Where 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_yearmust not exceed earliest emissions year
Error codes (suggested)
CARBON_BUDGET_MISSING_EMISSIONSCARBON_BUDGET_INVALID_BUDGETCARBON_BUDGET_NEGATIVE_REMAININGCARBON_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 (
cmiorzar_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: over years
- Memory:
- Suitable for long-horizon scenario analysis
10. Methods Served (v1)
GHG.carbon_budget.remainingGHG.carbon_budget.usedGHG.carbon_budget.remaining_pct
Downstream engines:
MEID_SCEN_GHG_ALIGN- climate transition risk scoring engines