Skip to content

Imports priced at EIA retail rate despite 'wholesale' label #807

Description

@ktehranchi

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions