get_derivation
Compute capture price, capture rate (a.k.a. value factor / quality factor / Marktwertfaktor), TBx battery-arbitrage spreads, and other generation-weighted market metrics server-side from landed Parquet. Use this instead of fetching hourly prices + hourly generation yourself and weighting them client-side — server-side aggregation has no row cap and no pagination.
slug: a key from list_derivations() — today: "capture_price",
"negative_price_hours", "residual_load", "res_share",
"emissions", "tb_spread".
tb_spread returns monthly (default) or annual (aggregation='annual')
Top-Bottom spreads TB1/TB2/TB4/TB6 in EUR/MW per period — the sum of
daily (top-x minus bottom-x hourly prices) over SDAC market days. The
only slug accepting aggregation, and the only one accepting
multi-zone zone ('all', a list, or CSV). Example — annual TB2 across
every European market in ONE call:
get_derivation("tb_spread", "2025-01-01", "2026-01-01",
zone="all", aggregation="annual")
For a single day's top/bottom hour TIMESTAMPS use get_tb_spread.
capture_price returns monthly rows per (zone, psr_type) with columns:
capture_price_eur_per_mwh, baseload_price_eur_per_mwh, quality_factor
(the capture rate = capture/baseload), total_gen_mwh, n_hours. Months
are bucketed by local time using the zone's IANA timezone.
emissions returns monthly rows per (zone, psr_type) with columns:
generation_mwh, n_hours, emission_factor_kg_per_mwh, emissions_t_co2.
Production-based; IPCC AR5 lifecycle factors. Zero-emission rows
(nuclear, wind, solar, hydro, geothermal, marine) appear with
emissions_t_co2 = 0 — useful for stacked charts.
Filter via psr_types=["solar","wind_onshore","wind_offshore"] (or
raw B-codes like "B16") to get only the technologies you care about.
Defaults to all psr_types that have generation data.
Example — Spain solar capture price, last 12 months: get_derivation("capture_price", "2025-05-01", "2026-05-01", zone="ES", psr_types=["B16"], tz="Europe/Madrid") Example — Germany 2024 emissions by fuel: get_derivation("emissions", "2024-01-01", "2025-01-01", zone="DE_LU", tz="Europe/Berlin") Returns 12 monthly rows in one call; no pagination.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | local | |
| end | Yes | ||
| slug | Yes | ||
| zone | No | ||
| start | Yes | ||
| to_zone | No | ||
| from_zone | No | ||
| psr_types | No | ||
| aggregation | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||