Finland mFRR clearing prices

Finland's mFRR balancing-energy market price, the marginal price of manually-activated balancing energy, up and down, published by Fingrid every 15 minutes. Finland is in the Nordic balancing market and participates in the EU MARI platform. Refreshed hourly.

Endpoints

Row schema

ColumnTypeUnitNullableDescription
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 Activation direction: up = TSO buys energy from BSP, down = TSO sells back.
price_eur_mwh number EUR/MWh yes Marginal clearing price for activated balancing energy in this direction. Null when no activation cleared in this MTU.

Top-level response: { schema_version, generated_at, meta, rows: [...] }

Code samples

curl
curl https://public-data.volton.energy/v1/mfrr-clearing-price-fi/latest.json
DuckDB
SELECT * FROM read_json_auto(
  'https://public-data.volton.energy/v1/mfrr-clearing-price-fi/latest.json',
  records = false
);
Python (pandas)
import pandas as pd

resp = pd.read_json('https://public-data.volton.energy/v1/mfrr-clearing-price-fi/latest.json')
df = pd.DataFrame(resp['rows'])
R (jsonlite)
library(jsonlite)
data <- fromJSON('https://public-data.volton.energy/v1/mfrr-clearing-price-fi/latest.json')
df <- data$rows
JavaScript (fetch)
const r = await fetch('https://public-data.volton.energy/v1/mfrr-clearing-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-clearing-price-fi/latest.json")),
    Rows = Source[rows],
    AsTable = Table.FromRecords(Rows)
in
    AsTable

Methodology

mFRR (manual Frequency Restoration Reserve) is the slower balancing product the TSO activates by hand to restore frequency. Fingrid publishes the marginal balancing-energy price in each direction at 15-minute resolution, up means the TSO buys energy, down means it sells.

Finland runs in the Nordic balancing market and joined the EU mFRR platform (MARI) in March 2025. The series shown here is Fingrid's published balancing-energy market price, defined slightly differently from the Baltic feed's cross-zonal MARI marginal clearing price.

FAQ

How is this different from the Baltic mFRR price?
Both are 15-minute mFRR energy prices, but sourced differently: the Baltic feed is the cross-zonal MARI marginal clearing price (via the Baltic Transparency Dashboard), while Finland's is Fingrid's published balancing-energy market price.
Why are some values missing?
When no up- or down-regulation is priced in a 15-minute period, there is no value to publish for that direction.

License + citation

Source: Fingrid Open Data via Volton, CC-BY-4.0. CC-BY-4.0.

Volton Technology OÜ (2026). Finland mFRR clearing prices.
CC-BY-4.0. https://public-data.volton.energy/mfrr-clearing-price-fi/

Related