Skip to content

New facility generation residual mix aggregation method#19

Merged
frankhanna94 merged 1 commit intodevelopmentfrom
rem_gen
Jan 6, 2026
Merged

New facility generation residual mix aggregation method#19
frankhanna94 merged 1 commit intodevelopmentfrom
rem_gen

Conversation

@dt-woods
Copy link

The primary purpose of this PR is to provide a secondary method for state-level REC sales to aggregate to balancing authority level. Previous discussions mentioned the use of facility-level generation as a weighting factor.

This PR enables a secondary aggregation method (i.e., the 'gen' method) to partition state-based REC electricity generation using the fractional weights of electricity generating facilities found within the shared boundaries of each state and balancing authority area weighted by facility-level annual generation (as provided by the build_generation_data function found in eia923_generation.py).

A summary of the changes include:

  • The global variable, REM_WEIGHT_METHODS, now includes two option (i.e., 'count' and 'gen').
  • ELCI_2022_config.yml, ELCI_2023_config.yml, and ELCI_2024_config.yml are updated for documenting the 'gen' method and ELCI_2023_config.yml is configured for 'gen' method.
  • A new method, agg_by_gen, is introduced in residual_grid_mix.py
  • The method is demoed in the __name__ is __main__ section of residual_grid_mix.py.

The 'count' and 'gen' methods were compared using the CSV output files (i.e., from setting the "output_residual_mix" configuration parameter to "true"). On average, the relative differences are small (e.g., less than 4%). In some instances, relative fuel mixes change 100% (i.e., are up from 0% to some small fraction). Regions demonstrating moderate differences include:

  • Associated Electric Cooperative, Inc.
  • Gainesville Regional Utilities
  • Los Angeles Department of Water and Power
  • NorthWestern Corporation
  • Salt River Project Agricultural Improvement and Power District
  • Southwestern Power Administration
  • Tucson Electric Power

An example of the comparison is provided in the image below (created using this Excel workbook on NETL EDX).

Picture1

@dt-woods dt-woods added the enhancement New feature or request label Dec 30, 2025
@dt-woods
Copy link
Author

dt-woods commented Jan 6, 2026

Comments on revisions of the new aggregation method:

  • facilities in ba_df (for ELCI_2023) = 15,068 (no duplicates)
  • facilities after dropping na BA codes = 14,776
    • The 292 facilities without a BA Code are mostly from Alaska (53%), which is ranked 48/51 U.S. states in net annual generation (23% of those facilities have no electricity generation data); followed by Hawaii (21%), which is ranked 47/51 U.S. states in net annual generation. The remaining facilities are across the U.S. If you examine the electricity generation data from EIA Form 923 for these facilities, only one in Rhode Island has generation and no balancing authority (i.e., facility 6567, "Block Island", which isn't doing a whole lot these days).
    • The missing generation comes from 155 facilities in Hawaii and Alaska (12.8×10^6 MWh; 0.3% U.S. annual generation)
  • facilities with reported generation = 10177 (fac_gen dataframe) out of which 10,001 exist in both fac_gen and ba_df. In total we are accounting for 10,001 facilities out of 15068 (excluding ~34%).

Question should we report the excluded generation from the analysis?

My initial thought is that the quantity is low (0.3%) and come mainly from Hawaii and Alaska, which, historically, are not under balancing authorities that ElectricityLCI monitors. I think this can go in to the documentation as a shortcoming, with a note of the potential implications.

@frankhanna94 frankhanna94 merged commit 247113c into development Jan 6, 2026
3 checks passed
@frankhanna94 frankhanna94 deleted the rem_gen branch January 8, 2026 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants