Saltar al contenido
METODOLOGÍA

Cómo se construye este dataset

buscalicitaciones.com agrega y normaliza datos de contratación pública española desde fuentes oficiales. 25.305.439 contratos de 23 fuentes distintas, normalizados y servidos en un buscador y un explorador únicos.

Esta página explica qué cubre cada fuente, qué no cubre, qué transformaciones se aplican y qué calidad tiene cada campo. Cuando una funcionalidad está pendiente o cuando un análisis se ha hecho fuera de la web (sin reflejarse aún en el explorador), se indica explícitamente. Los datos y los programas que los descargan (scrapers) son abiertos, en GitHub; el código de esta web no es público por ahora.

1. Fuentes de datos

Son 23 fuentes de contratación (la plataforma estatal, la europea, las autonómicas y las de ayuntamientos) más BORME (Registro Mercantil) usado para enriquecer. Pulsa cada una para ver detalle, periodo, qué cubre y qué no.

ESTATAL PLACSP 5.950.098 reg. · 1992–2026

Plataforma de Contratación del Sector Público. Sistema estatal regulado por la LCSP 9/2017. Cubre Administración General del Estado, organismos autónomos, comunidades adheridas y entidades locales adheridas.

Portal oficial
contrataciondelsectorpublico.gob.es
Formato
ATOM/XML
En la web
3.561.553 contratos menores · 1.555.984 resultados de licitaciones · 683.287 de las plataformas autonómicas agregadas · 149.274 licitaciones sin resultado publicado. Los encargos a medios propios y las consultas preliminares no son contratos y no están en el buscador.
Periodo
Desde 2012, cuando empieza la sindicación de la plataforma; unas pocas filas traen fechas de adjudicación anteriores, que se sirven tal cual (actualización semanal)
Campos clave
48 columnas: identificación, órgano, importes, adjudicatario, NIF, CPV, NUTS, fechas, es_pyme
→ Ver las empresas con contratos de la PLACSP en el explorador
EUROPEA TED · Diario Oficial UE 695.858 reg. · 1997–2026

Tenders Electronic Daily. Diario oficial de contratación de la UE. Solo recoge contratos por encima de los umbrales europeos (contratos sujetos a regulación armonizada, SARA): en 2026-2027, obras desde 5.404.000 € y suministros y servicios desde 140.000 € en la Administración central y 216.000 € en el resto (cambian cada dos años; tabla en la sección 3). Se incluye porque permite comprobar que los contratos SARA españoles se publican donde deben.

Portal oficial
ted.europa.eu
API v3
ted.europa.eu/api/docs/ (avisos en formato eForms, obligatorio desde el 25 de octubre de 2023)
CSV masivo
data.europa.eu (2010-2019)
En la web
695.858 reg. · 1997–2026: el CSV masivo hasta 2019 y la API desde 2020
Campos clave
57 columnas: ted_notice_id, comprador, contrato, importes, adjudicatario (win_*), competencia (n_offers), duración
→ Ver las empresas con contratos del TED en el explorador
ENRIQUECIMIENTO BORME · Registro Mercantil 9.254.668 actos · 17.101.151 cargos

BORME no es una fuente de licitaciones. No contiene contratos públicos. Son datos del Boletín Oficial del Registro Mercantil parseados desde ~126.000 PDFs originales. Se usan para cruzar con las licitaciones y detectar anomalías.

Portal oficial
boe.es/diario_borme
Empresas
9.254.668 actos de 3.334.397 empresas (constituciones, disoluciones, fusiones, ampliaciones de capital…)
Cargos
17.101.151 (nombramientos, ceses, revocaciones)
Privacidad
Los nombres de las personas con cargos se seudonimizan con SHA-256 y no se publican. Los PDF originales no se redistribuyen; solo el programa para descargarlos.
Actualización
Sin actualización periódica por ahora: la web usa la versión anterior de estos datos.

Pipeline en 4 pasos

  1. Scraper — descarga ~126K PDFs desde boe.es (~6 GB). Comando: borme_scraper.py --start 2009-01-01
  2. Parser — extrae actos mercantiles (constituciones, cargos, etc.) de los PDFs. Comando: borme_batch_parser.py --workers 8. Genera borme_empresas.parquet + borme_cargos.parquet (PRIVADOS, contienen nombres reales).
  3. Seudonimización — sustituye el nombre de cada persona por un código SHA-256. Comando: borme_anonymize.py. Resultado: borme_empresas_pub.parquet + borme_cargos_pub.parquet.
  4. Cruce — cruza con la PLACSP para calcular las 5 señales de riesgo. Comando: borme_placsp_match.py.

Detalle de las 5 señales y resultados: ver sección 3. Cruces.

Plataformas autonómicas y locales

CCAA Catalunya 7.825.604 reg. · 1997–2026

Datos del portal Transparència Catalunya (Socrata API): Generalitat y entes locales. En la web, solo contratación pública.

Registre públic de contractes
Una fila por inscripción (adjudicación, menor, prórroga, modificación, liquidación). Sin NIF del adjudicatario en origen. Las modificaciones y liquidaciones no suman importe (repiten el del contrato).
PSCP
Publicaciones de la Plataforma de Serveis de Contractació Pública, por expediente o lote, con NIF del adjudicatario.
Generalitat
Contratos menores (solo con el año) y adjudicaciones.
COVID
Contratos de emergencia de 2020.
Histórico
Cada descarga se acumula (nada se pierde) y las filas que el portal ya no sirve se conservan del release v2026.02.
→ Ver Cataluña (PSCP) en el explorador

Cataluña: tres versiones complementarias del mismo dato

Por la Ley de Contratos del Sector Público (artículo 347.3), los órganos de contratación catalanes deben publicar su actividad en la Plataforma de Serveis de Contractació Pública (PSCP) de la Generalitat. Esta plataforma se sincroniza bidireccionalmente con la PLACSP estatal, por lo que muchos contratos aparecen en ambos sistemas.

En este sitio dispones de tres ángulos de los datos catalanes:

  • Cataluña (Registre): Registre Públic de Contractes. Sin NIF de adjudicatario en origen: está en el buscador, pero no se puede agrupar por empresa en el explorador.
  • Cataluña (PSCP): Plataforma de Serveis de Contractació Pública, con NIF del adjudicatario. También en el explorador.
  • PLACSP en Cataluña: la versión que la PSCP sincroniza con la plataforma estatal.
  • Las cifras de cada una, en vivo, en la tabla de abajo.

Comparar cifras entre estas tres fuentes permite auditar la sincronización oficial entre administraciones. Discrepancias significativas pueden indicar problemas de cumplimiento del artículo 347.3 o lag temporal en la sincronización.

Comparativa cruzada en cifras

Datos en vivo. La duplicación intencional permite auditar la sincronización oficial entre administraciones (Generalitat ↔ Estado) prevista por LCSP art. 347.3.

Métrica Registre PSCP PLACSP (ccaa=CT)
Contratos totales 4.456.505 2.065.860 401.279
Con NIF de adjudicatario 0 (0.0%) 1.680.798 (81.4%) 347.602 (86.6%)
Empresas únicas — 79.532 45.582
Importe total (sin importes de más de 1.000 M€) 77,47 mil M € 78,03 mil M € 86,47 mil M €
Cobertura temporal 1998–2026 1997–2026 2011–2026
Los 5 adjudicatarios con más contratos en cada fuente
Registre

Sin NIF en origen: no se puede agrupar por empresa.

PSCP
  1. dD BioLab, SLU 34.736 contratos
  2. VWR International Eurolab, S.L. 30.449 contratos
  3. SUDELAB SL 28.243 contratos
  4. Atlántida Tours Viatges, SA 15.425 contratos
  5. Vwr iNTERNATIONAL Eurolab, SLU 13.580 contratos
PLACSP (ccaa=CT)
  1. servicios microinformática, sa 1.361 contratos
  2. Moncobra, SA 1.052 contratos
  3. medtronic iberica, sa 957 contratos
  4. Aparells ortopedics curto sl 922 contratos
  5. o ENDESA ENERGIA SAU 909 contratos

Solapamiento PSCP ↔ PLACSP: 160.287 contratos coinciden en NIF, año e importe entre las dos plataformas (coincidencia aproximada: da una idea de la sincronización real).

CCAA Valencia 276.048 reg. · 2001–2026

Datos de Dades Obertes GVA (CKAN API). En la web, solo contratación: el Registro Oficial de Contratos de la Generalitat (REGCON) y los contratos de la DANA. Los contratos menores de la Universitat de València, la UPV, la UA, la UMH, la Diputación de Alicante y el Ajuntament de València van en su propia fuente (C. Valenciana, menores).

→ Ver la Comunitat Valenciana en el explorador
CCAA Madrid · Comunidad 2.827.082 reg. · 2003–2026

Contratación pública de la Comunidad de Madrid: consejerías, hospitales del SERMAS (Gregorio Marañón, La Paz, 12 de Octubre, Ramón y Cajal…), Canal de Isabel II y sus filiales, fundaciones IMDEA y de investigación biomédica y consorcios urbanísticos. No incluye el Ayuntamiento de Madrid (es una fuente aparte).

En la web
2.827.082 contratos, de ellos 2.769.036 menores. Los encargos a medios propios, los anuncios de información previa y las consultas preliminares no son contratos y no están en el buscador.
IVA
La fuente publica los importes con IVA.
Reto técnico
Exportación CSV del buscador del portal, por entidad y por ventanas de fecha, cada una contrastada con el recuento que da el propio portal.
→ Ver la Comunidad de Madrid en el explorador
CCAA Galicia 1.849.683 reg. · 2007–2026

Datos de contratosdegalicia.gal (Xunta + 418 organismos dependientes descubiertos automáticamente).

Contratos menores
1.797.550
Licitaciones
52.133
Pipeline en 2 fases
Base (12 columnas: id, objeto, importe, estado, fechas, NIF, adjudicatario, duración) → Detail HTML (50+ columnas adicionales extraídas de cada ficha: tipo de procedimiento, presupuesto base, valor estimado, lotes, CPV, NUTS, documentos, adjudicaciones).
Caché incremental
SQLite que guarda HTML crudo de cada ficha. Permite reanudar (--resume) sin perder progreso.
Reto técnico
El portal sirve los listados por páginas, por separado para licitaciones y para menores, y no admite rangos de fechas largos: se recorre por ventanas de fecha y se quitan los repetidos.
→ Ver Galicia en el explorador
CCAA Andalucía 896.054 reg. · 2000–2026

Plataforma propia de la Junta de Andalucía. Incluye el Servicio Andaluz de Salud (el organismo con más contratos), diputaciones, universidades, consejerías y agencias.

Contratos menores
808.456
Resto de contratos
87.598
Reto técnico
El buscador del portal devuelve como mucho 10.000 resultados por consulta: las consultas se subdividen por varios criterios y órdenes hasta que cada trozo cabe (el caso del SAS).
→ Ver Andalucía en el explorador
CCAA País Vasco · Euskadi 734.973 reg. · 1991–2026

KontratazioA, la plataforma de contratación pública de Euskadi: los contratos de su Registro de Contratos (API y XLSX por poder adjudicador) y los formalizados de Vitoria-Gasteiz de 2013-2015. NIF del adjudicatario salvo en las personas físicas, que la plataforma publica enmascarado. Portal: KontratazioA.

→ Ver Euskadi en el explorador
CCAA Asturias 375.380 reg. · 2017–2025

Contratación centralizada del Principado de Asturias.

Cobertura
375.380 reg. · 2017–2025 (el portal no publica un histórico anterior)
Datos extra
Cláusulas sociales y medioambientales, I+D y fondos europeos, entre otros campos
IVA
La fuente publica los importes con IVA.
→ Ver Asturias en el explorador
LOCAL Madrid · Ayuntamiento 130.130 reg. · 1997–2026

Actividad contractual del Ayuntamiento de Madrid. Distinta de la Comunidad. Ficheros CSV con 11 estructuras distintas, unificados en un solo conjunto normalizado.

Categorías: contratos menores, contratos formalizados, basados en acuerdo marco o sistema dinámico, derivados de homologación, prórrogas, modificados, cesiones, resoluciones y penalidades. Las prórrogas, los modificados, las cesiones, las resoluciones y las penalidades van junto a los contratos: el buscador todavía no los separa por tipo.

En la web
130.130 reg. · 1997–2026
Reto técnico
Las 11 estructuras (A, B, C, D, E, F, AC_OLD, AC_OLD_MOD, AC_HOMOLOGACION, AC_NEW y AC_2025) se reconocen por sus cabeceras y se unifican. De 2015 a 2020, estructuras antiguas; desde 2021, las nuevas.
Aragón

Gobierno de Aragón (registro de contratos mayores y menores, contratos del Gobierno) y Ayuntamiento de Zaragoza (OCDS). El NIF del adjudicatario solo viene en parte de las tablas.

Registros
142.624
Periodo
2009–2025
Con NIF del adjudicatario
23.253
Castilla-La Mancha

Junta de Comunidades de Castilla-La Mancha: contratos menores de la Junta, de la Universidad de Castilla-La Mancha y pagos por caja pagadora.

Registros
426.419
Periodo
2016–2026
Con NIF del adjudicatario
410.696
Castilla y León

Junta de Castilla y León (datos abiertos): contratos ordinarios, menores, basados en acuerdo marco y de emergencia, también de la Gerencia Regional de Salud (Sacyl).

Registros
169.981
Periodo
2017–2026
Con NIF del adjudicatario
169.883
Extremadura

Junta de Extremadura: registro de contratos mayores y menores.

Registros
213.013
Periodo
2001–2026
Con NIF del adjudicatario
213.006
La Rioja

Gobierno de La Rioja: contratos menores.

Registros
350.967
Periodo
2018–2026
Con NIF del adjudicatario
322.653
Región de Murcia

Región de Murcia: contratos inscritos en el registro de la CARM y contratos menores de la CARM y del Servicio Murciano de Salud.

Registros
1.002.496
Periodo
2014–2025
Con NIF del adjudicatario
947.161
C. Valenciana (menores)

Contratos menores de órganos valencianos que no están en la PLACSP ni en el REGCON: Ayuntamiento de València, Diputación de Alicante y universidades (UA, UMH, UPV y UV).

Registros
1.317.318
Periodo
2008–2026
Con NIF del adjudicatario
492.203
Ayuntamientos (menores)

Contratos menores de ayuntamientos con datos abiertos propios: Gijón, Vigo, Santa Cruz de Tenerife, Leganés, Córdoba, Málaga y Fuenlabrada.

Registros
121.711
Periodo
2015–2026
Con NIF del adjudicatario
78.421
En preparación: contratos menores de más comunidades autónomas y ayuntamientos. Las comunidades sin fuente propia integrada se cubren a través de la PLACSP (adhesión).

2. Cobertura y huecos

25.305.439 contratos. Cobertura por fuente, periodo (de 1990 a hoy: los años imposibles de algunas filas no cuentan) y volumen, en vivo:

FuenteRegistrosPeriodoCon NIF adj.Con importe
Plataforma estatal (PLACSP)5.950.098 1992–2026 93 % 94 %
DOUE (TED)695.858 1997–2026 48 % 86 %
Andalucía896.054 2000–2026 98 % 99 %
Aragón142.624 2009–2025 16 % 100 %
Asturias375.380 2017–2025 100 % 100 %
Castilla-La Mancha426.419 2016–2026 96 % 100 %
Castilla y León169.981 2017–2026 100 % 99 %
Catalunya (Registre)4.456.505 1998–2026 0 % 63 %
Catalunya (PSCP)2.065.860 1997–2026 81 % 96 %
Catalunya (Generalitat)940.452 2020–2024 0 % 100 %
Catalunya (menores)171.295 sin fecha 0 % 83 %
Barcelona (menores)185.925 2012–2026 78 % 100 %
Catalunya (emergencia COVID)5.567 2019–2020 0 % 100 %
País Vasco734.973 1991–2026 85 % 99 %
Extremadura213.013 2001–2026 100 % 100 %
Galicia1.849.683 2007–2026 97 % 97 %
La Rioja350.967 2018–2026 92 % 100 %
Comunidad de Madrid2.827.082 2003–2026 100 % 100 %
Ayuntamiento de Madrid130.130 1997–2026 100 % 93 %
Región de Murcia1.002.496 2014–2025 94 % 100 %
C. Valenciana (REGCON)276.048 2001–2026 89 % 100 %
C. Valenciana (menores)1.317.318 2008–2026 37 % 100 %
Ayuntamientos (menores)121.711 2015–2026 64 % 99 %
BORME (enriquecimiento)9.254.668 actos + 17.101.151 cargosdesde 2009Cargos seudonimizados
Calidad (indicadores)20 indicadores por contrato de la PLACSP2012-2026Conjunto de datos publicado

Huecos conocidos

  • Cobertura territorial parcial: las comunidades y ayuntamientos con fuente propia integrada son los de la tabla; el resto se cubre vía PLACSP por adhesión. El periodo de cada fuente es el que publica.
  • Contratos menores PLACSP pre-2018: Solo desde 2018 (cuando entró en vigor la obligación de publicar).
  • Ayuntamientos no adheridos a PLACSP: Sus contratos no aparecen salvo que tengan plataforma autonómica que los recoja.

3. Cruces entre fuentes

Lo que hace el sitio actualmente

Todavía no se vinculan los contratos entre fuentes. Cada fuente se sirve y se agrega por su lado, sin quitar duplicados dentro de ella. Pero un mismo contrato publicado en dos plataformas cuenta en las dos: p. ej. en una autonómica y en la PLACSP, que agrega las plataformas de Madrid, Andalucía, Cataluña, Euskadi y otras, o en el TED y en la PLACSP.

Medido el 30-sep-2026 cruzando por expediente y NIF del adjudicatario, solo entre la agregación de la PLACSP y la fuente autonómica: coinciden al menos 46.127 contratos de Madrid, 52.227 de Andalucía y 201.235 de Cataluña (PSCP), que suman unos 115.000 M€. La suma de todas las fuentes no es un total sin duplicados: para un total fiable, elige una sola fuente por territorio. La vinculación de contratos entre fuentes está en preparación.

No se cruzan en vivo los contratos con el TED. Con el BORME solo se cruza el perfil mercantil de las fichas de empresa, por el nombre (lo avisa la propia ficha). Los datos de cada fuente se sirven normalizados, con las marcas de importe de la sección 6.

Resto de cruces: análisis publicados, todavía no integrados en la web. Las secciones siguientes describen procesos que se ejecutan fuera de la web y cuyos conjuntos de datos se publican en el repositorio de GitHub. Sus cifras son las de ese análisis y no se recalculan con cada actualización de la web. No se reflejan todavía en el explorador.

PLACSP ↔ TED — publicación de los contratos SARA análisis fuera de la web

Los contratos por encima de los umbrales europeos (SARA) deben publicarse obligatoriamente en el TED. Un proceso cruza ambas fuentes con 5 criterios, uno tras otro, para encontrar contratos SARA sin anuncio en el TED. Los resultados se publican como conjunto de datos descargable (crossval_sara_v2.parquet), pero la web no los muestra todavía.

442.835
Contratos SARA en la PLACSP
177.892
Encontrados en el TED · 40,2 %
202.383
Sin anuncio encontrado (confianza alta)

Reglas SARA (umbrales por bienio)

Los umbrales de publicación obligatoria no son fijos — varían por bienio, tipo de contrato y tipo de comprador (AGE / resto / sectores especiales).

BienioObrasServicios (AGE)Servicios (resto)Sectores especiales
2016-20175.225.000 €135.000 €209.000 €418.000 €
2018-20195.548.000 €144.000 €221.000 €443.000 €
2020-20215.350.000 €139.000 €214.000 €428.000 €
2022-20235.382.000 €140.000 €215.000 €431.000 €
2024-20255.538.000 €143.000 €221.000 €443.000 €
2026-20275.404.000 €140.000 €216.000 €432.000 €

5 criterios de cruce, uno tras otro

Cada criterio actúa solo sobre los contratos que los anteriores no encontraron; el más ambiguo se deja para el final:

#CriterioCoincidencias% del total
E1NIF adjudicatario + importe ±10% + año ±143.0639,7%
E2Nº expediente + importe ±10%7.8911,8%
E3NIF del órgano contratante + importe77.81617,6%
E4Lotes agrupados (suma importes mismo órgano+año)31.3657,1%
E5Nombre órgano normalizado + importe17.7574,0%

Lo más relevante del análisis: el criterio E3 (NIF del órgano contratante) es el que más coincidencias encuentra, el 17,6 % del total: más que cualquiera de los otros por separado, aunque menos que los otros cuatro juntos (22,6 %). Sin él se perdería casi una de cada cinco coincidencias.

Validación por año

La tasa de validación ha mejorado significativamente desde 2018, alcanzando un máximo del 64,6% en 2024:

AñoContratos SARAEncontrados en el TED% encontrado
201610.9482.64324,1%
201717.3606.53237,6%
201832.60514.72045,1%
201942.95114.18233,0%
202040.6939.21422,6%
202147.9717.47215,6%
202256.64922.25039,3%
202360.51831.82952,6%
202459.11438.21664,6%
202548.27626.92055,8%

Los años 2020-2021 muestran caídas significativas debido al efecto COVID (cambios en patrones de contratación) y a la baja cobertura del CSV masivo del TED en ese periodo. El cambio de fuente de los datos del TED en 2020 (del CSV masivo a la API) también introdujo diferencias.

Análisis sectorial: Salud

El sector salud representa el 17% de contratos SARA con una tasa de validación del 42,3 %. El 38 % de lo no encontrado se explica por los lotes: un único anuncio TED corresponde a N adjudicaciones individuales en PLACSP. La cobertura real ajustada por lotes es ~54%.

Órganos con más contratos SARA sin anuncio encontrado en el TED (cruce aproximado: no quiere decir que no se publicaran):

ÓrganoSin anuncio encontrado
Servicio Andaluz de Salud (SAS)4.833
FREMAP2.410
IB-Salut (Baleares)1.957
Institut Català de la Salut (ICS)1.316
SERGAS (Galicia)1.291

PLACSP × BORME — señales de riesgo análisis fuera de la web

Otro proceso cruza el BORME (Registro Mercantil) con la PLACSP para calcular 5 señales. Son indicios que hay que comprobar, no irregularidades. Los resultados se publican como conjunto de datos y todavía no se aplican en el explorador.

1
Empresa recién creada — Constitución < 6 meses antes de la adjudicación
2
Capital muy bajo — Capital social de menos de 10.000 € con contratos de más de 100.000 €
3
Administradores compartidos — Misma persona administra empresas competidoras
4
Disolución post-adjudicación — Disuelta < 12 meses después de cobrar
5
Adjudicación en concurso — Empresa en situación concursal recibiendo contratos

Cobertura de NIF por fuente

Resumen del % de contratos con NIF de adjudicatario poblado en cada fuente. Las fuentes sin NIF en origen están en el buscador, pero no se pueden agrupar por empresa en el explorador.

Fuente Contratos Con NIF % NIF En el explorador
Plataforma estatal (PLACSP) 5.950.098 5.522.839 92.8% ✓ Sí
Catalunya (Registre) 4.456.505 0 0.0% ✗ No (sin NIF en origen)
Comunidad de Madrid 2.827.082 2.821.429 99.8% ✓ Sí
Catalunya (PSCP) 2.065.860 1.680.798 81.4% ✓ Sí
Galicia 1.849.683 1.797.550 97.2% ✓ Sí
C. Valenciana (menores) 1.317.318 492.203 37.4% ✓ Sí
Región de Murcia 1.002.496 947.161 94.5% ✓ Sí
Catalunya (Generalitat) 940.452 0 0.0% ✗ No (sin NIF en origen)
Andalucía 896.054 879.841 98.2% ✓ Sí
País Vasco 734.973 621.705 84.6% ✓ Sí
DOUE (TED) 695.858 331.998 47.7% ✓ Sí
Castilla-La Mancha 426.419 410.696 96.3% ✓ Sí
Asturias 375.380 375.317 100.0% ✓ Sí
La Rioja 350.967 322.653 91.9% ✓ Sí
C. Valenciana (REGCON) 276.048 245.737 89.0% ✓ Sí
Extremadura 213.013 213.006 100.0% ✓ Sí
Barcelona (menores) 185.925 144.099 77.5% ✓ Sí
Catalunya (menores) 171.295 0 0.0% ✗ No (sin NIF en origen)
Castilla y León 169.981 169.883 99.9% ✓ Sí
Aragón 142.624 23.253 16.3% ✓ Sí
Ayuntamiento de Madrid 130.130 130.070 100.0% ✓ Sí
Ayuntamientos (menores) 121.711 78.421 64.4% ✓ Sí
Catalunya (emergencia COVID) 5.567 0 0.0% ✗ No (sin NIF en origen)

4. Calidad de los datos conjunto de datos descargable

Esta sección describe un conjunto de datos publicado en GitHub, no una función del explorador. La web sirve los datos sin puntuación ni filtros de calidad; sus cifras son las de ese análisis y no se recalculan con cada actualización de la web. Aparte, el repositorio publica un análisis de calidad sobre PLACSP que aplica 14 indicadores (subset del marco Hay Derecho descrito en la sección 5). Si en el futuro se integra en el explorador, lo indicaremos explícitamente.

El dataset calidad_licitaciones_resultado.parquet (977 MB, 8,7M filas × 70 cols) aplica 14 indicadores sobre el subset Calidad del dato del marco Hay Derecho. Los IDs (INT-VAL-XX, INT-CONS-XX, INT-FIA-XX) son los mismos que aparecen en la sección 5.

Resultados agregados sobre los 8,69M contratos PLACSP: score medio 88,3 / 100, mediana 89,5 / 100. Cada indicador es una columna booleana en el Parquet y existe un score_calidad agregado por contrato.

Marco metodológico: sistema de Hay Derecho (ver sección 5) con la metodología PPDS (Public Procurement Data Standard) como referencia técnica, y contribuciones de Jaime Gómez-Obregón (umbrales LCSP) y OIRESCON (benchmarks PBL).
IndicadorDescripción% fallo
INT-VAL-01Importe de licitación en formato válido22,6%
INT-VAL-02Importe de adjudicación en formato válido31,8%
INT-VAL-07Fecha de adjudicación válida39,2%
INT-VAL-09Código CPV válido23,3%
INT-VAL-12NIF/CIF adjudicatario válido (checksum)33,4%
INT-VAL-14Contrato menor coherente con cuantía (LCSP art. 118)1,3%
INT-CONS-01Si adjudicado, nº ofertas ≥ 11,1%
INT-CONS-08Importe adjudicación ≤ licitación (+5%)0,3%
INT-CONS-18Adjudicatario existe en BORME51,3%
INT-CONS-20Contrato SARA publicado en TED77,5%
INT-FIA-01Nº ofertas en rango razonable (P99 por CPV)0,6%
INT-FIA-04Plazo presentación ofertas razonable (0-365 días)21,3%
INT-FIA-08PBL no atípico (≤ 50 M€)0,4%
INT-FIA-09PA plausible por segmento CPV (P1-P99)0,8%

Los 6 indicadores restantes (formato numérico, no negativos, NUTS, trazabilidad) dan 0,0% de fallo: checks de sanidad sin problemas detectados.

Menores vs regulares

Los contratos menores (3,3M) tienen perfil de calidad muy distinto a los regulares (5,4M):

IndicadorMenoresRegularesDiferencia
NIF adjudicatario inválido2,7%52,1%−49,5pp
Sin CPV60,3%0,7%+59,6pp
Sin fecha adjudicación0,8%62,6%−61,9pp
Sin importe licitación53,1%4,1%+49,0pp
Score medio90,886,7+4,1

5. Sistema de indicadores Hay Derecho marco de referencia

Hay Derecho publica un Sistema de Indicadores de Transparencia en Contratación Pública que evalúa el cumplimiento legal y la calidad de los datos publicados por las administraciones. Es el marco más completo y exigente que existe en España para medir transparencia en contratación pública. Define 110 indicadores agrupados en tres criterios con pesos ponderados:

50%
Criterio Legal · 48 indicadores
30%
Calidad del dato · 48 indicadores
20%
Buenas prácticas · 14 indicadores

Score total = 0,5 · Legal + 0,3 · Calidad + 0,2 · BPP. Cada indicador tiene una salida binaria por contrato (presente/ausente, válido/inválido) y una salida agregada por organismo (% de contratos que cumplen).

Estado actual en buscalicitaciones: la web publica los datos tal y como vienen, normalizados, desde las plataformas oficiales: no aplica score de calidad ni evalúa estos indicadores en tiempo real. Esta sección identifica el marco Hay Derecho como referencia para futuras versiones del sitio.
Lo que sí existe hoy: el repositorio publica un conjunto de datos descargable (calidad_licitaciones_resultado.parquet, 977 MB) que calcula 14 indicadores sobre los 48 de Calidad del dato aplicado a PLACSP. Ver sección 4 para los resultados de ese análisis y la sección 10 para descargarlo.

5.1 Criterio Legal — 48 indicadores (peso 50%)

Indicadores derivados de la LCSP y la LTAIBG. Cada incumplimiento conlleva un desmérito del 10% en la puntuación final del organismo. La salida es siempre Presente / Ausente por contrato.

LEGAL Ver los 48 indicadores legales INT-COM-01 a INT-COM-48
IDIndicadorDescripción
INT-COM-01 Objeto del contrato publicado en el perfil del contratante Comprueba que se publique la descripción del objeto contractual en el perfil del contratante
INT-COM-02 Duración / plazo de ejecución publicado en el perfil del contratante Comprueba que se publique duración o fechas que permitan conocer el plazo de ejecución de un contrato en el perfil del contratante
INT-COM-03 Importe de licitación (PBL/valor estimado) publicado en el perfil del contratante Comprueba que se publique el Presupuesto Base de Licitación o valor estimado (campo numérico) en el perfil del contratante
INT-COM-04 Importe de adjudicación publicado, incluido el Impuesto sobre Valor Añadido, en el perfil del contratante Comprueba que se publique el importe final adjudicado (cantidad numérica) en el perfil del contratante
INT-COM-05 Procedimiento de contratación declarado en el anuncio de licitación Comprueba que se indique el tipo de procedimiento (abierto, negociado, menor…)
INT-COM-06 Instrumentos de publicidad / canal de difusión indicados en el perfil del contratante Comprueba que se indique dónde se ha publicado (perfil de contratante / PLCSP / TED / BOE)
INT-COM-07 Número e identidad de licitadores públicos en el perfil del contratante Comprueba que se publica el número y la identidad de ofertas recibidas o licitadores
INT-COM-08 Identidad del adjudicatario publicada Comprueba que se publica la identidad del adjudicatario (nombre + NIF cuando proceda)
INT-COM-09 Desistimientos y renuncias publicados en el perfil del contratante (si han ocurrido) Comprueba que, si hay desistimientos/renuncias en el procedimiento, aparecen documentados
INT-COM-10 Declaración de desierto presente en el perfil del contratante (si ha ocurrido) Comprueba que, si un contrato ha sido declarado desierto, esta información esté publicada y accesible en el perfil del contratante
INT-COM-11 Interposición de recursos presente en el perfil del contratante (cuando corresponda) Comprueba que, si se han interpuesto recursos, estén publicados en el perfil del contratante
INT-COM-12 Suspensión de contratos con motivo de la interposición de recursos presente en el perfil del contratante (cuando corresponda) Comprueba que, si un contrato se ha suspendido por recursos, esa información esté publicada y sea accesible
INT-COM-13 Procedimientos anulados anunciados en el perfil del contratante (cuando corresponda) Comprueba que, si un procedimiento ha sido anulado, la información esté publicada y sea accesible en el perfil del contratante
INT-COM-14 Composición de las mesas de contratación disponible en el perfil del contratante Comprueba que la composición de la mesa de contratación esté publicada y permita identificar a los miembros que han intervenido
INT-COM-15 Cargos específicos de los miembros de las mesas de contratación disponibles en el perfil del contratante El perfil de contratante publica la composición de la mesa de contratación indicando el cargo específico de cada miembro. No se permiten alusiones genéricas o indeterminadas ni descripciones que se refieran únicamente a la Administración, organismo o entidad a la que representen o en la que prestan servicio.
INT-COM-16 Designación de los miembros del comité de expertos o responsables de la aplicación de criterios de adjudicación disponible en el perfil del contratante (en los procedimientos en los que sean necesarios) Comprueba que, en los procedimientos en los que se requiere comité de expertos o responsables de la aplicación de criterios de adjudicación, la designación de los miembros esté publicada y sea accesible en el perfil del contratante
INT-COM-17 Formalización de los encargos a medios propios cuyo importe fuera mayor a 50.000 euros, IVA excluido, en el perfil del contratante Comprueba que, si se formaliza un encargo a medios propios con importe superior a 50.000 € (IVA excluido), la formalización esté publicada y accesible en el perfil del contratante
INT-COM-18 Publicación en formato abierto y reutilizable de la información contenida en los perfiles de contratante Comprueba que los datos cuya publicación en el perfil del contratante está regida por el Art. 63 de la LCSP están disponibles en formatos abiertos o exportables (no sólo PDF)
INT-COM-19 Accesibilidad temporal mínima (≥ 5 años) Comprueba que la publicación declare/plausiblemente cumple la accesibilidad por al menos 5 años
INT-COM-20 Memoria justificativa del contrato publicada en el perfil del contratante Comprueba que la memoria justificativa del contrato esté publicada y accesible en el perfil del contratante
INT-COM-21 Informe de insuficiencia de medios publicado en el perfil del contratante (en el caso de contratos de servicios) Comprueba que, si el contrato es de servicios, se publique el informe de insuficiencia de medios
INT-COM-22 Justificación del procedimiento utilizado para la adjudicación publicada en el perfil del contratante (cuando se utilice un procedimiento distinto del abierto o del restringido) Comprueba que, si se utiliza un procedimiento distinto de abierto o restringido, se publique la justificación
INT-COM-23 Pliegos administrativos y técnicos o documentos equivalentes que rijan el contrato publicados en el perfil del contratante Comprueba que se publiquen pliegos y documentos esenciales
INT-COM-24 Documento de aprobación del expediente publicado en el perfil del contratante (cuando sea necesario) Comprueba que, cuando sea necesario, el documento de aprobación del expediente esté publicado y accesible
INT-COM-25 Anuncios de convocatoria de las licitaciones publicados en el perfil del contratante Comprueba que la convocatoria de licitación esté publicada y accesible
INT-COM-26 Anuncios de adjudicación publicados en el perfil del contratante Comprueba que el anuncio de adjudicación esté publicado y accesible
INT-COM-27 Anuncios de formalización publicados en el perfil del contratante Comprueba que el anuncio de formalización del contrato esté publicado y accesible
INT-COM-28 Anuncios de modificación y su justificación publicados en el perfil del contratante (cuando corresponda) Comprueba que las modificaciones del contrato y su justificación estén publicadas
INT-COM-29 Anuncios de concursos de proyectos publicados en el perfil del contratante (cuando corresponda) Comprueba que los anuncios de concursos de proyectos estén publicados
INT-COM-30 Resultados de concursos de proyectos publicados en el perfil del contratante (cuando corresponda y con las excepciones establecidas en las normas de los negociados sin publicidad) Comprueba que los resultados de los concursos de proyectos estén publicados, con excepciones legales de negociados sin publicidad
INT-COM-31 Publicación del anuncio de formalización en el DOUE (cuando el contrato esté sujeto a regulación armonizada) Comprueba que la formalización se publique en el DOUE si el contrato está sujeto a regulación armonizada
INT-COM-32 Publicación del anuncio de formalización en el BOE (cuando el contrato esté celebrado por la AGE) Comprueba que la formalización se publique en el BOE si el contrato lo celebra la AGE
INT-COM-33 Exposición resumida de las razones de desestimación de candidatos descartados de una licitación en el perfil de contratante Comprueba que se publiquen las razones de desestimación de candidatos descartados
INT-COM-34 Publicación de motivos de exclusión y desglose de valoraciones de ofertas (incluyendo al adjudicatario) en el perfil del contratante Comprueba que se publiquen los motivos de exclusión y el desglose de valoraciones de ofertas (incluyendo adjudicatario)
INT-COM-35 Publicación de la identidad del adjudicatario y las ventajas de la oferta adjudicataria y desarrollo de negociaciones Comprueba que se publique la identidad del adjudicatario y razones/ventajas de la oferta seleccionada
INT-COM-36 Publicación del objeto, fecha de inicio y denominaciones de los terceros que vayan a participar en las CPM, así como las razones de su elección, en el perfil del contratante (cuando corresponda) Comprueba que los datos clave de la CPM estén publicados cuando corresponda
INT-COM-37 Publicación del informe de las actuaciones realizadas para una CPM en el perfil del contratante (cuando corresponda) Comprueba que se publique el informe de actuaciones realizado para la CPM cuando corresponda
INT-COM-38 Publicación de las subcontrataciones y adjudicatarios (cuando corresponda) Comprueba que se publica la lista de subcontrataciones con adjudicatarios y montos
INT-COM-39 Publicación del procedimiento seguido para la adjudicación de subcontrataciones (cuando corresponda) Comprueba que se publique el procedimiento seguido para la adjudicación de la subcontratación
INT-COM-40 Indicación del importe de subcontratación (cuando corresponda) Comprueba que se publique el importe de subcontratación
INT-COM-41 Identificación de la financiación con fondos europeos (cuando corresponda) Comprueba que, si un contrato está financiado total o parcialmente con fondos europeos (p.ej. PRTR/ NextGenerationEU), esa financiación esté identificada y publicada
INT-COM-42 Actas de la mesas de contratación relativas al proceso de adjudicación (o en el caso de no actuar la mesa, las resoluciones del órgano de contratación correspondiente) publicadas en el perfil del contratante Comprueba que se publiquen las actas de la mesa de contratación (que recogen el desarrollo de las sesiones, incluyendo los licitadores participantes, las actuaciones realizadas como la apertura de sobres, revisión de documentación, las valoraciones de las ofertas y la propuesta de adjudicación) o las resoluciones del órgano de contratación correspondiente.
INT-COM-43 Informe de valoración de los criterios de adjudicación cuantificables mediante un juicio de valor de cada una de las ofertas publicado en el perfil del contratante Comprueba que se publique el informe donde se explica por qué ha dado ciertas puntuaciones subjetivas (las que dependen del juicio técnico) a cada empresa.
INT-COM-44 Informes sobre las ofertas incursas en presunción de anormalidad (cuando corresponda) publicados en el perfil del contratante Comprueba que se publique, cuando corresponda, el informe que justifica si una oferta anormalmente baja (es decir, aquella cuyo precio o condiciones resultan tan bajos o atípicos en comparación con el resto de ofertas o con el presupuesto del contrato que generan dudas sobre su viabilidad) es viable o no tras el análisis de las explicaciones del licitador.
INT-COM-45 Publicación de la resolución de adjudicación del contrato en el perfil del contratante Comprueba que se publique la resolución de adjudicación en el perfil del contratante
INT-COM-46 Publicación de los nombres de los integrantes de una UTE así como la participación porcentual de cada uno de ellos (en el caso de que un contrato se adjudique a una UTE) Comprueba que se publiquen los intehrantes de una Unión Temporal de Empresas así como su participación porcentual cuando corresponda
INT-COM-47 Justificación de desistimientos o renuncias publicada en el expediente (cuando corresponda) Comprueba que se publiquen la justificación de desistimientos o renuncias cuando corresponda
INT-COM-48 Programación de la actividad contractual como anuncio de información previa en el perfil del contratante Comprueba que los entidades del sector público den a conocer, a través de un anuncio de información previa, su plan de contratación anual anticipadamente

5.2 Calidad del dato — 48 indicadores (peso 30%)

Subdividido en tres dimensiones: Validez (formato y plausibilidad de los campos), Consistencia (coherencia entre campos relacionados) y Fiabilidad (rangos razonables y deduplicación).

VALIDEZ 14 indicadores de formato y validez INT-VAL-01 a INT-VAL-14
IDIndicadorDescripción
INT-VAL-01 Importe de licitación en formato válido Comprueba que el importe de licitación sea un número interpretable
INT-VAL-02 Importe de adjudicación en formato válido Comprueba que el importe adjudicado esté expresado como cantidad numérica
INT-VAL-03 Importe mínimo plausible Comprueba que el importe no sea 0, negativo o absurdamente bajo para ser interpretable
INT-VAL-04 Número de licitadores es entero Comprueba que el número de licitadores sea un entero y no texto libre
INT-VAL-05 Número de licitadores no negativo Comprueba que el número de licitadores sea ≥ 0
INT-VAL-06 Fecha de publicación en formato válido Comprueba que la fecha exista y tenga formato de fecha correcto
INT-VAL-07 Fecha de adjudicación en formato válido Comprueba que la fecha de adjudicación sea interpretable como fecha real
INT-VAL-08 Fecha de formalización en formato válido Comprueba que la fecha de formalización sea interpretable como fecha real
INT-VAL-09 Código CPV válido Comprueba que el código CPV exista y pertenezca al vocabulario oficial
INT-VAL-10 Código territorial válido Comprueba que la localización territorial esté correctamente codificada
INT-VAL-11 Información de subcontratación normalizada Comprueba que el campo de subcontratación use códigos/categorías válidas
INT-VAL-12 Identificación válida del adjudicatario (NIF/NIE) Comprueba que el adjudicatario esté identificado con un identificador válido y no con un email, texto libre o dato informal
INT-VAL-13 Clasificación correcta del procedimiento según cuantía Comprueba que el procedimiento declarado sea compatible con la cuantía y naturaleza del contrato
INT-VAL-14 Identificación válida de financiación PTRT (Plan de Recuperación, Transformación y Resiliencia) Comprueba que, cuando un contrato declare financiación PTRT/PRTR, los campos asociados estén presentes y sigan un formato/catálogo válido (evitando valores libres, erróneos o inconsistentes)
CONSISTENCIA 22 indicadores de coherencia INT-CONS-01 a INT-CONS-22
IDIndicadorDescripción
INT-CONS-01 Si hay adjudicación, nº de ofertas ≥ 1 Comprueba que no exista adjudicación sin al menos 1 oferta registrada
INT-CONS-02 Nº ofertas totales ≥ nº ofertas PYME Comprueba que el subconjunto PYME no supere al total
INT-CONS-03 Si adjudicatario es PYME, nº ofertas PYME ≥ 1 Comprueba que no se marque ganador PYME si el conteo PYME es 0
INT-CONS-04 Coherencia cronológica mínima del expediente Comprueba el orden lógico de hitos
INT-CONS-05 Coherencia de “fecha de envío” / publicación Comprueba que la fecha de envío (p. ej., a DOUE/TED) no sea posterior a la publicación si el modelo lo exige
INT-CONS-06 CPV coherente con tipo de contrato Comprueba que el CPV principal sea compatible con obras/servicios/suministros (regla de mapeo)
INT-CONS-07 Objeto coherente entre pestañas/secciones (PLCSP) Comprueba que el objeto no cambie materialmente entre secciones del mismo expediente
INT-CONS-08 Importe coherente entre licitación y adjudicación Comprueba que no haya imposibles (p. ej., adjudicación > licitación sin explicación o variables de IVA mal definidas)
INT-CONS-09 Suma de lotes coherente con total del expediente Comprueba que el total coincida (con tolerancia) con suma de lotes
INT-CONS-10 Adjudicatario consistente dentro del expediente Comprueba que NIF/nombre no cambie entre pestañas o documentos
INT-CONS-11 Estado del expediente coherente con eventos publicados Comprueba que el estado no contradiga eventos (p. ej. “en licitación” pero con formalización)
INT-CONS-12 Consistencia entre PLCSP y pliegos Comprueba que los atributos esenciales del contrato coincidan (o sean compatibles) entre lo publicado como campos en PLCSP y lo declarado en pliegos (documentos oficiales del expediente)
INT-CONS-13 Coherencia de importes clave (PBL–VEC–PA) Comprueba que el PBL, VEC y PA estén tratados de forma coherente (sin contradicciones por bases IVA/sin IVA o mezclas de conceptos) y no presenten incompatibilidades económicas graves
INT-CONS-14 Coincidencia de ID/expediente entre PLCSP y portal autonómico Comprueba que el expediente sea el “mismo” en ambas fuentes (cruce)
INT-CONS-15 Coincidencia de objeto entre PLCSP y autonómico Comprueba que el objeto no diverja materialmente entre fuentes
INT-CONS-16 Coincidencia de importes entre PLCSP y autonómico Comprueba que los importes clave coincidan (con tolerancia)
INT-CONS-17 Coincidencia de adjudicatario (NIF) entre PLCSP y autonómico Comprueba que el adjudicatario sea el mismo en ambas fuentes
INT-CONS-18 Consistencia NIF/razón social del contratista: PLCSP vs BORME Comprueba que el NIF del contratista apunte a una entidad existente y el nombre sea compatible
INT-CONS-19 Consistencia NIF: PLCSP vs ROLECE Comprueba que el proveedor esté registrado (si aplica) y el ID sea coherente
INT-CONS-20 Consistencia de clasificación: tipo/procedimiento PLCSP vs autonómico Comprueba que no haya divergencias de clasificación entre fuentes
INT-CONS-21 Consistencia de fechas (hitos) PLCSP vs autonómico Comprueba que no haya cronologías incompatibles entre fuentes
INT-CONS-22 Consistencia de entidad compradora (órgano) PLCSP vs TED Comprueba que la entidad compradora coincida (o se mapee)
FIABILIDAD 12 indicadores de rangos y plausibilidad INT-FIA-01 a INT-FIA-12
IDIndicadorDescripción
INT-FIA-01 Nº de ofertas dentro de un rango razonable Que el nº de ofertas no sea inverosímil (p.ej. 10.000) dado el contexto
INT-FIA-02 Nº de ofertas PYME dentro de rango razonable Que el nº de ofertas PYME sea plausible (y compatible con el total)
INT-FIA-03 Nº de lotes en rango razonable Que el nº de lotes no sea atípico extremo sin justificación
INT-FIA-04 Plazo de presentación de ofertas razonable Que el plazo no sea imposible (negativo) ni absurdo (años)
INT-FIA-05 Formato razonable de ID de lote Que el ID de lote no sea vacío, ilegible o incoherente (p.ej. texto largo)
INT-FIA-06 Plausibilidad temporal del plazo de ejecución Que el plazo de ejecución sea posible y no absurdo (ej. año 1919)
INT-FIA-07 Fiabilidad IVA: total coherente con base e IVA Que el desglose IVA no sea inverosímil y permita confiar en el total
INT-FIA-08 PBL atípico o inverosímil Detectar PBL desorbitados que suelen ser errores de registro (p.ej. basados en acuerdo marco)
INT-FIA-09 PA (precio adjudicación) plausible respecto a comparables Que el PA no sea atípico extremo para su CPV/órgano (posible error de carga)
INT-FIA-10 “Actualización” del expediente: hitos completos Que el expediente no esté “congelado” de forma inverosímil (p.ej. adjudicado sin formalizar tras meses)
INT-FIA-11 Trazabilidad mínima del expediente (IDs y enlaces) Que el expediente sea verificable: IDs estables + enlaces que permiten reconstruir el ciclo de vida
INT-FIA-12 Trazabilidad de las CPM Comprueba que una CPM sea verificable y pueda trazarse hasta el procedimiento de contratación asociado (licitación posterior); o, si no lo hay, que exista constancia pública de resultados/cierre

5.3 Buenas prácticas de publicidad — 14 indicadores (peso 20%)

Indicadores que no son obligación legal, pero reflejan compromiso con la transparencia: anuncio de fiscalización, datos en formato reutilizable, conservación a 5 años, publicación de penalidades y prórrogas, etc. Aquí está el verdadero diferencial entre organismos que cumplen el mínimo y los que van más allá.

BPP Ver los 14 indicadores de buenas prácticas INT-BPP-01 a INT-BPP-14
IDIndicadorDescripción
INT-BPP-01 Publicación anuncio de finalización en PLCSP Comprueba si se publica el anuncio de fiscalización en la PLCSP, una práctica voluntaria, desde 01/2024 con fechas reales, importes finales, prórrogas, suspensiones, causa de resolución
INT-BPP-02 Tiempo en las plataformas de contratación mayor a 5 años Comprueba que la información contractual permanezca accesible al menos 5 años
INT-BPP-03 Formato abierto y reutilizable de la información en materia de contratación pública más allá de aquella en el perfil del contratante (p. ej., informes de ofertas anormalmente bajas; composición de mesas de contratación) Comprueba que la información relevante (incluyendo informes de ofertas anormalmente bajas, composición de mesas, etc.) esté publicada en formato abierto y reutilizable
INT-BPP-04 Publicación de las penalidades de un contrato y su resolución Comprueba que las penalidades de un contrato y su resolución estén publicadas
INT-BPP-05 Publicación de las prórrogas contractuales y su resolución Comprueba que las prórrogas y su resolución estén publicadas
INT-BPP-06 Publicación de los recursos especiales en los portales públicos de contratación Comprueba que los recursos especiales estén publicados y accesibles en portales oficiales
INT-BPP-07 Inclusión del objeto, causa y sentido de la resolución de un recurso especial como dato estructurado. Comprueba que cada recurso especial incluya objeto, causa y sentido de la resolución como dato estructurado
INT-BPP-08 Incorporación del enlace con la publicación del tribunal administrativo competente en materia de recursos especiales Comprueba que cada recurso especial tenga enlace a la publicación oficial en el tribunal competente
INT-BPP-09 Inclusión del estado del expediente como "suspenso" en los portales oficiales de contratación pública cuando un contrato queda temporalmente detenido debido a la interposición de un recurso especial. Comprueba que los expedientes afectados por recursos estén marcados como “Suspenso”
INT-BPP-10 Publicación de la forma de presentación de oferta Comprueba que la información sobre cómo presentar ofertas esté publicada
INT-BPP-11 Seguimiento público de la planificación del contrato (p. ej a través de un breve informe de seguimiento de la programación anual en el perfil de contratante). Comprueba si los órganos de contratación publican el grado de cumplimiento de sus programas y justifican los desvíos o retrasos en su ejecución
INT-BPP-12 Publicación de la justificación económica del contrato junto a los pliegos Comprueba si se publica la justificación económica del contrato junto a los pliegos.
INT-BPP-13 Anuncios de información previa publicados en el perfil del contratante o en el DOUE Comprueba que, si se realiza anuncio previo, este esté publicado y accesible
INT-BPP-14 Identificador único del expediente (ID) Comprueba que existe un identificador trazable y recuperable que permite referenciar el expediente

¿Por qué este marco importa?

  • Es la referencia más exigente que existe en España. Combina la base legal (LCSP, LTAIBG) con buenas prácticas observadas en países con mejores prácticas.
  • Permite comparar organismos de manera estandarizada. Hoy es muy difícil decir si el SAS publica peor o mejor que el SERMAS — con un score Hay Derecho sería un número directamente comparable.
  • Identifica patrones estructurales de opacidad: los indicadores de buenas prácticas miden lo que no es obligatorio pero se podría hacer: muestran qué organismos van más allá de lo que exige la ley.
  • Es metodológicamente sólido: cada indicador tiene fuente legal, descripción, fase del ciclo de vida, y salidas micro/agregada definidas formalmente.

6. Política de importes

Cada contrato se sirve con el importe que publica su fuente. Al lado, el ETL calcula un importe corregido, que es el que se usa para sumar, ordenar y filtrar por importe (buscador, explorador y portada). Las reglas son las mismas que aplica el repositorio de scrapers a la PLACSP (issue #22):

  • Coma decimal perdida: si la adjudicación sin IVA es 100 o 1.000 veces el presupuesto y, dividida entre 100 o 1.000, tiene las mismas cifras que el presupuesto (desde 1.000 €) o queda entre el 50 % y el 105 % de él (desde 10.000 €), se corrige a esa escala.
  • Inverosímil: una adjudicación de 100 veces el presupuesto o más, sin corrección fiable, no cuenta. Ejemplo real: la Gerencia Regional de Salud de Castilla y León publica una sala de rayos X licitada por 400.000 € con una adjudicación de 122.972.604.950,25 €.
  • Repetido: en un acuerdo marco, algunas fuentes (PLACSP, Comunidad de Madrid, TED) ponen en cada empresa adjudicataria el tope del lote o del acuerdo, o repiten el total de la licitación en cada lote. Si la suma de esas filas no cabe en el presupuesto (en TED, en el valor total del aviso) y sí contando el importe una vez, cada fila se sirve con el importe publicado, marcado como repetido, y no cuenta en las sumas. En TED también se marca la misma oferta de un acuerdo marco o de un sistema dinámico de adquisición que sale en cada contrato basado en ella.
  • No cuadra con el total del aviso (TED): la oferta ganadora que pasa del valor total del aviso que la publica se sirve con el importe publicado, marcada, y no cuenta en las sumas: no se sabe si es el importe del contrato, un valor estimado o un error de origen. En un aviso de varias adjudicaciones, la que pasa del total en más de un 21,5 % (el IVA más alto) y no se repite en otra; en un aviso de una sola, la que pasa del total sin la proporción de un IVA (21 %, 10 % o 4 %). Ejemplo: en el aviso 539087-2026 de TED, una oferta de 1.530.320 € en un aviso con un valor total de 131.545,02 €.
  • Con un presupuesto sin IVA de menos de 1.000 € la adjudicación no se toca: suele ser un precio unitario o simbólico. Si el presupuesto es con IVA o la fuente no dice si lo lleva, una adjudicación de 100 veces el presupuesto o más sí queda fuera de las sumas.

PYME: en el explorador, una empresa es PYME si lo es en la mayoría de sus adjudicaciones que lo indican (todas sus adjudicaciones, no solo las filtradas). Una sola fila no basta: una fuente puede marcar como PYME a una gran empresa en algunas adjudicaciones.

IVA: cada importe se sirve tal como lo publica su fuente, con o sin IVA, y la ficha de cada contrato lo dice junto al importe («con IVA», «sin IVA» o «IVA no consta»). Las sumas mezclan importes con y sin IVA de fuentes distintas: la portada y el explorador lo avisan.

Además, por defecto se excluyen de las cifras del explorador los contratos con importe corregido de más de 1.000 M€. Todas las filas corregidas o excluidas se publican, con su motivo, en outliers.parquet.

Esos contratos se pueden incluir marcando «Incluir importes de más de 1.000 M€» en los filtros del explorador; mientras están incluidos, lo recuerda una etiqueta en la barra de filtros activos.

Fechas: contratos sin fecha y años imposibles

El campo year de los datos unificados es la clave de partición con la que el ETL reparte los contratos. Un contrato sin fecha (ni de adjudicación, ni de publicación, ni el ejercicio que declara la fuente) va a la partición year=9999. Ese 9999 no es un dato: equivale a un valor vacío, que el formato Parquet no admite como clave de partición. Se deja así en los datos descargables para que se pueda ver qué contratos no traen año y de qué fuente son.

En la web solo cuentan los años verosímiles, de 1990 a hoy: los periodos de las fuentes, las fichas y el explorador, el filtro de año del explorador y la faceta de año del buscador. Los contratos sin fecha o con un año imposible (una errata de la fuente, como 2029) se sirven tal cual, pero no dan periodos, y al ordenar por fecha van al final. Si una ficha no tiene ningún año verosímil, su periodo sale como «—».

Volumen, en vivo: 175.710 contratos sin fecha y 81 con un año fuera de 1990–2026.

  • Plataforma estatal (PLACSP): 16 con un año imposible
  • Catalunya (Registre): 4 sin fecha (0,00 % de la fuente) · 33 con un año imposible
  • Comunidad de Madrid: 3.692 sin fecha (0,13 % de la fuente) · 1 con un año imposible
  • Catalunya (PSCP): 7 sin fecha (0,00 % de la fuente) · 14 con un año imposible
  • C. Valenciana (menores): 1 con un año imposible
  • Región de Murcia: 43 sin fecha (0,00 % de la fuente)
  • País Vasco: 66 sin fecha (0,01 % de la fuente) · 16 con un año imposible
  • Asturias: 7 sin fecha (0,00 % de la fuente)
  • C. Valenciana (REGCON): 1 sin fecha (0,00 % de la fuente)
  • Extremadura: 9 sin fecha (0,00 % de la fuente)
  • Catalunya (menores): 171.295 sin fecha (100,00 % de la fuente)
  • Castilla y León: 547 sin fecha (0,32 % de la fuente)
  • Aragón: 39 sin fecha (0,03 % de la fuente)

7. Deduplicación e identificadores

Cada fila tiene una clave estable dentro de su fuente. Las cifras de la web (portada, buscador, explorador y fichas) cuentan las filas tal como se sirven: los duplicados entre fuentes todavía no se quitan (ver cruces entre fuentes) y las filas repetidas dentro de una misma fuente (misma empresa, órgano, fecha, importe y expediente), 39.601 en la última actualización, se sirven y se cuentan:

id_canonical
Identificador único de cada fila: fuente, tabla y clave de la fuente. Un mismo contrato publicado en dos fuentes (p. ej. un contrato de Osakidetza en EUSKADI y en la PLACSP por agregación) tiene dos identificadores y cuenta dos veces en la suma de todas las fuentes.
NIF normalizado
Validado con checksum LCSP. Se mantiene también el NIF "raw" para trazabilidad.
Nombres normalizados
Razón social normalizada (mayúsculas, sin tildes y sin la forma jurídica final, como «S.L.») para juntar las variantes de escritura del mismo NIF.
Órganos sin NIF
El NIF del órgano solo viene en una de cada cinco filas: sin él, los contratos de un órgano se agrupan por su nombre normalizado (mayúsculas, sin tildes ni signos). Puede juntar órganos distintos que se llamen igual; la ficha lo avisa.
CPV con división pre-computada
Cada CPV se trunca a 2 dígitos (división) para agregaciones rápidas. El código completo se mantiene.
Lotes
Un anuncio del TED puede corresponder a varias adjudicaciones en la PLACSP. El cruce con el TED agrupa los lotes (criterio E4) con una tolerancia de importe de ±10 %.

8. Actualización

La web se reconstruye cada semana con lo último que ha descargado cada fuente. Cada cuánto se descarga cada una:

FuenteDescargaNotas
PLACSPSemanalSindicación ATOM/XML de la plataforma
TEDSemanalAPI del TED; hasta 2019, su CSV masivo
Andalucía, Aragón, Asturias, Castilla-La Mancha, Castilla y León, Extremadura, La Rioja, Región de MurciaSemanalPortales y datos abiertos de cada comunidad
Cataluña (Registre, PSCP, Generalitat) y BarcelonaSemanalDatos abiertos de la Generalitat y del Ayuntamiento
Comunitat Valenciana (REGCON y menores)SemanalDatos abiertos de la Generalitat, universidades y entidades locales
País VascoSemanalKontratazioA
Ayuntamiento de Madrid y ayuntamientos con datos propiosSemanalFicheros de datos abiertos de cada ayuntamiento
Comunidad de MadridMensualExportación del buscador del portal por ventanas de fecha
GaliciaMensualListados y fichas de contratosdegalicia.gal
Cataluña (menores) y BORMESin actualización periódica por ahoraLa web usa la versión anterior de estos datos

La fecha de la última actualización se indica en el pie de cada página. Para detalle por fuente, consultar el último Release en GitHub.

9. Limitaciones conocidas

Para mantener auditabilidad, lo que no está cubierto se enumera explícitamente:

Funcionalidad pendiente de integrar en el sitio

Estos análisis existen como procesos y conjuntos de datos descargables en el repositorio, pero todavía no se reflejan en el explorador:

  • Cruce PLACSP↔TED por contrato: el conjunto crossval_sara_v2.parquet existe, pero la web no marca todavía en cada contrato si un SARA no está en el TED.
  • Señales BORME×PLACSP: las 5 señales (empresa recién creada, capital muy bajo, etc.) se calculan fuera de la web y no aparecen en las fichas.
  • Puntuación de calidad por contrato: los 20 indicadores existen como columnas en calidad_licitaciones_resultado.parquet, pero el explorador no permite filtrar por ellos ni los muestra junto a cada fila.
  • Histórico mercantil: las fichas de empresa resumen el BORME, pero no enseñan el histórico completo (constituciones, ampliaciones, administradores).

Limitaciones inherentes a las fuentes

  • Calidad heredada: según el análisis de calidad publicado, el 31,8 % de los importes de adjudicación de la PLACSP tienen un formato no válido y el 33,4 % de los NIF no pasan la comprobación de su letra de control. No es un defecto de esta web: son los datos tal como los publican los organismos.
  • Cobertura territorial parcial: 13 comunidades autónomas tienen una fuente propia en la web (Andalucía, Aragón, Asturias, Castilla y León, Castilla-La Mancha, Cataluña, Extremadura, Galicia, Región de Murcia, Comunidad de Madrid, País Vasco, La Rioja, Comunitat Valenciana). El resto se cubre a través de la PLACSP, por adhesión.
  • Cobertura temporal por fuente: cada fuente cubre el periodo que publica; está en la tabla de la sección 2.
  • Acuerdos marco con importe agregado: algunos contratos reúnen en una sola entrada varios años de un acuerdo marco y deforman las clasificaciones por importe (de ahí que los importes de más de 1.000 M€ no cuenten).
  • Datos en lengua cooficial: Los nombres de organismos y objetos de contrato pueden aparecer en aragonés, catalán, euskera o gallego. No se traducen automáticamente.

Limitaciones del motor

  • Búsqueda por texto: el buscador (Meilisearch) cubre los 25.305.439 contratos. Tolera erratas, pero no entiende sinónimos ni el sentido de la búsqueda.
  • Detalle del explorador: el panel de detalle excluye siempre los contratos de más de 1.000 M€, esté o no marcada la casilla de los filtros, para que los acuerdos marco con el tope de varios años no deformen el perfil de la entidad.

10. Descarga de los datos

Todos los datasets están publicados en formato Parquet en GitHub Releases . Los programas de descarga (scrapers) y de procesamiento de los datos son abiertos; el código de esta web, no por ahora.

⚠ Aviso sobre Git LFS: los ficheros .parquet y .csv del repo usan Git LFS. Si haces fork o descargas el ZIP del repo desde el botón "Code" verde, solo obtienes punteros (~130 bytes), no los datos reales. La forma correcta es:
  1. Recomendado: Descarga directa desde Releases (sin LFS)
  2. git clone + git lfs pull (requiere Git LFS instalado)
  3. Tras hacer fork, git lfs pull en tu copia

ZIPs disponibles (última release)

ArchivoContenidoTamaño
nacional.zipLicitaciones PLACSP1,34 GB
catalunya.zipDatos Catalunya (contratación, subvenciones, RRHH...)1,06 GB
borme.zipRegistro Mercantil — actos mercantiles + cargos (seudonimizados)750 MB
ted.zipTenders Electronic Daily — España217 MB
valencia.zipDatos Valencia (14 categorías)120 MB
andalucia.zipContratación Junta de Andalucía114 MB
euskadi.zipContratación Euskadi109 MB
comunidad_madrid.zipContratación Comunidad de Madrid~90 MB
madrid_ayuntamiento.zipActividad contractual Ayuntamiento de Madrid~40 MB
galicia.zipContratación pública Xunta de Galicia (CM + LIC)~35 MB
asturias.zipContratación centralizada Principado de Asturias~21 MB

Licencias

Cómo usar los datos descargados (pandas)

Una vez descargado el ZIP correspondiente, los Parquet se leen con pandas en una línea:

# Nacional (PLACSP)
df_nacional = pd.read_parquet('nacional/licitaciones_espana.parquet')

# TED España
df_ted = pd.read_parquet('ted/ted_es_can.parquet')

# Catalunya — contratos menores
df_cat = pd.read_parquet('catalunya/contratacion/contractacio_menors.parquet')

# BORME — actos mercantiles (cargos seudonimizados)
df_borme = pd.read_parquet('borme/data/borme_empresas_pub.parquet')

# Calidad — una fila por contrato de la PLACSP
df_q = pd.read_parquet('calidad/calidad_licitaciones_resultado.parquet')

Ejemplos de análisis típicos:

# Los 10 adjudicatarios nacionales con más importe
df_nacional.groupby('adjudicatario')['importe_sin_iva'].sum().nlargest(10)

# Contratos SARA no publicados en TED
df_q[df_q['INT-CONS-20'] == False].groupby('organo_contratante').size().nlargest(10)

# Score medio de calidad por órgano
df_q.groupby('organo_contratante')['score_calidad'].mean().nlargest(20)

# Constituciones de empresas en BORME por año
constit = df_borme[df_borme['actos'].str.contains('Constitución', na=False)]
constit.groupby(constit['fecha_borme'].dt.year).size()

# BORME: administradores en más de una empresa (red de cargos)
df_cargos = pd.read_parquet('borme/data/borme_cargos_pub.parquet')
multi = df_cargos.groupby('persona_hash')['empresa_norm'].nunique()
print(f"Personas en >1 empresa: {(multi > 1).sum():,}")

Más ejemplos y rutas de archivos en el README del repo.