Skip to content

feat: power-markets pivot — EIA-930 (live) + ERCOT nodal (dormant)#23

Merged
oldhero5 merged 13 commits into
mainfrom
feat/power-markets
Jun 20, 2026
Merged

feat: power-markets pivot — EIA-930 (live) + ERCOT nodal (dormant)#23
oldhero5 merged 13 commits into
mainfrom
feat/power-markets

Conversation

@oldhero5

Copy link
Copy Markdown
Owner

Refocuses Energex on power markets, additively on the existing hexagonal bitemporal platform (core, pandera gate, Dagster, read-API seam all unchanged).

Part A — EIA-930 (live)

  • Eia930RegionConnector + Eia930FuelConnector: hourly demand / day-ahead forecast / net generation / interchange + generation-by-fuel for all ~60–70 US balancing authorities via EIA v2 electricity/rto/*.
  • Library-per-series, symbol-per-BA: power.{demand,demand_forecast,generation,interchange,generation_by_fuel}. degenerate (latest-wins) revision mode.
  • Rule-based power.* symbology routing (no static enumeration of BAs).
  • POWER_REGION + POWER_GEN_BY_FUEL pandera gates; Dagster assets, read-back checks, hourly schedule; ~3-yr backfill partition.
  • Verified live: 73 BAs, 13k+ region rows / 21k+ by-fuel rows, gates pass, API key redacted in provenance, materialized to the real ArcticDB store, served via the read API (65 BAs, ERCO = 73 hourly rows).

Part B — ERCOT nodal (dormant until creds)

  • ErcotSppConnector (OAuth2 ROPC): RT + DA settlement point prices → power.lmp, bitemporal_merge.
  • Fails fast without ERCOT_USERNAME/ERCOT_PASSWORD/ERCOT_SUBSCRIPTION_KEY; schedule ships STOPPED (no failing runs). ERCOT_SPP/ERCOT_LOAD/ERCOT_FUELMIX gates (replace the old ERCOT_DALMP stub).

Other

  • Oil & gas + weather kept but regrouped as deprioritized (*_legacy).
  • fix(storage): route power reads/writes by library mode (mode_for_library) since bare BA symbols aren't in the static reverse index — caught by a live ingest smoke test, locked with regression tests.
  • Docs updated (connectors, roadmap, README).

201 tests pass; ruff check + format clean; dagster definitions validate.

@oldhero5 oldhero5 merged commit 528ba4a into main Jun 20, 2026
9 checks passed
@oldhero5 oldhero5 deleted the feat/power-markets branch June 20, 2026 01:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant