Skip to content

Missing factor keys for waste and biomass in carbon_intensity_per_source.json #1415

Description

@avalyset

The Finnish and Danish bidding zones carry 11–32 % of their generation at factor zero when computed on carbon_intensity_per_source.json, because the table has no key for Waste or Biomass. The direction of the error is known: both types emit at the stack. Its size is not something the table can express.

The numbers. From ENTSO-E A75 for 2025 on your own factor table, unfactored types carried in the denominator at zero:

Zone Waste % Biomass % Coverage CI on your table (our computation)
FI 0.47 10.68 86.30 % 47.8
DK1 2.81 9.37 87.77 % 89.6
DK2 9.55 22.80 67.65 % 117.9
NO1–NO5 0.00–0.42 0.00 98.65–99.89 % 25.8–51.7

The Norwegian and Swedish values you ship are barely affected; their coverage fields say so. Finland is affected materially — the one zone where biomass exceeds a tenth of generation.

How the code handles the absence today. In _global_energy_mix_to_emissions_rate (codecarbon/core/emissions.py:353-356) the field name is stripped of _TWh and looked up in the factor table, so biofuel_TWh resolves to biofuel, finds nothing, and is skipped from both the numerator and energy_sum_computed. Most countries never reach that path, since 212 of 213 entries in global_energy_mix.json carry carbon_intensity directly, but it is the path that defines what a missing key means. The nordic_emissions.json path handles the same absence differently: the type stays in the denominator at zero. Neither is a factor, and they do not agree.

What other products do. Electricity Maps carries a biomass key (0 direct, 230 lifecycle) but no waste key. Energinet publishes a Danish waste factor, 329.87 gCO2/kWh under its 125 % CHP allocation. Separately, Eurostat puts Danish waste generation at roughly 58 % non-renewable by energy (2023). Eurostat and Statistics Finland both split waste into renewable and non-renewable as separate codes. ENTSO-E does not.

That split is why we are asking rather than proposing: a single Waste number is not well defined without the fraction, and the fraction moves by country and year — 48.0 % non-renewable for Norway in 2023, 45.1 % Finland, 58.0 % Denmark.

The question: would you want keys for these two types at all, and if so, one value per type, or a scheme pricing only the non-renewable fraction of waste? We have not proposed values, and would rather hear the preferred shape first. Happy to bring the per-zone measurements if useful.

Disclosure: drafted with Anthropic Claude models (Opus 5 via Claude Code, Fable 5.1 in chat) under my direction. The measurements were computed with those tools from ENTSO-E and Eurostat primary data and checked by me; I am responsible for them and can walk through every number.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions