Data catalog
253 metrics across 19 categories. Every entry is reachable from Excel via ED.GET() / ED.RANGE() or a dedicated formula like ED.OMIE() / ED.CAPTURE().
⚡ Electricity Prices (12)
Day-ahead spot prices, intraday, PVPC regulated tariff
Day-ahead spot price
15-mindayaheadOMIE Iberian day-ahead electricity market price. Quarter-hourly since June 2025, hourly before.
=ED.OMIE()Continuous intraday (XBID) avg
hourlycontinuous_avgWeighted average price from the OMIE continuous intraday market (XBID platform). Scraped directly from OMIE file-download (not ESIOS).
=ED.GET("continuous_avg")Continuous intraday max
hourlycontinuous_maxMaximum price per quarter-hour from the OMIE continuous intraday (XBID) market.
=ED.GET("continuous_max")Continuous intraday min
hourlycontinuous_minMinimum price per quarter-hour from the OMIE continuous intraday (XBID) market.
=ED.GET("continuous_min")PVPC regulated tariff
hourlypvpcPrecio Voluntario para el Pequeno Consumidor -- regulated electricity price for households.
=ED.GET("pvpc")PVPC market component (10211)
hourlypvpc_finalESIOS labels this 'precio final suma de componentes' but it is actually the MARKET sub-component only — not the consumer-bill final price. For the actual end-user bill, sum the 10 pvpc_* itemised components (Spain System Cost category).
=ED.GET("pvpc_final")Intraday session 1 price
15-minintraday_s1_pricePrice from intraday auction session 1 (ES + PT).
=ED.GET("intraday_s1_price")Intraday session 2 price
15-minintraday_s2_pricePrice from intraday auction session 2.
=ED.GET("intraday_s2_price")Intraday session 3 price
15-minintraday_s3_pricePrice from intraday auction session 3.
=ED.GET("intraday_s3_price")Intraday session 1 energy
15-minintraday_s1_energyMatched energy volume in intraday auction session 1.
=ED.GET("intraday_s1_energy")Intraday session 2 energy
15-minintraday_s2_energyMatched energy volume in intraday auction session 2.
=ED.GET("intraday_s2_energy")Intraday session 3 energy
15-minintraday_s3_energyMatched energy volume in intraday auction session 3.
=ED.GET("intraday_s3_energy")🔋 Generation (24)
Real-time generation by technology from REE/ESIOS
Solar PV generation (post-2020)
hourlygen_solar_pvReal-time solar photovoltaic generation in the peninsular system. Available from 2020 when REE split the solar indicator. Night-time values can be slightly negative — plants draw a small amount from the grid for inverters/controls, which REE meters as negative generation. Normal behavior.
=ED.GET("gen_solar_pv")Solar thermal generation
hourlygen_solar_thermalConcentrated solar power (CSP/solar thermal) generation.
=ED.GET("gen_solar_thermal")Solar PV generation
hourlygen_solarReal-time solar photovoltaic generation in the peninsular system. Uses gen_solar pre-2020, gen_solar_pv post-2020.
=ED.GEN(1)Wind generation
hourlygen_windReal-time wind generation in the peninsular system.
=ED.GEN(2)Nuclear generation
hourlygen_nuclearReal-time nuclear generation (Almaraz, Asco, Cofrentes, Trillo, Vandellos).
=ED.GEN(3)Hydro generation
hourlygen_hydroReal-time conventional hydroelectric generation (UGH).
=ED.GEN(4)Gas CCGT generation
hourlygen_combined_cycleReal-time combined cycle gas turbine generation.
=ED.GEN(5)Coal generation
hourlygen_coalReal-time coal thermal generation.
=ED.GEN(6)International exchanges
hourlygen_exchangesNet international exchange balance in the peninsular system. Positive = import, negative = export.
=ED.GET("gen_exchanges")Biomass generation
hourlygen_biomassRenewable thermal: biomass + biogas + renewable waste. ES/PT from ESIOS "Térmica renovable" (id 1296, post-2020); FR/DE/BE/NL from ENTSO-E A75 "Biomass".
=ED.GET("gen_biomass")Oil generation
hourlygen_oilOil-fired generation. Available for PT, FR, DE via ENTSO-E.
=ED.GET("gen_oil")Geothermal generation
hourlygen_geothermalGeothermal generation (mainly FR). Via ENTSO-E.
=ED.GET("gen_geothermal")Other renewable generation
hourlygen_other_renewableOther renewable generation via ENTSO-E.
=ED.GET("gen_other_renewable")Waste generation
hourlygen_wasteWaste-to-energy generation via ENTSO-E.
=ED.GET("gen_waste")Other generation
hourlygen_otherCatch-all unclassified generation. ES/PT from ESIOS "Resto generación" (id 555); FR/DE/BE/NL from ENTSO-E A75.
=ED.GET("gen_other")Cogeneration generation
hourlygen_cogenerationCombined heat & power (CHP) plants — mostly natural gas — plus non-renewable waste. ESIOS id 1297. ~17 TWh/yr in Spain.
=ED.GET("gen_cogeneration")Fuel-gas generation
hourlygen_fuel_gasFuel oil + diesel thermal generation. ESIOS id 548. Small on the peninsular grid; bigger historically.
=ED.GET("gen_fuel_gas")Pumped-hydro generation
hourlygen_pumped_storagePumped-hydro plants generating (water turbining out of upper reservoir). ESIOS id 2066. ~3-5 TWh/yr in Spain.
=ED.GET("gen_pumped_storage")Pumped-hydro consumption
hourlygen_pumped_consumptionEnergy consumed when pumped-hydro plants are charging (pumping water uphill). Positive MW means energy drawn FROM the grid. ESIOS id 2065. Negate this if computing net pumped-hydro flow.
=ED.GET("gen_pumped_consumption")Total measured generation (official REE)
hourlygen_total_measuredSum of REE's per-province measured generation (ESIOS id 10043 "Generación medida total"). Settled / authoritative — this is the figure REE publishes in its monthly and annual reports. ~2-3 day lag, hourly cadence. Already in MWh (energy integrated over the hour) so no MW→MWh conversion needed.
=ED.RANGE("gen_total_measured", "2025-01-01", "2025-12-31", 6, , 1, , , , 7)Total generation (all techs)
hourlygen_totalSum of every gen_* technology at each native timestamp — domestic production into the grid. Excludes gen_exchanges (interconnections).
=ED.RANGE("gen_total", "2025-01-01",, 6, , , , , , "MWh")Renewable generation total
hourlygen_renewableSum of renewable techs: solar PV, solar thermal, wind, hydro, biomass, geothermal, other_renewable. Pass unit=MWh for energy.
=ED.RANGE("gen_renewable", "2025-01-01",, 6, , , , , , "MWh")Thermal generation total
hourlygen_thermalSum of thermal techs: nuclear, combined-cycle gas, coal, oil. Includes nuclear (thermal but non-fossil). Pass unit=MWh for energy.
=ED.RANGE("gen_thermal", "2025-01-01",, 6, , , , , , "MWh")Fossil generation total
hourlygen_fossilSum of fossil-fuel techs: combined-cycle gas, coal, oil. Excludes nuclear by design (use gen_thermal for thermal-including-nuclear). Useful for emissions analysis. Pass unit=MWh for energy.
=ED.RANGE("gen_fossil", "2025-01-01",, 6, , , , , , "MWh")📊 Demand (3)
Electricity demand: real, forecast, and scheduled
Real demand
hourlydemand_realActual real-time electricity demand in the peninsular system.
=ED.GET("demand_real")Scheduled demand
hourlydemand_scheduledDay-ahead scheduled electricity demand.
=ED.GET("demand_scheduled")Demand forecast (D+1)
hourlydemand_forecastDay-ahead demand forecast for the peninsular system published by REE.
=ED.GET("demand_forecast")⚖️ Balancing Services (16)
Secondary (aFRR), tertiary (mFRR), and imbalance prices
aFRR band price (up)
hourlyafrr_band_price_upSecondary regulation band price for upward reserve.
=ED.GET("afrr_band_price_up")aFRR band price (down)
hourlyafrr_band_price_downSecondary regulation band price for downward reserve.
=ED.GET("afrr_band_price_down")aFRR energy price (up)
hourlyafrr_energy_price_upSecondary regulation energy activation price upward.
=ED.GET("afrr_energy_price_up")aFRR energy price (down)
hourlyafrr_energy_price_downSecondary regulation energy activation price downward.
=ED.GET("afrr_energy_price_down")aFRR band assigned (up)
hourlyafrr_band_upSecondary regulation upward band capacity assigned by REE.
=ED.GET("afrr_band_up")aFRR band assigned (down)
hourlyafrr_band_downSecondary regulation downward band capacity assigned by REE.
=ED.GET("afrr_band_down")aFRR energy activated (up)
hourlyafrr_energy_upSecondary regulation upward energy activated in real time.
=ED.GET("afrr_energy_up")aFRR energy activated (down)
hourlyafrr_energy_downSecondary regulation downward energy activated in real time.
=ED.GET("afrr_energy_down")mFRR-SA price (up)
hourlymfrr_sa_price_upTertiary regulation scheduled activation marginal price upward.
=ED.GET("mfrr_sa_price_up")mFRR-SA price (down)
hourlymfrr_sa_price_downTertiary regulation scheduled activation marginal price downward.
=ED.GET("mfrr_sa_price_down")mFRR-SA assigned energy (up)
hourlymfrr_sa_assign_upTertiary regulation scheduled activation upward energy assigned.
=ED.GET("mfrr_sa_assign_up")mFRR-SA assigned energy (down)
hourlymfrr_sa_assign_downTertiary regulation scheduled activation downward energy assigned.
=ED.GET("mfrr_sa_assign_down")mFRR-DA price (up)
hourlymfrr_da_price_upTertiary regulation direct activation weighted average price upward.
=ED.GET("mfrr_da_price_up")mFRR-DA price (down)
hourlymfrr_da_price_downTertiary regulation direct activation weighted average price downward.
=ED.GET("mfrr_da_price_down")mFRR-DA assigned energy (up)
hourlymfrr_da_assign_upTertiary regulation direct activation upward energy assigned.
=ED.GET("mfrr_da_assign_up")mFRR-DA assigned energy (down)
hourlymfrr_da_assign_downTertiary regulation direct activation downward energy assigned.
=ED.GET("mfrr_da_assign_down")⚖️ Imbalances (4)
System imbalance prices, direction flags, and deviation costs
Imbalance price (up)
hourlyimbalance_price_upImbalance settlement price for upward deviations.
=ED.GET("imbalance_price_up")Imbalance price (down)
hourlyimbalance_price_downImbalance settlement price for downward deviations.
=ED.GET("imbalance_price_down")Imbalance direction flag
hourlyimbalance_directionSystem imbalance direction indicator. +1 = system long (excess), -1 = system short (deficit).
=ED.GET("imbalance_direction")Imbalance cost vs day-ahead
hourlyimbalance_cost_deviationDeviation cost relative to the day-ahead price. Measures the penalty for being out of balance.
=ED.GET("imbalance_cost_deviation")🔧 Technical Constraints (20)
Redispatch Phase I, Phase II, real-time, costs, and curtailment (ERNI)
Redispatch Phase I price (up)
hourlyredispatch_daily_price_upAverage price for upward redispatch in day-ahead technical constraints resolution (RRTT PBF).
=ED.GET("redispatch_daily_price_up")Redispatch Phase I price (down)
hourlyredispatch_daily_price_downAverage price for downward redispatch in day-ahead technical constraints resolution.
=ED.GET("redispatch_daily_price_down")Redispatch Phase I energy (up)
hourlyredispatch_daily_energy_upEnergy redispatched upward in day-ahead technical constraints resolution.
=ED.GET("redispatch_daily_energy_up")Redispatch Phase I energy (down)
hourlyredispatch_daily_energy_downEnergy redispatched downward in day-ahead technical constraints resolution.
=ED.GET("redispatch_daily_energy_down")Redispatch Phase I total cost
15-minredispatch_daily_costTotal cost of Phase I technical constraints resolution.
=ED.GET("redispatch_daily_cost")Redispatch Phase II price (up)
hourlyredispatch_daily2_price_upAverage price for upward redispatch in Phase II (intraday) technical constraints resolution.
=ED.GET("redispatch_daily2_price_up")Redispatch Phase II price (down)
hourlyredispatch_daily2_price_downAverage price for downward redispatch in Phase II (intraday) technical constraints.
=ED.GET("redispatch_daily2_price_down")Redispatch Phase II energy (up)
hourlyredispatch_daily2_energy_upEnergy redispatched upward in Phase II (intraday) technical constraints.
=ED.GET("redispatch_daily2_energy_up")Redispatch Phase II energy (down)
hourlyredispatch_daily2_energy_downEnergy redispatched downward in Phase II (intraday) technical constraints.
=ED.GET("redispatch_daily2_energy_down")Redispatch Phase II cost (down)
hourlyredispatch_daily2_cost_downCost of downward redispatch in Phase II technical constraints resolution.
=ED.GET("redispatch_daily2_cost_down")Redispatch real-time price (up)
hourlyredispatch_rt_price_upReal-time upward redispatch price from technical constraints in real-time operation.
=ED.GET("redispatch_rt_price_up")Redispatch real-time price (down)
hourlyredispatch_rt_price_downReal-time downward redispatch price from technical constraints in real-time operation.
=ED.GET("redispatch_rt_price_down")Redispatch real-time energy (up)
hourlyredispatch_rt_energy_upReal-time upward redispatch energy.
=ED.GET("redispatch_rt_energy_up")Redispatch real-time energy (down)
hourlyredispatch_rt_energy_downReal-time downward redispatch energy.
=ED.GET("redispatch_rt_energy_down")Redispatch real-time total cost
15-minredispatch_rt_costTotal cost of real-time technical constraints.
=ED.GET("redispatch_rt_cost")Renewable curtailment (ERNI)
dailycurtailment_pctPercentage of renewable energy not integrated due to technical constraints.
=ED.GET("curtailment_pct")ERNI Phase I transmission
dailyerni_pdbf_rttERNI percentage for Phase I (PBF) transmission network technical constraints.
=ED.GET("erni_pdbf_rtt")ERNI Phase I distribution
dailyerni_pdbf_rtdERNI percentage for Phase I (PBF) distribution network technical constraints.
=ED.GET("erni_pdbf_rtd")ERNI real-time transmission
dailyerni_tr_rttERNI percentage for real-time transmission network technical constraints.
=ED.GET("erni_tr_rtt")ERNI real-time distribution
dailyerni_tr_rtdERNI percentage for real-time distribution network technical constraints.
=ED.GET("erni_tr_rtd")💰 System Cost (31)
Monthly price decomposition: day-ahead + RRTT + balancing
RRTT cost component
monthlycomponent_rrtt_monthlyMonthly cost of technical constraints per MWh of demand. Official REE calculation, ~2 month lag.
=ED.GET("component_rrtt_monthly")Ancillary services component
monthlycomponent_ancillary_monthlyMonthly total ancillary services cost (RRTT + balancing) per MWh.
=ED.GET("component_ancillary_monthly")Final price (all components)
monthlycomponent_final_price_monthlyMonthly final electricity price including all market components.
=ED.GET("component_final_price_monthly")PVPC: day-ahead + intraday market
hourlypvpc_dayahead_intradayEnergy procurement cost component of the PVPC final price — purely market-driven (OMIE day-ahead + intraday adjustments).
=ED.RANGE("pvpc_dayahead_intraday", "2024-01-01", "2024-12-31", 3)PVPC: ancillary services
hourlypvpc_ancillaryCost of system ancillary services (RRTT + secondary/tertiary band + imbalances) baked into the PVPC final price.
=ED.RANGE("pvpc_ancillary", "2024-01-01", "2024-12-31", 3)PVPC: tolls + system charges
hourlypvpc_tolls_chargesRegulated transmission/distribution toll. From 2021-06 also includes system charges (renewable subsidies, debt). Pre-2021 numbers exclude charges.
=ED.RANGE("pvpc_tolls_charges", "2024-01-01", "2024-12-31", 3)PVPC: capacity payment
hourlypvpc_capacity_paymentRegulated capacity-payment component (~3-5 EUR/MWh). Pays generators for being available at peak demand.
=ED.RANGE("pvpc_capacity_payment", "2024-01-01", "2024-12-31", 3)PVPC: interruptibility service
hourlypvpc_interruptibilityIndustrial interruptibility service cost. Deprecated 2022; ~0 EUR/MWh from then on.
=ED.RANGE("pvpc_interruptibility", "2014-01-01", "2022-12-31", 3)PVPC: system operator (REE) fee
hourlypvpc_os_feeRegulated fee that funds REE (Red Eléctrica) — the Spanish TSO and System Operator (~0.5 EUR/MWh).
=ED.RANGE("pvpc_os_fee", "2024-01-01", "2024-12-31", 3)PVPC: market operator (OMIE) fee
hourlypvpc_om_feeRegulated fee that funds OMIE — the Iberian Market Operator (~0.05 EUR/MWh).
=ED.RANGE("pvpc_om_fee", "2024-01-01", "2024-12-31", 3)PVPC: commercialization cost
hourlypvpc_commercializationRegulated retailer-margin component (~3 EUR/MWh). Compensates the reference retailer (COR) for billing+service.
=ED.RANGE("pvpc_commercialization", "2024-01-01", "2024-12-31", 3)PVPC: renewable auction surplus/deficit
hourlypvpc_renewable_auctionNet of FER/REER renewable-auction settlements applied to PVPC. Variable; can be positive or negative. Available since 2021-06.
=ED.RANGE("pvpc_renewable_auction", "2024-01-01", "2024-12-31", 3)PVPC: MACP gas-cap surplus/deficit
hourlypvpc_macpNet of the Iberian gas-cap mechanism (MACP / 'tope al gas') applied to PVPC. Available since 2022-06.
=ED.RANGE("pvpc_macp", "2024-01-01", "2024-12-31", 3)System cost: day-ahead market
monthlysystem_cost_dayaheadMonthly contribution of the OMIE day-ahead market to the system electricity cost (EUR/MWh of demand).
=ED.RANGE("system_cost_dayahead", "2024-01-01", "2024-12-31", 3)System cost: intraday market
monthlysystem_cost_intradayMonthly contribution of the OMIE intraday markets (sessions + continuous) to the system cost.
=ED.RANGE("system_cost_intraday", "2024-01-01", "2024-12-31", 3)System cost: RRTT Phase I
monthlysystem_cost_rrtt_phase1Monthly cost of Phase I technical constraints (PBF restrictions, D-1 ~16:00) per MWh of demand.
=ED.RANGE("system_cost_rrtt_phase1", "2024-01-01", "2024-12-31", 3)System cost: RRTT Phase II
hourlysystem_cost_rrtt_phase2Cost of Phase II technical constraints (intraday restrictions, D-1 ~17:00) per MWh of demand. Source ESIOS 809 (hourly) — the legacy monthly indicator (887) was deprecated by REE; aggregate to monthly with agg=3.
=ED.RANGE("system_cost_rrtt_phase2", "2024-01-01", "2024-12-31", 3)System cost: RRTT real-time
monthlysystem_cost_rrtt_rtMonthly cost of real-time technical constraints (RTRT) per MWh of demand. Often the largest of the three RRTT sub-components.
=ED.RANGE("system_cost_rrtt_rt", "2024-01-01", "2024-12-31", 3)System cost: additional power reserve (RPA)
monthlysystem_cost_reserve_additionalMonthly cost of the additional upward power reserve service per MWh of demand.
=ED.RANGE("system_cost_reserve_additional", "2024-01-01", "2024-12-31", 3)System cost: secondary band (AGC)
monthlysystem_cost_band_secondaryMonthly cost of secondary regulation band reservation (AGC) per MWh of demand.
=ED.RANGE("system_cost_band_secondary", "2024-01-01", "2024-12-31", 3)System cost: measured imbalances
monthlysystem_cost_imbalance_measuredMonthly cost passed through to demand from measured production imbalances per MWh.
=ED.RANGE("system_cost_imbalance_measured", "2024-01-01", "2024-12-31", 3)System cost: imbalance settlement balance
monthlysystem_cost_imbalance_balanceMonthly net imbalance settlement balance per MWh of demand.
=ED.RANGE("system_cost_imbalance_balance", "2024-01-01", "2024-12-31", 3)System cost: capacity payment
monthlysystem_cost_capacity_paymentMonthly capacity-payment system component per MWh of demand.
=ED.RANGE("system_cost_capacity_payment", "2024-01-01", "2024-12-31", 3)System cost: P.O.14.6 balance
monthlysystem_cost_po146Monthly balance of REE operating procedure P.O.14.6 (operational protocol) per MWh of demand.
=ED.RANGE("system_cost_po146", "2024-01-01", "2024-12-31", 3)System cost: UPG nomination failure
hourlysystem_cost_upg_failurePenalty for UPG nomination failures per MWh of demand. Source ESIOS 816 (hourly) — the legacy monthly indicator (894) was deprecated by REE; aggregate to monthly with agg=3. Usually near-zero.
=ED.RANGE("system_cost_upg_failure", "2024-01-01", "2024-12-31", 3)System cost: interruptibility service
monthlysystem_cost_interruptibilityMonthly industrial-interruptibility cost per MWh of demand. Deprecated 2022.
=ED.RANGE("system_cost_interruptibility", "2014-01-01", "2022-12-31", 3)System cost: RD-L 10/2022 RRTT + balance
monthlysystem_cost_rdl10_22_rrtt_balanceMonthly cost of the post-2022 RD-L 10/2022 component for RRTT + balance markets per MWh of demand. Available since 2022-06.
=ED.RANGE("system_cost_rdl10_22_rrtt_balance", "2022-06-01", "2024-12-31", 3)System cost: RD-L 10/2022 market
monthlysystem_cost_rdl10_22_marketMonthly cost of the post-2022 RD-L 10/2022 component for day-ahead + intraday market per MWh of demand. Available since 2022-06.
=ED.RANGE("system_cost_rdl10_22_market", "2022-06-01", "2024-12-31", 3)REER component (combined)
15-minreer_componentQuarter-hourly make-whole price for renewable-auction projects (REER). Positive when spot < strike (system pays projects); zero when spot >= strike. Combined retailer + COR view.
=ED.RANGE("reer_component", "2026-02-01", "2026-12-31", 3)REER component (COR)
15-minreer_component_corSame as reer_component but for Comercializadores de Referencia (regulated PVPC retailers).
=ED.RANGE("reer_component_cor", "2026-02-01", "2026-12-31", 3)REER component (free market)
15-minreer_component_libSame as reer_component but for free-market suppliers (contratación libre).
=ED.RANGE("reer_component_lib", "2026-02-01", "2026-12-31", 3)📦 Renewable Settlement (21)
Renewable Settlement
Settled price: wind
monthlyrenewable_settled_price_eolicaEffective €/MWh actually earned by wind under the régimen retributivo (incl. REER auction clawback). Source: C2 comppfre, official monthly liquidation.
=ED.RANGE("renewable_settled_price_eolica", "2022-01-01", "2026-12-31")Settled price: solar PV
monthlyrenewable_settled_price_fotovoltaicaEffective €/MWh actually earned by solar PV under the régimen retributivo (incl. REER auction clawback). Source: C2 comppfre.
=ED.RANGE("renewable_settled_price_fotovoltaica", "2022-01-01", "2026-12-31")Settled price: hydro
monthlyrenewable_settled_price_hidraulicaEffective €/MWh earned by hydro under the régimen retributivo (incl. REER clawback). Source: C2 comppfre.
=ED.RANGE("renewable_settled_price_hidraulica", "2022-01-01", "2026-12-31")Settled price: solar thermal
monthlyrenewable_settled_price_termosolarEffective €/MWh earned by solar thermal (CSP) under the régimen retributivo. Source: C2 comppfre.
=ED.RANGE("renewable_settled_price_termosolar", "2022-01-01", "2026-12-31")Settled price: thermal renewable
monthlyrenewable_settled_price_termica_renovEffective €/MWh earned by renewable thermal (biomass, biogas, etc.) under the régimen retributivo. Source: C2 comppfre.
=ED.RANGE("renewable_settled_price_termica_renov", "2022-01-01", "2026-12-31")Settled price: thermal non-renew
monthlyrenewable_settled_price_termica_no_renovEffective €/MWh earned by non-renewable thermal (CCGT, fuel) — included as a comparison baseline. Source: C2 comppfre.
=ED.RANGE("renewable_settled_price_termica_no_renov", "2022-01-01", "2026-12-31")RRE adjustment: wind
monthlyrenewable_settled_rre_adj_eolicaRRE = Régimen Retributivo Específico (RD 413/2014, the OLD pre-2020 PPA scheme). Per-MWh regulatory adjustment for wind under that scheme. ⚠️ NOT the new post-2020 REER auctions — those settle annually and live in reer_component. Negative = projects pay system back. Most active 2021-2022; near-zero from 2023.
=ED.RANGE("renewable_settled_rre_adj_eolica", "2022-01-01", "2026-12-31")RRE adjustment: solar PV
monthlyrenewable_settled_rre_adj_fotovoltaicaRRE (RD 413/2014) per-MWh adjustment for solar PV. Mostly affects pre-2014 PV plants (RD 661/2007 era).
=ED.RANGE("renewable_settled_rre_adj_fotovoltaica", "2022-01-01", "2026-12-31")RRE adjustment: hydro
monthlyrenewable_settled_rre_adj_hidraulicaRRE (RD 413/2014) per-MWh adjustment for hydro.
=ED.RANGE("renewable_settled_rre_adj_hidraulica", "2022-01-01", "2026-12-31")RRE adjustment: solar thermal
monthlyrenewable_settled_rre_adj_termosolarRRE (RD 413/2014) per-MWh adjustment for solar thermal (CSP).
=ED.RANGE("renewable_settled_rre_adj_termosolar", "2022-01-01", "2026-12-31")RRE adjustment: thermal renew
monthlyrenewable_settled_rre_adj_termica_renovRRE (RD 413/2014) per-MWh adjustment for renewable thermal (biomass, biogas).
=ED.RANGE("renewable_settled_rre_adj_termica_renov", "2022-01-01", "2026-12-31")RRE adjustment: thermal non-r.
monthlyrenewable_settled_rre_adj_termica_no_renovRRE (RD 413/2014) per-MWh adjustment for non-renewable thermal. Typically zero — these don't participate in RD 413/2014.
=ED.RANGE("renewable_settled_rre_adj_termica_no_renov", "2022-01-01", "2026-12-31")Settled energy: wind
monthlyrenewable_settled_energy_eolicaTotal settled MWh for wind under the régimen retributivo (monthly).
=ED.RANGE("renewable_settled_energy_eolica", "2022-01-01", "2026-12-31")Settled energy: solar PV
monthlyrenewable_settled_energy_fotovoltaicaTotal settled MWh for solar PV under the régimen retributivo (monthly).
=ED.RANGE("renewable_settled_energy_fotovoltaica", "2022-01-01", "2026-12-31")Settled energy: hydro
monthlyrenewable_settled_energy_hidraulicaTotal settled MWh for hydro under the régimen retributivo (monthly).
=ED.RANGE("renewable_settled_energy_hidraulica", "2022-01-01", "2026-12-31")Settled energy: solar thermal
monthlyrenewable_settled_energy_termosolarTotal settled MWh for solar thermal under the régimen retributivo (monthly).
=ED.RANGE("renewable_settled_energy_termosolar", "2022-01-01", "2026-12-31")Settled energy: thermal renewable
monthlyrenewable_settled_energy_termica_renovTotal settled MWh for renewable thermal (biomass, biogas) — monthly.
=ED.RANGE("renewable_settled_energy_termica_renov", "2022-01-01", "2026-12-31")Settled energy: thermal non-renew
monthlyrenewable_settled_energy_termica_no_renovTotal settled MWh for non-renewable thermal (CCGT, fuel) — monthly.
=ED.RANGE("renewable_settled_energy_termica_no_renov", "2022-01-01", "2026-12-31")Settled hourly: solar bucket
hourlyrenewable_settled_hourly_solarHourly settled measured generation, solar bucket (FV + termosolar combined). Source: C2 grpresol.
=ED.RANGE("renewable_settled_hourly_solar", "2024-01-01", "2024-12-31", 3)Settled hourly: hydro+biomass
hourlyrenewable_settled_hourly_hydro_bioHourly settled measured generation, hydro+biomass bucket (hidráulica + biomasa/biogás). Source: C2 grpresfh.
=ED.RANGE("renewable_settled_hourly_hydro_bio", "2024-01-01", "2024-12-31", 3)Settled hourly: wind+cogen
hourlyrenewable_settled_hourly_wind_cogenHourly settled measured generation, wind+cogeneration bucket (eólica + cogen/residuos). Source: C2 grpreolr.
=ED.RANGE("renewable_settled_hourly_wind_cogen", "2024-01-01", "2024-12-31", 3)🔮 Forecasts (3)
D+1 and H+3 renewable forecasts, residual demand, and PBF schedules
Renewable forecast D+1
hourlyforecast_renewable_d1Day-ahead forecast of wind + solar generation.
=ED.GET("forecast_renewable_d1")Renewable forecast H+3
hourlyforecast_renewable_h3Intraday H+3 rolling forecast of wind + solar generation.
=ED.GET("forecast_renewable_h3")Residual demand forecast
15-minforecast_residual_demandForecast of demand minus renewable generation.
=ED.GET("forecast_residual_demand")📦 Scheduled Programs (60)
Scheduled Programs
PBF hydro UGH
hourlyprogram_pbf_hidro_ughHydro UGH (big dams) scheduled in PBF, post-OMIE auction.
=ED.GET("program_pbf_hidro_ugh")PBF hydro non-UGH
hourlyprogram_pbf_hidro_no_ughHydro non-UGH (run-of-river) scheduled in PBF, post-OMIE auction.
=ED.GET("program_pbf_hidro_no_ugh")PBF pumped hydro turbining
hourlyprogram_pbf_turb_bombeoPumped hydro turbine generation scheduled in PBF.
=ED.GET("program_pbf_turb_bombeo")PBF nuclear
hourlyprogram_pbf_nuclearNuclear scheduled in PBF (post-OMIE auction, pre-RRTT).
=ED.GET("program_pbf_nuclear")PBF CCGT
hourlyprogram_pbf_ccgtCombined-cycle gas turbine scheduled in PBF.
=ED.GET("program_pbf_ccgt")PBF onshore wind
hourlyprogram_pbf_windOnshore wind scheduled in PBF (industry-standard for wind capture price).
=ED.GET("program_pbf_wind")PBF solar PV
hourlyprogram_pbf_solar_pvSolar PV scheduled in PBF (industry-standard for solar capture price).
=ED.GET("program_pbf_solar_pv")PBF solar thermal
hourlyprogram_pbf_solar_thermalSolar thermal (CSP) scheduled in PBF.
=ED.GET("program_pbf_solar_thermal")PBF cogeneration
hourlyprogram_pbf_cogenNatural gas cogeneration scheduled in PBF.
=ED.GET("program_pbf_cogen")PBF oil/coal derivatives
hourlyprogram_pbf_oil_coal_derivDerivatives of petroleum or coal scheduled in PBF.
=ED.GET("program_pbf_oil_coal_deriv")PBF residual energy
hourlyprogram_pbf_residual_energyResidual/tail-gas energy scheduled in PBF.
=ED.GET("program_pbf_residual_energy")PBF biomass
hourlyprogram_pbf_biomassBiomass scheduled in PBF.
=ED.GET("program_pbf_biomass")PBF biogas
hourlyprogram_pbf_biogasBiogas scheduled in PBF.
=ED.GET("program_pbf_biogas")PBF household waste
hourlyprogram_pbf_household_wasteHousehold and similar waste scheduled in PBF.
=ED.GET("program_pbf_household_waste")PBF miscellaneous waste
hourlyprogram_pbf_misc_wasteMiscellaneous waste scheduled in PBF.
=ED.GET("program_pbf_misc_waste")PBF hydro total (UGH + noUGH)
hourlyprogram_pbf_hidro_totalTotal hydro = UGH + non-UGH scheduled in PBF. Aggregated indicator.
=ED.GET("program_pbf_hidro_total")PBF wind total (on + offshore)
hourlyprogram_pbf_total_windOnshore + offshore wind scheduled in PBF.
=ED.GET("program_pbf_total_wind")PBF other renewables
hourlyprogram_pbf_other_renewableOther renewables (aggregated) scheduled in PBF.
=ED.GET("program_pbf_other_renewable")PBF total
hourlyprogram_pbf_totalTotal scheduled generation in PBF (sum of all technologies).
=ED.GET("program_pbf_total")PBF hybrid
hourlyprogram_pbf_hybridHybrid generation scheduled in PBF.
=ED.GET("program_pbf_hybrid")PVP hydro UGH
hourlyprogram_pvp_hidro_ughHydro UGH scheduled in PVP (after RRTT).
=ED.GET("program_pvp_hidro_ugh")PVP hydro non-UGH
hourlyprogram_pvp_hidro_no_ughHydro non-UGH scheduled in PVP.
=ED.GET("program_pvp_hidro_no_ugh")PVP pumped hydro turbining
hourlyprogram_pvp_turb_bombeoPumped hydro turbine generation scheduled in PVP.
=ED.GET("program_pvp_turb_bombeo")PVP nuclear
hourlyprogram_pvp_nuclearNuclear scheduled in PVP (practically equal to PBF nuclear — baseload).
=ED.GET("program_pvp_nuclear")PVP CCGT
hourlyprogram_pvp_ccgtCCGT scheduled in PVP.
=ED.GET("program_pvp_ccgt")PVP onshore wind
hourlyprogram_pvp_windOnshore wind scheduled in PVP.
=ED.GET("program_pvp_wind")PVP solar PV
hourlyprogram_pvp_solar_pvSolar PV scheduled in PVP.
=ED.GET("program_pvp_solar_pv")PVP solar thermal
hourlyprogram_pvp_solar_thermalSolar thermal scheduled in PVP.
=ED.GET("program_pvp_solar_thermal")PVP cogeneration
hourlyprogram_pvp_cogenCogeneration scheduled in PVP.
=ED.GET("program_pvp_cogen")PVP oil/coal derivatives
hourlyprogram_pvp_oil_coal_derivOil/coal derivatives scheduled in PVP.
=ED.GET("program_pvp_oil_coal_deriv")PVP residual energy
hourlyprogram_pvp_residual_energyResidual energy scheduled in PVP.
=ED.GET("program_pvp_residual_energy")PVP biomass
hourlyprogram_pvp_biomassBiomass scheduled in PVP.
=ED.GET("program_pvp_biomass")PVP biogas
hourlyprogram_pvp_biogasBiogas scheduled in PVP.
=ED.GET("program_pvp_biogas")PVP household waste
hourlyprogram_pvp_household_wasteHousehold waste scheduled in PVP.
=ED.GET("program_pvp_household_waste")PVP miscellaneous waste
hourlyprogram_pvp_misc_wasteMiscellaneous waste scheduled in PVP.
=ED.GET("program_pvp_misc_waste")PVP hydro total
hourlyprogram_pvp_hidro_totalTotal hydro scheduled in PVP.
=ED.GET("program_pvp_hidro_total")PVP wind total
hourlyprogram_pvp_total_windTotal wind scheduled in PVP.
=ED.GET("program_pvp_total_wind")PVP other renewables
hourlyprogram_pvp_other_renewableOther renewables scheduled in PVP.
=ED.GET("program_pvp_other_renewable")PVP total
hourlyprogram_pvp_totalTotal scheduled generation in PVP.
=ED.GET("program_pvp_total")PVP hybrid
hourlyprogram_pvp_hybridHybrid generation scheduled in PVP.
=ED.GET("program_pvp_hybrid")P48 hydro UGH
hourlyprogram_p48_hidro_ughHydro UGH in P48 final D-1 schedule.
=ED.GET("program_p48_hidro_ugh")P48 hydro non-UGH
hourlyprogram_p48_hidro_no_ughHydro non-UGH in P48.
=ED.GET("program_p48_hidro_no_ugh")P48 pumped hydro turbining
hourlyprogram_p48_turb_bombeoPumped hydro turbine in P48.
=ED.GET("program_p48_turb_bombeo")P48 nuclear
hourlyprogram_p48_nuclearNuclear in P48.
=ED.GET("program_p48_nuclear")P48 CCGT
hourlyprogram_p48_ccgtCCGT in P48.
=ED.GET("program_p48_ccgt")P48 onshore wind
hourlyprogram_p48_windOnshore wind in P48 (final D-1 schedule, commonly used by traders).
=ED.GET("program_p48_wind")P48 solar PV
hourlyprogram_p48_solar_pvSolar PV in P48.
=ED.GET("program_p48_solar_pv")P48 solar thermal
hourlyprogram_p48_solar_thermalSolar thermal in P48.
=ED.GET("program_p48_solar_thermal")P48 cogeneration
hourlyprogram_p48_cogenCogeneration in P48.
=ED.GET("program_p48_cogen")P48 oil/coal derivatives
hourlyprogram_p48_oil_coal_derivOil/coal derivatives in P48.
=ED.GET("program_p48_oil_coal_deriv")P48 residual energy
hourlyprogram_p48_residual_energyResidual energy in P48.
=ED.GET("program_p48_residual_energy")P48 biomass
hourlyprogram_p48_biomassBiomass in P48.
=ED.GET("program_p48_biomass")P48 biogas
hourlyprogram_p48_biogasBiogas in P48.
=ED.GET("program_p48_biogas")P48 household waste
hourlyprogram_p48_household_wasteHousehold waste in P48.
=ED.GET("program_p48_household_waste")P48 miscellaneous waste
hourlyprogram_p48_misc_wasteMiscellaneous waste in P48.
=ED.GET("program_p48_misc_waste")P48 hydro total
hourlyprogram_p48_hidro_totalTotal hydro in P48.
=ED.GET("program_p48_hidro_total")P48 wind total
hourlyprogram_p48_total_windTotal wind in P48.
=ED.GET("program_p48_total_wind")P48 other renewables
hourlyprogram_p48_other_renewableOther renewables in P48.
=ED.GET("program_p48_other_renewable")P48 total
hourlyprogram_p48_totalTotal generation in P48.
=ED.GET("program_p48_total")P48 hybrid
hourlyprogram_p48_hybridHybrid generation in P48.
=ED.GET("program_p48_hybrid")🔌 Storage & Interconnections (7)
Batteries, pumped hydro, and cross-border flows
Battery charging
hourlybattery_chargeBattery storage charging power.
=ED.GET("battery_charge")Battery delivery
hourlybattery_deliveryBattery storage discharge/delivery power.
=ED.GET("battery_delivery")Pumped hydro consumption
hourlypumped_consumptionPumped hydro storage energy consumption.
=ED.GET("pumped_consumption")Pumped hydro turbine
hourlypumped_turbinePumped hydro storage turbine generation (discharge).
=ED.GET("pumped_turbine")France interconnection net
hourlyxborder_france_netNet electricity exchange with France. Positive = import from France.
=ED.GET("xborder_france_net")Portugal interconnection net
hourlyxborder_portugal_netNet electricity exchange with Portugal. Positive = import from Portugal.
=ED.GET("xborder_portugal_net")Morocco interconnection net
hourlyxborder_morocco_netNet electricity exchange with Morocco via the Strait of Gibraltar interconnection.
=ED.GET("xborder_morocco_net")🛢️ Commodities (11)
Oil, gas, and carbon prices from international markets
Brent crude oil
dailybrentEurope Brent Spot Price FOB. The global benchmark for crude oil pricing.
=ED.GET("brent")WTI crude oil
dailywtiWest Texas Intermediate Spot Price at Cushing, Oklahoma.
=ED.GET("wti")Henry Hub natural gas
dailyhenry_hubUS Henry Hub natural gas spot price.
=ED.GET("henry_hub")Dubai crude oil
monthlydubai_crudeDubai/Oman crude oil benchmark price for Asian markets.
=ED.GET("dubai_crude")EU natural gas (TTF)
dailyeu_gas_ttfEuropean natural gas futures price at Title Transfer Facility (Netherlands). Front-month settlement via Yahoo Finance (TTF=F).
=ED.GET("eu_gas_ttf")EU ETS carbon (EUA)
dailyeua_co2European Union Allowance futures price (ICE EUA front-month via Yahoo Finance CO2.L). EU Emissions Trading System.
=ED.GET("eua_co2")Gold
dailygoldGold futures front-month, COMEX GC=F (troy ounce).
=ED.GET("gold")Silver
dailysilverSilver futures front-month, COMEX SI=F (troy ounce).
=ED.GET("silver")Copper
dailycopperHigh-grade copper futures front-month, COMEX HG=F (pound).
=ED.GET("copper")Platinum
dailyplatinumPlatinum futures front-month, NYMEX PL=F (troy ounce).
=ED.GET("platinum")Palladium
dailypalladiumPalladium futures front-month, NYMEX PA=F (troy ounce).
=ED.GET("palladium")🔥 Gas (4)
MIBGAS PVB Spain gas prices: day-ahead, monthly, quarterly, yearly
MIBGAS gas day-ahead
dailygas_dayaheadPVB Spain day-ahead gas price from MIBGAS. The reference price for the Spanish gas market.
=ED.GET("gas_dayahead")MIBGAS gas monthly ahead
dailygas_monthlyMIBGAS PVB Spain monthly gas forward price.
=ED.GET("gas_monthly")MIBGAS gas quarterly ahead
dailygas_quarterlyMIBGAS PVB Spain quarterly gas forward price.
=ED.GET("gas_quarterly")MIBGAS gas yearly ahead
dailygas_yearlyMIBGAS PVB Spain yearly gas forward price.
=ED.GET("gas_yearly")📈 Futures & Forward (4)
OMIP SPEL Base Futures: monthly, quarterly, yearly, PPA
Yearly futures (Cal+1)
dailyfutures_yrFront year (calendar year) OMIP SPEL Base Futures settlement price.
=ED.GET("futures_yr")Quarterly futures (Q+1)
dailyfutures_qFront quarter OMIP SPEL Base Futures settlement price.
=ED.GET("futures_q")Monthly futures (M+1)
dailyfutures_mFront month OMIP SPEL Base Futures settlement price.
=ED.GET("futures_m")PPA reference (10yr)
dailyfutures_ppaOMIP 10-year PPA reference price. Forward curve from Cal+1 to Cal+10.
=ED.GET("futures_ppa")☀️ Futures Solar (4)
OMIP SPEL Solar Futures: monthly, quarterly, yearly, PPA
Solar yearly futures
dailyfutures_solar_yrOMIP Solar yearly futures (FTS) settlement price for the Spanish zone.
=ED.GET("futures_solar_yr")Solar quarterly futures
dailyfutures_solar_qOMIP Solar quarterly futures settlement price for the Spanish zone.
=ED.GET("futures_solar_q")Solar monthly futures
dailyfutures_solar_mOMIP Solar monthly futures settlement price for the Spanish zone.
=ED.GET("futures_solar_m")Solar PPA reference
dailyfutures_solar_ppaOMIP Solar PPA reference price for the Spanish zone. Long-term solar forward curve.
=ED.GET("futures_solar_ppa")📈 Futures Peak (3)
OMIP SPEL Peak Futures: monthly, quarterly, yearly
Peak yearly futures
dailyfutures_peak_yrOMIP Peak yearly futures settlement price for the Spanish zone. Peak hours only.
=ED.GET("futures_peak_yr")Peak quarterly futures
dailyfutures_peak_qOMIP Peak quarterly futures settlement price for the Spanish zone.
=ED.GET("futures_peak_q")Peak monthly futures
dailyfutures_peak_mOMIP Peak monthly futures settlement price for the Spanish zone.
=ED.GET("futures_peak_m")📈 Forwards (3)
OMIP Base Forward contracts: monthly, quarterly, yearly
Base forwards yearly
dailyforwards_yrOMIP Base Forward yearly contract settlement price for the Spanish zone.
=ED.GET("forwards_yr")Base forwards quarterly
dailyforwards_qOMIP Base Forward quarterly contract settlement price for the Spanish zone.
=ED.GET("forwards_q")Base forwards monthly
dailyforwards_mOMIP Base Forward monthly contract settlement price for the Spanish zone.
=ED.GET("forwards_m")📈 Swaps (4)
OMIP Base Swap contracts: monthly, quarterly, yearly, PPA
Base swaps yearly
dailyswaps_yrOMIP Base Swap yearly contract settlement price for the Spanish zone.
=ED.GET("swaps_yr")Base swaps quarterly
dailyswaps_qOMIP Base Swap quarterly contract settlement price for the Spanish zone.
=ED.GET("swaps_q")Base swaps monthly
dailyswaps_mOMIP Base Swap monthly contract settlement price for the Spanish zone.
=ED.GET("swaps_m")Base swaps PPA
dailyswaps_ppaOMIP Base Swap PPA reference contract for the Spanish zone.
=ED.GET("swaps_ppa")🎯 Capture Prices (6)
Production-weighted average electricity price by technology
Solar PV capture price
dailycapture_solarRealized sum(dayahead × metered gen_solar_pv) / sum(gen_solar_pv). Matches figures published by REE / industry reports. Use method=1 for the PBF ex-ante alternative.
=ED.CAPTURE(1)Wind capture price
dailycapture_windRealized production-weighted average price for wind (sum(dayahead × gen_wind) / sum(gen_wind)). Use method=1 for the PBF ex-ante alternative.
=ED.CAPTURE(2)Nuclear capture price
dailycapture_nuclearRealized production-weighted average price for nuclear. Use method=1 for the PBF ex-ante alternative.
=ED.CAPTURE(3)Hydro capture price
dailycapture_hydroRealized production-weighted average price for hydro. Use method=1 for the PBF ex-ante alternative (sums UGH + non-UGH + pumped turbining).
=ED.CAPTURE(4)Gas CCGT capture price
dailycapture_gasRealized production-weighted average price for CCGT. Use method=1 for the PBF ex-ante alternative.
=ED.CAPTURE(5)Coal capture price
dailycapture_coalProduction-weighted average price for coal generators. Spain closed its last coal plants in July 2025, so capture_coal has no ES values after that date. Historical data 2014-2025 remains available.
=ED.CAPTURE(6)📋 C2 Settlement (10)
Definitive settlement values from REE C2 liquidation files. ~40 day delay but official values.
C2 RRTT redispatch price
hourlyc2_rrtt_priceSettled RRTT PBF (pay-as-bid) redispatch price. Definitive values from C2 liquidation.
=ED.GET("c2_rrtt_price")C2 RRTT total cost
hourlyc2_rrtt_costSettled RRTT total cost per hour. Definitive from C2 liquidation.
=ED.GET("c2_rrtt_cost")C2 RRTT energy (up)
15-minc2_rrtt_energy_upSettled upward redispatch energy from RRTT. Quarter-hourly resolution.
=ED.GET("c2_rrtt_energy_up")C2 RRTT energy (down)
15-minc2_rrtt_energy_downSettled downward redispatch energy from RRTT. Negative values = curtailment.
=ED.GET("c2_rrtt_energy_down")C2 RR energy (up)
15-minc2_rr_energy_upSettled Replacement Reserve (RR) upward energy. European balancing product.
=ED.GET("c2_rr_energy_up")C2 RR energy (down)
15-minc2_rr_energy_downSettled Replacement Reserve (RR) downward energy.
=ED.GET("c2_rr_energy_down")C2 RR price
15-minc2_rr_priceSettled Replacement Reserve marginal price per quarter-hour.
=ED.GET("c2_rr_price")C2 deviation price (up)
15-minc2_dev_price_upSettled imbalance/deviation price for upward deviations. UNICO/DUAL.
=ED.GET("c2_dev_price_up")C2 deviation price (down)
15-minc2_dev_price_downSettled imbalance/deviation price for downward deviations.
=ED.GET("c2_dev_price_down")C2 net deviation energy
15-minc2_dev_energy_netNet system deviation energy per quarter-hour. Definitive settlement value.
=ED.GET("c2_dev_energy_net")Use any of these in Excel
ED.GET("metric_name") for a single value, ED.RANGE("metric_name", start, end, agg) for a series.