Beta — Data under validation. Values may contain errors.

ED.CAPTURE

Production-weighted average price (EUR/MWh) or capture rate (%).

Capture price

Signature

ED.CAPTURE([tech], [date], [zone], [unit], [method], [tz])

Description

Capture price for a technology and date. The capture price is the production-weighted average wholesale price a technology earned over the period — different from the simple time-weighted average because high-output hours can coincide with low (solar) or high (peakers) prices.

With unit="pct" the function returns the **capture rate** instead: capture / baseload × 100, gen-weighted in the same window. This is the figure AFRY/EMBER/Aurora publish — the % of the simple baseload price the technology actually earns. A capture rate of 100% means the tech earned the period average; below 100% means cannibalisation, above means it produced when prices were richer than average.

Method 0 (default) = realized: dayahead × metered generation. Matches the figures published by industry reports (Aurora, AleaSoft, REE annual). Method 1 = PBF: dayahead × ex-ante OMIE schedule. Spain only, available before realized data because PBF schedules are published the day-ahead.

Parameters

NameTypeDefaultDescription
tech1-6 | string1 (solar_pv)Tech code or name (see table below). Capture is only computed for the 6 main techs — for solar_thermal use ED.GEN.RANGE × ED.OMIE.RANGE manually.
datedateDate. Omit for the latest.
zone"ES" | "PT""ES"MIBEL zone.
unit"" | "pct""" (EUR/MWh)Output unit. Default returns the capture price in EUR/MWh (historical behaviour). "pct" returns the capture rate (capture / baseload × 100, %).
method0 | 10 (realized)0=realized (matches published figures), 1=PBF (ex-ante schedule, ES only).
tz0 | 1 | 2"madrid"Accepted for parity with the other functions, but **no-op here**: the underlying capture_daily series is computed once per Madrid civil day and has no sub-daily resolution to re-bucket.

Valid values for tech

CodeEnglish aliasDescription
1solar_pv, solar, pvSolar PV (uses gen_solar_pv as production weight).
2wind, eolicaOnshore wind.
3nuclearNuclear.
4hydro, hidraulicaReservoir + run-of-river hydro.
5combined_cycle, ccgt, gasCombined-cycle gas (CCGT).
6coal, carbonCoal-fired thermal.

The add-in accepts either the canonical Spanish code or the English alias — both are equivalent.

Returns

Number — EUR/MWh by default, or % when unit="pct".

Examples

=ED.CAPTURE(1, "2025-07-01")Solar capture price (EUR/MWh), realized
=ED.CAPTURE(1, "2025-07-01", , "pct")Solar capture RATE (%), realized — the AFRY/EMBER number
=ED.CAPTURE(2, "2025-07-01", , , 1)Wind capture price, PBF ex-ante (note empty unit slot)
=ED.CAPTURE("nuclear", "2025-07-01")Nuclear capture price (named tech)

Notes

  • **BREAKING in v8.0.0 (manifest 8.0.0.0)**: the unit parameter was inserted between zone and method. Calls that passed method or tz positionally need an empty slot for unit. Example: v7 =ED.CAPTURE(1, "2025-07-01", "ES", 1) (method=PBF) becomes v8 =ED.CAPTURE(1, "2025-07-01", "ES", , 1). Calls that only passed tech/date/zone are unaffected.
  • Capture rate (unit="pct") is computed as gen-weighted SUM(capture × gen) / SUM(baseload × gen) × 100 over the requested window — the canonical AFRY/EMBER/Aurora definition.
  • PBF (method=1) is available the day before realized — useful for forward-looking analysis. Spain only.
  • Capture price = SUM(price × MWh) / SUM(MWh) over the chosen period.
  • Native granularity is daily — there's no hourly capture price to expose, so tz is a no-op (capture is always Madrid-civil by construction).

Related functions