Estimated electricity legs: losses and the fuel chain

Numbers checked against the live data on

Most electricity publishers print one number per kilowatt-hour: the emissions of generating it. A delivered kilowatt-hour costs more than that. Some of the power is lost in the wires before it reaches your meter, and the fuel the plants burn had to be extracted, refined and transported first. Where a publisher prints those legs, factor search serves them as published. Where a publisher prints generation only, open-climate.ai adds the missing legs, computed by a stated rule from the publisher's own generation value and from public statistics, and marks every one of them as an estimate. This page says what the legs are, how each is computed, what they are worth, and how to leave them out.

The three legs#

Leg system_boundary What it covers Rule
Losses transmission_distribution The generation emissions of the electricity lost between the plant and the meter. The location-based generation value times k, where k = L / (1 - L) and L is the share of generated electricity the grid loses.
Fuel chain upstream_fuel Extracting, processing and transporting the fuel the plants burn (well-to-tank). The generation value times the grid's fossil supply-chain ratio, plus the biomass share of generation times the biomass supply-chain factor.
Fuel chain of the losses transmission_distribution_upstream The well-to-tank emissions of the lost electricity. The location-based fuel-chain leg times k.

Where the publisher prints no delivered total either, open-climate.ai also sums a well_to_use total per mix: generation plus the three legs. Where the publisher prints a total, or prints one of the legs, that printed number stays and no estimate replaces it. Every leg lives on its own factor, beside the base factor, with the same activity, region, unit and reference year, and the same licence as the base.

How each leg is computed#

Losses. L is the share of the electricity entering the grid that is lost before it reaches users, taken from a statistic for the region. Per kilowatt-hour delivered, the lost electricity is k = L / (1 - L) kilowatt-hours generated, so the loss leg is the location-based generation value times k. The location-based value is the consumption mix where the publisher prints one, else the production mix. Losses are physical, so the same loss value is stamped on every mix of the factor and year, the market-based mixes and a green contract included. That is the rule of the GHG Protocol Scope 2 Guidance, Appendix B: losses are reported with the location-based factor unless certificates were bought to cover them.

Fuel chain. For each fossil fuel, the ratio of its well-to-tank emissions to its combustion emissions is taken from the UK Government GHG conversion factors 2026: natural gas 0.1657, coal 0.17455, fuel oil 0.22056 (other fossil generation takes the fuel-oil ratio). The grid's ratio, r_fossil, is the average of the three weighted by each fuel's share of the grid's fossil combustion emissions in that year. The fuel-chain leg of a published mix is its generation value times r_fossil, plus the biomass share of generation times 0.071 kg CO2e per kWh, the biomass supply-chain factor of co2emissiefactoren.nl for 2024, applied to every year. The nuclear fuel chain adds 0: no full-rights figure for it is served, and every description states that gap. Plant construction is not included.

A green contract. A certified renewable tariff burns no fossil fuel, so its fuel-chain leg is the biomass share of renewable generation times the biomass supply-chain factor. Its loss leg is the location-based one, as above.

Fuel chain of the losses. The fuel-chain leg of the location-based value times k. It is stamped on every mix too.

Which year. A leg takes the statistic of its own reference year. Where the region has none for that year, it takes the nearest earlier year, and only where no earlier year exists the nearest later one. The year used is printed in the leg's description.

Where the inputs come from#

Each input is read from a ladder, and the first rung that resolves wins. The rung caps the quality tier the leg can reach, and names the reason it carries.

Rung Loss share L Cap data_quality_reason_normalized
L0 The publisher's own printed figures: a printed loss leg over its generation value, or a printed generation and consumption series. medium estimated_from_regional_statistic
L1 A statistic published for the region: Eurostat energy balances (32 European regions), DUKES (Great Britain), SFOE (Switzerland), eGRID grid gross loss by interconnection (US subregions). medium estimated_from_regional_statistic
L2 The nearest broader region with a row, the hops recorded. very_low estimated_from_broader_region
Rung Fuel weights and biomass share Cap data_quality_reason_normalized
U1 The region's own generation mix: Ember (countries), the eGRID resource mix (US subregions), the ECCC national inventory (Canadian provinces). low estimated_from_regional_model
U2 The nearest broader region's mix, the hops recorded. very_low estimated_from_broader_region

A loss share is never computed from a factor in the catalogue, and no weight or ratio is tuned to match any published leg. Every parameter the examples below use, with its source, edition, retrieval date and licence, is on the parameters page.

What the legs are worth#

An estimated leg is served at the worst of three tiers: the cap of its rung, the tier of the base value it multiplies, and the tier its own calibration error earns on the same scale as a publisher's stated uncertainty (how the tier is set). The calibration error is the worst symmetric error of the rule against the publishers who do print the leg, measured once on 2026-09-24 and never fitted.

Rung Compared against Worst error Served at best
L0 No independent comparator: a publisher reproduces its own leg. not measured medium
L1 DESNZ Great Britain 2023 and ADEME France 2008 to 2024, 18 rows 86.2 % low
L2 26 eGRID subregions re-estimated from the US share 4.8 % very_low
U1 co2emissiefactoren.nl (Netherlands), co2emissiefactoren.be (Belgium) and DESNZ, 31 rows 77.2 % low
U2 13 Canadian provinces and 27 eGRID subregions re-estimated from their country's mix 1191.4 % very_low

Watch out. The rule was set two acceptance gates before it was measured: a worst error of 15 % on the loss leg and a median of 20 % with a worst of 50 % on the fuel-chain leg. Both failed. The Belgian publisher's fuel-chain leg is 12 to 15 % of its generation value where the rule gives 19 to 21 %, and the French loss leg before 2024 is 13 to 15 % of generation where the Eurostat share implies 8 to 9 %. The rule ships as designed, with the measured error served in the tier, and whether it is narrowed is an open decision of the owner. Treat a leg at low as an order of magnitude, not a measurement.

A total over estimated legs takes its worst leg's tier. It takes that leg's reason only where every leg at that tier gives the same one; where the loss leg and the fuel-chain legs tie at low with different reasons, as they do on most totals, the total carries no reason and each leg's own reason says why. The loss leg copies the base value's GWP set; the two fuel-chain legs are AR5, the vintage of their ratios, so a total over an AR6 base carries a mixed vintage (GWP values).

Licences#

Two rules, one for each side.

  • Inputs. A statistic is used only where its licence grants all five rights, with no condition beyond credit, stating changes, no endorsement and notifying the publisher (five questions per licence). Eight inputs pass: Eurostat, DUKES, eGRID (grid gross loss and resource mix), SFOE, Ember, the UK Government conversion factors, co2emissiefactoren.nl and the ECCC national inventory. Mexico's SENER loss statistic does not (non-commercial terms), so no loss leg is estimated for Mexico. Without a loss share there is no fuel chain of the losses either, so the Mexican publisher gets the fuel-chain leg only.
  • Targets. A publisher's own generation value may be scaled unless its terms answer "no" or "ask" to modifying and combining the data. No published number is ever changed, so a term that only forbids altering the figures is met. The legs sit in the publisher's own release and carry its licence, its tier and its credit line, so they are redistributable exactly where the base value is, and never more.

The exports credit every input beside the publisher: the Open Government Licence statement for DUKES and the UK conversion factors, CC BY 4.0 for Eurostat and Ember with the changes stated, the public-domain notice for eGRID, the Open Government Licence Canada for ECCC, and co2emissiefactoren.nl.

Which libraries get legs#

Library Base mixes Legs added Why not the rest
AIB (34 European regions, 2025) production, residual, supplier_specific, and the added green value of 0 losses, fuel chain, fuel chain of the losses, totals Iceland gets the loss leg only: its 2025 mix has no fossil generation to weight the fuel-chain ratios, so there is no fuel-chain leg and no total
U.S. EPA (28 subregions, 2026) and eGRID (28 subregions, 2023) production all three, totals marginal values are left alone
NVE (Norway, 2019 to 2025) consumption, residual, green all three, totals
MfE (New Zealand, annual and quarterly) consumption fuel chain and fuel chain of the losses on every factor; losses only where MfE prints none MfE prints an annual loss leg, which stays
SEMARNAT (Mexico, 2014 to 2024) production fuel chain the loss statistic fails the input rule, so no loss leg, no fuel chain of the losses and no total
ECCC (Canada, 14 regions) and EPPO (Thailand) production fuel chain and fuel chain of the losses both print a delivered total that already holds the losses, so no loss leg and no new total
Green-e (US states) and NGA (Australia) residual none; a green value of 0 only no location-based value to scale

Three publishers with generation-only electricity are held out. MITECO prints no location-based value, so there is nothing to scale a loss leg from. ISPRA prints its own loss leg and a consumption total, and its only whole-grid generation series is per kilowatt-hour of gross output, a basis the total does not share. Japan's Ministry of the Environment publishes 1,514 retailer factors of which only 4 carry a location-based value; the owner excluded it.

The green value of 0. Where a publisher prints a residual mix and no green mix for the same year, a market-based value of 0 for a green contract is added on the residual's factor, marked grid_mix_origin = 'assigned' and green_electricity_zero. That 0 is the Protocol's generation value for a certificate-backed kilowatt-hour, not an estimate, and a note on the factor says who added it. Its loss leg and fuel-chain leg are not zero, as above.

Worked examples#

All values in kg CO2e per kWh. The published generation value is the publisher's; every other number is open-climate.ai's and carries the tier in the last column.

Belgium, AIB 2025#

Inputs: Eurostat's Belgian loss share for 2024 (the nearest earlier year), 4.0755 %, so k = 0.042487; Ember's Belgian mix for 2025, in which gas is the only fossil fuel, so r_fossil = 0.1657; a biomass share of generation of 7.17 % and of renewable generation of 17.54 %. The location-based value is the production mix.

Mix Generation (published) Fuel chain Losses Fuel chain of losses Total Tier
production 0.12186 0.12186 x 0.1657 + 0.0717 x 0.071 = 0.02528 0.12186 x 0.042487 = 0.00518 0.02528 x 0.042487 = 0.00107 0.15339 low
residual (the default) 0.17101 0.03343 0.00518 0.00107 0.21069 low
supplier_specific 0.11413 0.02400 0.00518 0.00107 0.14438 low
green 0 0.1754 x 0.071 = 0.01245 0.00518 0.00107 0.01870 low

The loss legs are low because the loss rung's measured error is 86.2 %, although its cap is medium; the fuel-chain legs are low by their cap. AIB's base values are medium (CO2 only), which the legs cannot beat anyway. Browse the base in factor search.

Norway, NVE 2024#

Inputs: Eurostat's Norwegian loss share for 2024, 6.289 %, so k = 0.067111; Ember's Norwegian mix for 2024, gas 58.3 % and other fossil 41.7 % of fossil emissions, so r_fossil = 0.18859; biomass 0.15 % of generation and 0.155 % of renewables. The location-based value is the consumption mix ("Klimadeklarasjon"). The green value of 0 is the one open-climate.ai added, since NVE prints a residual mix ("Varedeklarasjon") and no green.

Mix Generation (published) Fuel chain Losses Fuel chain of losses Total Tier
consumption 0.01185 0.00234 0.00080 0.00016 0.01515 low
residual (the default) 0.53484 0.10097 0.00080 0.00016 0.63677 low
green (added) 0 0.00011 0.00080 0.00016 0.00106 low

Under a residual mix the fuel chain adds 19 %, the size of Norway's imported fossil power in the residual. Under a hydro-backed green contract the delivered kilowatt-hour is 0.001, not 0.

California, U.S. EPA 2026#

Inputs: eGRID's grid gross loss for the Western interconnection in 2023 (the nearest earlier year), 4.1497 %, so k = 0.043294; eGRID's CAMX resource mix for 2023, coal 10.4 %, gas 87.2 % and other fossil 2.5 % of fossil emissions, so r_fossil = 0.16797; biomass 2.15 % and nuclear 8.02 % of generation. The eGRID 2023 factor for the same subregion takes the same inputs in the same year.

Mix Generation (published) Fuel chain Losses Fuel chain of losses Total Tier
production 0.18378 0.18378 x 0.16797 + 0.0215 x 0.071 = 0.03240 0.18378 x 0.043294 = 0.00796 0.00140 0.22553 low

The base is high and AR6; the legs pull the total to low, and its GWP vintage is mixed. Browse the base in factor search.

New Zealand, MfE 2024#

MfE prints a loss leg for its annual factor, 0.007523 against a generation value of 0.099360, so the loss share is the publisher's own: k = 0.075718 (rung L0, no statistic needed). MfE prints no loss leg for its quarterly factors, so the annual k is applied to them. Ember's New Zealand mix for 2024 gives r_fossil = 0.17440 and a biomass share of 1.77 %.

Factor Generation (published) Fuel chain Losses Fuel chain of losses Total Tier
Electricity used, 2024 0.09936 0.01859 0.007523 (published, kept) 0.00141 0.12688 low
Electricity used, quarter to June 2024 0.13459 0.02473 0.13459 x 0.075718 = 0.01019 0.00187 0.17138 low

The annual factor keeps MfE's printed loss leg: an estimate is never minted where the publisher prints the leg. The quarterly loss leg is medium, the L0 cap, since that rung has no calibration error; the fuel-chain legs are low, so the totals are low.

Conformance with the GHG Protocol#

The legs follow two texts. The Scope 2 Guidance (2015), Appendix B (pp. 96 to 97), has the end user report transmission and distribution losses in scope 3 category 3 with the location-based factor, unless certificates were bought to cover the losses. The Scope 3 Standard, category 3 (Table 5.5, p. 41) and its Technical Guidance (Table 3.1, p. 39) place the upstream emissions of purchased fuels and electricity, the fuel chain of the generation and of the losses, in that same category. So the loss leg is always location-based, and the fuel-chain leg follows the mix you report. An independent review of the method against those texts found it consistent on the substance and noted the following limits, each stated here rather than smoothed over.

  • The Protocol never prints a zero. A certificate conveys the generator's direct emission rate (Table 7.1 criterion 1, p. 60; Table 6.3, p. 48), which is zero for wind, solar and hydro and not for biomass, whose CH4 and N2O stay in scope 2 (section 6.12, p. 57). The green value of 0 served here is the non-combustion case; a biomass-backed certificate is not 0, and the row cannot tell the two apart.
  • A green value applies only to a reporter whose instruments meet the Quality Criteria. Criteria 2 to 7 are properties of your contract, not of the row; without such an instrument you report the residual mix, and where none exists the location-based factor (sections 6.2, p. 44, and 6.5, p. 46). Criterion 8 asks you to disclose the residual mix beside a green claim (p. 60; section 7.5, p. 65).
  • The loss formula is the UK Government's form. k = L / (1 - L) is how the DESNZ methodology derives its loss factor (paragraphs 3.21, p. 29, and 10.13, p. 117). The Protocol's worked forms multiply consumption by L itself (Appendix B, p. 96; formula 3.3 of the Technical Guidance, p. 45), which is smaller by the factor 1 - L, between 4 and 10 % on the grids above.
  • The per-fuel ratios are British. They come from DESNZ Table 5 (pp. 23 to 24): coal from JEC WTW v5 (2019), natural gas from Exergia, E3M-Lab and COWI (2015), fuel oil taken as DESNZ's diesel estimate. Applying them to another country's fuel supply is a representativeness deviation of the kind the Technical Guidance (p. 44) and the Scope 3 Standard (Table 7.6) ask you to disclose. DESNZ's Table 5 prints no nuclear fuel chain, hence the 0.
  • GWP vintages. The ratios are AR5, which DESNZ has held for its well-to-tank fuels since 2023 (paragraph 1.18, p. 16); the biomass factor is co2emissiefactoren.nl's AR5 row for 2024, applied to every year. The loss leg copies the base value's vintage.
  • The loss share is the statistic's total losses, theft and metering differences included, as Appendix B's endnote 1 (p. 97) allows.

Whatever you report, disclose the method: a reader of your inventory should learn that the loss and fuel-chain legs were estimated, from which statistics, and at which tier. None of this is published or endorsed by the GHG Protocol or by any of the publishers named.

How a leg is marked, and how to leave it out#

  • On the factor, is_estimated is true, and so is is_derived, which it implies. A summed total whose parts include an estimate is is_estimated too. In factor search the row carries the badge "Added by open-climate.ai" and its description is open-climate.ai's, opening with who added it and from whose data, then the method with the actual numbers, the assumptions, the cap and its reason, the sources with their licences, and a not-endorsed line. In the API the field is estimated.
  • The description is written in English and French. It is not yet translated into German: a German request is served the English text, and description_lang says so. A summed total carries no description of its own; the descriptions of its legs explain it.
  • On the value, co2e_origin is estimated_from_reference, the fourth origin beside source, computed_from_gases and summed_from_children. It is never anything else on a leg, and a leg is never source.
  • data_quality_reason_normalized is one of the three rung tokens above, and the tier is capped as the table says.
  • The green value of 0 is marked on a different axis: grid_mix_origin = 'assigned', with co2e_origin = 'source', because it is the Protocol's value rather than an estimate.
  • The leg's key is the base factor's key with _est and the boundary appended, and a total's key ends in _sum, so a re-ingest of the base or of a statistic replaces the legs in place. The value's source_record is the manifest: the base value, the rung, the hops, every input with its snapshot and licence, the formula and the year used.

To use published numbers only, filter is_estimated = false in the open-data files or SQL, or estimated in the API. To keep the legs but see where they came from, read the description. is_derived = false is stricter: it also drops the totals summed from a publisher's own printed parts (parents, children, double counting).