Add module 25 WACC with standard and off realizations - #2378
Conversation
| + vm_costInvTeAdj.l(t2, regi, tewacc)$teAdj(tewacc) | ||
| ) * p25_techwacc(t2, regi, tewacc) * pm_ts(t2)/2); | ||
|
|
||
| p25_techwaccCostO(t, regi) = sum(tewacc, p25_waccCostO_tewacc(t, regi, tewacc)); |
There was a problem hiding this comment.
@LaviniaBaumstark Hi Lavinia, you left this comment in the previous PR at ths line: "Do you want to recalculate this also for fixed time periods?" At this point, I want to aggregate energy-related WACC costs across technologies for each period. p25_waccCostO_tewacc is calculated in the equation above (lines 12-16); this equation is simply meant to aggregate the WACC costs for each period and region across technologies. The resulting value is then subtracted in the next iteration.
I keep the calculation in two steps because I want to report the technology-specific WACC costs for each period and region in the output, rather than only the aggregated value.
I am not sure I fully understand your comment, if you meant something else please explain.
There was a problem hiding this comment.
I mean, if this calculation also need to be redoen for the fixed tmie periods, if we have a climate policy scneario, which is fixed to an NPI2025 for 2005-2020.
There was a problem hiding this comment.
I mean, if this calculation also need to be redoen for the fixed tmie periods, if we have a climate policy scneario, which is fixed to an NPI2025 for 2005-2020.
For fixed time periods, no.
|
The checks fail only because of an incompatible terra version, which is a general issue that needs to be fixed by Pascal. All other tests pass. |
|
Please fill in the PR-template regarding: Parts concerned and Impact, In the end you need to run |
I did it, also the make test was sucessful (it complained only about module 33). |
@LaviniaBaumstark This looks ready to merge. Please let me know if there's anything else, otherwise, please approve so I can merge the PR. Thanks. |
Purpose of this PR
This PR introduces a new module (Module 25_WACC) for calculating capital costs associated with energy-system and macroeconomic investments.
Please explain your PR here.
Module 25_WACC
Module 25_WACC computes, for each time period, technology-specific weighted average cost of capital (WACC)–related costs for the energy system, as well as costs associated with macroeconomic investment flows.
Energy-technology WACC costs consist of:
(i) costs associated with newly installed capacity in the current period, and
(ii) residual costs of technologies that remain in operation from previous periods.
This structure relies on the assumption that the repayment period equals the technical lifetime of each technology. Input WACC data are primarily drawn from Calcaterra et al. and are aggregated to REMIND regions using GDP-weighted averages of the countries comprising each region.
From these values, WACC mark-ups are derived and defined as the difference between the WACC of a given technology–region pair and the lowest observed WACC. The latter corresponds to natural-gas power generation in the USA and the CAZ region (Canada, Australia, and New Zealand), which serves as the risk-free reference case (i.e., zero mark-up) against which all other combinations are benchmarked.
To preserve budget neutrality, WACC-related costs are recycled back into the economy. At the same time, to capture the stimulating effect of WACC costs on investment decisions, WACC costs calculated in the previous model iteration are deducted from those computed in the current iteration. As the model converges, the net WACC cost component in the budget constraint approaches zero.
Further documentation is provided in the attached presentation and Word file.
Uploading Cost_of_Capital_Documentation_v2.docx…
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
Impact
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.
make test) after my final commit and all tests pass (FAIL 0)remind2if and where it was neededforbiddenColumnNamesin readCheckScenarioConfig.R in case the PR leads to deprecated switchesCHANGELOG.mdcorrectly (added, changed, fixed, removed, input data/calibration)Further information (optional)