Nordic Balancing Watch

When Nordic balancing prices appear, and how often they change

The same electricity prices are published by several organisations, at different times, and are sometimes changed afterwards. Their websites only show the latest number. This site checks them every 15 minutes and keeps every version, so you can see who publishes first and what changed later.

nordic-balancing The open-source Python library this site runs on

What is an imbalance price?

Power companies promise in advance how much they will produce or use. Whoever ends up off that plan pays or is paid the imbalance price for each 15 minutes. It is only known after those 15 minutes are over.

Why does the timing matter?

Traders, battery operators and balance responsible parties act on this price. Knowing where it appears first, and how long it usually takes, tells them when they can rely on it.

Why do later changes matter?

If a published price is changed, anyone who acted on the first number acted on a different number from the final one. Analyses built on today’s final numbers quietly assume they were known sooner, and more accurately, than they were.

Right now

Latest imbalance price per zone

The newest 15-minute interval each source has a price for, and how long ago that interval ended. Refreshed every 15 minutes.

Imbalance prices

Who publishes first, and who revises

Every 15 minutes gets its own price, published after those 15 minutes end. The same price appears on eSett, on ENTSO-E and on the national TSO’s site, each at its own pace.

Reserve capacity

Auctioned ahead, then re-priced

Grid operators also pay companies to stand ready to adjust their power at short notice (reserve capacity, such as FCR, aFRR and mFRR). That capacity is bought in auctions before delivery, so its price appears hours or days ahead, and can change when a later auction clears. A change after delivery is not explained by a later auction, and the sources give no reason for it.

Revision log

Price changes after a price was first seen

The most recent changes from the last 7 days, newest first: the price just before each change and the price it changed to. An interval revised twice appears twice. A withdrawal is a price that disappeared. Gaps filled in before a price was published are not listed. A provisional price completed by a later auction is marked separately and is not a revision; the same completion across the zones of a joint market counts once.

Data & method

How it is measured, and how to use the data

First publication

A price counts as published at the first check that returns it with a value. That is when the collector first saw it, not necessarily the moment the provider published it. Rows that appear without a price are not yet published.

Imbalance prices are checked every 15 minutes and reserve capacity every hour, so a publication time is accurate to within one check.

What is not counted

Values already on record when collection started, or first seen after a collector outage, have no reliable publication time. They are left out of the delays and of the share changed.

The 15-minute checks look back 48 hours. A price that first appears later than that is found by a once-a-day check, so its publication time is not known to within a day. It is left out of the delays too, which means the slowest prices shown are the slowest that were timed.

Collection started on 24 October 2026. The statistics use a rolling 7-day window, not the full history collected since then; the daily view covers up to 30 closed UTC days.

Revisions

A revision is a change to a published price in euros, or a price that disappears and is still missing at the next check. Changes to other fields, such as demand or direction, are not revisions. The log keeps the earlier and the new price, and a 0.00 is shown as published.

Energi Data Service recalculates its Danish-krone price from the euro price once a day. A change in the krone price alone is counted separately as a currency recalculation, not as a revision.

Energinet first publishes an FCR price as a volume-weighted average of the auctions cleared so far, and a later auction completes it about 18 hours afterwards. Those completions are not revisions: they are counted apart, and one auction across the joint market's zones counts once.

For about half of the Finnish intervals, lately the first two quarter-hours of each hour, eSett first publishes the price as 0.00, about an hour after the interval ends, and replaces it with the settled price about two hours later. Once replaced, that 0.00 counts neither as publication nor as a revision. A 0.00 that Fingrid also shows is a real price and stays.

Collected values are never edited or deleted. A value later found to be produced by a collection fault is marked and left out of the figures, and noted in the development journal.

Files and fields

The page reads two JSON files, refreshed every 15 minutes. Use them directly, or download any table above as CSV.

summary.json revisions.json

FieldMeaning
groups[].last7.p50, p95Minutes from the end of the interval to the first price (negative: before the interval ends), median and 95th percentile
last7.n, excludedIntervals measured, and first sightings left out (no reliable publication time), including eSett Finland intervals whose first price was 0.00
last7.published, revised, revised_sharePrices first seen in the period, how many of those changed later, and the share
last7.revisions, withdrawn, lag_p50_hPrice changes seen in the period to any interval, including ones first seen before it (so revisions can exceed revised), of which withdrawals (rows removed and prices blanked), and the median hours from first price to change
last7.currency_recalculationsChanges to the Danish-krone price alone, the euro price unchanged (not counted as revisions)
last7.completions, completions_7dQuarter-hours whose price was completed by a later auction, per zone and per joint market (not counted as revisions)
last7.completion_lag_p50_h, completion_lag_max_hMedian and longest hours from first price to the later auction completing it (null when none)
groups[].daily[]The same figures per closed UTC day, up to 30 days, each value counted on the UTC day it was first published. Energinet publishes its FCR prices for a day close to midnight UTC, so one day can hold two days' prices and the next none
now[]Latest priced interval per source and zone, with price and minutes since it ended
revisions[]One change: interval, field and unit, old and new value, first published and revised times (UTC), and a kind: changed or withdrawn (revisions; withdrawal says removed or blanked), completed (by a later auction), filled (a 0.00 another source already had the price for) or unresolved (a change from 0.00 no other source could confirm). For a change from 0.00, others lists what each other source held at that moment
unconfirmed_zeros (zone files), now[].unconfirmed_zeroeSett Finland only: the intervals where eSett shows 0.00 and no other source does, and whether the latest eSett price is such a 0.00

Citing and the full record

Every version seen since collection started is kept, not only the last 7 days. A versioned public archive with a DOI is planned; until then, please cite:

Nordic Balancing Watch. Publication times and revisions of Nordic imbalance and reserve capacity prices, collected since 24 October 2026. https://nordic-balancing-watch.pages.dev/

Sources, polling and the publication-time rule are the open-source nordic-balancing library plus the rules on this page. For the full history, join the waitlist below and say you are a researcher.

Glossary

Imbalance price
The price paid or received, per megawatt-hour, by companies whose actual production or use differed from what they planned. Set separately for every 15 minutes and every price zone, after the fact.
Settlement interval
The 15-minute block that every imbalance price belongs to. Since 2023 the Nordic market settles in quarter-hours.
Price zone (bidding zone)
An area with one price. Denmark has DK1 (west) and DK2 (east); Finland is one zone (FI); Norway has NO1–NO5 (NO1 Oslo, NO2 south, NO3 middle, NO4 north, NO5 west); Sweden has SE1–SE4 from north to south.
eSett
The company that runs the joint imbalance settlement for Denmark, Finland, Norway and Sweden, owned by the national grid operators. Its figures are the ones the money is settled on.
ENTSO-E
The association of European grid operators. Its Transparency Platform republishes market data from every member country.
TSO (national grid operator)
Energinet in Denmark, Fingrid in Finland, Statnett in Norway and Svenska kraftnät in Sweden. Energinet and Fingrid publish imbalance prices on their own open-data sites.
Balance responsible party
A company that has taken on the financial responsibility for a group of producers or consumers being in balance. It pays or receives the imbalance price.
Median
The middle value: half of the intervals were faster, half slower. A good picture of a typical day.
95th percentile
95 out of 100 intervals were first seen by this time; only 1 in 20 took longer. A picture of a bad day.
Revision
A change to a published price in euros, or a published price that disappears. A price completed by a later auction, a currency recalculation and a replaced 0.00 placeholder are not revisions. The sources give no reason for a revision.
Withdrawal
A price that was published and later disappeared from the source: the row was removed (missing in two checks in a row), or the row is still returned with the price empty.
Reserve capacity
Payment for being ready to raise or lower power at short notice. The grid operator buys it ahead of time and calls on it when needed.
FCR-N and FCR-D
Frequency containment reserves: the fastest reserves, reacting within seconds. FCR-N handles normal small swings, FCR-D (up and down) disturbances such as a power plant tripping.
aFRR
Automatic frequency restoration reserve: brings the frequency back to 50 Hz within minutes, on an automatic signal.
mFRR
Manual frequency restoration reserve: slower reserves activated on request, within about 15 minutes.
D-2 and D-1 auctions
Reserve capacity is bought two days (D-2) and one day (D-1) before delivery. A price published after the first auction can change when the next one clears.

Know when a price changes

Planned for those who settle, trade or model against these prices:

  • Alerts when a published price is revised
  • An API with the full history of every version
  • Bulk export for backtests that use only what was known at the time

Your address is kept by João Paulo Navarro, who runs this site, and used only to tell you when alerts and the API launch. No tracking, no cookies. When you join you get a private link that removes your address at any time; without the link, ask through the contact page.

Zone