Skip to content
Back to Learn

How the market snapshot is assembled

One bidding zone, one delivery day, pulled from the source APIs at the moment you ask for it. Every other view in the console reads what was collected overnight; this one does not, and that difference decides what it is good for.

On this page

What the screen answers

What happened in one zone on one delivery day, and what physically explains it: the published price and its shape, the markets around it, and the generation and load behind it.

It is the orientation screen. An analyst opens it to understand a day before deciding whether any hour in it is worth reconstructing.

Every chart on it covers two delivery days: the day you selected and the day before it, on the zone's own clock. No chart carries a third day, so a shape you read off one chart can be read against the same hours on all the others. The one exception is the stored-history panel, which is 30 days of daily means on purpose and says so in its title. Tomorrow's day-ahead auction is not hidden by this: it is a delivery day, so select it in the day picker and it is drawn against today.

Live at request time, not from the archive

Each panel calls the publisher when the page loads. That is why the day can be today, why the price updates as the auction clears, and why the page is slower than the stored views. It is also why a rate-limited or failing feed degrades its own panel and reports itself in the sources table, rather than emptying the page.

The stored archive appears once, at the bottom of the price section, as context for where the day sits against the history we hold. Named intraday auctions and continuous observations above also use stored publisher results; the other live feeds are fetched at request time. A number on this page and the same number on a stored view can differ, and when they do the stored one is a snapshot and this one is now.

The controls

Zone
The bidding zone whose delivery-day clock everything is cut on. Change it and every panel re-reads.
Compare
Up to a fixed maximum of further zones, drawn against the first. Selecting a zone pre-selects its own interconnected neighbours, up to that maximum and in no particular order of importance, because those are the markets whose prices can explain its own; add or remove any of them, or clear the row. They are cut on the clock of the zone you started from, so the columns can be read against each other, rather than each zone being described in its own terms.
Delivery day
Today by default, which is the only setting where the Live badge appears. Tomorrow is available once its auction has cleared.
Auto-refresh
On by default for the live day. The page checks for updates every minute while this tab is visible; each source's cache window still controls how often it is fetched. Turn it off to pause polling. Settled days do not poll.
Currency
Whether to convert onto one euro axis, and at which rate. GB publishes in sterling; nothing is converted at a guessed rate, and a converted chart prints the rate, its source and its date - including when the delivery day was a weekend and the last fixing before it was used.

The four sections

Price
One chart carrying both prices for the delivery day: the day-ahead curve that cleared at a gate, and what continuous intraday actually traded for the same intervals. Then imbalance price where available, and where the day sits against the stored history for the zone.
Compared markets
Every selected market on the shared clock, with price curves and interval spreads. Chart tables provide exact interval values.
System
The physical picture behind the price, read as a subtraction and two charts to a row: the generation mix in MW beside the same mix as a renewable share, then wind and solar forecast against outturn because they are the bands the weather decides, then load beside the residual load that is load with wind and solar taken out of it, and finally what crossed the borders.
Dashed line
A thin dashed vertical rule marks the current time on the live day, captioned on the selected zone's clock. A dashed series is a day-ahead forecast run; a solid one is a published figure, which is outturn everywhere except the cross-border position, where it is the published day-ahead schedule and so runs into hours that have not happened yet.
Sources
Expand source details to see which call answered, how fast, and what did not. It is the last section because it has to wait for every other one: what answered and what did not is only true once every call has come back.

Cross-border position in 15-minute bars

Each country has a selectable legend entry and its own colored bars. Imports stack above zero and exports below zero, in MW. Click a country name to hide or restore it; the table retains every country. Additional countries use neutral and patterned marks when the categorical palette is exhausted.

Coarser published schedules are held constant over their delivery interval. GB uses published 15-minute metered flow buckets and combines links to the same country only where all those links have data. Missing intervals remain N/A. The source line distinguishes scheduled commercial exchange from metered flow.

IDA1, IDA2 and IDA3

The price chart includes each named intraday auction alongside day-ahead and continuous prices. Published auction energy joins the day-ahead/continuous volume stack when available. Stored IDA curve-implied energy is stacked in the same bar, labelled with its curve cluster, so a stack total that includes it is not a measured total. It is calculated from the aggregate supply/demand crossing, excludes block orders, and is not published traded volume; a multi-zone cluster is not a zone-specific total. All volumes use MWh per 15-minute delivery interval. IDA3 covers the second half of the market delivery day. GB uses its own SEM-GB IDA1 and IDA2 products; it has no IDA3.

Where today sits includes complete daily means for each auction. Publication gates follow the auction calendar, including clock changes. Missing or incomplete observations are withheld and explained in source details.

Click an indicator name above any chart to hide or restore it. These choices affect that chart only. Tables, source facts and calculated results retain all observations. Zoom controls remain available while indicators are hidden.

The traded curve on the price chart

The price chart carries auction and continuous prices on the same left-hand price axis. The day-ahead curve cleared once, at a gate, and does not change. The traded lines are continuous intraday: cumulative statistics of trades that have already happened in each delivery interval, which keep moving while that interval is still being traded. They share the axis because the useful question is the relationship between them, and a shared scale answers it without you having to compare two plots by eye.

They are drawn muted, under the auction curve in reading order, because every other number on this page is cut on the auction price: the metrics, the spreads, the stored history. The traded curve is context for it.

Which kind of traded reading you are looking at is always stated, and it is stated even when no traded line was drawn, in the Sources section at the foot of the page, which is where this screen keeps provenance. Open it and you will find one row per delivery day, each naming its state and carrying the read's own note: the capture deadline it is waiting on, the intervals it is short, or the reason it failed. A reading captured while the delivery day was still running is provisional, and trades after the capture are not in it. A reading captured after the day closed is final. Which one it is is derived from the capture instant against the delivery day's own close in the zone's timezone, never declared.

Today uses separate provisional captures, with each market revisited about every 5 hours 45 minutes. The chart shows each interval's latest captured price, including intervals that have since started. The capture-time range is printed below the chart. Later trades are absent, missing intervals remain gaps, and unavailable publisher pages are labelled partial. A capture older than six hours is labelled stale. These captures never become final simply because time passes. The previous day continues to use completed-day results, with its own source state.

Volume bars share the price plot and use the right-hand MWh axis. Published day-ahead buy volume forms the base, with continuous traded volume stacked above it. Buy and sell are two sides of the same auction, so they are never added together. Continuous volume uses one contract length per delivery day, the coarsest available, named in the legend. Both layers show energy per 15-minute delivery interval: hourly MWh are divided into four quarters, preserving the total. Missing published volume remains N/A, not a recorded zero. The bars describe the selected exchange's volumes, not total market demand.

Colour on this chart is the product, never the day. The day-ahead or market index line is one colour across both days, and each traded contract is one colour across both days, so the legend has one entry per thing being measured rather than one per thing per day. Which day you are looking at is read off the time axis, divided by the labelled day marker. Each legend entry carries its own resolution, so a 15 minute contract is never mistaken for the hourly line it sits under.

Continuous trading opens a delivery day the afternoon before, so an interval in the future can carry a price. That means trades cleared for it. It does not mean the interval is still open: gate closure differs by market area and by product, this screen does not check it, and nothing here describes a future interval as tradable.

Price shown
The volume-weighted average price of everything traded in the interval, which is the representative figure. Where an interval has a last traded price but no average, the last price is used; where nothing traded, the line breaks rather than drawing a zero.
Which contracts are drawn
The finest the market publishes and the coarsest, and nothing in between. Finest is the detail, which is 15 minutes on the continent; coarsest is the line directly comparable with the hourly day-ahead price it sits under. The contracts in between aggregate the same trades again. Great Britain publishes half-hourly alone, so it has one traded line.
Counting the day
Completeness is judged across every contract the market publishes, including the ones not drawn, because a contract missing from the store is a collection fact either way. A 23 or 25 hour clock-change day is measured against its real length.
Currency
Taken from the stored rows rather than assumed from the zone, and printed on the axis and in the table header. Nothing on this panel is converted.
Provisional
Captured while the delivery day was being delivered. Later trades can still move every interval shown.
Provisional, overdue
Still a mid-delivery capture, and the capture that would have made the day final is past its deadline. The deadline is named in the day's Sources row.
Final
Captured after the delivery day closed in the zone's timezone.
Incomplete
The day was read in full but holds fewer intervals than it should at one or more resolutions. The shortfall is stated in the day's Sources row instead of a short curve being shown as the whole day.
Not collected yet
No provisional capture is available yet, or the completed-day capture is still pending. This describes collection availability, not whether the market traded.
Nothing stored
The day holds no continuous trade AND its capture is past its deadline. That is a collection gap, not a market with no trades, and the two are never collapsed into one blank chart.
Could not be read
The read failed or exceeded its safety budget. No values from a failed read are drawn. A verified partial provisional capture is displayed with its gaps and capture-time range.
Not open yet
The delivery day has not started in this zone, so no trade has been aggregated for it.
Withheld
Historical final prices for EE, FI, GB, LT and LV remain withheld because their stored timestamps are one hour out. Today's provisional observations use the separately verified publisher clock and may be displayed.
Not reported
The selected zone has no continuous market area at this exchange, so there is nothing to show rather than an empty chart.

Reading the charts

Use Table on a time-series chart to read every plotted interval and series. Each column names its unit. Times use the selected zone's clock and UTC offset, so repeated hours when the clocks change remain distinct. N/A means no published value, not zero. The system-price table also includes net imbalance volume in MWh.

A break in a line
No published value for those intervals, never a zero. A zero is a real price in these markets and is drawn as one.
The line under each card
Which feed answered that card, in small text at its foot. Where the measurement itself needs naming the line says so too: a cross-border card states whether it is scheduled commercial exchange or metered interconnector flow, which are different numbers for the same border.
Chart controls
Legend indicators and zoom share a compact toolbar. Swipe or scroll a long legend horizontally, or tab through its buttons, to reach every indicator. Chart controls are drawn small on every device so the plot keeps its room on a phone; on touch, each still answers to a 44-pixel area around it. Volume sources and availability expands the detailed notes beneath the price chart.
Zoom
Use + and - to zoom in and out, then Reset view to return to the full chart. Time-series plots also support wheel zoom and drag panning. Heatmaps and categorical charts enlarge within their own scroll area, preserving their labels and values.
Where today sits
Daily mean day-ahead prices are compared with the daily mean of captured 15-minute continuous prices over the history window. Continuous means use final quarter-hour observations only; an incomplete or unavailable day stays missing. These are daily price means, not a rolling trade-time average.
Table
Top right of every chart card. It swaps the plot for the same numbers as a table you can read interval by interval and copy out. Press it again to go back.
The dashed vertical rule
Now, on the live view only. Everything to the right of it is a future delivery interval. A stored delivery day has no rule, because the whole day is in the past.
Time axis
On phones, daily charts initially show only the selected day. Drag horizontally to inspect earlier or later intervals; the view stays exactly where you release it. Focused charts also accept the left/right arrow keys. Reset view returns to the selected day. Vertical swipes scroll the page. The 30-day context chart keeps its full history. On larger screens, every daily time-series chart spans the same two days: the day before the selected one and the selected day, midnight to midnight on the zone's clock, with a rule at the boundary between them. That is what lets one hour be read down the page from chart to chart. The stored-history chart is the one exception, because it is a month of daily means. The next day's auction is not drawn on these charts.
Forecast continuation
Where load or residual load stops before the end of the span, the day-ahead forecast carries the line on, dashed. It only ever continues a line after its last published interval: a gap inside the outturn stays a gap, a chart with no outturn at all says so rather than showing a forecast in its place, and a forecast for a wider area than the outturn (a whole country behind one of its bidding zones) is not drawn. Prices, the cash-out price and metered interconnector flows have no forecast, so their lines stop at the last published interval, and the generation stack stops with them because no forecast covers the whole mix.
Compared market product
Choose DA, IDA1, IDA2, IDA3 or Continuous (15 min) above Compared markets. The selection applies to both charts and their tables and is saved in the URL. Each country is compared using the same product. IDA prices use named published auction results, with GB SEM-GB sessions labelled in availability notes. Continuous uses captured 15-minute weighted-average prices, or the last price where no average is published; hourly contracts are never substituted. Continuous is withheld in replay. Missing, unsupported and not-yet-published results are explained under Selected product availability.
Spreads
Comparison market minus the reference zone. Positive means the comparison market is dearer. The chart and its interval table include yesterday and the selected day; the summary metrics still describe the selected day alone.
Net imbalance volume
The bars under the system-price lines. Positive is the system short, negative is the system long. It is published per control area, and a control area is a balancing geography rather than a trading one, so it is not always the zone you selected: all seven Italian zones carry the single national control-area series, and the German figure is four control areas added together. Where the two differ the panel's source line names the geography, and if any one of the areas fails to answer the bars are dropped rather than shown as a smaller imbalance than the real one.
Residual load
Load minus wind and solar: the demand left for the dispatchable fleet to cover.
Renewable share
Wind, solar, hydro and biomass as a share of generation, not of load.
Forecast bias
The mean of realised generation minus the day-ahead forecast. Positive means more generation arrived than forecast. Dashed lines are forecasts; solid lines are outturns.

What the sources table is telling you

Every panel names the feed that answered it by the part that feed plays, never by who publishes it: a regulatory publication, an exchange's own results, a secondary reference compilation, or a published FX fixing. That distinction is the one that changes how much weight a number carries.

A failed call is reported as failed with its reason, and a call that succeeded and returned nothing is reported as nothing published - not as success. Those are different facts about the market and the page never collapses them.

Feed status and missing data

Collecting
The scheduler expects streams from this adapter. Status is derived from the collection registry, not a manually maintained flag.
Read live
The publisher is called at request time. No scheduled capture is needed for that read.
Dormant / archive / planned
Dormant has an adapter but no scheduled streams. Archive is a one-time import whose age is not staleness. Planned has a registry entry but no adapter.
Not published
The publisher has not released the requested period yet.
Collecting / missing
Collecting is within the capture window. Missing is a late or absent expected capture.
Expired
The publisher no longer serves the period and it was not captured.
Unavailable / retired
Unavailable can mean the period predates the stream. Retired means collection deliberately stopped. A live failure also names the publisher's error rather than presenting an unexplained blank.

Captured raw payloads are archived before parsing, so changes to a parser can be checked against the source bytes. This does not apply to every live request: the panel's provenance identifies whether a capture exists.

Continue reading