Skip to content

ProgridPy

Python library for downloading, processing, and analyzing electricity market data from US Independent System Operators (ISOs).

ProgridPy provides a unified interface for acquiring raw market data from MISO, SPP, and ERCOT, processing it into standardized Hive-partitioned Parquet datasets, computing financial trading metrics, and rendering interactive dashboards.

Data Pipeline

Raw ISO Data → Download → Process → Hive-Partitioned Parquet (S3/local) → Metrics Engine → Dashboard

Capabilities

Capability Description
ISO Clients Download raw data from MISO, SPP, and ERCOT via their public APIs
Registry-Driven Processing Convert raw CSVs/XLS into standardized, Hive-partitioned Parquet files
S3 Integration Upload/download raw and processed data to AWS S3 with concurrent transfers
Metrics Engine Compute 50+ financial metrics: risk, return, ratios, drawdowns, streaks
Dashboard Streamlit-based interactive analytics with charts, heatmaps, and distributions
Enverus Forecasts Wind and solar forecast data via the Enverus NRF API

Quick Example

from progridpy.iso import MISO, MISORawDataType

miso = MISO()
miso.download_raw_data(
    start_date="2026-01-01",
    end_date="2026-01-31",
    data_types=[MISORawDataType.DAY_AHEAD_EXANTE_PRICE],
)

Supported ISOs

ISO Region Timezone Model
MISO Midcontinent US Fixed EST (24 HE always)
SPP Southwest US UTC canonical, local derived
ERCOT Texas Local with DSTFlag disambiguation
  • Getting Started — Installation, configuration, project structure
  • User Guide — Downloading, processing, metrics, dashboards
  • API Reference — Auto-generated from source code
  • Wiki — Electricity market fundamentals, data formats, trading SOPs
  • Contributing — Development setup, testing, code style