ED.BESS.RANGE
Battery spread time series — backtest BESS economics over time.
Signature
ED.BESS.RANGE([hours], [start], [end], [agg], [zone], [headers], [noDate])Description
Historical BESS spread aggregated over a window. Each underlying daily spread is SUM(N priciest hours) - SUM(N cheapest hours); the aggregation averages across days within the period.
Meaningful aggregations: 2=daily, 3=monthly, 4=quarterly, 5=semiannual, 6=annual, 7=total. Sub-daily aggregations are rejected — the metric is daily by construction.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| hours | 1-12 | 4 | Battery duration in hours. |
| start | date | — | Start. Defaults: omit end for today (Madrid, with a small overnight cutoff), omit start for 30 days before end. |
| end | date | — | End. Omit for today. |
| agg | 2-7 | 2 (daily) | 2=daily, 3=monthly, 4=quarterly, 5=semiannual, 6=annual, 7=total. |
| zone | "ES" | "PT" | "ES" | MIBEL zone. |
| headers | 0 | 1 | 0 | Set 1 for header row. |
| noDate | 0 | 1 | 0 | Set 1 to omit the period column. |
Returns
Spill array — [period, EUR/MWh] rows.
Examples
=ED.BESS.RANGE(4, "2025-01-01",, 3)— 4h spread monthly average=ED.BESS.RANGE(8, "2025-01-01", "2025-12-31", 6)— 8h spread annual=ED.BESS.RANGE(2, "2024-01-01",, 7)— 2h total over the period