Unnamed Skill

Query and analyze Turkish electricity market prices including MCP (PTF/Piyasa Takas Fiyatı), SMP (SMF/Sistem Marjinal Fiyatı), WAP (Ağırlıklı Ortalama Fiyat), and imbalance prices. Use when asking about electricity prices, market clearing prices, day-ahead prices, system marginal prices, weighted average prices, or price comparisons in Turkey's energy market. Triggers on: PTF, SMF, GÖP fiyat, GİP fiyat, elektrik fiyatı.

$ 安裝

git clone https://github.com/Tideseed/eptr2 /tmp/eptr2 && cp -r /tmp/eptr2/.claude/skills/eptr2-price-analysis ~/.claude/skills/eptr2

// tip: Run this command in your terminal to install the skill


name: eptr2-price-analysis description: Query and analyze Turkish electricity market prices including MCP (PTF/Piyasa Takas Fiyatı), SMP (SMF/Sistem Marjinal Fiyatı), WAP (Ağırlıklı Ortalama Fiyat), and imbalance prices. Use when asking about electricity prices, market clearing prices, day-ahead prices, system marginal prices, weighted average prices, or price comparisons in Turkey's energy market. Triggers on: PTF, SMF, GÖP fiyat, GİP fiyat, elektrik fiyatı. allowed-tools: Read, Bash(python:*)

Turkish Electricity Price Analysis with eptr2

Overview

This skill helps you query and analyze electricity market prices from Turkey's EPIAS Transparency Platform using the eptr2 Python library.

Quick Start

from eptr2 import EPTR2

# Initialize with environment variables (recommended)
eptr = EPTR2(use_dotenv=True, recycle_tgt=True)

# Get Market Clearing Price (MCP/PTF)
mcp = eptr.call("mcp", start_date="2024-07-29", end_date="2024-07-29")
print(mcp)

Available Price Endpoints

CallAliasDescription (EN)Description (TR)
mcpptfMarket Clearing Price (Day-Ahead)Piyasa Takas Fiyatı
smpsmfSystem Marginal PriceSistem Marjinal Fiyatı
wap-Weighted Average Price (Intraday)Ağırlıklı Ortalama Fiyat
imbalance-price-Positive/Negative Imbalance PricesDengesizlik Fiyatları
interim-mcp-Interim MCP (before finalization)Kesinleşmemiş PTF
mcp-smp-imb-Combined MCP, SMP and ImbalancePTF, SMF ve Dengesizlik

Composite Function for Comprehensive Pricing

For complete price and cost analysis including imbalance costs:

from eptr2.composite import get_hourly_price_and_cost_data

df = get_hourly_price_and_cost_data(
    eptr,
    start_date="2024-07-29",
    end_date="2024-07-29",
    include_wap=True,       # Include IDM weighted average price
    add_kupst_cost=True     # Calculate KUPST deviation costs
)

Output Columns

ColumnDescription
dateDatetime in ISO format (+03:00 timezone)
mcpMarket Clearing Price (TL/MWh)
smpSystem Marginal Price (TL/MWh)
wapWeighted Average Price (TL/MWh)
system_directionEnerji Açığı (deficit), Enerji Fazlası (surplus), Dengede (balanced)
sd_sign-1 (deficit/up-regulation), 1 (surplus/down-regulation), 0 (balanced)
pos_imb_pricePositive imbalance price (TL/MWh)
neg_imb_priceNegative imbalance price (TL/MWh)
pos_imb_costPositive imbalance cost = MCP - pos_imb_price
neg_imb_costNegative imbalance cost = neg_imb_price - MCP
kupst_costKUPST unit deviation cost

Common Use Cases

1. Daily Price Comparison (MCP vs SMP)

mcp_df = eptr.call("mcp", start_date="2024-07-29", end_date="2024-07-29")
smp_df = eptr.call("smp", start_date="2024-07-29", end_date="2024-07-29")

# Merge for comparison
import pandas as pd
comparison = mcp_df.merge(smp_df, on="date", suffixes=("_mcp", "_smp"))

2. Intraday vs Day-Ahead Price Analysis

# Day-ahead price
mcp_df = eptr.call("mcp", start_date="2024-07-29", end_date="2024-07-29")

# Intraday weighted average price
wap_df = eptr.call("wap", start_date="2024-07-29", end_date="2024-07-29")

# Compare DAM vs IDM
comparison = mcp_df.merge(wap_df, on="date")
comparison["dam_idm_spread"] = comparison["price"] - comparison["wap"]

3. Imbalance Price Analysis

imb_df = eptr.call("imbalance-price", start_date="2024-07-29", end_date="2024-07-29")
# Returns: positiveImbalancePrice, negativeImbalancePrice columns

Date Format

Always use ISO format: YYYY-MM-DD (e.g., "2024-07-29")

Authentication

Set credentials in .env file:

EPTR_USERNAME=your_email@example.com
EPTR_PASSWORD=your_password

Then initialize with:

eptr = EPTR2(use_dotenv=True, recycle_tgt=True)

For More Details