Beta — Data under validation. Values may contain errors.

ED.DAYAHEAD.RANGE

Day-ahead spot price time series, any supported European zone, with temporal aggregation.

Prices

Signature

ED.DAYAHEAD.RANGE([start], [end], [agg], [zone], [headers], [noDate], [tz])

Description

Returns a time series of day-ahead prices over the requested window, aggregated to your chosen granularity, for any supported bidding zone. Output is a spill array — one column for the period, one column for the price (drop the period column with noDate=1 if you already have your own time index).

Use this instead of looping calls to ED.DAYAHEAD. A single formula returning 8760 hourly buckets for an entire year is one HTTP request; the equivalent grid of =ED.DAYAHEAD(...) calls would be 8760 requests and very slow.

Zones: Iberia (ES, PT) sourced from OMIE; central/west (FR, DE, BE, NL, AT, CH), CEE (PL, HU, CZ, SK, SI, HR) and Italy (IT_NORD, IT_CNOR, IT_CSUD, IT_SUD, IT_CALA, IT_SARD, IT_SICI) sourced from ENTSO-E.

Aggregation is controlled by agg: 0=native, 5min/10min/15min, 1=hourly, 2=daily (default), 3=monthly, 4=quarterly, 5=semiannual, 6=annual, 7=total. Pass tz to switch the timezone interpretation: 0/madrid (default, DST-aware), 1/cet (UTC+1 fixed — 8760 hourly buckets/year), or 2/utc. See /docs/concepts for why this matters around the spring/autumn DST transitions.

Parameters

NameTypeDefaultDescription
startdateStart of the window. Defaults: omit end for today (Madrid, with a small overnight cutoff), omit start for 30 days before end.
enddateEnd of the window. Omit for today.
agg0-7 | string2 (daily)Aggregation is controlled by agg: 0=native, 5min/10min/15min, 1=hourly, 2=daily (default), 3=monthly, 4=quarterly, 5=semiannual, 6=annual, 7=total.
zonestring"ES"Bidding zone code. Iberia: "ES", "PT". Central/west: "FR", "DE", "BE", "NL", "AT", "CH". CEE: "PL", "HU", "CZ", "SK", "SI", "HR". Italy: "IT_NORD", "IT_CNOR", "IT_CSUD", "IT_SUD", "IT_CALA", "IT_SARD", "IT_SICI".
headers0 | 10Set to 1 to include a header row (Period, Price).
noDate0 | 10Set to 1 to omit the period column from the spill array.
tz0/"madrid" | 1/"cet" | 2/"utc""madrid"Time zone interpretation. Madrid is DST-aware (24-25h days); cet produces 8760 buckets/year.

Returns

Spill array — [period, price] rows in EUR/MWh, auto-formatted.

Examples

=ED.DAYAHEAD.RANGE("2025-07-01", "2025-07-01", 0)ES native 15-min for one day (96 rows)
=ED.DAYAHEAD.RANGE("2025-01-01",, 3)ES monthly average from Jan 2025 to today
=ED.DAYAHEAD.RANGE("2026-01-01",, 2, "DE")Germany daily average YTD
=ED.DAYAHEAD.RANGE("2026-01-01",, 2, "IT_NORD")Italy North daily average YTD
=ED.DAYAHEAD.RANGE("2001-01-01",, 6)ES annual average since OMIE inception
=ED.DAYAHEAD.RANGE("2025-01-01",, 1, "ES", 1, 0, "cet")ES hourly with headers in fixed CET (8760 rows/year)

Notes

  • Non-OMIE zone coverage depends on backfill state — see ADR-008. Older windows for FR/DE/BE/NL/AT/CH/PL/HU/CZ/SK/SI/HR/IT_* may return fewer rows than expected until the backfill catches up.

Related functions