Finland mFRR capacity prices
Finland's mFRR capacity (procurement) price, what the TSO pays per MW per hour for reserved mFRR capacity, published hourly by Fingrid. Separate from the energy price paid on activation.
…
Endpoints
- Latest (rolling 7-day):
https://public-data.volton.energy/v1/mfrr-capacity-price-fi/latest.json - Per-day archive:
https://public-data.volton.energy/v1/mfrr-capacity-price-fi/{YYYY-MM-DD}.json— immutable, available from2025-02-04
Row schema
| Column | Type | Unit | Nullable | Description |
|---|---|---|---|---|
mtu_start |
string (date-time) | — | no | Market Time Unit start (ISO 8601 UTC). Each MTU is a 15-minute settlement interval. |
direction |
string enum: up | down | — | no | Reserve direction the capacity is procured for. |
price_eur_mw_h |
number | EUR/MW/h | yes | BBCM-cleared mFRR capacity availability price (paid per MW of qualified capacity per hour). Null when no capacity procured in this direction. |
Top-level response: { schema_version, generated_at, meta, rows: [...] }
Code samples
curl
curl https://public-data.volton.energy/v1/mfrr-capacity-price-fi/latest.json
DuckDB
SELECT * FROM read_json_auto(
'https://public-data.volton.energy/v1/mfrr-capacity-price-fi/latest.json',
records = false
);
Python (pandas)
import pandas as pd
resp = pd.read_json('https://public-data.volton.energy/v1/mfrr-capacity-price-fi/latest.json')
df = pd.DataFrame(resp['rows'])
R (jsonlite)
library(jsonlite)
data <- fromJSON('https://public-data.volton.energy/v1/mfrr-capacity-price-fi/latest.json')
df <- data$rows
JavaScript (fetch)
const r = await fetch('https://public-data.volton.energy/v1/mfrr-capacity-price-fi/latest.json');
const { rows, meta } = await r.json();
Excel Power Query (M)
let
Source = Json.Document(Web.Contents("https://public-data.volton.energy/v1/mfrr-capacity-price-fi/latest.json")),
Rows = Source[rows],
AsTable = Table.FromRecords(Rows)
in
AsTable
Methodology
Capacity prices reward being available, regardless of whether activation happens. Fingrid procures mFRR capacity and publishes the hourly up/down procurement price (EUR/MW/h).
This is the Finnish (Nordic) procurement price; it is not part of the Baltic Balancing Capacity Market (BBCM).
FAQ
- Is this the same market as the Baltic BBCM?
- No. The Baltic capacity feed is the joint Baltic Balancing Capacity Market (BBCM). Finland procures mFRR capacity nationally through Fingrid; this is that Finnish price.
License + citation
Source: Fingrid Open Data via Volton, CC-BY-4.0. CC-BY-4.0.
Volton Technology OÜ (2026). Finland mFRR capacity prices.
CC-BY-4.0. https://public-data.volton.energy/mfrr-capacity-price-fi/