— Datos abiertos · Metodología

Cómo elaboro cada dataset, qué fuentes uso y qué hago cuando me equivoco.

Esta página existe para que cualquiera pueda revisar, criticar o replicar lo que publico en /datos/. Cada dataset tiene su script reproducible, sus fuentes primarias enlazadas y su licencia explícita. Cuando me equivoco — y a veces me he equivocado — lo registro aquí abajo en el changelog público. No tengo redacción, ni patrocinadores, ni intermediarios entre el dato original y lo que aparece en la pieza. Eso es lo que intento documentar aquí.

Los 6 principios transversales

1 · Fuente primaria, siempre

Cuando publico una cifra, viene del organismo que la produce — no de un agregador, ni de un titular de prensa, ni de "según fuentes del sector". Si el dato es PVPC, viene de la API oficial de Red Eléctrica de España. Si es beneficiarios del bono social, del dataset oficial CNMC. Si es producción solar esperada por capital, del PVGIS de la Comisión Europea. Cuando una afirmación necesita una cifra que no encuentro en fuente primaria, la marco como "estimación" en el propio texto o la omito.

2 · Script reproducible

Cada dataset se construye mediante un script Node.js público en scripts/build-XXX.mjs del repositorio. Quien quiera puede clonar, ejecutar npm run build:XXX y obtener el mismo CSV que publico aquí. Los scripts dejan caché local reanudable cuando la fuente es lenta (PVGIS, REE histórico) para que la regeneración trimestral sea rápida.

3 · CSV abierto bajo CC-BY 4.0

Todos los datasets que genero se distribuyen bajo Creative Commons Atribución 4.0 Internacional. La excepción es el dataset del bono social, que hereda CC-BY-SA 4.0 de CNMC (la licencia de la fuente original obliga a mantenerla en cualquier redistribución). En todos los casos la atribución es obligatoria y aparece como cabecera o nota en el propio CSV y en la pieza editorial correspondiente. Reutilización libre incluso comercial; lo único que pido es que la atribución se mantenga.

4 · Validación zod + auditoría cruzada antes de publicar

Antes de cada deploy, el script npm run prebuild ejecuta 6 capas de validación con zod sobre los datos JSON (mojibake, longitud meta tags, presencia de fuentes, conteo CCAA canónicas, integridad calculadoras, trazabilidad). Además, desde mayo de 2026 cada pieza nueva pasa por una auditoría cruzada con un agente Explore que coteja cifras de prosa con el dataset base — esta auditoría me salvó de publicar dos cifras incorrectas en la pieza de recarga VE (ver changelog).

5 · Atribución obligatoria al reutilizar

La fórmula básica es: "Datos: [fuente original]. Procesado por guiaenergia.online, CC-BY 4.0". Para citas concretas:

  • PVPC histórico → "Datos: Red Eléctrica de España (apidatos.ree.es), procesado por guiaenergia.online, CC-BY 4.0"
  • Bono social → "Datos: CNMC dataset bono social, CC-BY-SA 4.0. Reformat: guiaenergia.online"
  • Payback solar → "Datos primarios: PVGIS v5.3 (Comisión Europea). Cálculo: guiaenergia.online sobre precios sector 2026 + MOVES III, CC-BY 4.0"

6 · Changelog público de errores

Si publico un dato mal, lo corrijo y lo registro abajo con la fecha exacta, la pieza afectada, qué decía mal y qué dice ahora. No edito a posteriori sin marca. Esto es lo más cercano que puedo ofrecer al "fact-check público" en un sitio sin equipo de redacción.

El flujo, paso a paso

Paso Qué hago Salida
1 · Identificar la fuente primaria Busco el organismo que produce el dato (REE / CNMC / IDAE / BOE / Eurostat / JRC) y confirmo que tiene API o publicación abierta. URL fuente + tipo de acceso
2 · Escribir el script de descarga Node ESM en scripts/. Cache reanudable cuando hace falta. Pausa cortés entre requests para no saturar. scripts/build-XXX.mjs
3 · Procesar y agregar Reformat de separadores, normalización de unidades, cálculos derivados explícitos en el script. src/data/XXX.ts + CSV
4 · Validar con zod npm run prebuild: mojibake, longitud SEO, integridad CCAA, fuentes obligatorias. Verde o rojo en CLI
5 · Redactar pieza editorial Import del módulo TS, prosa que comenta los datos, FAQ, schemas Article + Breadcrumb + FAQ. src/pages/datos/X.astro
6 · Auditoría cruzada Agente Explore lee la pieza, el dataset y las 4 piezas previas. Reporta contradicciones, fuentes flojas o cifras inventadas. Aplico fixes en bloque. Reporte [ERROR]/[WARN]/[OK]
7 · Deploy + IndexNow Build estático Astro + FTP a Banahosting. IndexNow específico de la URL nueva + sitemap re-submit a GSC. URL en producción

Las 5 piezas activas y sus pipelines

Para cada dataset publicado, esta tabla resume fuente primaria, script generador, CSV final, licencia y cadencia de actualización:

Pieza Fuente primaria Script Licencia Actualización
PVPC histórico 2019-2026 apidatos.ree.es (Red Eléctrica de España) scripts/build-pvpc-historico.mjs CC-BY 4.0 mensual (automático)
Bono social no cobrado CNMC + EsadeEcPol-Oxfam + IIT Comillas scripts/build-bono-social-data.mjs CC-BY-SA 4.0 (heredada CNMC) trimestral manual
Recarga VE × PVPC × CCAA derivado de PVPC histórico + AEAT + RACE/MITECO scripts/build-recarga-ve-data.mjs CC-BY 4.0 trimestral (recálculo régimen fiscal)
Payback solar PVGIS × 53 capitales PVGIS v5.3 (JRC Comisión Europea) + sector + MOVES + REE scripts/build-payback-solar-data.mjs CC-BY 4.0 trimestral (recálculo PVPC promedio)
BOE eléctrico + sanciones CNMC BOE + CNMC (sede electrónica + notas prensa) scripts/build-boe-cnmc-csv.mjs CC-BY 4.0 trimestral manual (monitorización CNMC + BOE)

Lo que NO hago

  • No publico datos sin fuente primaria identificable. Si me piden citar una cifra que circula en titulares pero no encuentro en fuente oficial, la dejo fuera o la marco como "estimación" con el origen exacto.
  • No tengo patrocinadores ni acuerdos comerciales con comercializadoras. Los enlaces afiliados que aparecen en otras secciones del sitio (calculadoras, comparativas) están marcados como "afiliado" en cumplimiento de la Ley 34/2002. Los datasets de /datos/ son completamente independientes y no enlazan a comercializadoras.
  • No edito a posteriori sin dejar rastro. Cuando corrijo un error, lo registro en el changelog público abajo.
  • No genero datos sintéticos a partir de "lo que el mercado dice". Si un dato no existe públicamente, simplemente no lo calculo. Por eso la serie PVPC arranca en 2021 (es cuando REE empezó a publicarlo en API), no en 2019, aunque mi serie de spot sí cubre 2019-2026.

Changelog público de errores corregidos

Cada vez que detecto un dato mal publicado, lo corrijo en la pieza y lo registro aquí con fecha de detección, descripción y origen de la corrección. La idea es que un lector que vea una cifra que le sorprenda pueda comprobar si ya estaba en mi radar.

Fecha Pieza Qué decía mal Cómo se corrigió Detección
2026-05-16 /datos/recarga-coche-electrico-pvpc-2026/ Cifras 2025 incorrectas (3,93 vs 2,55 €/100 km) y ahorro 2022 exagerado (65 %). Corregido a 4,09 vs 2,26 €/100 km (datos reales del dataset) y 55 % peninsular / 60 % Canarias. auditoría cruzada Explore agent pre-deploy

Por qué quité 76 páginas en mayo de 2026

Hasta abril de 2026 el sitio tenía 76 páginas de tipo /[silo]/[ccaa]/ (precio de la luz por comunidad autónoma, autoconsumo por comunidad autónoma, etc.) generadas a partir de una plantilla compartida. Cada instancia tenía algunos datos específicos (radiación solar local, importes de ayudas autonómicas), pero la mayoría del HTML era idéntico entre comunidades — entre el 90 % y el 99 % de similitud según mi propio análisis.

En mayo de 2026 decidí desindexarlas y redirigirlas mediante 301 a las cuatro páginas territoriales consolidadas: el /tarifas/, /autoconsumo/, /coche-electrico/ y /factura-luz/. La razón es honesta: aquella estructura cumplía técnicamente con SEO programático pero no con el estándar editorial que quiero mantener aquí. Un revisor humano leyendo dos comunidades consecutivas debería ver análisis distintos, no plantillas rellenas. Si no puedo hacer eso bien para 17 + 2 territorios, prefiero no hacerlo.

Esta decisión es la que abrió espacio para la sección de /datos/ actual: el tiempo de redacción que antes iba a 76 plantillas se ha reasignado a 5 datasets propios con investigación real. El contador del sitio bajó de 270 URLs a 208 — pero la mediana de palabras y de tiempo de redacción por URL subió drásticamente. Lo registro aquí porque cualquiera que vea el git log o el changelog GSC encontrará rastro y merece la explicación: no oculto el cambio, lo asumo como aprendizaje.

Cómo reportarme un error

Si encuentras una cifra que crees que está mal — incluso si solo tienes una sospecha — escríbeme. Es la forma más útil de mejorar el sitio.

Si la corrección procede, aparecerá en el changelog público mencionando tu reporte (con tu permiso) en un plazo máximo de 7 días.

Editorial: Cristian Corrales · Calafell · 16 de mayo de 2026. Volver al índice de datos abiertos.