Skip to content

Fill 2020 and 2021 carbon intensities by interpolation (#396)#1639

Merged
MaxGhenis merged 1 commit intomainfrom
carbon-intensity-2020-2021-396
Apr 20, 2026
Merged

Fill 2020 and 2021 carbon intensities by interpolation (#396)#1639
MaxGhenis merged 1 commit intomainfrom
carbon-intensity-2020-2021-396

Conversation

@vahid-ahmadi
Copy link
Copy Markdown
Collaborator

Summary

  • Issue Add historical carbon intensities #396 asked for historical carbon intensities — model had only 2019 and 2022, with the gap silently held flat at the 2019 value via the generic backdate_parameters step.
  • Add interpolated 2020 and 2021 values for all 12 intensity.yaml categories (linear between the existing DEFRA-sourced 2019 and 2022 anchors), so simulations covering those years use plausible intermediate values instead of a backdate artifact.
  • Update the YAML description to document the source / methodology / forward-projection.

Why interpolation, not DEFRA outturn

DEFRA's UK Carbon Footprint dataset does publish annual COICOP multipliers for 2020 and 2021, but only at 3-digit COICOP (~110 sub-categories like "1.1.1 Bread and cereals"). PolicyEngine's 12 categories are 2-digit roll-ups, and the existing 2019/2022 values in the YAML were produced by some LCFS expenditure-weighted aggregation whose methodology isn't captured anywhere in the repo. Back-casting with a different aggregation would put the new years on a different scale than the existing two anchors and introduce a discontinuity. Linear interpolation between two real DEFRA-anchored values is honest — it's clearly an estimate and the YAML description says so.

If anyone later sources the original LCFS-weighting methodology, the interpolated 2020 / 2021 figures (and ideally the full 1990-2018 history) can be replaced with proper DEFRA-derived values.

What about post-2022?

DEFRA runs roughly a 2.5-year lag on consumption-based emissions (the 2022 release was published 14 May 2025), so 2023, 2024, 2025 and 2026 outturn aren't published yet. The model continues to forward-project these via gov.economic_assumptions.yoy_growth.carbon_intensity at -4.9%/year, which is propagated through gov.economic_assumptions.indices.carbon_intensity and applied as the uprating source on intensity.yaml. As DEFRA publishes more recent outturn years, those should be appended to the YAML directly so the projection only kicks in past the most recent published year.

Test plan

  • make format clean
  • Verified parameter values load correctly across 2019-2023, with interpolation in 2020/2021 and the -4.9%/year decline still applying from 2023 onward.

🤖 Generated with Claude Code

DEFRA's UK Carbon Footprint dataset publishes annual COICOP
multipliers but only at 3-digit COICOP — aggregation to PE's 12
2-digit categories needs LCFS expenditure weighting and we don't
have the methodology used to produce the existing 2019 / 2022
values in the YAML. Use linear interpolation between those two
anchors as a transparent stop-gap, so simulations covering 2020
or 2021 use plausible intermediate values instead of the prior
`backdate_parameters` artifact that held everything flat at 2019.

Years after 2022 continue to be forward-projected at -4.9%/year
via `gov.economic_assumptions.indices.carbon_intensity`, since
DEFRA outturn for 2023+ has not yet been published (DEFRA runs
roughly a 2.5-year lag on consumption-based emissions).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vahid-ahmadi vahid-ahmadi self-assigned this Apr 20, 2026
Copy link
Copy Markdown
Collaborator

@MaxGhenis MaxGhenis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified the linear interpolation math against 6 categories — all match to within floating-point tolerance. Better than the prior backdate_parameters flat-hold artefact. Description note that DEFRA publishes COICOP figures but we lack the LCFS-weighted aggregation is a fair caveat — linear interpolation between the methodology-consistent 2019/2022 anchors is the right fallback.

@MaxGhenis MaxGhenis merged commit cb945a4 into main Apr 20, 2026
8 checks passed
@MaxGhenis MaxGhenis deleted the carbon-intensity-2020-2021-396 branch April 20, 2026 11:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants