Datos del sector · Ingeniería de datos y visualización
Del Excel gigante a un informe reproducible
En validación · septiembre de 2026
Reconstrucción del informe mensual de evolución del sector que una asociación energética envía a sus socios, a partir de cuatro fuentes públicas, sin tocar el proceso que sigue vivo.
El problema
Cada mes la asociación publica un análisis de la evolución del sector: parque de instalaciones, potencia, energía, horas de funcionamiento, retribución. Los datos son públicos y salen de cuatro organismos distintos —el regulador, el operador del sistema, la liquidación mensual y el mercado— cada uno con su calendario: uno va al día, otro con dos meses y medio de retraso, otro con tres o cuatro y cadencia irregular.
Todo eso se juntaba en dos libros Excel de entre 75 y 95 MB, con cachés de tablas dinámicas de más de un millón de registros, un modelo de clasificación propio escrito dentro de las hojas, vínculos externos frágiles y más de un centenar de gráficas mantenidas a mano. Funcionaba porque una persona sabía dónde estaba cada cosa. Y a partir de una edición, el organismo que publica el libro protegió la estructura de su fichero, así que el maestro tuvo que partirse en dos.
El problema no era el dato. Era que el proceso vivía en la cabeza de quien lo hacía.
La solución
Un paquete autocontenido con un lanzador de un clic que hace, en orden:
- Descarga el índice de publicaciones del regulador, resuelve el fichero del mes y lo baja.
- Lee el libro sin Excel. Abre el .xlsx como lo que es —un ZIP de XML— y lee en streaming las cachés de tablas dinámicas. El libro de 90 MB se procesa en segundos, sin openpyxl ni pandas para esta parte.
- Audita el inventario contra ediciones anteriores para detectar revisiones del dato ya publicado.
- Aplica el modelo de clasificación y calcula los agregados.
- Reconstruye el libro y lo cuadra contra el original: totales de control y una hoja de cotejo cifra a cifra. Las diferencias que quedan están documentadas como diferencias de criterio, no como errores.
- Actualiza las fuentes externas —energía mensual, liquidación, precio del mercado— con extractores propios cuadrados contra lo publicado.
- Regenera las gráficas en PNG y SVG con un estilo común y el sello de edición.
Produce además los entregables de la reunión mensual de dirección: un comparativo sectorial y un bloque de mercado eléctrico.
Decisión clave
No inventar datos: una celda vacía no se convierte en cero, nada se interpola, y cada anomalía va a un fichero de avisos en vez de desaparecer.
Enfoque
Cómo se abordó
-
Documentar antes de tocar
Lo primero fue un diccionario del libro: qué hay en cada hoja, de dónde viene cada columna, qué fórmulas del dominio se aplican, y un catálogo de todas las gráficas con su fuente. Sin eso no se sabe qué hay que reproducir.
-
Solo lectura sobre las fuentes de verdad
Los libros maestros nunca se sobrescriben. Todo lo que el pipeline produce va a carpetas propias. El proceso manual sigue funcionando exactamente igual que antes mientras la vía nueva se prueba a su lado.
-
Localizar por contenido, no por posición
Las cachés de datos cambian de sitio entre ediciones —la de horas era la sexta en una, la decimotercera en otra, la decimoquinta en una tercera—. El código las identifica por sus campos, busca las cabeceras por texto y lee el mes del propio libro, no del nombre del fichero. Así una edición nueva no rompe nada.
-
Reimplementar el modelo, y probarlo
El modelo de clasificación de instalaciones —el único componente que no se descarga— se reescribió en Python con un test propio, reproduciendo a propósito incluso las anomalías del original, para que el resultado cuadre con el histórico y no con lo que «debería» ser.
-
Sello de procedencia en todo
Cada fichero externo lleva la fecha en que se descargó. Cada gráfica lleva en el pie la edición de la que sale. Un dato sin fecha es un dato del que no se puede fiar nadie.
Estado y próximos pasos
En validación · septiembre de 2026
Pipeline construido, ejecutado y cuadrado contra el libro histórico. Los extractores de fuentes externas coinciden con los informes publicados.
El proceso vivo sigue siendo el manual, sobre Excel, y lo seguirá siendo durante el traspaso: el siguiente hito es ejecutar una edición completa en paralelo con la persona que hoy lo hace, y mantener ese paralelo al menos seis meses antes de cambiar la vía. Una reconstrucción que cuadra sobre el pasado no es todavía un proceso de producción.
Criterio
La decisión que guía el sistema
No inventar datos: una celda vacía no se convierte en cero, nada se interpola, y cada anomalía va a un fichero de avisos en vez de desaparecer.