ED.CAPTURE
Production-weighted average price (EUR/MWh) or capture rate (%).
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
| Name | Type | Default | Description |
|---|---|---|---|
| tech | 1-6 | string | 1 (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. |
| date | date | — | Date. 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, %). |
| method | 0 | 1 | 0 (realized) | 0=realized (matches published figures), 1=PBF (ex-ante schedule, ES only). |
| tz | 0 | 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
| Code | English alias | Description |
|---|---|---|
| 1 | solar_pv, solar, pv | Solar PV (uses gen_solar_pv as production weight). |
| 2 | wind, eolica | Onshore wind. |
| 3 | nuclear | Nuclear. |
| 4 | hydro, hidraulica | Reservoir + run-of-river hydro. |
| 5 | combined_cycle, ccgt, gas | Combined-cycle gas (CCGT). |
| 6 | coal, carbon | Coal-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
unitparameter was inserted betweenzoneandmethod. Calls that passedmethodortzpositionally need an empty slot forunit. 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 passedtech/date/zoneare 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
tzis a no-op (capture is always Madrid-civil by construction).