Update 2025 Interconnection Queue - #15
Open
Yunzhi-Chen wants to merge 73 commits into
Open
Conversation
Update Links
Co-authored-by: Copilot <[email protected]>
…l/ReEDS_Input_Processing into yc/natural_gas_update
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
…config.json" This reverts commit 92f0e8b.
…ession/README.md Co-authored-by: Wesley Cole <[email protected]>
Update AEO preprocessing to pull from AEO2026
This reverts commit c43c67f.
…om AEO directly" This reverts commit 0e86670.
Add natural gas price regression pipeline
Remove highprice and lowprice since AEO 2026 does not have the two scenarios
Update natural gas regression parameters with AEO 2026 data
Fix formatting issues in README.md
…DS_Input_Processing into yc/26statepolicy
…ression_params.ipynb Co-authored-by: Wesley Cole <[email protected]>
Add temperature - gas price regression workflow
2026 State RPS / CES /Hydrofrac Update
Yunzhi-Chen
force-pushed
the
yc/interconnectionqueue25
branch
from
August 24, 2026 17:32
dfcb62f to
81ccd24
Compare
Remove 'atb/' from .gitignore and update comments.
…Model/ReEDS_Input_Processing into yc/interconnectionqueue25
atpham88
reviewed
Aug 25, 2026
| @@ -72,9 +76,19 @@ def insert_rows(group): | |||
| if version < 2025: | |||
| queue_data_temp = queue_data[['q_status', 'county_'+str(item), 'state', 'IA_status_clean', 'type'+str(item),'mw'+str(item)]] | |||
Contributor
There was a problem hiding this comment.
Can we get rid of version 2024 and its associated processing script? I think we can just keep two most recent versions.
| active_queue_agg = active_queue.groupby(['FIPS','tech','online_year'])['cap'].sum().reset_index() | ||
| active_queue_county = county2zone.merge(active_queue_agg, on='FIPS', how='inner') | ||
| else: | ||
| # Vintages before 2024 report no FIPS code, so fall back to matching on county name and state |
Contributor
There was a problem hiding this comment.
Can remove this if we remove 2024 version
| queue_data = queue_data[1:] | ||
|
|
||
| county2zone = pd.read_csv(os.path.join(reeds_path,'inputs','county2zone.csv')) | ||
| county2zone = pd.read_csv(os.path.join(reeds_path,'inputs','zones','county_state.csv')) |
Contributor
There was a problem hiding this comment.
the queue data has FIPS now and we don't care about its name or state so can remove this and also any merging with this data, right? I believe I only originally did this because the first version of queue data I worked with did not have FIPS column.
14 tasks
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
Update interconnection queues to LBNL's 2025 data vintage (
LBNL_Ix_Queue_Data_File_thru2025.xlsx), producinginterconnection_queues_2025.csvover a 2027–2031 window. Also repoints the county mapping, which was broken against current ReEDS main, and carries two processing bug fixes (isolated and verified in #16).Prior-vintage outputs are untouched:
interconnection_queues_2024.csv,_2023.csv,queue_versions_2024.html,queue_versions_2023.html.Technical details
Implementation notes
version=2026,t_1=2028,t_2=2031— columns 2027–2031, continuing the +1/vintage pattern (2024 file was 2026–2030).IA_status_clean→IA_phase_clean,type1/mw1→type_1/mw_1). Added a third branch to the existing version check and rename them back, so the rest of the script is untouched.mw_*now read asobjectbecause of the header offset — added apd.to_numericcast.ReEDS/inputs/county2zone.csvno longer exists on ReEDS main; the mapping moved toReEDS/inputs/zones/county_state.csv(sameFIPS,county_name,state, 3109 rows). The script did not run without this.reeds_pathnow reads aREEDS_PATHenv var, defaulting to the previous hardcoded path.year_range_version_1.Bug fixes carried on this branch
Both are detailed and verified against the 2024 input in #16:
Acadia Parishvsacadia), so unmatched rows were dropped at the merge — Louisiana lost essentially its entire queue. Now FIPS first with county-name fallback, since LBNL's FIPS are sometimes stale (Oglala Lakota SD) or concatenated for multi-county projects. Unmatched active capacity drops 4.4% → 1.9%, the remainder out of ReEDS scope.t_2double-counted the IA Executed queue — built asmax(cap_t1, cap_t2) + cap_t1instead ofcap_t1 + cap_t2.t_1was never affected.Recovering biomass and pumped-hydro
LBNL folded
Pumped StorageintoOther StorageandBiofuel/BiomassintoOtherthis vintage. Both are filtered out by the script, so those two tech groups would have disappeared from the output — and ReEDS treats a missing(tg,r)as a 0 limit, which would have blocked all new biomass and PSH builds through 2031.LBNL sent a supplement with the detailed types behind those aggregated categories for active requests (
inputs/queues_other_forNLR_2025.xlsx);add_detailed_types()merges it back in before any other processing:q_id+entity— aq_idis only unique within an entity.Recovers 6,841 MW pumped-hydro and 6,320 MW biomass, in line with the 2024 vintage (6,786 / 2,602). All other tech groups are byte-identical to the pre-merge output. LBNL confirmed the supplement can be posted publicly.
Not recovered: compressed air (1,737 MW), waste heat (72 MW) and wave (20 MW) have no ReEDS tech group and stay aggregated. Five supplement records have no match in the public file (~900 MW PSH); the script prints them at runtime.
Figures
2025 interconnection queue (
outputs/figures/queue_versions_2025.html):What ReEDS uses today vs. what it will use (
outputs/figures/compare_queue_versions.html):Read the 2026 and 2031 bars as constraint presence, not a limit of zero:
eq_interconnection_queuesis guarded by$(sum{(tgg,rr), cap_limit(tgg,rr,t)}), so a year absent from the csv is unconstrained rather than blocked.Additional changes
REEDS_PATHnote, supplement merge documented..gitignore:atb/(unrelated, carried on this branch).Relevant sources or documentation
Additional details
What this changes for ReEDS. In every overlapping year the limit tightens by 35–55% (2027 −39%, 2028 −55%, 2029 −41%, 2030 −35%) — a combination of the window shifting a year, the data update, and the two bug fixes. This is the main consequence of the PR.
Needs a paired ReEDS change:
interconnection_startininputs/scalars.csvshould go 2025 → 2026 to match the new window. Without it, 2025 and 2026 builds count against the 2027 limit — which matters more than usual given how much that limit tightens.Output verification: 23,201 rows (1,925 csp + 12 tech groups × 1,773 counties), 2,132 counties, 13 tech groups; no NaNs, no negatives, no duplicate
(r,tg), values monotonic across years; allrare valid ReEDS counties;interconnection_queues_2025.csvmatchesinterconnection_queues.csv.Documentation: README updated. No ReEDS documentation changes needed.
LLM usage: Claude Code — adapting the script to the new column schema, locating the moved county mapping file, the two bug fixes, and the supplement merge for biomass/pumped-hydro.