Repository navigation
Update inputs documentation - #205
Open
wesleyjcole wants to merge 38 commits into
Open
wesleyjcole wants to merge 38 commits into
wesleyjcole wants to merge 38 commits into
Conversation
…osts, DAC costs, California CO2 cap, and the ban on nuclear in IL.
Comment on lines
+3
to
+4
| Zone definition sets are maintained in [`zones/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/zones) of the ReEDS_Input_Processing repo, | ||
| one folder per set. |
Contributor
There was a problem hiding this comment.
Suggested change
| Zone definition sets are maintained in [`zones/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/zones) of the ReEDS_Input_Processing repo, | |
| one folder per set. | |
| Zone definition sets are maintained in [`zones/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/zones) of the ReEDS_Input_Processing repo, one folder per set. |
Comment on lines
+3
to
+5
| All files in this folder are generated by [`exogenous_canadian_trade/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/exogenous_canadian_trade) in the ReEDS_Input_Processing repo, | ||
| from historical trade data and future province-level projections published by the Canada Energy Regulator. | ||
|
|
Contributor
There was a problem hiding this comment.
Suggested change
| All files in this folder are generated by [`exogenous_canadian_trade/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/exogenous_canadian_trade) in the ReEDS_Input_Processing repo, | |
| from historical trade data and future province-level projections published by the Canada Energy Regulator. | |
| All files in this folder are generated by [`exogenous_canadian_trade/`](https://github.com/ReEDS Model/ReEDS_Input_Processing/tree/main/exogenous_canadian_trade) in the ReEDS_Input_Processing repo, from historical trade data and future province-level projections published by the Canada Energy Regulator. |
Comment on lines
+5
to
+7
| The `demand_AEO_*` files are generated by [`aeo_updates/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/aeo_updates) in the ReEDS_Input_Processing repo, | ||
| which combines EIA retail sales and behind-the-meter PV for historical years with AEO electricity | ||
| consumption growth for projected years. |
Contributor
There was a problem hiding this comment.
Suggested change
| The `demand_AEO_*` files are generated by [`aeo_updates/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/aeo_updates) in the ReEDS_Input_Processing repo, | |
| which combines EIA retail sales and behind-the-meter PV for historical years with AEO electricity | |
| consumption growth for projected years. | |
| The `demand_AEO_*` files are generated by [`aeo_updates/`](https://github.com/ReEDS-Model/ReEDS_Input_Processing/tree/main/aeo_updates) in the ReEDS_Input_Processing repo, which combines EIA retail sales and behind-the-meter PV for historical years with AEO electricity consumption growth for projected years. |
Comment on lines
+9
to
+13
| Each file gives an annual load growth multiplier [unitless] by state (`r`) and year, normalized to | ||
| 1.0 in the file's first year. `hourly_load.py` scales the historical hourly state load profiles to | ||
| match annual totals in that baseline year, then applies these multipliers to project load forward. | ||
| The scenario is chosen with the `demandscen` switch, and the file is copied into `inputs_case/` as | ||
| `load_multiplier.csv`. |
Contributor
There was a problem hiding this comment.
Suggested change
| Each file gives an annual load growth multiplier [unitless] by state (`r`) and year, normalized to | |
| 1.0 in the file's first year. `hourly_load.py` scales the historical hourly state load profiles to | |
| match annual totals in that baseline year, then applies these multipliers to project load forward. | |
| The scenario is chosen with the `demandscen` switch, and the file is copied into `inputs_case/` as | |
| `load_multiplier.csv`. | |
| Each file gives an annual load growth multiplier [unitless] by state (`r`) and year, normalized to 1.0 in the file's first year. | |
| `hourly_load.py` scales the historical hourly state load profiles to match annual totals in that baseline year, then applies these multipliers to project load forward. | |
| The scenario is chosen with the `demandscen` switch, and the file is copied into `inputs_case/` as `load_multiplier.csv`. |
Comment on lines
+3
to
+6
| Most files in this folder give the cost and performance trajectory for one technology | ||
| family, and are selected by the matching `plantchar_{tech}` switch in `cases.csv`, | ||
| which is set to the full file name without the extension | ||
| (e.g. `plantchar_coal = coal_ATB_2024_moderate`). |
Contributor
There was a problem hiding this comment.
Suggested change
| Most files in this folder give the cost and performance trajectory for one technology | |
| family, and are selected by the matching `plantchar_{tech}` switch in `cases.csv`, | |
| which is set to the full file name without the extension | |
| (e.g. `plantchar_coal = coal_ATB_2024_moderate`). | |
| Most files in this folder give the cost and performance trajectory for one technology family, and are selected by the matching `plantchar_{tech}` switch in `cases.csv`, which is set to the full file name without the extension (e.g. `plantchar_coal = coal_ATB_2024_moderate`). |
Comment on lines
+23
to
+27
| The wind and geothermal files instead carry their units in the column headers | ||
| (`Overnight Cap Cost $/kW`, `Fixed O&M $/(kW-yr)`, `Var O&M $/MWh`, | ||
| `Cap cost 1000$/MW`, `Fixed O&M 1000$/MW-yr`) and add a `CF_mult` capacity factor | ||
| multiplier; the offshore wind and geothermal-class files also add `rsc_mult`, a | ||
| supply-curve cost reduction multiplier. |
Contributor
There was a problem hiding this comment.
Suggested change
| The wind and geothermal files instead carry their units in the column headers | |
| (`Overnight Cap Cost $/kW`, `Fixed O&M $/(kW-yr)`, `Var O&M $/MWh`, | |
| `Cap cost 1000$/MW`, `Fixed O&M 1000$/MW-yr`) and add a `CF_mult` capacity factor | |
| multiplier; the offshore wind and geothermal-class files also add `rsc_mult`, a | |
| supply-curve cost reduction multiplier. | |
| The wind and geothermal files instead carry their units in the column headers (`Overnight Cap Cost $/kW`, `Fixed O&M $/(kW-yr)`, `Var O&M $/MWh`, `Cap cost 1000$/MW`, `Fixed O&M 1000$/MW-yr`) and add a `CF_mult` capacity factor multiplier; the offshore wind and geothermal-class files also add `rsc_mult`, a supply-curve cost reduction multiplier. |
Comment on lines
+29
to
+31
| Costs are in the dollar year listed for that scenario in `dollaryear.csv` and are | ||
| deflated to 2004$ during input processing. `advanced`, `moderate`, and `conservative` | ||
| refer to the Annual Technology Baseline (ATB) cost scenarios of the same names. |
Contributor
There was a problem hiding this comment.
Suggested change
| Costs are in the dollar year listed for that scenario in `dollaryear.csv` and are | |
| deflated to 2004$ during input processing. `advanced`, `moderate`, and `conservative` | |
| refer to the Annual Technology Baseline (ATB) cost scenarios of the same names. | |
| Costs are in the dollar year listed for that scenario in `dollaryear.csv` and are deflated to 2004$ during input processing. | |
| `advanced`, `moderate`, and `conservative` refer to the Annual Technology Baseline (ATB) cost scenarios of the same names. |
Comment on lines
+130
to
+131
| - Enforced per technology and zone when `Sw_MaxDailyCF` is on: fleet generation may not exceed | ||
| capacity x available hours x `maxdailycf` |
Contributor
There was a problem hiding this comment.
Suggested change
| - Enforced per technology and zone when `Sw_MaxDailyCF` is on: fleet generation may not exceed | |
| capacity x available hours x `maxdailycf` | |
| - Enforced per technology and zone when `Sw_MaxDailyCF` is on: fleet generation may not exceed capacity x available hours x `maxdailycf` |
Comment on lines
+135
to
+136
| - Enforced per technology and zone when `Sw_MinCF` is on: fleet generation must be at least | ||
| capacity x hours x `minCF` |
Contributor
There was a problem hiding this comment.
Suggested change
| - Enforced per technology and zone when `Sw_MinCF` is on: fleet generation must be at least | |
| capacity x hours x `minCF` | |
| - Enforced per technology and zone when `Sw_MinCF` is on: fleet generation must be at least capacity x hours x `minCF` |
kennedy-mindermann
approved these changes
Oct 26, 2026
kennedy-mindermann
left a comment
Contributor
There was a problem hiding this comment.
A couple spacing-related suggestions to match the rest of the documentation, otherwise this looks good to me
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This pull request builds on #157 and updates the ReadMe files in various inputs folders to document what the input files are, their units, and, in many cases, something about their source. Every file now has an entry (and stale entries, plus a couple unused files were removed). The entries are not 100% comprehensive, but they sure provide a lot more than our previous coverage.
Technical details
Implementation notes
I used Claude for the implementation, which traced each input file through the model to verify where and how it was used. Claude aslo pulled from this repo's history and the prior repo's history when needed to understand why files were added and gain context on file provenance. Finally, Claude cross-walked inputs with the Inputs_Processing repo to create links back to files where there was an obvious linkage (e.g., filenames matched exactly from the Inputs_Processing ReadMe and description).
I reviewed each entry, and made a few minor edits. I didn't find any cases where Claude made an error (every time I found an error, it was with a pre-existing description).
inputs/capacity_exogenous/cappayments.csvandinputs/financials/supply_chain_adjust.csvwere both removed because they were not used.I moved the Clean Air Act description from the
nationa_generationfolder to theemission_constraintsfolder.I also asked Claude to check for any inconsistencies between the model and our model documentation. It identified several inconsistencies, which I fixed (using my words).
Note that when I updated
references.bibseveral entries were removed. I verified that they aren't in Zotero, so it's possible that entries were added in the past but not synced with the online Zotero repository.Issues resolved
Supports #43
Validation, testing, and comparison report(s)
Because this is a documentation only fix, model results are unchanged. I verified documentation changes by tracing input files, asking others on the team questions as needed, and inspecting input files.
Checklist for author
Details to double-check
[ ] Included comparison reports for appropriate test casesGeneral information to guide review
Did you use LLM tools (chatbot or copilot) in the preparation of this PR? If so, describe how
Yes, as described in the implementation section.
Tag points of contact here if you would like additional review of the relevant parts of the model