Skip to content

fix nuclear fuel price (efficiency was applied twice) - #291

Merged
fneum merged 2 commits into
masterfrom
nuclear-fuel-price
Oct 29, 2026
Merged

fneum merged 2 commits into
masterfrom
nuclear-fuel-price

Conversation

@bobbyxng

@bobbyxng bobbyxng commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Changes proposed in this Pull Request

The nuclear/uranium fuel price from PR #259 was about 3x too high. The TYNDP 2024 nuclear fuel price is based on EIA fuel expenses per MWh of electricity generated, but it is used here as a price per MWh of fuel, so the efficiency gets applied twice (effectively about 3x too high). It's a unit mix-up in the TYNDP 2024 price data (ENTSO-E/ENTSOG): an electricity-based EIA cost is listed as a fuel price.
@fneum @euronion

Old value (TYNDP 2024 Prices.zip, sheet IEA - References, cell E24):

AVERAGE(EIA nuclear fuel 2011–2021) × 0.84 EUR/USD ÷ 3.6 GJ/MWh
= 7.20 USD/MWh_el × 0.84 ÷ 3.6
= 1.68 EUR/GJ

EIA Table 8.4 is in mills per kWh of electricity generated, so this is not a fuel price per GJ of fuel.

New value (Lazard LCOE+ 2026, pp. 7 and 28; same value as the 2023 edition, p. 49):

0.85 USD/MMBtu × 3.412 MMBtu/MWh ÷ 1.16 USD/EUR
= 2.50 EUR2026/MWh_th

1.16 USD/EUR is the ECB average for Jan–Sep 2026.

This is also in line with the earlier TYNDP cycles (2020/2022): the same workbook still lists their nuclear fuel price of 0.47 EUR/GJ (≈ 1.7 EUR/MWh_th) in sheet Final Fuel Prices 2022.

Effect on nuclear's marginal cost (VOM 4.46 EUR/MWh_el, efficiency 0.326):

fuel price marginal cost
before 7.45 EUR/MWh_th 4.46 + 7.45 ÷ 0.326 ≈ 27.3 EUR/MWh_el
after 2.44 EUR/MWh_th 4.46 + 2.44 ÷ 0.326 ≈ 12.0 EUR/MWh_el

Only the four nuclear/uranium fuel rows change; the outputs are regenerated.

Checklist

  • Code changes are sufficiently documented; i.e. new functions contain docstrings and further explanations may be given in doc.
  • Data source for new technologies is clearly stated.
  • Newly introduced dependencies are added to environment.yaml (if applicable).
  • A note for the release notes doc/release_notes.rst of the upcoming release is included.
  • I consent to the release of this PR's code under the GPLv3 license.

@bobbyxng
bobbyxng requested review from Irieo and fneum October 27, 2026 10:42
@bobbyxng bobbyxng self-assigned this Oct 27, 2026
@bobbyxng bobbyxng added the bug Something isn't working label Oct 27, 2026

@fneum fneum left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM.

Could you remove "Replaces the TYNDP 2024 value of 1.6808 EUR/GJ, which the TYNDP workbook derives in sheet IEA - References, cell E24, as AVERAGE(EIA Table 8.4 nuclear fuel expenses 2011-2021) * 0.84 EUR/USD / 3.6 GJ/MWh; EIA Table 8.4 is in mills per kWh weighted by net generation, i.e. USD per MWh of electricity, so using the result as a thermal fuel price applied the plant efficiency twice (about 3x too high)."? It's not necessary to document changes in the data.

@Irieo Irieo left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Right, I followed same calculation here. Good it is fixed upstream!

@euronion euronion left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Nice!

  • What @fneum said, no need to describe the data changes in the description column or the release notes - shorter is better.
  • The efficiency value 3.412142 MMBtu/MWh_th is not from Lazard, right? Add where you are taking it from
  • Currency year: Debatable whether 2023 or 2026 is to be used. I'd be leaning towards 2023 (earlier appearance of the number)

Just for my understanding - did ENTSO-X get it wrong in the TYNDP, or did we interpret the number incorrectly?

@bobbyxng

Copy link
Copy Markdown
Contributor Author

Thanks @fneum @euronion @Irieo

Regarding the questions/comments:

  • I shortened the release notes
  • 3.412142 MMBtu/MWh_th isn't from Lazard, it's the unit conversion 3.6 GJ/MWh ÷ 1.055056 GJ/MMBtu, using the International Table Btu (1 Btu_IT = 1055.056 J), see NIST SP 811, Appendix B.9 (https://www.nist.gov/pml/special-publication-811/nist-guide-si-appendix-b-conversion-factors/nist-guide-si-appendix-b9).
  • switched to currency year 2023. The rows now cite Lazard v16.0 (2023), p. 49, like the other nuclear rows, converted at 1.09 USD/EUR --> 0.85 × 3.412142 / 1.09 = 2.66 EUR/MWh_th.
  • The error is in the TYNDP 2024 inputs, so on ENTSO-X side, The workbook (sheet IEA - References, cell E24) takes EIA Table 8.4 nuclear fuel expenses, which are per kWh of electricity generated, and divides by 3.6 GJ/MWh as if they were per unit of fuel. We used the value as given, so the plant efficiency was applied twice. The earlier TYNDP cycles (0.47 EUR/GJ, still in the same workbook) are in line with Lazard.

@euronion euronion left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Great! 2023 is also better, because the inflation data is already in the past and no longer developing.

@fneum
fneum merged commit e5d2518 into master Oct 29, 2026
3 checks passed
@fneum
fneum deleted the nuclear-fuel-price branch October 29, 2026 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants