Metodología
Cómo se construyen estos datos
buscalicitaciones.com reúne y normaliza la contratación pública española desde fuentes oficiales: 27.464.738 contratos de 23 fuentes distintas, en un solo buscador y un explorador.
Esta página explica qué cubre cada fuente, qué no cubre, qué transformaciones se aplican y qué calidad tiene cada campo. Cuando algo está pendiente, o cuando un análisis se ha hecho fuera de la web y aún no se refleja en el explorador, se dice. Los datos y los programas que los descargan son abiertos, en GitHub; el código de esta web no es público por ahora.
Cifras en vivo, de los datos del 11/10/2026.
Antes de usar los datos
Seis cosas que cambian cómo se leen las cifras. Cada una lleva a su explicación completa.
-
Cada importe, tal como se publicó
Con su IVA («con IVA», «sin IVA» o «IVA no consta») y, si no cuenta en las sumas, con una marca que dice por qué.
Política de importes -
Cada contrato cuenta una vez
Un contrato publicado en varias plataformas cuenta en la preferida. «Todas las fuentes» da la suma bruta, con los duplicados.
Cruces entre fuentes -
Solo cuentan los años de 1990 a hoy
Los contratos sin fecha o con un año imposible se sirven tal cual, pero no dan periodos y van al final.
Fechas -
Empresas por NIF; órganos por NIF o por nombre
Sin el NIF del órgano, sus contratos se agrupan por el nombre normalizado. La ficha lo avisa.
Identificadores -
Hay análisis fuera de la web
El cruce con el TED, las señales del BORME y la puntuación de calidad se publican como datos; el explorador todavía no los usa.
Limitaciones -
Todo se puede descargar
Los datos, en Parquet, y los programas que los descargan, en GitHub.
Descarga
1.Fuentes de datos
Son 23 fuentes de contratación (la plataforma estatal, la europea, las autonómicas y las de ayuntamientos) y el BORME (Registro Mercantil), que sirve para enriquecer. Pulsa cada una para ver qué cubre, de cuándo es, cómo publica el IVA y qué no tiene. Las 6 de Cataluña van juntas en una ficha.
Estatal y europea
PLACSP Estatal 5.968.871 contratos · 1992–2026 · 21,7 % del total
Plataforma de Contratación del Sector Público, el sistema estatal regulado por la LCSP 9/2017. Cubre la Administración General del Estado, los organismos autónomos y las comunidades y entidades locales adheridas.
- Portal oficial
- contrataciondelsectorpublico.gob.es
- Formato
- ATOM/XML (sindicación)
- En la web
- 3.571.355 contratos menores · 1.562.571 resultados de licitaciones · 685.134 de las plataformas autonómicas agregadas · 149.811 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. Se descarga cada semana.
- Campos clave
- Identificación, órgano, importes, adjudicatario, NIF, CPV, NUTS, fechas, PYME: 80 columnas en la tabla principal del release (una fila por versión de cada licitación) y 28 en la de resultados (una por lote o empresa adjudicataria)
- IVA de los importes
- casi siempre sin IVA Plataforma estatal (PLACSP) publica el >99,9 % de sus importes sin IVA, el <0,1 % de sus importes con IVA.
TED · Diario Oficial de la UE Europea 683.211 contratos · 1997–2026 · 2,5 % del total
Tenders Electronic Daily, el diario oficial de contratación de la Unión Europea. Solo recoge contratos por encima de los umbrales europeos (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). Está porque permite comprobar que los contratos SARA españoles se publican donde deben.
- Portal oficial
- ted.europa.eu
- CSV masivo
- data.europa.eu: los avisos de 2006 a 2023
- API v3
- ted.europa.eu/api/docs: los avisos de 2020 a 2026 que el CSV masivo no trae; desde 2023, en formato eForms (obligatorio desde el 25 de octubre de 2023), leídos del XML de cada aviso
- En la web
- Los dos canales, sin repetir avisos. El fichero del release v2026.10 trae 857.017 filas, una por adjudicación de cada versión de un aviso: 355.195 identificadores de aviso y 355.124 avisos sin los cancelados, cada uno una vez (como los cuenta el ejemplo de la sección 10)
- Del fichero a la web
- La web lee una descarga posterior, de 858.317 filas: 683.211 son contratos (los de esta ficha); 156.537 no lo son: 109.265 lotes que el aviso describe sin adjudicarlos, 46.420 avisos que modifican o completan un contrato ya publicado y 852 avisos anulados; y 18.569 son versiones anteriores de un aviso o copias de otra fila (un aviso que otro cambia o vuelve a publicar, o la misma adjudicación repetida en cada lote).
- Campos clave
- 164 columnas: aviso, comprador, contrato, importes, adjudicatario, número de ofertas, duración
- IVA de los importes
- IVA: depende del contrato DOUE (TED) publica el 92 % de sus importes sin IVA, el 7,9 % de sus importes sin decir si llevan IVA.
Autonómicas por orden alfabético
Andalucía Autonómica 922.518 contratos · 2000–2026 · 3,4 % del total
Plataforma propia de la Junta de Andalucía: el Servicio Andaluz de Salud (el organismo con más contratos), diputaciones, universidades, consejerías y agencias.
- Contratos menores
- 834.528
- Resto de contratos
- 87.990
- Reto técnico
- El buscador del portal devuelve como mucho 10.000 resultados por consulta: las consultas se parten por ocho criterios y, si aún no caben (los menores del SAS), por tramos del identificador del expediente hasta que cada trozo cabe.
- IVA de los importes
- sin IVA Andalucía publica el 100 % de sus importes sin IVA.
Aragón Autonómica 142.644 contratos · 2009–2025 · 0,5 % del total
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.
- En la web
- 142.644 contratos, de ellos 95.640 menores
- Con NIF del adjudicatario
- 23.212 (16,3 %)
- IVA de los importes
- IVA: depende del contrato Aragón publica el 15 % de sus importes sin IVA, el <0,1 % de sus importes con IVA, el 85 % de sus importes sin decir si llevan IVA.
Asturias Autonómica 375.380 contratos · 2017–2025 · 1,4 % del total
Contratación centralizada del Principado de Asturias.
- Cobertura
- El portal no publica un histórico anterior al periodo de la cabecera
- Datos extra
- Cláusulas sociales y medioambientales, I+D y fondos europeos, entre otros campos
- IVA de los importes
- IVA: depende del contrato Asturias publica el 99 % de sus importes con IVA, el 1,2 % de sus importes sin decir si llevan IVA.
Castilla-La Mancha Autonómica 427.372 contratos · 2016–2026 · 1,6 % del total
Junta de Comunidades de Castilla-La Mancha: contratos menores de la Junta, de la Universidad de Castilla-La Mancha y pagos por caja pagadora.
- En la web
- 427.372 contratos, de ellos 427.372 menores
- Con NIF del adjudicatario
- 411.329 (96,2 %)
- IVA de los importes
- IVA: depende del contrato Castilla-La Mancha publica el 37 % de sus importes sin IVA, el 3,8 % de sus importes con IVA, el 60 % de sus importes sin decir si llevan IVA.
Castilla y León Autonómica 172.171 contratos · 2017–2026 · 0,6 % del total
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).
- En la web
- 172.171 contratos, de ellos 146.369 menores
- Con NIF del adjudicatario
- 171.415 (99,6 %)
- IVA de los importes
- con IVA Castilla y León publica el 100 % de sus importes con IVA.
Cataluña Autonómica 6 fuentes 7.895.322 contratos · 1997–2026 · 28,7 % del total
Datos del portal Transparència Catalunya (API de Socrata): 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.
- Menores (web anterior)
- Copias de publicaciones de la PSCP: se enseñan como se publicaron, con la marca «Copia de otra fuente», y no cuentan en las sumas (sección 6).
- Barcelona
- Contratos menores del Ayuntamiento de Barcelona.
- 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.
Tres versiones complementarias del mismo dato
Por el artículo 347.3 de la Ley de Contratos del Sector Público, los órganos de contratación catalanes publican su actividad en la PSCP de la Generalitat, que se sincroniza en los dos sentidos con la PLACSP estatal: muchos contratos están en los dos sistemas. En la web hay tres ángulos:
- Cataluña (Registre): el Registre Públic de Contractes. Sin NIF del adjudicatario en origen: está en el buscador, pero no se puede agrupar por empresa en el explorador.
- Cataluña (PSCP): con NIF del adjudicatario. También en el explorador.
- PLACSP en Cataluña: la versión que la PSCP sincroniza con la plataforma estatal.
Comparar las tres permite auditar la sincronización entre administraciones: una diferencia grande puede indicar un incumplimiento del artículo 347.3 o un retraso en la sincronización.
Las tres, en cifras (en vivo)
| Fuente | Contratos | Con NIF del adjudicatario | Empresas distintas | Importe total | Periodo |
|---|---|---|---|---|---|
| Registre | 4.511.791 | 00,0 % | — | 78.192 M€ | 1998–2026 |
| PSCP | 2.080.292 | 1.685.01281,0 % | 74.045 | 78.198 M€ | 1997–2026 |
| PLACSP (ccaa=CT) | 402.264 | 343.80185,5 % | 43.505 | 86.690 M€ | 2011–2026 |
Importe total sin los contratos de más de 1.000 M€. Las tres fuentes no se suman: son versiones del mismo dato.
Las 5 empresas con más contratos en cada una
Registre
Sin NIF en origen: no se puede agrupar por empresa.
PSCP
- dD BioLab, SLU 34.870 contratos
- VWR International Eurolab, S.L. 30.594 contratos
- SUDELAB SL 28.288 contratos
- Atlántida Tours Viatges, SA 15.428 contratos
- Vwr iNTERNATIONAL Eurolab, SLU 13.667 contratos
PLACSP (ccaa=CT)
- servicios microinformática, sa 1.362 contratos
- Moncobra, SA 1.053 contratos
- medtronic iberica, sa 957 contratos
- Aparells ortopedics curto sl 922 contratos
- o ENDESA ENERGIA SAU 918 contratos
Solapamiento entre la PSCP y la PLACSP: 160.688 contratos coinciden en NIF, año e importe entre las dos plataformas (coincidencia aproximada: da una idea de la sincronización real).
Comunitat Valenciana (REGCON) Autonómica 276.329 contratos · 2001–2026 · 1,0 % del total
Datos de Dades Obertes GVA (API de CKAN). 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).
- IVA de los importes
- casi siempre sin IVA C. Valenciana (REGCON) publica el >99,9 % de sus importes sin IVA, el <0,1 % de sus importes con IVA.
Extremadura Autonómica 213.013 contratos · 2001–2026 · 0,8 % del total
Junta de Extremadura: registro de contratos mayores y menores.
- En la web
- 213.013 contratos, de ellos 202.494 menores
- Con NIF del adjudicatario
- 212.796 (99,9 %)
- IVA de los importes
- IVA: depende del contrato Extremadura publica el 57 % de sus importes sin IVA, el 41 % de sus importes con IVA, el 2,1 % de sus importes sin decir si llevan IVA.
C. Valenciana (menores) Autonómica 1.322.193 contratos · 2008–2026 · 4,8 % del total
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).
- En la web
- 1.322.193 contratos, de ellos 1.284.494 menores
- Con NIF del adjudicatario
- 490.679 (37,1 %)
- IVA de los importes
- IVA: depende del contrato C. Valenciana (menores) publica el 40 % de sus importes sin IVA, el 15 % de sus importes con IVA, el 45 % de sus importes sin decir si llevan IVA.
Galicia Autonómica 1.849.683 contratos · 2007–2026 · 6,7 % del total
Datos de contratosdegalicia.gal (la Xunta y sus organismos dependientes, que el programa descubre en el propio portal).
- Contratos menores
- 1.797.550
- Licitaciones
- 52.133
- Proceso en dos fases
- Listados (12 columnas: id, objeto, importe, estado, fechas, NIF, adjudicatario, duración) y fichas (más de 50 columnas de cada ficha HTML: procedimiento, presupuesto base, valor estimado, lotes, CPV, NUTS, documentos, adjudicaciones).
- Caché incremental
- Una base SQLite guarda el HTML de cada ficha: la descarga se puede reanudar (
--resume) sin perder lo hecho. - 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.
- IVA de los importes
- con IVA Galicia publica el 100 % de sus importes con IVA.
La Rioja Autonómica 351.760 contratos · 2018–2026 · 1,3 % del total
Gobierno de La Rioja: contratos menores.
- En la web
- 351.760 contratos, de ellos 351.760 menores
- Con NIF del adjudicatario
- 323.375 (91,9 %)
- IVA de los importes
- IVA no consta La Rioja publica el 100 % de sus importes sin decir si llevan IVA.
Comunidad de Madrid Autonómica 4.869.469 contratos · 2003–2026 · 17,7 % del total
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, que es una fuente aparte.
- En la web
- 4.869.469 contratos, de ellos 4.811.347 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.
- 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.
- IVA de los importes
- con IVA Comunidad de Madrid publica el 100 % de sus importes con IVA.
Región de Murcia Autonómica 1.002.496 contratos · 2014–2025 · 3,7 % del total
Región de Murcia: contratos inscritos en el registro de la CARM y contratos menores de la CARM y del Servicio Murciano de Salud.
- En la web
- 1.002.496 contratos, de ellos 987.099 menores
- Con NIF del adjudicatario
- 946.840 (94,4 %)
- IVA de los importes
- IVA: depende del contrato Región de Murcia publica el 21 % de sus importes con IVA, el 79 % de sus importes sin decir si llevan IVA.
País Vasco · Euskadi Autonómica 738.613 contratos · 1991–2026 · 2,7 % del total
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.
- IVA de los importes
- IVA: depende del contrato País Vasco publica el 78 % de sus importes sin IVA, el 21 % de sus importes con IVA, el 0,2 % de sus importes sin decir si llevan IVA.
Ayuntamientos
Ayuntamiento de Madrid Local 131.182 contratos · 1997–2026 · 0,5 % del total
Actividad contractual del Ayuntamiento de Madrid, distinta de la de la Comunidad: ficheros CSV con 11 estructuras distintas, unificados en un solo conjunto.
- Categorías
- Contratos menores, 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.
- 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.
- IVA de los importes
- IVA: depende del contrato Ayuntamiento de Madrid publica el 86 % de sus importes con IVA, el 14 % de sus importes sin decir si llevan IVA.
Ayuntamientos (menores) Local 122.511 contratos · 2015–2026 · 0,4 % del total
Contratos menores de ayuntamientos con datos abiertos propios: Gijón, Vigo, Santa Cruz de Tenerife, Leganés, Córdoba, Málaga y Fuenlabrada.
- En la web
- 122.511 contratos, de ellos 122.046 menores
- Con NIF del adjudicatario
- 78.202 (63,8 %)
- IVA de los importes
- IVA: depende del contrato Ayuntamientos (menores) publica el 5,8 % de sus importes sin IVA, el 0,3 % de sus importes con IVA, el 94 % de sus importes sin decir si llevan IVA.
Los contratos menores del Ayuntamiento de Barcelona están en la ficha de Cataluña.
Enriquecimiento
BORME · Registro Mercantil Enriquecimiento 9.254.668 actos · 17.101.151 cargos
El BORME no es una fuente de licitaciones
No contiene contratos públicos. Son datos del Boletín Oficial del Registro Mercantil, extraídos de sus PDF originales, que 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)
- Periodo
- De 2009 al 18/02/2026
- Privacidad
- Los cargos van seudonimizados: el nombre de cada persona se sustituye por un código (el mismo para el mismo nombre: dos personas que se llaman igual comparten código); los datos del BORME, que ya publica el Registro Mercantil, no se borran. La web no enseña nombres de personas con cargos. Los PDF originales no se redistribuyen; solo el programa para descargarlos.
- Actualización
- Sin actualización periódica en la web por ahora: usa la versión anterior de estos datos, hasta el 18/02/2026. El release v2026.10 del repositorio ya llega al 01/10/2026, con 9.610.713 actos y 17.774.035 cargos.
Proceso en cuatro pasos
- Descarga: los PDF de boe.es desde 2009 (126.462 en el release v2026.10), con
borme_scraper.py --start 2009-01-01. - Lectura: extrae los actos mercantiles (constituciones, cargos…) de los PDF, con
borme_batch_parser.py --workers 8. Generaborme_empresas.parquetyborme_cargos.parquet, privados porque llevan nombres reales. - Seudonimización: sustituye el nombre de cada persona por su código, con
borme_anonymize.py. Resultado:borme_empresas_pub.parquetyborme_cargos_pub.parquet. - Cruce: con la PLACSP, para calcular las 5 señales de riesgo, con
borme_placsp_match.py. Las señales, en la sección 3.
En preparación
El repositorio de descarga ya trae 3 fuentes que todavía no están en la web ni en sus cifras:
- Canarias (
canarias.zip, descargada desde el 1 de octubre de 2026): contratos del Gobierno de Canarias y menores del Cabildo de Tenerife y del Ayuntamiento de Las Palmas de Gran Canaria; del Servicio Canario de la Salud y de los departamentos del Gobierno, solo resúmenes por trimestre. Falta porque el proceso de datos de la web aún no tiene su especificación: cómo se lee cada tabla y qué filas son contratos (dos de sus cinco tablas son resúmenes, no contratos). - Andalucía, contratos menores del portal de datos abiertos de la Junta (
andalucia_menores.zip, descargada desde el 1 de octubre de 2026): los menores de la Plataforma de Contratación de la Junta, con el Servicio Andaluz de Salud entero. Falta porque es la misma plataforma que la fuente de Andalucía de la web: hay que cruzarlos con ella para no contar dos veces el mismo contrato menor; el cruce (por el número y el identificador del expediente) está diseñado, pero no hecho. - Ayuntamiento de Valladolid (
municipios.zip): contratos menores del Ayuntamiento. Falta porque su fichero no trae una fila por contrato, sino una por operación contable (autorización, compromiso, pago…), acumulada por trimestres: hay que sacar de él los contratos menores antes de servirlos.
Y contratos menores de más comunidades autónomas y ayuntamientos. Las comunidades sin fuente propia se cubren a través de la PLACSP, por adhesión.
2.Cobertura y huecos
27.464.738 contratos. Cuánto trae cada fuente, de qué años (de 1990 a hoy: los años imposibles de algunas filas no cuentan), cuántos traen el NIF del adjudicatario y el importe, y cuántos no cuentan en las sumas. En vivo, de mayor a menor.
| Fuente | Contratos | Periodo | Con NIF del adjudicatario | Con importe | Fuera de las sumas |
|---|---|---|---|---|---|
| Plataforma estatal (PLACSP) | 5.968.87121,7 % del total | 1992–2026 | 93,5 % | 40.812 | |
| Comunidad de Madrid | 4.869.46917,7 % del total | 2003–2026 | 100,0 % | 600 | |
| Catalunya (Registre)Sin NIF en origen: no está en el explorador | 4.511.79116,4 % del total | 1998–2026 | 62,8 % | 3 | |
| Catalunya (PSCP) | 2.080.2927,6 % del total | 1997–2026 | 96,4 % | 5 | |
| Galicia | 1.849.6836,7 % del total | 2007–2026 | 97,1 % | 0 | |
| C. Valenciana (menores) | 1.322.1934,8 % del total | 2008–2026 | 99,9 % | 0 | |
| Región de Murcia | 1.002.4963,7 % del total | 2014–2025 | 100,0 % | 0 | |
| Catalunya (Generalitat)Sin NIF en origen: no está en el explorador | 940.4523,4 % del total | 2020–2024 | 100,0 % | 0 | |
| Andalucía | 922.5183,4 % del total | 2000–2026 | 98,7 % | 4 | |
| País Vasco | 738.6132,7 % del total | 1991–2026 | 98,8 % | 538 | |
| DOUE (TED) | 683.2112,5 % del total | 1997–2026 | 84,1 % | 28.423 | |
| Castilla-La Mancha | 427.3721,6 % del total | 2016–2026 | 100,0 % | 0 | |
| Asturias | 375.3801,4 % del total | 2017–2025 | 100,0 % | 0 | |
| La Rioja | 351.7601,3 % del total | 2018–2026 | 100,0 % | 0 | |
| C. Valenciana (REGCON) | 276.3291,0 % del total | 2001–2026 | 100,0 % | 0 | |
| Extremadura | 213.0130,8 % del total | 2001–2026 | 100,0 % | 1 | |
| Barcelona (menores) | 185.9250,7 % del total | 2012–2026 | 99,9 % | 0 | |
| Castilla y León | 172.1710,6 % del total | 2017–2026 | 99,4 % | 4 | |
| Catalunya (menores)Sin NIF en origen: no está en el explorador | 171.2950,6 % del total | sin fecha | 83,1 % | 142.293 | |
| Aragón | 142.6440,5 % del total | 2009–2025 | 99,8 % | 2 | |
| Ayuntamiento de Madrid | 131.1820,5 % del total | 1997–2026 | 93,2 % | 0 | |
| Ayuntamientos (menores) | 122.5110,4 % del total | 2015–2026 | 99,1 % | 22 | |
| Catalunya (emergencia COVID)Sin NIF en origen: no está en el explorador | 5.567<0,1 % del total | 2019–2020 | 100,0 % | 0 | |
| Todas las fuentescon los duplicados entre fuentes (sección 3) | 27.464.738 | — | 91,4 % | 212.707 |
«Con NIF del adjudicatario»: filas con un NIF identificable de una empresa o de una persona (un NIF español válido que no sea de relleno o un identificador extranjero con prefijo de país, sección 7); sin él, el contrato está en el buscador pero no se puede agrupar por empresa. «Fuera de las sumas»: se enseñan con el importe publicado y su marca, pero no cuentan (sección 6).
- BORME
- 9.254.668 actos y 17.101.151 cargos, de 2009 a 2026, con los cargos seudonimizados. Es enriquecimiento: no tiene contratos.
- Calidad
- Un análisis de calidad de la PLACSP publicado como datos, no en el buscador: el fichero del release es todavía el de v2026.02 (8.693.891 filas) (sección 4).
Ver la cobertura por comunidad autónoma
El mapa de la portada
Colorea cada comunidad y ciudad autónoma por sus contratos en la web (o sus publicaciones, en la vista de todas las fuentes), los mismos que la cobertura por comunidad y que el filtro de comunidad del buscador, al que lleva cada una. La comunidad de un contrato no es la de su órgano: en la PLACSP y el TED es la del lugar de ejecución (el código NUTS que publican); en las fuentes autonómicas y en las de ayuntamientos, la de la fuente. Los contratos sin ninguna de las dos no están en el mapa. Las que no tienen fuente autonómica van rayadas. Los cortes de color se calculan con los datos: los números redondos más cercanos a los quintiles. Lo que no es de una comunidad (la plataforma estatal, el TED, los ayuntamientos y el BORME) va al lado.
Las formas son una obra derivada de las Líneas límite municipales del Instituto Geográfico Nacional (IGN), distribuidas por el CNIG con licencia CC BY 4.0 (ign.es), tomadas de la versión 0.6.0 de es-atlas (Martín González, licencia MIT). Para esta web se han proyectado con una cónica conforme de Lambert y simplificado (unos 17 KB en total); Canarias va en su recuadro, y Ceuta y Melilla, que a esta escala serían un punto, como un círculo. Gibraltar no se dibuja.
Huecos conocidos
Cobertura territorial parcial
Las comunidades y ayuntamientos con fuente propia son los de la tabla; el resto se cubre vía la PLACSP, por adhesión. El periodo de cada fuente es el que publica.
Menores de la PLACSP antes de 2018
Solo desde 2018, cuando entró en vigor la obligación de publicarlos.
Ayuntamientos no adheridos a la PLACSP
Sus contratos no aparecen, salvo que una plataforma autonómica los recoja.
3.Cruces entre fuentes
Lo que hace la web hoy
Los contratos se vinculan entre fuentes y, por defecto, cada uno cuenta una vez. Un mismo contrato puede publicarse en varias plataformas: en una autonómica y en la PLACSP (que agrega las de Madrid, Andalucía, Cataluña, Euskadi y otras), o en el TED y en la PLACSP. Con cada actualización, el proceso de datos enlaza las publicaciones de un mismo contrato, de la prueba más segura a la menos: la misma publicación de origen; el mismo expediente con el NIF o el nombre de la empresa y el importe; el mismo NIF, importe y fecha; y, con el TED, la empresa, el órgano, el importe y el año, o la suma de los lotes de un aviso. Entre las publicaciones de un contrato cuenta una: la que tiene un importe que cuenta; si empatan, la que publica importe; después, la fuente preferida (la plataforma de origen, la agregación de la PLACSP, los registros regionales, los subconjuntos y, al final, el TED). El TED es la excepción: aunque su importe cuente, solo cuenta en lugar de otra publicación si la web corrige el importe de esa y lo deja fuera de las sumas (inverosímil, que no cuadra con su aviso…); frente a una sin importe, con 0 € o con el tope de un acuerdo marco repetido en cada empresa, cuenta la otra, porque el TED repite ese tope sin marcarlo.
La vinculación no encuentra todas las copias. Los niveles que no se apoyan en la misma publicación de origen piden el expediente o el órgano; si una de las dos publicaciones no trae ninguno de los dos, no se enlaza con la otra aunque coincidan la empresa, el importe y la fecha, y ese contrato cuenta dos veces también en la vista sin duplicados. Se ve sobre todo al ordenar por importe: si dos tarjetas seguidas parecen el mismo contrato, la ficha de cada una dice si está enlazado con otras fuentes («Este contrato en otras fuentes»).
Cada página con cifras tiene un conmutador con dos vistas:
- Sin duplicados, la de por defecto: cuenta las adjudicaciones (un contrato, o un lote adjudicado a una empresa) que no son copia de otra fila: ni de su misma fuente (sección 7), ni de otra fuente según la vinculación, ni de una fuente entera que es copia de otra (los menores de Cataluña, copia de la PSCP). Las prórrogas, liquidaciones, modificaciones, pagos, desiertos y licitaciones sin resultado se cuentan aparte.
- Todas las fuentes (
?cuenta=todas): cada publicación de cada fuente, tal como se sirve. Es la suma bruta: un contrato publicado en dos fuentes cuenta dos veces. Las cifras de esta página que describen las fuentes (cobertura, marcas de importe, fechas) cuentan así.
Nada se borra. Con «Todas las fuentes», el buscador enseña cada copia con la publicación del mismo contrato que cuenta en las sumas («Copia · cuenta la de …») o, si no cuenta ninguna, lo dice. La ficha de cada contrato dice en cuántas fuentes está (y cuántas publicaciones, si son más), cuál cuenta en las sumas y por qué no cuentan las demás («Este contrato en otras fuentes»).
La vinculación encuentra las copias que puede probar
Un contrato publicado en dos fuentes sin un dato que las una (la publicación de origen, el expediente, el NIF o el importe) puede contar dos veces también sin duplicados. Y las sumas siguen mezclando importes con y sin IVA (sección 6).
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.
El resto de cruces son análisis publicados, todavía no integrados en la web
Lo que sigue describe 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. No se reflejan todavía en el explorador.
PLACSP y TED: publicación de los contratos SARA Análisis fuera de la web
Los contratos por encima de los umbrales europeos (SARA) deben publicarse en el TED. Un proceso cruza las
dos fuentes con 5 criterios, uno tras otro, para encontrar contratos SARA sin anuncio en el TED. Los resultados
se publican como conjunto de datos (crossval_sara_v2.parquet), pero la web no los muestra todavía.
Es el cruce de v2026.02, con errores nuestros
Las cifras de este apartado son las del cruce publicado en febrero de 2026 (en el release
v2026.10 sigue dentro de ted.zip, en la carpeta
v2026.02/). Se hizo con dos errores nuestros, ya corregidos en los datos pero no en este cruce: el TED de
2020 a 2023 venía sin adjudicatario ni importe, y solo con 4 de los 7 tipos de anuncio de adjudicación; y la PLACSP tenía
columnas cambiadas que afectan a cualquier suma o recuento. Todos los criterios del cruce usan el importe. Hasta
repetirlo con los datos de ahora, estas cifras no dicen qué órganos dejaron de publicar en el TED.
Umbrales SARA por bienio
Los umbrales de publicación obligatoria no son fijos: cambian por bienio, tipo de contrato y tipo de comprador (Administración General del Estado, resto o sectores especiales).
| Bienio | Obras | Servicios (AGE) | Servicios (resto) | Sectores especiales |
|---|---|---|---|---|
| 2016-2017 | 5.225.000 € | 135.000 € | 209.000 € | 418.000 € |
| 2018-2019 | 5.548.000 € | 144.000 € | 221.000 € | 443.000 € |
| 2020-2021 | 5.350.000 € | 139.000 € | 214.000 € | 428.000 € |
| 2022-2023 | 5.382.000 € | 140.000 € | 215.000 € | 431.000 € |
| 2024-2025 | 5.538.000 € | 143.000 € | 221.000 € | 443.000 € |
| 2026-2027vigente | 5.404.000 € | 140.000 € | 216.000 € | 432.000 € |
Cinco criterios de cruce, uno tras otro
Cada criterio actúa solo sobre los contratos que los anteriores no encontraron; el más ambiguo va al final.
| Criterio | Coincidencias | % del total |
|---|---|---|
| E1 · NIF del adjudicatario, importe ±10 % y año ±1 | 43.063 | |
| E2 · Número de expediente e importe ±10 % | 7.891 | |
| E3 · NIF del órgano de contratación e importe | 77.816 | |
| E4 · Lotes agrupados (suma de importes del mismo órgano y año) | 31.365 | |
| E5 · Nombre normalizado del órgano e importe | 17.757 |
Lo más relevante: el criterio E3 (NIF del órgano) 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.
Contratos encontrados en el TED, por año
Por año, en el cruce de v2026.02:
| Año | Contratos SARA | Encontrados en el TED | % encontrado |
|---|---|---|---|
| 2016 | 10.948 | 2.643 | |
| 2017 | 17.360 | 6.532 | |
| 2018 | 32.605 | 14.720 | |
| 2019 | 42.951 | 14.182 | |
| 2020TED de v2026.02 sin importes: error nuestro | 40.693 | 9.214 | |
| 2021TED de v2026.02 sin importes: error nuestro | 47.971 | 7.472 | |
| 2022 | 56.649 | 22.250 | |
| 2023 | 60.518 | 31.829 | |
| 2024el máximo | 59.114 | 38.216 | |
| 2025 | 48.276 | 26.920 |
La caída de 2020 a 2023 no se puede atribuir a la COVID ni a los órganos: en v2026.02, los avisos del TED de esos años venían de su API sin adjudicatario ni importe (un error nuestro, corregido en v2026.10, que los lee del CSV masivo), y sin importe no casa ningún criterio.
Sector salud
La salud es el 17 % de los contratos SARA, con un 42,3 % encontrado en el TED. El 38 % de lo no encontrado se explica por los lotes: un único anuncio del TED corresponde a varias adjudicaciones en la PLACSP. Contando los lotes, en ese cruce ronda el 54 %.
Órganos con más contratos SARA sin anuncio encontrado en el TED en el cruce de v2026.02 (aproximado y con los errores del aviso de arriba: no quiere decir que no se publicaran):
| Órgano | Sin anuncio encontrado |
|---|---|
| Servicio Andaluz de Salud (SAS) | |
| FREMAP | |
| IB-Salut (Baleares) | |
| Institut Català de la Salut (ICS) | |
| SERGAS (Galicia) |
PLACSP y BORME: señales de riesgo Análisis fuera de la web
Otro proceso cruza el BORME 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.
Empresa recién creada
Constituida menos de 6 meses antes de la adjudicación.
Capital muy bajo
Capital social de menos de 10.000 € con contratos de más de 100.000 €.
Administradores compartidos
El mismo código de persona administra empresas competidoras (el código sale del nombre: dos personas que se llaman igual cuentan como una).
Disolución tras la adjudicación
Disuelta menos de 12 meses después de cobrar.
Adjudicación en concurso
Empresa en concurso de acreedores que recibe contratos.
4.Calidad de los datos Conjunto de datos descargable
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. Aparte, el repositorio publica un análisis de calidad de la PLACSP (parte del marco de Hay Derecho de la sección 5). Sus cifras son las de ese análisis y no se recalculan con cada actualización. Si un día se integra en el explorador, se dirá.
El fichero que se descarga es todavía el de v2026.02, con errores nuestros
calidad_licitaciones_resultado.parquet (8.693.891 filas y 70
columnas, en el release v2026.10) no se ha regenerado: se calculó sobre todas las versiones de cada
licitación, también las anteriores a su adjudicación, con el valor estimado en lugar del presupuesto y con las etiquetas de
procedimiento desplazadas. Eran errores nuestros, no de los órganos. Las cifras de abajo son las del cálculo corregido,
una evaluación por licitación en su última versión, publicadas en el
README de la versión v2026.10 del
repositorio.
Cada indicador es una columna de verdadero o falso, y cada licitación tiene
una puntuación agregada (score_calidad). El fichero trae 20 indicadores: los
14 de la parte de calidad del dato del marco de Hay Derecho que el README publica
con su cifra corregida (la tabla de abajo) y 6 comprobaciones básicas que no
publica con ella:
INT-VAL-03 (importe mínimo plausible), INT-VAL-04 (número de licitadores es entero), INT-VAL-05 (número de licitadores no negativo), INT-VAL-06 (fecha de publicación en formato válido), INT-VAL-10 (código territorial válido) y INT-FIA-11 (trazabilidad mínima del expediente).
Marco metodológico
El sistema de Hay Derecho (sección 5), con la metodología del PPDS (Public Procurement Data Space, el espacio de datos de contratación pública de la Comisión Europea) como referencia técnica y aportaciones de Jaime Gómez-Obregón (umbrales de la LCSP) y de la OIRESCON (referencias del presupuesto base de licitación).
Licitaciones que no pasan cada indicador
No pasar un indicador no es siempre un error del órgano: una licitación aún sin adjudicar no tiene importe, fecha ni NIF del adjudicatario, y un adjudicatario extranjero no tiene NIF español.
| Indicador | No lo pasan |
|---|---|
| INT-VAL-01Importe de licitación en formato válido. En el fichero de v2026.02: 22,6 % | |
| INT-VAL-02Importe de adjudicación publicado (una licitación aún sin adjudicar no lo tiene). En el fichero de v2026.02: 31,8 % | |
| INT-VAL-07Fecha de adjudicación válida (una licitación aún sin adjudicar no la tiene). En el fichero de v2026.02: 39,2 % | |
| INT-VAL-09Código CPV válido (la ley no lo exige en los contratos menores). En el fichero de v2026.02: 23,3 % | |
| INT-VAL-12NIF español válido del adjudicatario (no lo pasan uno vacío, uno extranjero ni uno con la letra de control mal). En el fichero de v2026.02: 33,4 % | |
| INT-VAL-14Contrato menor coherente con la cuantía (LCSP, art. 118). En el fichero de v2026.02: 1,3 % | |
| INT-CONS-01Si hay adjudicación, al menos una oferta. En el fichero de v2026.02: 1,1 % | |
| INT-CONS-08Adjudicación no mayor que la licitación (+5 %). En el fichero de v2026.02: 0,3 % | |
| INT-CONS-18El adjudicatario está en el BORME (cruce por nombre). En el fichero de v2026.02: 51,3 % | |
| INT-CONS-20Contrato SARA publicado en el TED. En el fichero de v2026.02: 77,5 % | Pendiente: hay que repetir el cruce con el TED |
| INT-FIA-01Número de ofertas en un rango razonable (P99 por CPV). En el fichero de v2026.02: 0,6 % | |
| INT-FIA-04Plazo de presentación de ofertas razonable (0-365 días). En el fichero de v2026.02: 21,3 % | |
| INT-FIA-08Presupuesto base no atípico (hasta 50 M€). En el fichero de v2026.02: 0,4 % | |
| INT-FIA-09Precio de adjudicación plausible por segmento CPV (P1-P99). En el fichero de v2026.02: 0,8 % |
Menores y regulares
Los contratos menores (3,2 M de licitaciones) tienen un perfil de calidad muy distinto del de los regulares (1,5 M):
| Indicador | Menores | Regulares | Diferencia |
|---|---|---|---|
| NIF del adjudicatario no válido | 2,7 % | 18,6 % | −16,0 pp |
| Sin CPV | 60,6 % | 1,2 % | +59,3 pp |
| Sin fecha de adjudicación | 0,6 % | 36,9 % | −36,3 pp |
| Sin importe de licitación | 0,0 % | 2,5 % | −2,5 pp |
5.Indicadores de Hay Derecho Marco de referencia
La Fundación 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 que publican las administraciones. Es el marco más completo y exigente que existe en España para medir la transparencia de la contratación. Define 110 indicadores en tres criterios con pesos distintos:
- 50 %Criterio legal · 48 indicadores
- 30 %Calidad del dato · 48 indicadores
- 20 %Buenas prácticas · 14 indicadores
Puntuación total = 0,5 × legal + 0,3 × calidad + 0,2 × buenas prácticas
Cada indicador da un resultado por contrato (presente o ausente, válido o no) y uno por organismo (el % de sus contratos que lo cumplen).
La web no aplica este marco
Publica los datos tal como vienen de las plataformas oficiales, normalizados: no calcula la puntuación ni evalúa estos indicadores en vivo. Esta sección los recoge como referencia para versiones futuras. Lo que sí existe hoy es el conjunto de datos de la sección 4, que calcula 14 de los 48 de calidad del dato sobre la PLACSP (descarga en la sección 10).
Criterio legal peso del 50 %
Derivados de la LCSP y la LTAIBG. Cada incumplimiento resta un 10 % a la puntuación final del organismo.
Legal 48 indicadores
- 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 integrantes 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
Calidad del dato peso del 30 %
En tres dimensiones: validez (formato y plausibilidad de cada campo), consistencia (coherencia entre campos relacionados) y fiabilidad (rangos razonables y duplicados).
Validez 14 indicadores
- 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
- 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
- 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
Buenas prácticas de publicidad peso del 20 %
No son obligación legal, pero muestran el compromiso con la transparencia: anuncio de fiscalización, datos reutilizables, conservación durante 5 años, publicación de penalidades y prórrogas… Aquí está la diferencia entre los organismos que cumplen el mínimo y los que van más allá.
Buenas prácticas 14 indicadores
- 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é importa este marco
Es la referencia más exigente
Combina la base legal (LCSP, LTAIBG) con las buenas prácticas de los países que mejor lo hacen.
Permite comparar organismos
Hoy es muy difícil decir si el SAS publica mejor o peor que el SERMAS; con la puntuación de Hay Derecho sería un número comparable.
Saca a la luz la opacidad estructural
Los indicadores de buenas prácticas miden lo que no es obligatorio pero se puede hacer: qué organismos van más allá de la ley.
Es sólido
Cada indicador tiene su base legal, su descripción, su fase del ciclo de vida y sus resultados por contrato y por organismo, definidos formalmente.
6.Política de importes
Cada contrato se sirve con el importe que publica su fuente. Al lado, el proceso de datos calcula un importe corregido, que es el que se usa para sumar, ordenar y filtrar por importe (buscador, explorador y portada). Al ordenar por importe sin texto, primero van los contratos cuyo importe cuenta y detrás, tras un separador y por su importe publicado, los que no cuentan (con las marcas de abajo y los de más de 1.000 M€). Las reglas son las mismas que aplica el repositorio de descarga a la PLACSP (issue #22).
En total, 212.707 contratos se enseñan con el importe publicado pero no cuentan en las sumas: 70.414 importes que no cuadran (inverosímiles, repetidos, que no cuadran con su aviso o de más de 1.000 M€) y 142.293 copias de otra fuente, que no son importes que no cuadren: su contrato ya cuenta en la fuente que copian.
Cada marca sale en la web junto al importe, con la misma etiqueta que aquí. Los recuentos son en vivo:
-
Corregido ×100166 contratos
Coma decimal perdida (×100)
Si la adjudicación sin IVA es 100 veces el presupuesto y, dividida entre 100, 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: cuenta la centésima parte.
Cuenta, con el importe corregido -
Corregido ×1.00026 contratos
Coma decimal perdida (×1.000)
La misma regla con 1.000: la adjudicación sin IVA es 1.000 veces el presupuesto y, dividida entre 1.000, tiene sus mismas cifras o queda entre el 50 % y el 105 % de él. Cuenta la milésima parte.
Cuenta, con el importe corregido -
Inverosímil119 contratos
Inverosímil
Una adjudicación de 100 veces el presupuesto o más, sin corrección fiable.
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 €.
No cuenta en las sumas -
Importe repetido65.502 contratos
Importe 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 el TED, en el valor total del aviso) y sí contando el importe una vez, cada fila se sirve con el importe publicado, marcada como repetida. En el 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 cuenta en las sumas -
No cuadra con su aviso4.733 contratos
No cuadra con el total del aviso (TED)
La oferta ganadora que pasa del valor total del aviso que la publica: 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 del TED, una oferta de 1.530.320 € en un aviso con un valor total de 131.545,02 €.
No cuenta en las sumas -
Copia de otra fuente142.293 contratos
Copia de otra fuente
Filas que copian publicaciones que la web ya sirve desde otra fuente: los contratos de «Catalunya (menores)», que vienen de la plataforma de contratación de Cataluña (PSCP). Se enseñan como se publicaron; los que cuentan son los de la PSCP.
No cuenta en las sumas -
Más de 1.000 M€60 contratos
Más de 1.000 M€
Por defecto, los contratos con un importe corregido de más de 1.000 M€ no cuentan en las cifras: suelen ser acuerdos marco con el tope de varios años o erratas de la fuente. En el explorador se pueden incluir marcando «Incluir importes de más de 1.000 M€» en los filtros; mientras están incluidos, lo recuerda una etiqueta en la barra de filtros activos.
No cuenta, salvo que se incluyan en el explorador -
Presupuestos de menos de 1.000 €
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.
Cada fila corregida o fuera de las sumas lleva su motivo en las descargas de la web (columna
correccion_imp_adj, sección 10). La lista completa (outliers.parquet) es
del proceso de datos de la web y todavía no se publica.
IVA
Cada importe se sirve tal como lo publica su fuente, con o sin IVA, y la web lo dice junto al importe:
con IVA sin IVA IVA no consta
Las sumas mezclan importes con y sin IVA de fuentes distintas, y la diferencia puede llegar al 21 %: la portada y el explorador lo avisan. Cómo publica el IVA cada fuente está en su ficha (sección 1), medido sobre los datos.
Cómo se escriben los importes
Un importe en euros (€) se escribe exacto, al euro, sin céntimos. Uno en millones (M€) o en billones va redondeado a la última cifra que se ve, y la unidad lo dice. El importe de cada contrato, con sus céntimos, está en su ficha y en las descargas.
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. Los proveedores de un órgano o de un sector, y su % PYME, se cuentan por su NIF identificable (sección 7): los contratos sin él no tienen proveedor.
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
proceso de datos 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.814 contratos sin fecha y 97 con un año fuera de 1990–2026.
| Fuente | Sin fecha | % de la fuente | Con un año imposible |
|---|---|---|---|
| Plataforma estatal (PLACSP) | 0 | 0,00 % | 16 |
| Comunidad de Madrid | 3.692 | 0,08 % | 1 |
| Catalunya (Registre) | 4 | 0,00 % | 39 |
| Catalunya (PSCP) | 7 | 0,00 % | 23 |
| C. Valenciana (menores) | 0 | 0,00 % | 1 |
| País Vasco | 66 | 0,01 % | 17 |
| Asturias | 7 | 0,00 % | 0 |
| C. Valenciana (REGCON) | 1 | 0,00 % | 0 |
| Extremadura | 9 | 0,00 % | 0 |
| Castilla y León | 694 | 0,40 % | 0 |
| Catalunya (menores) | 171.295 | 100,00 % | 0 |
| Aragón | 39 | 0,03 % | 0 |
7.Deduplicación e identificadores
Cada fila tiene una clave estable dentro de su fuente. Todas se sirven. Sin duplicados (la vista por defecto) no cuentan las copias: las de otra fuente, que encuentra la vinculación (sección 3), y las copias dentro de su fuente; con «Todas las fuentes», cuentan todas las filas.
Copias dentro de su fuente: la misma adjudicación publicada dos veces en una misma tabla, solo donde está medido. El registro de contratos de Cataluña inscribe los menores del ICS con dos organismos (el código de su gerencia y el de sus hospitales), y el TED repite adjudicaciones en avisos posteriores. Cuenta la primera; las demás llevan la marca de copia y no cuentan sin duplicados. En la última actualización, 185.968: 184.544 en Catalunya (Registre) y 1.424 en DOUE (TED). Las filas con la misma empresa, órgano, fecha, importe y expediente no son copias por sí solas: casi siempre son lotes distintos del mismo expediente con el mismo importe, y cuentan.
id_canonical
El identificador único de cada fila: fuente, tabla y clave de la fuente. Un mismo contrato publicado en dos fuentes (por ejemplo, uno de Osakidetza en Euskadi y en la PLACSP por agregación) tiene dos identificadores: cuenta dos veces con todas las fuentes y una sin duplicados.
NIF normalizado e identificable
El NIF se normaliza (mayúsculas, sin espacios ni guiones) y se comprueba su letra de control; se guarda también tal como lo publica la fuente. Para agrupar por empresa (explorador, fichas, proveedores, «Con NIF») solo cuenta un NIF identificable: un NIF español válido que no sea de relleno (los de siete ceros, como A00000000) o un identificador extranjero con prefijo de país (FR…, PT…, NL…), que no tiene letra de control española. Los comodines de algunas fuentes («0», «UTE», «XXXXXXXXX»…) no agrupan: esos contratos están en el buscador, pero no en el explorador. Un adjudicatario de relleno, cuyo nombre no identifica a nadie aunque el NIF sea válido («VARIOS», «33 EMPRESAS ADJUDICATARIAS», «VER RELACIÓN ADJUNTA»…), se enseña como se publica y sin enlace a una ficha de empresa; con la próxima actualización de los datos tampoco contará como empresa en el explorador.
Nombres normalizados
La razón social en mayúsculas, sin tildes y sin la forma jurídica final (como «S.L.»), para juntar las maneras de escribir el 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.
Órganos con un NIF compartido
Un órgano con NIF lleva el nombre más frecuente de sus contratos. Si muchas unidades publican con el mismo NIF (un ayuntamiento, una comunidad, un ministerio) y ninguna llega a la mitad, lleva el de la entidad tal como aparece en los nombres de sus unidades («Área de Gobierno de Economía del Ayuntamiento de Madrid» → «Ayuntamiento de Madrid»), o el más frecuente y cuántas unidades más hay. Su ficha enseña las unidades con sus contratos.
División del CPV
Cada CPV se corta a sus 2 primeras cifras (la división) para agregar deprisa. El código completo se conserva.
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; estos datos son del 11/10/2026. Cada cuánto se descarga cada una:
| Fuente | Descarga | Cómo |
|---|---|---|
| PLACSP | Semanal | Sindicación ATOM/XML de la plataforma |
| TED | Semanal | API del TED (para los avisos que no están en su CSV masivo, que llega hasta 2023) |
| Andalucía, Aragón, Asturias, Castilla-La Mancha, Castilla y León, Extremadura, La Rioja, Región de Murcia | Semanal | Portales y datos abiertos de cada comunidad |
| Cataluña (Registre, PSCP, Generalitat) y Barcelona | Semanal | Datos abiertos de la Generalitat y del Ayuntamiento |
| Comunitat Valenciana (REGCON y menores) | Semanal | Datos abiertos de la Generalitat, universidades y entidades locales |
| País Vasco | Semanal | KontratazioA |
| Ayuntamiento de Madrid y ayuntamientos con datos propios | Semanal | Ficheros de datos abiertos de cada ayuntamiento |
| Comunidad de Madrid | Mensual | Exportación del buscador del portal por ventanas de fecha |
| Galicia | Mensual | Listados y fichas de contratosdegalicia.gal |
| Cataluña (menores) y BORME | Sin actualización periódica | La web usa todavía la versión anterior de estos datos (el BORME, hasta el 18/02/2026) |
La fecha de la última actualización está en el pie de cada página. El detalle por fuente, en el último release de GitHub.
9.Limitaciones conocidas
Para que todo sea auditable, lo que no está cubierto se dice aquí.
Pendiente de integrar en la web
Estos análisis existen como procesos y conjuntos de datos descargables, pero todavía no se reflejan en el explorador:
Cruce de la PLACSP con el TED, contrato a contrato
El conjunto
crossval_sara_v2.parquetexiste, pero la web no marca todavía en cada contrato si un SARA no está en el TED.Señales del BORME y la PLACSP
Las 5 señales (empresa recién creada, capital muy bajo…) se calculan fuera de la web y no aparecen en las fichas.
Puntuación de calidad por contrato
Los 20 indicadores del fichero (los 14 con cifra corregida y 6 comprobaciones básicas, sección 4) existen como columnas en
calidad_licitaciones_resultado.parquet(todavía el de v2026.02), pero el explorador no permite filtrar por ellos ni los muestra en cada fila.Histórico mercantil
Las fichas de empresa resumen el BORME, pero no enseñan el histórico completo (constituciones, ampliaciones, administradores).
Limitaciones de las fuentes
- Calidad de lo publicado en la PLACSP: en nuestro análisis de calidad, sobre la última versión de cada licitación, el 5,8 % no trae importe de adjudicación y el 7,8 % no trae un NIF español válido del adjudicatario. Cuentan también las licitaciones aún sin adjudicar y los adjudicatarios extranjeros: no son, sin más, errores de los órganos (sección 4). Esta página daba antes el 31,8 % y el 33,4 %, y los atribuía a los organismos: eran errores nuestros de v2026.02, que contaba todas las versiones de cada licitación, también las anteriores a su adjudicación.
- 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).
- Lenguas cooficiales: los nombres de organismos y los objetos de los contratos pueden estar en aragonés, catalán, euskera o gallego. No se traducen.
Limitaciones del motor
- Búsqueda por texto: el buscador (Meilisearch) cubre los 27.464.738 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
Los datos de cada fuente, tal como los descarga el repositorio público, están publicados en Parquet en GitHub: el release v2026.10, del 05/10/2026, con 31 ZIP (10,66 GB). Los programas que los descargan son abiertos; el proceso de datos de esta web (la tabla única, las marcas de importe y la vinculación entre fuentes) y su código, no por ahora: se describen en esta página.
Los ZIP con los Parquet de cada fuente, sin Git LFS.
RepositorioBquantFinance/licitaciones-espana: los programas de descarga y su documentación.
Los datos guardados dentro del repositorio son los de v2026.02
Los Parquet del propio repositorio, en Git LFS, son todavía los de v2026.02 (febrero de 2026), con errores que el release
v2026.10 corrige. Y si haces fork o descargas el ZIP del repositorio con el botón verde «Code», solo obtienes
punteros (unos 130 bytes), no los datos. Los datos actuales están en los ZIP del
último release,
sin Git LFS.
ZIP del release v2026.10
| Archivo | Contenido | Tamaño |
|---|---|---|
nacional_licitaciones_hasta_2019.zip | PLACSP, tabla principal: licitaciones con anuncio hasta 2019 y las que no traen año (una fila por versión de cada una)1.617.421 filas | 426 MB |
nacional_licitaciones_2020_2021.zip | PLACSP, tabla principal: 2020 y 20211.718.374 filas | 491 MB |
nacional_licitaciones_2022_2023.zip | PLACSP, tabla principal: 2022 y 20232.564.085 filas | 796 MB |
nacional_licitaciones_2024_2025.zip | PLACSP, tabla principal: 2024 y 20253.036.783 filas | 1,33 GB |
nacional_licitaciones_desde_2026.zip | PLACSP, tabla principal: desde 20261.970.904 filas | 799 MB |
nacional_resultados.zip | PLACSP: resultados (una fila por lote o empresa adjudicataria)10.677.644 filas | 800 MB |
nacional_adjudicatarios.zip | PLACSP: adjudicatarios10.146.626 filas | 352 MB |
nacional_criterios.zip | PLACSP: criterios de adjudicación14.571.218 filas | 695 MB |
nacional_lotes_y_otras_tablas.zip | PLACSP: lotes, modificaciones, entradas borradas y semilla5.903.920 filas | 250 MB |
ted.zip | TED: avisos de adjudicación de España857.017 filas y 5.296.388 de v2026.02, en su carpeta v2026.02/ | 313 MB |
andalucia.zip | Andalucía: el buscador de los perfiles de contratante de la Junta900.931 filas | 83 MB |
andalucia_menores.zip | Andalucía: contratos menores del portal de datos abiertos de la Junta, con el SAS768.647 filas. Aún no está en la web. | 60 MB |
aragon.zip | Aragón: registro de contratos, contratos del Gobierno y Ayuntamiento de Zaragoza267.292 filas | 14 MB |
asturias.zip | Principado de Asturias375.380 filas | 18 MB |
canarias.zip | Canarias: Gobierno, Servicio Canario de la Salud, Cabildo de Tenerife y Ayuntamiento de Las Palmas de Gran Canaria115.318 filas. Aún no está en la web. | 11 MB |
castilla_la_mancha.zip | Castilla-La Mancha: menores de la Junta y de la Universidad, caja pagadora y otras tablas6.945.081 filas | 176 MB |
castilla_leon.zip | Castilla y León: contratos de la Junta y de la Gerencia Regional de Salud185.058 filas | 11 MB |
catalunya.zip | Cataluña: Registre públic de contractes, PSCP, Generalitat, Barcelona y COVID8.048.140 filas y 11.862.346 de v2026.02, en su carpeta v2026.02/ | 1,16 GB |
catalunya_menores.zip | Cataluña: contratos menores de la PSCP1.429.086 filas y 3.023.802 de v2026.02, en su carpeta v2026.02/. Aún no está en la web: la ficha «Catalunya (menores)» es la copia anterior, de abril. | 322 MB |
valencia.zip | Comunitat Valenciana: REGCON y contratos de la DANA302.592 filas y 8.271.416 de v2026.02, en su carpeta v2026.02/ | 130 MB |
valencia_menores.zip | Comunitat Valenciana: menores de universidades, Diputación de Alicante y Ajuntament de València1.882.091 filas | 59 MB |
extremadura.zip | Extremadura: registro de contratos221.749 filas | 8 MB |
contratos_galicia.zip | Galicia: contratosdegalicia.gal3.697.540 filas y 1.685.789 de v2026.02, en su carpeta v2026.02/ | 100 MB |
la_rioja.zip | La Rioja: contratos menores351.203 filas | 8 MB |
comunidad_madrid.zip | Comunidad de Madrid4.906.068 filas | 149 MB |
murcia.zip | Región de Murcia1.008.568 filas | 20 MB |
euskadi.zip | País Vasco: KontratazioA2.753.290 filas y 678.385 de v2026.02, en su carpeta v2026.02/ | 423 MB |
madrid_ayuntamiento.zip | Ayuntamiento de Madrid264.174 filas | 28 MB |
municipios.zip | Contratos menores de ayuntamientos con datos abiertos propios289.747 filas. Valladolid aún no está en la web. | 18 MB |
borme.zip | BORME: actos de las empresas y cargos, seudonimizados27.384.748 filas. La web usa todavía la versión anterior del BORME. | 812 MB |
calidad_licitaciones_resultado.zip | Calidad: indicadores por entrada de la PLACSP (el fichero de v2026.02, sin regenerar)8.693.891 de v2026.02, en su carpeta v2026.02/. Un análisis: no está en el buscador (sección 4). | 790 MB |
Cada ZIP lleva un LEEME.txt y un MANIFEST.csv (filas, columnas y SHA-256 de cada
fichero), y el release, SHA256SUMS.txt para comprobar la descarga. Las fuentes que aún no están en la web, con su
porqué, en la sección 1.
Licencias
- España (PLACSP, autonomías)Licencia de reutilización del sector público
- GaliciaLey 1/2016 de transparencia y buen gobierno de Galicia
- AsturiasPortal de Transparencia del Principado de Asturias
- TED (UE)EU Open Data Licence
- BORMECondiciones de reutilización del BOE. Fuente: Agencia Estatal Boletín Oficial del Estado
Cómo leer el release (DuckDB y pandas)
Cada Parquet se lee tal cual. La tabla principal de la PLACSP va partida en los ZIP
nacional_licitaciones_*.zip: descomprimidos en la misma carpeta, quedan en licitaciones_completo/
y se leen como una sola tabla. Trae una fila por versión de cada licitación (10.907.567
filas de 5.241.440 licitaciones): para contar licitaciones, la última versión.
import duckdb # pip install duckdb
import pandas as pd
# PLACSP: licitaciones por año del anuncio, cada una en su última versión
duckdb.sql("""
SELECT CAST(ano AS INTEGER) AS anio, count(*) AS licitaciones
FROM 'licitaciones_completo/*.parquet'
WHERE es_ultima_version
GROUP BY 1 ORDER BY 1
""").show()
# Lo mismo con pandas, leyendo solo las columnas que hacen falta
lic = pd.read_parquet('licitaciones_completo/', columns=['ano', 'es_ultima_version'])
print(lic[lic['es_ultima_version']].groupby('ano', dropna=False).size())
# TED (ted.zip): una fila por adjudicación de cada versión de cada aviso. Cada aviso una vez,
# en su última versión y sin los cancelados (la regla de avisos_para_cruce() del repositorio)
duckdb.sql("""
WITH t AS (
SELECT *, coalesce(_en_ultima_descarga, true) AS vigente,
coalesce(_ultima_descarga, '') AS descarga
FROM 'ted_es_can.parquet'),
a AS (
SELECT ted_notice_id, bool_or(vigente) AS con_vigente, max(descarga) AS ultima
FROM t GROUP BY 1)
SELECT t.year, count(DISTINCT t.ted_notice_id) AS avisos
FROM t JOIN a USING (ted_notice_id)
WHERE (t.vigente OR (NOT a.con_vigente AND t.descarga = a.ultima)) -- su última versión
AND NOT coalesce(TRY_CAST(t.cancelled AS DOUBLE) = 1, false) -- después, sin cancelados
GROUP BY 1 ORDER BY 1
""").show()
# BORME (borme.zip): códigos de persona con cargos en más de una empresa
# (seudonimizados: dos personas que se llaman igual comparten código)
cargos = pd.read_parquet('borme_cargos_pub.parquet', columns=['persona_hash', 'empresa_norm'])
varias = cargos.groupby('persona_hash')['empresa_norm'].nunique()
print(f'Códigos en más de una empresa: {(varias > 1).sum():,}')
No sumes los importes del release tal cual
Los Parquet del release son los de cada fuente tal como se publican: con todas sus versiones, sus copias y sus importes erróneos, y sin las marcas de esta web (qué es cada fila, si es copia de otra y el importe que cuenta). Medido sobre el release v2026.10: las adjudicaciones de la PLACSP (resultados adjudicados o formalizados de la última versión de cada licitación, sin entradas repetidas ni importes de más de 1.000 M€) suman 2.095.164 M€; las mismas publicaciones en la web, 612.323 M€ con todas las fuentes y 457.587 M€ sin duplicados. La diferencia son los contratos registrados dos veces en una misma publicación (la adjudicación y la formalización), los importes repetidos en cada empresa o lote de un acuerdo marco y los errores de escala (sección 6), y, sin duplicados, las copias de otras fuentes (sección 3).
¿Te basta tu ordenador? Tiempos de consulta con DuckDB
Antes de bajarte el release, mira cuánto tardan las consultas que más se hacen con estos datos y cuánta
memoria piden. Medido el 07/10/2026 sobre el release v2026.10
(142 Parquet, 11,50 GB, sin las carpetas v2026.02/) con
DuckDB 1.5.6 y, para comparar, con pandas 3.0.6 y pyarrow 25.0.1,
en tres máquinas: 2 CPU · 4 GB, 4 CPU · 8 GB, 8 CPU · 16 GB. Cada consulta cuenta como se debe: la última versión de cada
licitación, cada aviso del TED una vez y el tope de un acuerdo marco una sola vez, no una por empresa.
- 2 CPU · 4 GB: con DuckDB, la consulta más lenta tarda 6,9 s («Comunidad de Madrid: contratos menores por año, sin contar dos veces el mismo») y ninguna pasa de 3,4 GB de memoria. Con pandas, las mismas cuentas tardan de 2 a 86 veces más, y «PLACSP: lo adjudicado por comunidad (cruce de resultados y licitaciones)» no cabe en la memoria.
- 4 CPU · 8 GB: con DuckDB, la consulta más lenta tarda 2,0 s («Comunidad de Madrid: contratos menores por año, sin contar dos veces el mismo») y ninguna pasa de 5,5 GB de memoria. Con pandas, las mismas cuentas tardan de 3 a 98 veces más.
- 8 CPU · 16 GB: con DuckDB, la consulta más lenta tarda 1,4 s («PLACSP: los 20 adjudicatarios con más licitaciones, sin duplicados») y ninguna pasa de 6,1 GB de memoria. Con pandas, las mismas cuentas tardan de 3 a 125 veces más.
| Consulta | 2 CPU · 4 GB | 4 CPU · 8 GB | 8 CPU · 16 GB |
|---|---|---|---|
| Abrir toda la carpeta: ficheros y filas de cada ParquetSolo metadatos: el pie de cada Parquet, sin leer datos | 0,02 sprimera vez 0,02 s · 0,1 GB | 0,01 sprimera vez 0,02 s · 0,1 GB | 0,01 sprimera vez 0,02 s · 0,1 GB |
| PLACSP: licitaciones por año, la última versión de cada unaFiltro por la marca es_ultima_version y recuento: 2 columnas de 10,9 M de filas | 0,04 sprimera vez 0,05 s · 0,1 GB | 0,03 sprimera vez 0,04 s · 0,1 GB | 0,03 sprimera vez 0,04 s · 0,1 GB |
| PLACSP: la última versión de cada licitación, calculada sin la marcaVentana por id sobre 10,9 M de filas (ordenar y memoria): tiene que dar lo mismo que la anterior | 2,3 sprimera vez 2,3 s · 1,5 GB | 1,2 sprimera vez 1,2 s · 1,6 GB | 0,77 sprimera vez 0,83 s · 1,8 GB |
| PLACSP: licitaciones con una palabra en el objetoILIKE sobre el texto del objeto: la columna más pesada de la tabla | 2,5 sprimera vez 2,9 s · 0,2 GB | 1,3 sprimera vez 1,7 s · 0,2 GB | 0,92 sprimera vez 1,3 s · 0,2 GB |
| PLACSP: adjudicaciones de un NIFBúsqueda de un valor sin índice: recorre la columna entera de 10,7 M de filas | 0,52 sprimera vez 0,88 s · 0,2 GB | 0,32 sprimera vez 0,65 s · 0,2 GB | 0,25 sprimera vez 0,57 s · 0,2 GB |
| PLACSP: los 20 adjudicatarios con más licitaciones, sin duplicadosVentana y agrupación por NIF normalizado de 5,9 M de lotes (última versión, topes repartidos) | 3,2 sprimera vez 3,2 s · 2,2 GB | 1,8 sprimera vez 1,9 s · 2,2 GB | 1,4 sprimera vez 1,5 s · 2,5 GB |
| PLACSP: lo adjudicado por comunidad (cruce de resultados y licitaciones)JOIN de 5,9 M de lotes con 5,2 M de licitaciones por id y fecha_updated, y dos agregaciones | 1,9 sprimera vez 2,0 s · 1,9 GB | 1,00 sprimera vez 1,1 s · 2,0 GB | 0,78 sprimera vez 0,87 s · 2,3 GB |
| TED: avisos de adjudicación por año, cada aviso una vezÚltima versión de cada aviso sin los cancelados (avisos_para_cruce) sobre 0,86 M de filas | 0,12 sprimera vez 0,14 s · 0,3 GB | 0,11 sprimera vez 0,12 s · 0,4 GB | 0,08 sprimera vez 0,10 s · 0,4 GB |
| Comunidad de Madrid: contratos menores por año, sin contar dos veces el mismoTexto a número y a año, quitar versiones anteriores y repetidos (DISTINCT de 10 columnas) en 4,9 M de filas | 6,9 sprimera vez 7,4 s · 3,4 GB | 2,0 sprimera vez 2,2 s · 5,5 GB | 1,4 sprimera vez 1,5 s · 6,1 GB |
| Catalunya (PSCP): los 20 adjudicatarios con más contratos menoresVentana por publicación (fase vigente) y agregación por NIF en 2,1 M de filas | 1,2 sprimera vez 1,2 s · 0,2 GB | 1,2 sprimera vez 1,2 s · 0,3 GB | 1,1 sprimera vez 1,1 s · 0,4 GB |
| BORME: constituciones de sociedades por añoPartir la lista de actos de 9,6 M de inscripciones y agregar | 0,08 sprimera vez 0,08 s · 0,1 GB | 0,05 sprimera vez 0,06 s · 0,1 GB | 0,04 sprimera vez 0,04 s · 0,1 GB |
| BORME: las 20 sociedades con más nombramientos de cargosAgrupación con recuento de distintos sobre 17,8 M de cargos | 2,0 sprimera vez 2,1 s · 1,4 GB | 1,0 sprimera vez 1,1 s · 1,7 GB | 0,69 sprimera vez 0,74 s · 1,9 GB |
Las mismas cuentas con pandas, leyendo con pyarrow solo las columnas que hacen falta: dan el mismo resultado que DuckDB, pero cargan las tablas en memoria.
| Consulta con pandas | 2 CPU · 4 GB | 4 CPU · 8 GB | 8 CPU · 16 GB |
|---|---|---|---|
| PLACSP: licitaciones por año, la última versión de cada una | 0,11 sprimera vez 0,28 s · 0,4 GB | 0,09 sprimera vez 0,26 s · 0,5 GB | 0,07 sprimera vez 0,25 s · 0,6 GB |
| PLACSP: los 20 adjudicatarios con más licitaciones, sin duplicados | 7,6 sprimera vez 14 s · 3,3 GB | 7,7 sprimera vez 12 s · 3,5 GB | 7,4 sprimera vez 12 s · 3,8 GB |
| PLACSP: lo adjudicado por comunidad (cruce de resultados y licitaciones) | No cabe en la memoria | 12 sprimera vez 16 s · 4,7 GB | 12 sprimera vez 16 s · 5,0 GB |
| TED: avisos de adjudicación por año, cada aviso una vez | 10 sprimera vez 10 s · 0,6 GB | 10 sprimera vez 10 s · 0,7 GB | 11 sprimera vez 10 s · 0,7 GB |
| BORME: constituciones de sociedades por año | 1,3 sprimera vez 1,7 s · 1,7 GB | 1,4 sprimera vez 3,5 s · 1,7 GB | 1,2 sprimera vez 1,5 s · 1,7 GB |
En negrita, la mediana de 3 repeticiones; debajo, la primera vez en un proceso nuevo y el pico de memoria del proceso. Las tres máquinas son la misma (Intel Core i9-13900) con límites de CPU y de memoria, sin intercambio a disco, y los ficheros ya en la caché de disco del sistema: desde un disco lento, la primera lectura tarda más. Cómo se midió, qué cuenta cada consulta y los resultados completos, en docs/MEDIR.md del repositorio.
Mídelo en tu máquina, con los ZIP del release descomprimidos en una carpeta:
pip install duckdb pandas pyarrow
# Solo el código: sin GIT_LFS_SKIP_SMUDGE=1, Git LFS bajaría 6,8 GB de datos antiguos
GIT_LFS_SKIP_SMUDGE=1 git clone --depth 1 https://github.com/BquantFinance/licitaciones-espana
cd licitaciones-espana
# CARPETA: los ZIP descomprimidos, cada uno en su carpeta o todos en la misma
python scripts/medir_consultas.py --datos CARPETA --motor ambos --json mi_maquina.json
Sumar como la web: la descarga de una ficha
Las descargas de la web sí llevan las marcas. En la ficha de una empresa o de un órgano, con «Todas las
fuentes», «Descargar CSV» baja todas sus publicaciones (hasta 10.000),
cada una con unidad (una adjudicación, una prórroga, un pago…), es_copia (si es copia de otra
publicación) e imp_adj_eur_corregido (el importe que cuenta en las sumas, vacío si no cuenta). Con las tres
reglas de la web, estas líneas dan las dos cifras de la ficha sin duplicados: sus contratos y su importe total. Por ejemplo,
con la ficha de ASISA:
import duckdb # pip install duckdb
duckdb.sql("""
SELECT count(*) AS contratos, sum(imp_adj_eur_corregido) AS importe
FROM read_csv('buscalicitaciones-empresa-a08169294.csv', delim = ';', decimal_separator = ',')
WHERE unidad = 'adjudicacion' -- adjudicaciones: sin prórrogas, pagos ni desiertos
AND es_copia = 'no' -- cada contrato una vez: sin sus copias
AND (imp_adj_eur_corregido IS NULL -- el importe que cuenta, sin los de más de 1.000 M€
OR abs(imp_adj_eur_corregido) <= 1e9)
""").show()
import pandas as pd
df = pd.read_csv('buscalicitaciones-empresa-a08169294.csv', sep=';', decimal=',', encoding='utf-8-sig')
importe = df['imp_adj_eur_corregido'] # el importe que cuenta: vacío si no cuenta
cuenta = ((df['unidad'] == 'adjudicacion') # adjudicaciones: sin prórrogas, pagos ni desiertos
& (df['es_copia'] == 'no') # cada contrato una vez: sin sus copias
& ~(importe.abs() > 1e9)) # sin los de más de 1.000 M€
print(f'{cuenta.sum():,} contratos y {importe[cuenta].sum():,.2f} €')
Las sumas mezclan importes con y sin IVA, como en la web (sección 6). Las rutas de cada fichero del release, en el README del repositorio.