Skip to content

Adapt maximum early retirement rates and differentiate between NPi and policy runs#2300

Merged
fschreyer merged 16 commits intoremindmodel:developfrom
fschreyer:NpiDev
Mar 3, 2026
Merged

Adapt maximum early retirement rates and differentiate between NPi and policy runs#2300
fschreyer merged 16 commits intoremindmodel:developfrom
fschreyer:NpiDev

Conversation

@fschreyer
Copy link
Contributor

Purpose of this PR

This PR changes the assumptions on the Npi technology development; mainly on the maximum allowed speed of early retirement.

It addresses the parts of https://github.com/remindmodel/development_issues/issues/694 relevant for this release.

There are several changes included:

1.) It introduces a the following regional/technological/scenario differentiation to the early retirement rates:

Rates in Npi:

  • 6%/yr EUR
  • 4%/yr JPN, US, CAZ, China (rest of Global North + China)
  • 3%/yr rest

Rates in (SSP2) policy (target) scenarios (NDC, PkBudg):

  • 8%/yr EUR
  • 7%/yr JPN, US, CAZ, China (rest of Global North + China)
  • 6%/yr rest

Rates in (SSP1) policy (target) scenarios:

  • 12%/yr EUR
  • 10%/yr JPN, US, CAZ, China (rest of Global North + China)
  • 8%/yr rest

Rates in (SSP5) policy (target) scenarios are the same as in SSP2 Npi (default).

Technology differentiation:

  • coal power (pc): 1.2 * default rate
  • chp: 0.7 * default rate
  • heating plants: 0.5 * default rate
  • ngt: 0.3 * default rate
  • biomass technologies: 0.25 * default rate

The scenario-specific assumptions may still be refined over the next weeks, but it provides a basis for a regionally/scenario-dependent harmonized structure of assumptions.

Overall, maximum early retirement rates are now lowered in the Npi scenario relative to strong policy scenario because we assume that current inertias related to political preferences of incumbent fossil technologies are preserved in a current policies narrative, while strong policy scenarios (NDC, PkBudg) manage to overcome these political / institutional inertias. In addition, the rates of strong policy scenarios have been slightly lowered in comparison to the previous default mainly due to learnings from regional experts (India, China) and the observed slow trend of the European coal power phase-out (probably not before 2035/2040) despite unfavorable economics of coal power.

2.) Early retirement has been switched off for all regions except US and EUR until 2030. This is to prevent counterfactual front-loading of early retirement in historical / near-term time steps. The two regions are the main ones in which early retirement of coal plants has occured so far. Also if EU21 regional resolution is used, retirement rates are increased by 2%/yr for all EU subregions because the increase in regional resolution introduces more inertia in the coal phase-out by itself.

3.) Refactor early retirement implementation. Allow early retirement for all technologies present in set teEarlyReti and present in switch c_tech_earlyreti_rate (which is "off" by default).

4.) slightly increase solar PV adjustment costs and decrease adjustment seed for more realistic near-term up-scaling

5.) improve documentation of Npi2025 carbon price code

Note: There are some infeasibilities for SSP1 PkBudg runs with these changes. I would suggest to still get this PR in first to move on with the development. I will deal with this in a follow-up process.

Type of change

Indicate the items relevant for your PR by replacing ◻️ with ☑️.
Do not delete any lines. This makes it easier to understand which areas are affected by your changes and which are not.

Parts concerned

  • ☑️ GAMS Code
  • ◻️ R-scripts
  • ◻️ Documentation (GAMS incode documentation, comments, tutorials)
  • ◻️ Input data / CES parameters
  • ◻️ Tests, CI/CD (continuous integration/deployment)
  • ◻️ Configuration (switches in main.gms, default.cfg, and scenario_config*.csv files)
  • ◻️ Other (please give a description)

Impact

  • ◻️ Bug fix
  • ◻️ Refactoring
  • ☑️ New feature
  • ◻️ Change of parameter values or input data (including CES parameters)
  • ◻️ Minor change (default scenarios show only small differences)
  • ◻️ Fundamental change of results of default scenarios

Checklist

Do not delete any line. Leave unfinished elements unchecked so others know how far along you are.
In the end all checkboxes must be ticked before you can merge
.

  • I executed the automated model tests (make test) after my final commit and all tests pass (FAIL 0)
  • I adjusted the reporting in remind2 if and where it was needed
  • I adjusted the madrat packages (mrremind and other packages involved) for input data generation if and where it was needed
  • My code follows the coding etiquette
  • I explained my changes within the PR, particularly in hard-to-understand areas
  • I checked that the in-code documentation is up-to-date
  • I adjusted forbiddenColumnNames in readCheckScenarioConfig.R in case the PR leads to deprecated switches
  • I updated the CHANGELOG.md correctly (added, changed, fixed, removed, input data/calibration)

Further information (optional)

  • Runs with these changes are here:
  • Comparison of results (what changes by this PR?):
    Current AMT runs vs. the changes of this PR for SSP2 Npi2025 and PkBudg750 can be found here:

/p/tmp/schreyer/Modeling/remind/NpiDev/compScen-SSP2_RetiUpdate-2026-03-02_10.56.49-H12-short.pdf

Felix Schreyer added 12 commits January 8, 2026 17:11
…2035 as these are the only regions that show significant phase-out dynamics. Otherwise, other regions might anticipate high fraction of early retirements needed later and therefore already increase the early retirement in 2025 or 2030.
…oal power has 20% higher rates than by default, chp 70% of default, heating plants 50% of default etc. Moreover, increase default retirement rates of EU subregions by 2%/yr if all EU subregions of EU21 regionmapping are available because the higher regional resolution introduces more inertia to phaes-out dynamics as every region has to phase-out independently.
…te and c_tech_earlyreti_rate switches. By default (Npi runs), retirement rates of 6% (EU), 4% (US, China, JPN, CAZ), 3% (rest of the world) are assumed. In target scenario runs, the rates for the latter two groups are increased (to 6% and 5% respectively). Technology differentiation of retirement rates is switched off by default via the switch c_tech_earlyreti_rate. This is now all done in the code (see core/datainput).
…d for solar PV; results in a bit slower near-term up-scaling
…d scenario config. Default rates apply to Npi and rollback scenarios. All other scenarios have slightly increased rates, which are a bit lower, though, than the previous default. SSP1 allows for even faster retirement, while SSP5 has the standard rates of the NPI scenario for all scenarios
Copy link
Contributor

@robertpietzcker robertpietzcker left a comment

Choose a reason for hiding this comment

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

Thanks - this improves the near-term plausibility quite a bit, I would say.

I still don't find the 1000 GW Solar in EUR in 2030 in NPi plausible, so I would further increase the PV adj costs, but that is not so relevant as first having the general update in.

Copy link
Contributor

@lecfab lecfab left a comment

Choose a reason for hiding this comment

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

Hey Felix, thanks for a very clean PR, I only have minor comments (for which I tried the "suggestion" mode, let me know if you find it convenient or not)

fschreyer and others added 3 commits March 3, 2026 10:16
Co-authored-by: Fabrice Lécuyer <lecfab+git@gmail.com>
Co-authored-by: Fabrice Lécuyer <lecfab+git@gmail.com>
Co-authored-by: Fabrice Lécuyer <lecfab+git@gmail.com>
@fschreyer
Copy link
Contributor Author

Thanks for your comments!

@fschreyer fschreyer merged commit 5ad3578 into remindmodel:develop Mar 3, 2026
2 checks passed
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.

3 participants