Update 2025 Interconnection Queue - #15
Open
Yunzhi-Chen wants to merge 69 commits into
Open
Conversation
Update Links
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…l/ReEDS_Input_Processing into yc/natural_gas_update
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…config.json" This reverts commit 92f0e8b.
…ession/README.md Co-authored-by: Wesley Cole <49044852+wesleyjcole@users.noreply.github.com>
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
Co-authored-by: Wesley Cole <49044852+wesleyjcole@users.noreply.github.com>
…DS_Input_Processing into yc/26statepolicy
Co-authored-by: Wesley Cole <49044852+wesleyjcole@users.noreply.github.com>
Co-authored-by: Wesley Cole <49044852+wesleyjcole@users.noreply.github.com>
Co-authored-by: Wesley Cole <49044852+wesleyjcole@users.noreply.github.com>
…DS_Input_Processing into yc/26statepolicy
…ression_params.ipynb Co-authored-by: Wesley Cole <49044852+wesleyjcole@users.noreply.github.com>
Add temperature - gas price regression workflow
2026 State RPS / CES /Hydrofrac Update
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. Along the way this fixes two bugs in the processing script — one that silently dropped queues, one that double-counted capacity — and repoints the county mapping, which was broken against current ReEDS main.The bug fixes apply to the new 2025 output only.
interconnection_queues_2024.csvis deliberately left untouched: ReEDS already runs on it. Prior-vintage outputs are unchanged (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 to the old names, so the rest of the script is untouched.Pumped StorageandBiofuelintoOther Storage/Other, which the script filters out — sopumped-hydroandbiomassno longer appear. See Additional details.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.The two bugs
1 — counties matched on name instead of FIPS (
61be803). Queues were matched to ReEDS counties on lowercased county name + state, with.str.lower()as the only normalisation. LBNL does not always use the ReEDS spelling — Louisiana is writtenAcadia Parishwhere ReEDS hasacadia— so unmatched rows were dropped at the merge and their capacity vanished. Louisiana lost essentially its entire queue. Matching on LBNL's FIPS code fixes that, but that code is sometimes stale (Oglala Lakota SD reports46113, current46102) or several codes concatenated for multi-county projects (5301353023= 53013 + 53023) — pure FIPS matching lost 90 projects / 20 GW that name matching had caught. So the fix is FIPS first, county name as fallback; the two methods' blind spots are complementary. Unmatched active capacity drops from 4.4% to 1.9%, the remainder being out of ReEDS scope (e.g.MX).2 —
t_2double-counted the IA Executed queue (aa8c280). The final-year column was built asmax(cap_t1, cap_t2) + cap_t1rather thancap_t1 + cap_t2. The two live on separate rows andmax()was being used to broadcast one onto the other, which only works whencap_t2 > cap_t1; otherwise the IA-Executed capacity was counted twice andcap_t2disappeared (cap_t1=300, cap_t2=100gave 600 instead of 400). Thet_1column was never affected.How the fixes were verified
Both bugs were isolated by running the same 2024 input file through four variants of the script (each bug on/off), so every difference is attributable to the code, not to new data. With both bugs re-introduced the script reproduces the committed
interconnection_queues_2024.csvcell for cell (max delta 0) — that is what makes the other variants trustworthy. And after both fixes, capacity att_2equals the matched raw input exactly (ratio 1.0000, against 1.0498 before); the excess was precisely the double-counted capacity.Figures
2024 vintage, before vs. after the two fixes — same input file, only the script changes. Effects applied in order, so A + B = net:
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, tech-group change..gitignore:atb/(unrelated, carried on this branch) and the local-only folder used to produce the before/after comparison.Relevant sources or documentation
Additional details
What this changes for ReEDS. In every overlapping year the limit tightens by 35–55% — a combination of the window shifting a year, the data update, and the two 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.Behavior change — biomass and pumped-hydro are gone from the output. LBNL folded
Pumped StorageandBiofuelintoOther Storage/Other, which the script filters out. ReEDS treats a missing(tg,r)as a 0 limit, so this blocks new biomass and PSH builds through 2031. Backfilling the old labels by joining the 2024 file onq_id+entitywould recover ~3.6 GW PSH and ~6.0 GW biofuel; skipped to keep the change minimal. Say the word if you'd rather have the backfill.Output verification: 19,655 rows (1,925 csp + 10 tech groups × 1,727 counties), 2,132 counties; no NaNs, no negatives, no duplicate
(r,tg), values monotonic across years;interconnection_queues_2025.csvmatchesinterconnection_queues.csv; capacity att_2reconciles exactly with the matched raw input.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, isolating and fixing the two bugs, and building the four-variant comparison used to verify them.