Skip to content

Add Investment_Inefficiencies realization to module 01_macro#2379

Merged
daymontas1 merged 10 commits into
remindmodel:developfrom
daymontas1:investment-inefficiencis
Jul 3, 2026
Merged

Add Investment_Inefficiencies realization to module 01_macro#2379
daymontas1 merged 10 commits into
remindmodel:developfrom
daymontas1:investment-inefficiencis

Conversation

@daymontas1

@daymontas1 daymontas1 commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Purpose of this PR

This PR introduces a new realization in the macro module that accounts for investment losses arising from domestic capital market inefficiencies.

Please explain your PR here.
Investment_Inefficiencies
The Investment_Inefficiencies realization in the macro module computes the share of new investments that is not transformed into productive capital due to financial frictions, misallocation, installation costs, or other inefficiencies. A parameter, φ, is introduced into the capital accumulation equation to represent these inefficiencies.

Specifically, φ captures the share of gross investment that successfully translates into productive capital in each region. Regional φ values are calibrated using literature-defined bounds* and empirical data on the efficiency of financial systems.
Capital.Market.Modelling.in.REMIND.pptx

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?):

@nicobauer nicobauer left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Fine with me! Lavinia will check one more thing abut the file red for the calibration runs.

@daymontas1

Copy link
Copy Markdown
Contributor Author

I tested the following three different variations, T1, T2, and T3, in the capital accumulation equation using the latest development branch. For the calibration, I switched on investment inefficiencies in the macro module together with the macroinvestments' capital costs from the WACC module.

All three variants lead to some calibration issues; some occur in different regions, time periods, or variables; while others are common across all three variants (for example, ue_steel_primary in NEU). Do you have any suggestions on how to proceed? Thanks.

Attached the calibration files for the different variants. Also, the runs are available in p/tmp/adamanti/remind_imperfect_markets_b/ouput with the names:
SSP2-NPi-calibrate_T1_2026-06-29_13.38.05, SSP2-NPi-calibrate_T2_2026-06-29_14.55.02, and SSP2-NPi-calibrate_T3_2026-06-29_14.27.00
CES_calibration_report_SSP2-NPi-calibrate_T3_2026-06-29_14.27.00.pdf
CES_calibration_report_SSP2-NPi-calibrate_T2_2026-06-29_14.55.02.pdf
CES_calibration_report_SSP2-NPi-calibrate_T1_2026-06-29_13.38.05.pdf

T1

  • p01_cumDeprecFactor_old(ttot+1,regi,in) * vm_invMacro(ttot,regi,in) * p01_investeffectv(regi)
  • p01_cumDeprecFactor_new(ttot+1,regi,in) * vm_invMacro(ttot+1,regi,in) * p01_investeffectv(regi)
    ;

T3

  • p01_cumDeprecFactor_old(ttot+1,regi,in) * vm_invMacro(ttot,regi,in)
  • p01_cumDeprecFactor_new(ttot+1,regi,in) * vm_invMacro(ttot+1,regi,in) * p01_investeffectv(regi)
    ;

T2

  • p01_cumDeprecFactor_old(ttot+1,regi,in) * vm_invMacro(ttot+1,regi,in) * p01_investeffectv(regi)
  • p01_cumDeprecFactor_new(ttot+1,regi,in) * vm_invMacro(ttot+1,regi,in) * p01_investeffectv(regi)
    ;

@nicobauer

Copy link
Copy Markdown
Contributor

I checked the calibration files. This looks good.
[Not directly related with the purpose here, but worth noting is this:There are some deviations with primary steel in CHA and NEU. The decline in the target is so fast that the model is not able to achieve this (it seems).]

@nicobauer

Copy link
Copy Markdown
Contributor

@Lavinia: I think oyu can give 👍

@LaviniaBaumstark LaviniaBaumstark 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.

please run codeCheck and finalize teh PR template

Comment thread main.gms
Comment thread modules/01_macro/Investment_Inefficiencies/declarations.gms Outdated
@daymontas1

Copy link
Copy Markdown
Contributor Author

please run codeCheck and finalize teh PR template

It looks ready to merge now. All tests have passed, and the PR checklist is complete.

@nicobauer

nicobauer commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Very good! Thanks Diamantis!!

@daymontas1 daymontas1 merged commit 4187f7a into remindmodel:develop Jul 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