Modelos propios de precio del mercado diario —periodo a periodo y día a día— para cuatro mercados eléctricos europeos, construidos desde la ingesta de datos hasta la validación. Esta página enseña los resultados y el método. El modelo de España es abierto: su código y sus previsiones diarias están en prevision-precio-espana.
El resultado
La medida es el error absoluto medio (MAE) en euros por megavatio-hora, sobre todos los periodos de unos 18 meses que el modelo nunca vio al entrenarse. Al lado, la referencia contra la que se compara cualquier previsión de este mercado: repetir el precio de ayer a la misma hora, difícil de batir porque el precio eléctrico es muy estacional.
| Mercado | MAE modelo | MAE D-1 | Mejora | Correlación | Error / precio medio | Periodos evaluados |
|---|---|---|---|---|---|---|
| España | 9,73 | 17,94 | 45,7 % | 0,967 | 14,8 % | 36.142 |
| Alemania | 14,22 | 27,61 | 48,5 % | 0,908 | 14,4 % | 36.993 |
| Francia | 15,93 | 24,05 | 33,8 % | 0,897 | 23,6 % | 36.570 |
| Países Bajos | 16,36 | 26,06 | 37,2 % | 0,851 | 17,0 % | 36.478 |
Ventanas entre febrero de 2025 y septiembre de 2026, cada mercado con la suya. Todas las cifras salen de la validación descrita más abajo, nunca del conjunto de entrenamiento.
Sobre la unidad: el 1 de octubre de 2025 el mercado europeo pasó a casar en periodos de 15 minutos en vez de horas, así que el modelo predice 96 precios por día donde antes predecía 24. Los datos cubren los dos regímenes y todo lo que aquí se llama «periodo» es una hora hasta esa fecha y un cuarto de hora después.
Dos productos, un solo modelo
Quien compra energía para una fábrica o cubre una cartera no siempre negocia cuartos de hora sueltos: negocia el bloque de día completo, un producto con su propia liquidez y sus propios futuros. Es una pregunta distinta, y el proyecto la entrega como segundo producto.
Lo interesante es que no hace falta un modelo nuevo. Se probaron cuatro alternativas —entrenar un modelo diario desde cero, corregir el residuo diario, un modelo destilado que recibe como entrada las predicciones del cuartohorario, y reponderar el ensemble con objetivo diario— y las cuatro pierden contra la opción simple: promediar las 96 predicciones del día. Promediar ya es en sí mismo una reducción de varianza que ningún modelo nuevo consigue mejorar.
El resultado es que el error diario es entre un 24 % y un 37 % menor que el del periodo suelto, porque al promediar se cancelan los errores independientes de cada cuarto de hora. En España baja de 9,73 a 6,21 EUR/MWh.
| Mercado | MAE diario | MAE naive diario | Mejora | Correlación | Días evaluados |
|---|---|---|---|---|---|
| España | 6,21 | 13,84 | 55,1 % | 0,977 | 327 |
| Alemania | 10,78 | 22,53 | 52,2 % | 0,905 | 319 |
| Francia | 10,36 | 18,42 | 43,8 % | 0,941 | 325 |
| Países Bajos | 11,07 | 20,30 | 45,5 % | 0,833 | 320 |
La referencia diaria es la media del día anterior. Solo se evalúan días completos, para no mezclar medias calculadas sobre días truncados.
La evolución del modelo
El proyecto no empezó con árboles y redes neuronales. Empezó por el otro extremo: reconstruyendo el precio desde la economía real del mercado, con un modelo que se puede dibujar en una servilleta. Ese modelo se entendía entero y erraba demasiado.
Lo que viene después es una cadena de decisiones del mismo tipo, tomadas una a una: añadir una capa de complejidad que baja el error y, a cambio, se lleva un trozo de la explicación. Cada paso se dio solo después de medir cuánto compraba, porque una pieza que no se puede explicar y tampoco se ha medido no es un modelo, es una superstición.
En cada paso, las dos monedas de la operación: el error medio en España (MAE, en EUR/MWh, sobre la misma ventana de 36.142 periodos) y cuánto del resultado se puede explicar sin acabar en «lo dice el modelo».
La referencia con la que se compara cualquier previsión de este mercado. No es un modelo y aun así es difícil de batir, porque el precio eléctrico es muy estacional. Se entiende del todo: el número de hoy es el de ayer a la misma hora. Todo lo que viene después se mide contra esta línea.
17,94 MAE Se puede explicar ●●●●●
Treinta y ocho fuentes descargadas de su origen oficial, auditadas una a una contra su documentación, y un filtro que deja fuera todo lo que no estaba publicado antes del cierre de la subasta. Esta capa es la única del recorrido que no cuesta comprensión: la da. Un modelo complejo sobre datos sucios no es más potente, solo aprende la suciedad más deprisa.
— todavía no hay predicción Se puede explicar ●●●●●
Un simulador que apila el coste marginal de cada tecnología contra la demanda, igual que hace el mercado para casar. Es el modelo más explicable que se puede construir aquí: cada euro tiene una causa física y se puede señalar con el dedo. Y se queda corto —correlación de 0,520, insuficiente para producción—. Aquí está la decisión que ordena todo lo demás: si se quiere el error de producción, hay que empezar a pagar en comprensión. Lo que sí dejó, y es lo que lo justifica, es saber qué variables importan y por qué.
0,520 correlación · fuera de producción Se puede explicar ●●●●●
Gradient boosting sobre lo que enseñó el simulador, en dos repartos de los mismos datos: uno con todas las horas juntas, que aprovecha todo el histórico, y otro con un modelo por cada hora del día, porque las 3 de la madrugada y las 8 de la tarde son mercados casi distintos. El error cae de 17,94 a 10,34. A cambio ya no hay una ecuación, hay reglas aprendidas: se puede preguntar qué variables pesan, pero ya no por qué esta hora concreta.
10,34 MAE · −42 % vs. la referencia Se puede explicar ●●●○○
El precio eléctrico no es una variable continua: tiene un suelo con masa concentrada —el 6,3 % de los periodos caen exactamente ahí— y un regresor entrenado sobre todo el rango se pasa la vida repartiendo la diferencia entre dos regímenes distintos. La solución es un clasificador que decide el régimen antes de predecir el número. Ya no hay un modelo: hay uno que decide y otro que predice. Es la pieza que más aporta, y no es la más sofisticada.
10,20 MAE · −0,14 Se puede explicar ●●○○○
Una red neuronal como tercer miembro. No está por probar algo moderno, está por una razón mecánica: un modelo de árboles no puede extrapolar. Promedia hojas, así que nunca predice por encima del máximo que vio al entrenar, que es justo el fallo en los picos de precio. Una red sí puede salirse de ese rango. Se aceptó porque se midió exactamente dónde ganaba: en el 5 % de horas más caras, el tercer miembro, la calibración y margen_neto juntos llevan el error de 14,03 a 10,46.
9,81 MAE · desde 10,20 Se puede explicar ●○○○○
La calibración de la cola alta corrige un sesgo que no viene de la electricidad, sino del desajuste entre entrenar y evaluar: los modelos minimizan error cuadrático, cuyo óptimo es la media, pero se evalúan con error absoluto, cuyo óptimo es la mediana, así que se encogen hacia el centro y se quedan cortos arriba. Es un artefacto estadístico puro: explicarlo no dice nada del mercado. Son 0,07 EUR/MWh, y aquí ya no queda nada que enseñar sobre el precio.
9,80 MAE · −0,01 Se puede explicar ○○○○○
La explicación no se pierde: cambia de sitio. En vez de leerse dentro del modelo, se mide desde fuera. Cada pieza se evaluó por separado sobre la misma ventana de 36.142 periodos, con validación walk-forward, su intervalo de confianza remuestreando meses enteros, y recalculando todo sin el mes que más aporta. Y después se comprobó si la mejora venía de donde se creía. Un modelo opaco cuya aportación está medida pieza a pieza se entiende mejor que uno transparente que nunca se validó.
9,73 MAE · 0,967 de correlación · −45,7 % vs. la referencia Se puede auditar ●●●●●
Ese es el recorrido completo: de 17,94 a 9,73 EUR/MWh (9,80 con estas cuatro piezas; 9,73 hoy, con `margen_neto` añadido después, ver más abajo), y de un modelo que se podía contar entero en una frase a uno que solo se puede auditar midiendo. No es un accidente ni una carrera por usar la técnica más nueva: es una secuencia de intercambios explícitos, cada uno con su cifra al lado.
Por eso todo lo que se prueba queda escrito, funcione o no: el proyecto lleva 144 hallazgos técnicos numerados, y buena parte son experimentos descartados con la razón por la que se descartaron. Las capas que no compraban lo suficiente no entraron.
El modelo español · la línea principal
España es el mercado al que más tiempo se le ha dedicado y el que mejor funciona: 9,73 EUR/MWh de error medio sobre un precio medio de 65,61, con una correlación de 0,967. No es un modelo, son cinco piezas montadas una encima de otra, y cada una se adoptó solo después de medir por separado cuánto bajaba el error.
El gráfico está medido sobre la misma ventana de 36.142 periodos en las cinco versiones, que es la única forma de que las diferencias signifiquen algo.
La pieza que más aporta no es la más sofisticada. La puerta de precio cero es un clasificador que decide, antes de predecir un número, si esa hora va a ser de precio nulo o negativo. Existe porque el precio eléctrico no es una variable continua: tiene un suelo con masa concentrada —el 6,3 % de los periodos caen exactamente ahí— y un regresor entrenado sobre todo el rango se pasa la vida repartiendo la diferencia entre dos regímenes distintos.
Y donde de verdad se nota el conjunto es en las horas caras, que son las que cuestan dinero:
Familias de modelos
El precio day-ahead no es un solo problema estadístico: es un régimen de precio cero, un cuerpo central bastante suave y una cola alta con pocos ejemplos y mucho dinero en juego. Usar un único modelo para las tres cosas es lo que limita a la mayoría de los intentos. Estas son las familias que acabaron en producción, y por qué cada una está donde está.
El cuerpo del modelo. Dos miembros con la misma familia pero distinto reparto de los datos: uno entrenado sobre todas las horas a la vez y otro con un modelo por cada hora del día. El primero aprovecha todo el histórico; el segundo captura que las 3 de la madrugada y las 8 de la tarde son mercados casi distintos.
El tercer miembro, y está por una razón mecánica, no por probar algo moderno: un modelo de árboles no puede extrapolar. Promedia hojas, así que nunca predice por encima del máximo que vio al entrenar — justo el fallo en los picos de precio. Una red sí puede salirse de ese rango, y se nota exactamente ahí.
Separa el régimen antes de predecir el número. Trata el suelo de precio como lo que es —una masa de probabilidad concentrada, no la cola de una distribución continua— y deja que el regresor se ocupe solo de la parte positiva.
Corrige un sesgo que nace del desajuste entre entrenar y evaluar: los modelos minimizan error cuadrático, cuyo óptimo es la media, pero se evalúan con error absoluto, cuyo óptimo es la mediana. El resultado es que se encogen hacia el centro y se quedan cortos arriba. Se aprende una recta a la mediana y se aplica solo por encima de un umbral.
La solución al mismo problema por el otro lado, adoptada en Alemania y Países Bajos: en vez de corregir la salida, se cambia la escala en la que se mide el error al entrenar, para que una hora de 600 EUR/MWh no domine el ajuste. Es lo único que mejoró la capacidad de ordenar las horas caras entre sí.
Los miembros se mezclan con pesos elegidos mes a mes buscando sobre una rejilla, y siempre con los meses ya observados: nunca con el periodo que se está evaluando. Es un detalle pequeño que separa un resultado real de uno inflado.
Antes de todo lo anterior se construyó un modelo que no es estadístico: apila el coste marginal de cada tecnología contra la demanda para reconstruir el precio desde el mecanismo económico real. Llega a una correlación de 0,520 — insuficiente para producción, pero es lo que enseñó qué variables importan y por qué.
Buenas prácticas
En series temporales es muy fácil producir una cifra excelente y falsa: basta con dejar entrar, sin querer, un dato que en el momento de predecir todavía no existía. Todo el diseño gira alrededor de evitarlo.
Validación walk-forward mensual: para predecir un mes, el modelo se entrena únicamente con los anteriores, y se reentrena al avanzar. Nunca hay una partición aleatoria, que en una serie temporal deja ver el futuro.
Cada variable pasa un filtro previo: ¿estaba publicada antes del cierre de la subasta? La generación real, los desvíos o los precios de ajuste se conocen después, así que sirven para diagnosticar y quedan fuera del modelo.
No solo el modelo: también los umbrales, las calibraciones y los pesos con que se combinan sus miembros. Cualquier constante ajustada mirando el periodo de prueba contamina el resultado.
Cada mejora se mide contra las predicciones del modelo en producción ya escritas en disco, no contra un sustituto reentrenado para la ocasión. Así la comparación aísla el cambio que se está probando.
El agregado se acompaña de su intervalo de confianza —remuestreando meses enteros, porque los errores de horas seguidas están correlacionados— y se recalcula quitando el mes que más aporta. Una mejora que se cae al retirar un mes no era una mejora.
Si una pieza existe para arreglar las horas caras, la ganancia tiene que concentrarse en los meses con horas caras. Cuando no ocurre, la mejora se adopta igual —el criterio es el error— pero queda escrito que el mecanismo era otro, y eso dirige el trabajo siguiente.
Todo lo que se prueba queda documentado, funcione o no: el proyecto lleva 144 hallazgos técnicos numerados, y buena parte son experimentos descartados con la razón por la que se descartaron. Es lo que evita repetir el mismo callejón sin salida tres semanas después.
Diagnóstico
Un MAE agregado esconde de dónde viene. Separando los periodos por el precio al que acabaron casando, aparece la forma real del problema — y se ve que cada mercado falla en un sitio distinto.
España es el mercado más plano: su peor tramo (11,26) apenas supera al mejor (10,06), y el régimen de precio nulo lo resuelve casi entero (2,08). Los otros tres tienen el error concentrado en los extremos.
Los otros tres mercados
Lo que funciona en España es una idea que probar en Alemania, no una conclusión que trasladar. Los grados-día ayudan en Francia y no en los otros tres; la calibración de la cola se adoptó en España y Francia y se descartó en Alemania y Países Bajos después de medirla. La única mejora que ha viajado intacta es la escala logarítmica del objetivo.
El mejor ejemplo de por qué hay que estudiar cada mercado por separado es alemán, y es una regla de subvención.
La ley alemana de renovables (EEG §51) suspende la prima de una instalación cuando el precio es negativo durante varias horas consecutivas, y ese umbral se ha endurecido tres veces desde 2023 — de seis horas a cada cuarto de hora. Si la regla manda, el precio no debería estar simplemente «en negativo»: debería hundirse más cuanto más dura la racha y recuperarse después, cuando las instalaciones ya han perdido la prima y dejan de tener motivo para ofertar barato.
Es exactamente lo que aparece al medirlo sobre 1.795 horas negativas alemanas. Y el hundimiento es un 60 % más profundo desde la reforma de febrero de 2025.
Un modelo entrenado con tres años de historia asume que el mercado de hace tres años se parece al de ahora. En Alemania eso ha dejado de ser cierto, y se puede cuantificar.
| Indicador | 2023 | 2026 |
|---|---|---|
| Horas con hueco térmico bajo (< 5 GW) | 2,9 % | 13,1 % |
| Tasa de captura de la solar | 0,758 | 0,515 |
| Tasa de captura de la eólica | 0,839 | 0,908 |
| Hora mediana de los precios > 200 EUR/MWh | 17:00 | 20:00 |
La tasa de captura es el precio medio que cobra una tecnología dividido por el precio medio del mercado. La solar ha pasado de cobrar el 76 % del precio medio a cobrar el 51 %: se canibaliza al concentrar toda su producción en las mismas horas. La eólica, repartida a lo largo del día, ha mejorado. Y el pico de precio se ha desplazado tres horas hacia la noche con 10 GW menos de hueco térmico: las horas caras de hoy son tardes de verano que cualquier regla basada en el nivel de demanda clasificaría como holgadas.
Cuatro estudios de mercado
Sobre la misma infraestructura se construyeron estudios de valoración y de estructura de mercado. Cada uno con su diseño escrito antes de mirar resultados, su modelo, y el registro de lo que no confirmó. Estos son cuatro.
Si se valora una central de gas por su margen medio —el precio de la luz menos lo que le cuesta generar, hora a hora— sale −20,78 EUR/MWh: perdería dinero si estuviera obligada a generar las 24 horas. Pero no está obligada. Solo genera cuando compensa, y ese derecho a elegir es lo que se valora: +8,92 EUR/MWh.
La diferencia, 29,70 EUR/MWh, es el valor de la opcionalidad, y es la razón por la que una central no es un contrato sino una opción. Ejerce el 38,7 % de las horas.
Lo que enseña la serie anual es más interesante todavía. El margen medio se desploma —de −11,34 a −40,78 EUR/MWh en cuatro años, por la erosión de precio que trae la renovable— pero el valor de la opción apenas se mueve, entre 7,99 y 9,47. La central ejerce cada vez menos veces (del 47 % al 28 % de las horas) y esas horas siguen siendo casi igual de rentables. Cuanta más renovable variable entra, más vale la flexibilidad y menos la generación de base.
El número de arriba es un límite superior: supone poder encender y apagar hora a hora sin coste. Con un despacho realista —mínimo 4 horas encendida, 2 apagada y 50 EUR/MW por arranque, resuelto por programación dinámica— el valor baja a 7,37 EUR/MWh, solo un 17 % menos. La razón es que las horas rentables no están dispersas: vienen en bloques, así que el mínimo de encendido casi nunca obliga a quedarse en horas malas.
Una batería gana dinero comprando barato y vendiendo caro. La pregunta del estudio es cuánto añade poder operar también en el intradiario continuo en vez de solo en el mercado diario, y si eso depende del tamaño de la batería.
Depende, y muchísimo. Con un despacho optimizado y restricciones técnicas reales, añadir el intradiario multiplica por más de dos el ingreso de una batería de 1 hora (+126 %), pero solo lo sube un 40,6 % en una de 4 horas.
El mecanismo es claro: una batería de 4 horas ya captura con el mercado diario el gran diferencial del día, así que el intradiario le añade poco. Una de 1 hora no puede hacer eso, y vive de encontrar muchas oportunidades pequeñas — que es exactamente lo que ofrece un mercado continuo. Es una conclusión de negocio: el revenue stacking importa mucho más cuanto más corta es la batería.
España y Francia comparten un único corredor eléctrico. Cuando tiene capacidad de sobra, los dos precios convergen; cuando se satura, se separan. La diferencia entre ambos —la básis— tiene una media de solo −1,02 EUR/MWh, y esa cifra engaña: su desviación típica es de 39,75.
Desglosado: solo el 33 % de las horas tiene los dos mercados prácticamente acoplados, y un 41,2 % tiene un desacople fuerte, por encima de 20 EUR/MWh. La interconexión es una restricción activa la mayor parte del tiempo, no una excepción ocasional.
Y el hallazgo que más me gusta de este estudio es metodológico. La indisponibilidad nuclear francesa parecía no explicar nada: su correlación con la básis en el mismo instante es +0,07, casi nula y con el signo contrario al que dice la teoría. Pero al probar el test de causalidad de Granger con distintos rezagos, aparece con fuerza a partir de las 6 horas. Una correlación contemporánea débil no descarta una relación real: puede que solo se esté mirando en el momento equivocado.
Con las tres variables juntas, un modelo de árboles baja el error de predicción de la básis de 24,19 a 21,43 EUR/MWh frente a predecir la media, y la eólica española domina la importancia de las variables. Pero para clasificar si habrá congestión, un umbral simple sobre la utilización de la interconexión (F1 0,661) bate al modelo completo (0,641). Cuando hay un driver dominante y estructural, más complejidad no compra nada.
Una batería de 20 MWh / 10 MW que solo hace arbitraje en el mercado diario —cargar en el valle solar, vender en los picos— deja 687.552 EUR netos en 531 días, ya descontado el desgaste. Si además reserva potencia para la regulación secundaria de REE (la banda aFRR), el neto sube a 1,59 millones: por tener potencia disponible se cobra más que por mover energía.
Cuando REE usa esa reserva, la energía activada se paga aparte y a precios mucho más favorables que el diario. Contándola, el neto llega a 1,99 millones, unos 137.000 EUR por MW y año. Todo con backtest causal: el despacho se decide con la previsión del modelo antes del cierre de la subasta y se cobra al precio real.
La animación reproduce un día real, el 10 de septiembre de 2026, cuarto de hora a cuarto de hora. Versión interactiva.
Los datos
No hay ningún conjunto de datos preparado detrás de esto. Cada fuente se descarga de su origen oficial, se verifica contra la documentación —husos horarios, unidades, cambios de resolución, revisiones posteriores— y pasa una auditoría antes de entrar en ningún modelo. El histórico arranca en 2023 y se actualiza a diario.
Alcance
Esta página enseña resultados y método: qué se midió, cómo se validó y qué se aprendió del mercado por el camino. Las cifras son reproducibles internamente y salen directamente de los artefactos de validación del proyecto.
El código, las variables construidas y los modelos entrenados no se publican. Con mucho gusto los comento en detalle en una conversación, y puedo enseñar el proyecto funcionando en directo.