Estonia imbalance price
The single imbalance price settled with every Estonian Balance Responsible Party each 15-minute MTU. Derived from the marginal balancing-energy bids activated through MARI / PICASSO. Sourced from Elering, refreshed hourly.
Endpoints
- Latest (rolling 7-day):
https://public-data.volton.energy/v1/imbalance-price/latest.json - Per-day archive:
https://public-data.volton.energy/v1/imbalance-price/{YYYY-MM-DD}.json— immutable, available from2024-10-09
Row schema
| Column | Type | Unit | Nullable | Description |
|---|---|---|---|---|
mtu_start |
string (date-time) | — | no | Settlement period start (ISO 8601 UTC). 15-minute period under EBGL Article 53. |
price_eur_mwh |
number | EUR/MWh | yes | Single-direction imbalance settlement price for the EE bidding zone. Derived from the marginal balancing-energy bid activated through MARI/PICASSO. |
Top-level response: { schema_version, generated_at, meta, rows: [...] }
Code samples
curl
curl https://public-data.volton.energy/v1/imbalance-price/latest.json
DuckDB
SELECT * FROM read_json_auto(
'https://public-data.volton.energy/v1/imbalance-price/latest.json',
records = false
);
Python (pandas)
import pandas as pd
resp = pd.read_json('https://public-data.volton.energy/v1/imbalance-price/latest.json')
df = pd.DataFrame(resp['rows'])
R (jsonlite)
library(jsonlite)
data <- fromJSON('https://public-data.volton.energy/v1/imbalance-price/latest.json')
df <- data$rows
JavaScript (fetch)
const r = await fetch('https://public-data.volton.energy/v1/imbalance-price/latest.json');
const { rows, meta } = await r.json();
Excel Power Query (M)
let
Source = Json.Document(Web.Contents("https://public-data.volton.energy/v1/imbalance-price/latest.json")),
Rows = Source[rows],
AsTable = Table.FromRecords(Rows)
in
AsTable
Methodology
Under EBGL Article 55, Estonia applies single imbalance pricing: one price per 15-minute settlement period, derived from the marginal balancing energy activated. There is no fixed administrative price — the imbalance price is a market outcome.
When the system is short, BRPs that contributed to the shortage pay the upward imbalance price; when long, they pay (or receive) the downward price. Same-direction imbalances are paid more than offsetting ones.
FAQ
- Is this the same as the day-ahead price?
- No. Day-ahead is forecast-based and clears once at noon. Imbalance is settled per 15-min MTU based on what actually happened — typically diverges from spot during balancing events.
- Why might the value be unavailable?
- The single imbalance price requires a full balancing-state calculation, which Elering publishes with a short delay. Outage of the upstream feed will leave a gap in this dataset.
License + citation
Source: Elering via Volton, CC-BY-4.0. CC-BY-4.0.
Volton Technology OÜ (2026). Estonia imbalance price.
CC-BY-4.0. https://public-data.volton.energy/imbalance-price/