Skip to content

MGA updates & employment outputs#21

Open
atpham88 wants to merge 87 commits into
mainfrom
ap_MGA
Open

MGA updates & employment outputs#21
atpham88 wants to merge 87 commits into
mainfrom
ap_MGA

Conversation

@atpham88

@atpham88 atpham88 commented Apr 16, 2026

Copy link
Copy Markdown

Summary

This PR adds some updates to MGA, cplex settings for national MGA runs, and employment outputs using employment factors from JEDI/WIRED and literature.

Technical details

Implementation notes

  • Employment factors input files are added to inputs/employment folder.
  • b_inputs.gms: Read in employment factors input (from JEDI/WIRED, Mayfield et al. (2023), Rutovitz et al, (2024), or Ram et al. (2020)).
    • JEDI/WIRED already specifies employment factors for CCS upgrades.
    • For the upgrade techs and CCS upgrades from non-JEDI/WIRED sources, employment factors are assumed to be half of those of new techs.
  • d_mga.gms: Add option to run MGA max/min for all capacity, generation, and employment (sum of construction, FOM, and VOM jobs-years for power plants and transmission lines).
  • e_report.gms: Add employment outputs.
  • Two additional cplex setting files are added for MGA runs, cplex.op3 and cplex.op4. Default setting is cplex.op3. Users can switch to cplex.op4 if runs still hang with cplex.op3 settings:
    • cplex.op3 and cplex.op4 are specifically for MGA runs which have difficulties with cplex.opt and cplex.op2. They differ from cplex.opt and cplex.op2 in that they set predual = -1, which does not send dual to optimizer to reduce time; sets barcrossalg = 1, which only performs primal crossover; and sets baralg = 3 (cplex.op3).
  • Transmission FOM employment is not calculated based on JEDI/WIRED transmission FOM employment factors but is scaled from transmission construction employment using trans_fom_frac.

Switches added/removed/changed

  • GSw_EmploymentFactor: Employment factor by technologies, options including jedi, and recent literature including mayfield, rutovitz, and ram. Default is jedi.
  • GSw_gopt_mga: cplex opt file for MGA run. Default is 3 (cplex.op3).
  • GSw_MGA_Objective: Add generation and employment options.
  • GSw_MGA_SubObjective: Add gentech option to maximize/minimize all capacity.

Issues resolved

Known incompatibilities

Relevant sources or documentation

Charge code for review

GDOP.12495.25.01.01

Validation, testing, and comparison report(s)

There's no changes in the USA default case.

Checklist for author

Details to double-check

  • Charge code provided for review
  • Included comparison reports for appropriate test cases
  • Documentation updated if necessary
  • If input data added/modified:
    • Dollar year recorded and converted to 2004$ for GAMS
    • Timeseries are in Central Time
    • Units are specified
    • Preprocessing steps have been documented and committed to ReEDS_Input_Processing
    • New large data files handled with .h5 instead of .csv
    • If spatially resolved inputs are modified, the following visualizations for each file are included in the PR description (time-averaged if the inputs are time-resolved):
      • Map of absolute values before
      • Map of absolute values after
      • Map of differences: (after - before) or (after / before)
    • If entries are added/removed/changed in the EIA-NEMS unit database:
      • Changes have been committed to ReEDS_Input_Processing
      • hourlize/resource.py was rerun to regenerate the existing/prescribed VRE capacity data
  • Code formatting standardized
  • Reusable functions used where possible instead of copy/pasted code

General information to guide review

  • Zero impact on results of default case
  • No large data file(s) added/modified
  • No substantive impact on runtime for full-US reference case
  • No substantive impact on folder size for full-US reference case
  • No change to process flow (runbatch.py, d_solve_iterate.py)
  • No change to code organization
  • No change to package requirements (environment.yml or Project.toml)

Did you use LLM tools (chatbot or copilot) in the preparation of this PR? If so, describe how

No

Tag points of contact here if you would like additional review of the relevant parts of the model

@patrickbrown4 patrickbrown4 self-requested a review April 28, 2026 15:06

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

Thanks! Sorry about all the minor formatting stuff; just trying to avoid conflicts since a few other open PRs touch these same files. Happy to discuss the transmission FOM stuff if helpful.

Comment thread inputs/employment/employment_factor_inter_transmission.csv
Comment thread inputs/employment/employment_factor_inter_transmission.csv
Comment thread inputs/tech-subset-table.csv Outdated
Comment thread inputs/tech-subset-table.csv Outdated
Comment thread reeds/log.py
Comment thread reeds/core/setup/d_mga.gms Outdated
Comment thread reeds/core/setup/d_mga.gms Outdated
Comment thread reeds/core/setup/b_inputs.gms Outdated
Comment thread reeds/core/setup/b_inputs.gms Outdated
Comment thread reeds/core/terminus/report.gms Outdated

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

Thanks a lot and sorry for the late followup. Would you mind:

  • Adding a compare report vs main for the USA_defaults case
  • Running an employment MGA case to make sure I didn't mess something up with the suggestions (assuming you keep them)?

I think we're just about there - please re-request my review once you're ready and I'll give it another quick look before approving. Also happy to meet briefly to discuss if helpful. Thanks!

Comment thread docs/source/references.bib

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.

Can you add an inputs/employment/README.md file describing the sources (with links) and explicit units (numerator and denominator) for each of the files in this folder? Examples are:

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I added all the reference to ReEDS zotero now (under Employment Factors). But since I moved the table which has all the citations to employment README.md, I just linked the sources directly there instead of having another reference section. Let me know if you prefer having a reference section.

Comment thread reeds/solver/cplex.opt
Comment thread cases_test.csv
Comment thread reeds/input_processing/runfiles.csv Outdated
Comment thread reeds/core/setup/d_mga.gms Outdated
Comment thread reeds/core/terminus/report.gms Outdated
Comment thread docs/source/model_documentation.md Outdated
Comment thread docs/source/model_documentation.md Outdated
Comment thread docs/source/model_documentation.md Outdated
atpham88 and others added 29 commits July 6, 2026 23:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants