Problem
electricity.imports.costs: wholesale (the default) prices import links using EIA's electricity/retail-sales endpoint (eia.py, _ElectricityCosts) — the monthly average retail price per state, all sectors blended. For CA 2019 that is roughly $165–170/MWh, several times a typical wholesale clearing price (~$30–50/MWh at SP15/NP15 in 2019).
Retail rates include T&D, fixed-cost recovery, and utility margins — components unrelated to the avoided cost of importing a marginal MWh. Priced this way, imports behave as a near-last-resort resource, biasing capacity-expansion results toward in-state build. Combined with a volume cap (e.g. 25% of load), imports are doubly penalized.
Additional wrinkles in the same code path (add_extra_components.py, load_import_export_costs / format_import_export_costs):
- The price year is the weather year, not the planning horizon (
year = weather_year[0]).
- If the year is >= 2024, the code routes to the AEO national projection with
state='USA', which format_import_export_costs fails to match against state codes and silently drops.
- All import interfaces receive the same statewide monthly series, forward-filled hourly (12 steps/year).
Suggested direction
- Rename or re-source the
wholesale mode to an actual wholesale proxy (e.g. EIA wholesale/hub data, or an hourly LMP series such as CAISO SP15 DA for the weather year).
- In the interim, document that
costs: <float> or costs: <carrier> (e.g. CCGT) are better proxies for marginal import cost.
Found while building the California (CPUC SERVM) configuration, where imports are enabled with a 25% annual volume limit.
Problem
electricity.imports.costs: wholesale(the default) prices import links using EIA'selectricity/retail-salesendpoint (eia.py,_ElectricityCosts) — the monthly average retail price per state, all sectors blended. For CA 2019 that is roughly $165–170/MWh, several times a typical wholesale clearing price (~$30–50/MWh at SP15/NP15 in 2019).Retail rates include T&D, fixed-cost recovery, and utility margins — components unrelated to the avoided cost of importing a marginal MWh. Priced this way, imports behave as a near-last-resort resource, biasing capacity-expansion results toward in-state build. Combined with a volume cap (e.g. 25% of load), imports are doubly penalized.
Additional wrinkles in the same code path (
add_extra_components.py,load_import_export_costs/format_import_export_costs):year = weather_year[0]).state='USA', whichformat_import_export_costsfails to match against state codes and silently drops.Suggested direction
wholesalemode to an actual wholesale proxy (e.g. EIA wholesale/hub data, or an hourly LMP series such as CAISO SP15 DA for the weather year).costs: <float>orcosts: <carrier>(e.g.CCGT) are better proxies for marginal import cost.Found while building the California (CPUC SERVM) configuration, where imports are enabled with a 25% annual volume limit.