Multi-ISO Comparison
Compare load and prices across multiple ISOs for regional analysis
import pandas as pd
# Define ISO datasets and their hub locations
ISOS = {
"ERCOT": {
"load": "ercot_load",
"lmp": "ercot_lmp_by_settlement_point",
"hub": "HB_HOUSTON",
"timezone": "America/Chicago"
},
"CAISO": {
"load": "caiso_load",
"lmp": "caiso_lmp_real_time_5_min",
"hub": "TH_SP15_GEN-APND",
"timezone": "America/Los_Angeles"
},
"PJM": {
"load": "pjm_load",
"lmp": "pjm_lmp_real_time_5_min",
"hub": "WESTERN HUB",
"timezone": "America/New_York"
}
}
# Fetch yesterday's hourly data for each ISO
results = {}
for iso_name, config in ISOS.items():
print(f"Fetching {iso_name}...")
# Get hourly average prices
prices = client.get_dataset(
config["lmp"],
start="2026-01-13",
end="2026-01-14",
filter_column="location",
filter_value=config["hub"],
resample="1 hour",
resample_function="mean",
timezone=config["timezone"]
)
results[iso_name] = {
"avg_price": prices['lmp'].mean(),
"max_price": prices['lmp'].max(),
"min_price": prices['lmp'].min(),
"price_volatility": prices['lmp'].std()
}
# Compare results
print("\n=== Multi-ISO Price Comparison (2026-01-13) ===")
print(f"{'ISO':<10} {'Avg Price':>12} {'Max':>10} {'Min':>10} {'Volatility':>12}")
print("-" * 58)
for iso_name, stats in results.items():
print(f"{iso_name:<10} ${stats['avg_price']:>10.2f} ${stats['max_price']:>8.2f} ${stats['min_price']:>8.2f} ${stats['price_volatility']:>10.2f}")Last updated
Was this helpful?

