Saltar al contenido

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.

ContratosLas publicaciones que sirve la web, de todas las fuentes (la vista «Todas las fuentes»): un contrato publicado en dos fuentes cuenta en las dos. Sin duplicados, 20.798.737 contratos (sección 3).
27.464.738
FuentesPlataformas de contratación con datos en esta versión: la estatal, la europea, las autonómicas y las de ayuntamientos. Aparte está el BORME, que no tiene contratos.
23
Comunidades con fuenteComunidades autónomas con una plataforma propia en la web. Las demás se cubren a través de la PLACSP, por adhesión.
13
Fuera de las sumasContratos que se enseñan con el importe publicado pero no cuentan en las sumas: inverosímiles, importes repetidos, que no cuadran con su aviso, copias de otra fuente o de más de 1.000 M€.
212.707

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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)

Comparación de las fuentes catalanas
FuenteContratosCon NIF del adjudicatarioEmpresas distintasImporte totalPeriodo
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

  1. dD BioLab, SLU 34.870 contratos
  2. VWR International Eurolab, S.L. 30.594 contratos
  3. SUDELAB SL 28.288 contratos
  4. Atlántida Tours Viatges, SA 15.428 contratos
  5. Vwr iNTERNATIONAL Eurolab, SLU 13.667 contratos

PLACSP (ccaa=CT)

  1. servicios microinformática, sa 1.362 contratos
  2. Moncobra, SA 1.053 contratos
  3. medtronic iberica, sa 957 contratos
  4. Aparells ortopedics curto sl 922 contratos
  5. 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).

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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.

Buscar sus contratos Ver sus empresas en el explorador

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

  1. Descarga: los PDF de boe.es desde 2009 (126.462 en el release v2026.10), con borme_scraper.py --start 2009-01-01.
  2. Lectura: extrae los actos mercantiles (constituciones, cargos…) de los PDF, con borme_batch_parser.py --workers 8. Genera borme_empresas.parquet y borme_cargos.parquet, privados porque llevan nombres reales.
  3. Seudonimización: sustituye el nombre de cada persona por su código, con borme_anonymize.py. Resultado: borme_empresas_pub.parquet y borme_cargos_pub.parquet.
  4. 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.

Cobertura por fuente
FuenteContratosPeriodoCon NIF del adjudicatarioCon importeFuera de las sumas
Plataforma estatal (PLACSP) 5.968.87121,7 % del total 1992–2026 91,8 % 93,5 % 40.812
Comunidad de Madrid 4.869.46917,7 % del total 2003–2026 99,7 % 100,0 % 600
Catalunya (Registre)Sin NIF en origen: no está en el explorador 4.511.79116,4 % del total 1998–2026 0,0 % 62,8 % 3
Catalunya (PSCP) 2.080.2927,6 % del total 1997–2026 81,0 % 96,4 % 5
Galicia 1.849.6836,7 % del total 2007–2026 97,0 % 97,1 % 0
C. Valenciana (menores) 1.322.1934,8 % del total 2008–2026 37,1 % 99,9 % 0
Región de Murcia 1.002.4963,7 % del total 2014–2025 94,4 % 100,0 % 0
Catalunya (Generalitat)Sin NIF en origen: no está en el explorador 940.4523,4 % del total 2020–2024 0,0 % 100,0 % 0
Andalucía 922.5183,4 % del total 2000–2026 97,2 % 98,7 % 4
País Vasco 738.6132,7 % del total 1991–2026 83,8 % 98,8 % 538
DOUE (TED) 683.2112,5 % del total 1997–2026 43,1 % 84,1 % 28.423
Castilla-La Mancha 427.3721,6 % del total 2016–2026 96,2 % 100,0 % 0
Asturias 375.3801,4 % del total 2017–2025 99,8 % 100,0 % 0
La Rioja 351.7601,3 % del total 2018–2026 91,9 % 100,0 % 0
C. Valenciana (REGCON) 276.3291,0 % del total 2001–2026 88,9 % 100,0 % 0
Extremadura 213.0130,8 % del total 2001–2026 99,9 % 100,0 % 1
Barcelona (menores) 185.9250,7 % del total 2012–2026 62,4 % 99,9 % 0
Castilla y León 172.1710,6 % del total 2017–2026 99,6 % 99,4 % 4
Catalunya (menores)Sin NIF en origen: no está en el explorador 171.2950,6 % del total sin fecha 0,0 % 83,1 % 142.293
Aragón 142.6440,5 % del total 2009–2025 16,3 % 99,8 % 2
Ayuntamiento de Madrid 131.1820,5 % del total 1997–2026 99,4 % 93,2 % 0
Ayuntamientos (menores) 122.5110,4 % del total 2015–2026 63,8 % 99,1 % 22
Catalunya (emergencia COVID)Sin NIF en origen: no está en el explorador 5.567<0,1 % del total 2019–2020 0,0 % 100,0 % 0
Todas las fuentescon los duplicados entre fuentes (sección 3) 27.464.738 — 69,7 % 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í.
Sin duplicados
20.798.737contratos, 1,11 billones €
Todas las fuentes
27.464.738publicaciones, 1,79 billones €
Copias
3.366.022publicaciones que no cuentan sin duplicados

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.

Contratos SARA en la PLACSP
442.835
Encontrados en el TED
177.89240,2 % del total
Sin anuncio encontrado
202.383con confianza alta

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).

Umbrales SARA por bienio
BienioObrasServicios (AGE)Servicios (resto)Sectores especiales
2016-20175.225.000 €135.000 €209.000 €418.000 €
2018-20195.548.000 €144.000 €221.000 €443.000 €
2020-20215.350.000 €139.000 €214.000 €428.000 €
2022-20235.382.000 €140.000 €215.000 €431.000 €
2024-20255.538.000 €143.000 €221.000 €443.000 €
2026-2027vigente5.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.

Criterios del cruce entre la PLACSP y el TED
CriterioCoincidencias% del total
E1 · NIF del adjudicatario, importe ±10 % y año ±143.0639,7 %
E2 · Número de expediente e importe ±10 %7.8911,8 %
E3 · NIF del órgano de contratación e importe77.81617,6 %
E4 · Lotes agrupados (suma de importes del mismo órgano y año)31.3657,1 %
E5 · Nombre normalizado del órgano e importe17.7574,0 %

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:

Contratos SARA encontrados en el TED por año
AñoContratos SARAEncontrados en el TED% encontrado
201610.9482.64324,1 %
201717.3606.53237,6 %
201832.60514.72045,1 %
201942.95114.18233,0 %
2020TED de v2026.02 sin importes: error nuestro40.6939.21422,6 %
2021TED de v2026.02 sin importes: error nuestro47.9717.47215,6 %
202256.64922.25039,3 %
202360.51831.82952,6 %
2024el máximo59.11438.21664,6 %
202548.27626.92055,8 %

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):

Órganos con más contratos SARA sin anuncio encontrado en el TED
ÓrganoSin anuncio encontrado
Servicio Andaluz de Salud (SAS)4.833
FREMAP2.410
IB-Salut (Baleares)1.957
Institut Català de la Salut (ICS)1.316
SERGAS (Galicia)1.291

PLACSP 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.

  1. Empresa recién creada

    Constituida menos de 6 meses antes de la adjudicación.

  2. Capital muy bajo

    Capital social de menos de 10.000 € con contratos de más de 100.000 €.

  3. Administradores compartidos

    El mismo código de persona administra empresas competidoras (el código sale del nombre: dos personas que se llaman igual cuentan como una).

  4. Disolución tras la adjudicación

    Disuelta menos de 12 meses después de cobrar.

  5. 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).

Licitaciones evaluadas
4,7 millonesla última versión de cada una
Indicadores
14con cifra corregida, de los 20 del fichero
Filas del fichero de v2026.02
8,7 millonestodas las versiones de cada licitación

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.

Porcentaje de licitaciones que no pasan cada indicador de calidad
IndicadorNo lo pasan
INT-VAL-01Importe de licitación en formato válido. En el fichero de v2026.02: 22,6 %0,8 %
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 %5,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 %12,3 %
INT-VAL-09Código CPV válido (la ley no lo exige en los contratos menores). En el fichero de v2026.02: 23,3 %41,4 %
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 %7,8 %
INT-VAL-14Contrato menor coherente con la cuantía (LCSP, art. 118). En el fichero de v2026.02: 1,3 %0,5 %
INT-CONS-01Si hay adjudicación, al menos una oferta. En el fichero de v2026.02: 1,1 %1,4 %
INT-CONS-08Adjudicación no mayor que la licitación (+5 %). En el fichero de v2026.02: 0,3 %0,4 %
INT-CONS-18El adjudicatario está en el BORME (cruce por nombre). En el fichero de v2026.02: 51,3 %52,4 %
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 %0,7 %
INT-FIA-04Plazo de presentación de ofertas razonable (0-365 días). En el fichero de v2026.02: 21,3 %21,8 %
INT-FIA-08Presupuesto base no atípico (hasta 50 M€). En el fichero de v2026.02: 0,4 %0,0 %
INT-FIA-09Precio de adjudicación plausible por segmento CPV (P1-P99). En el fichero de v2026.02: 0,8 %1,2 %

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):

Calidad de los contratos menores y de los regulares
IndicadorMenoresRegularesDiferencia
NIF del adjudicatario no válido2,7 %18,6 %−16,0 pp
Sin CPV60,6 %1,2 %+59,3 pp
Sin fecha de adjudicación0,6 %36,9 %−36,3 pp
Sin importe de licitación0,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).

Derivados de la LCSP y la LTAIBG. Cada incumplimiento resta un 10 % a la puntuación final del organismo.

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 Formato y plausibilidad de cada campo. De INT-VAL-01 a INT-VAL-14. 14 indicadores
  1. INT-VAL-01

    Importe de licitación en formato válido

    Comprueba que el importe de licitación sea un número interpretable

  2. INT-VAL-02

    Importe de adjudicación en formato válido

    Comprueba que el importe adjudicado esté expresado como cantidad numérica

  3. INT-VAL-03

    Importe mínimo plausible

    Comprueba que el importe no sea 0, negativo o absurdamente bajo para ser interpretable

  4. INT-VAL-04

    Número de licitadores es entero

    Comprueba que el número de licitadores sea un entero y no texto libre

  5. INT-VAL-05

    Número de licitadores no negativo

    Comprueba que el número de licitadores sea ≥ 0

  6. INT-VAL-06

    Fecha de publicación en formato válido

    Comprueba que la fecha exista y tenga formato de fecha correcto

  7. INT-VAL-07

    Fecha de adjudicación en formato válido

    Comprueba que la fecha de adjudicación sea interpretable como fecha real

  8. INT-VAL-08

    Fecha de formalización en formato válido

    Comprueba que la fecha de formalización sea interpretable como fecha real

  9. INT-VAL-09

    Código CPV válido

    Comprueba que el código CPV exista y pertenezca al vocabulario oficial

  10. INT-VAL-10

    Código territorial válido

    Comprueba que la localización territorial esté correctamente codificada

  11. INT-VAL-11

    Información de subcontratación normalizada

    Comprueba que el campo de subcontratación use códigos/categorías válidas

  12. 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

  13. 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

  14. 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 Coherencia entre campos relacionados y entre fuentes. De INT-CONS-01 a INT-CONS-22. 22 indicadores
  1. INT-CONS-01

    Si hay adjudicación, nº de ofertas ≥ 1

    Comprueba que no exista adjudicación sin al menos 1 oferta registrada

  2. INT-CONS-02

    Nº ofertas totales ≥ nº ofertas PYME

    Comprueba que el subconjunto PYME no supere al total

  3. INT-CONS-03

    Si adjudicatario es PYME, nº ofertas PYME ≥ 1

    Comprueba que no se marque ganador PYME si el conteo PYME es 0

  4. INT-CONS-04

    Coherencia cronológica mínima del expediente

    Comprueba el orden lógico de hitos

  5. 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

  6. INT-CONS-06

    CPV coherente con tipo de contrato

    Comprueba que el CPV principal sea compatible con obras/servicios/suministros (regla de mapeo)

  7. INT-CONS-07

    Objeto coherente entre pestañas/secciones (PLCSP)

    Comprueba que el objeto no cambie materialmente entre secciones del mismo expediente

  8. 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)

  9. INT-CONS-09

    Suma de lotes coherente con total del expediente

    Comprueba que el total coincida (con tolerancia) con suma de lotes

  10. INT-CONS-10

    Adjudicatario consistente dentro del expediente

    Comprueba que NIF/nombre no cambie entre pestañas o documentos

  11. 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)

  12. 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)

  13. 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

  14. INT-CONS-14

    Coincidencia de ID/expediente entre PLCSP y portal autonómico

    Comprueba que el expediente sea el “mismo” en ambas fuentes (cruce)

  15. INT-CONS-15

    Coincidencia de objeto entre PLCSP y autonómico

    Comprueba que el objeto no diverja materialmente entre fuentes

  16. INT-CONS-16

    Coincidencia de importes entre PLCSP y autonómico

    Comprueba que los importes clave coincidan (con tolerancia)

  17. INT-CONS-17

    Coincidencia de adjudicatario (NIF) entre PLCSP y autonómico

    Comprueba que el adjudicatario sea el mismo en ambas fuentes

  18. 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

  19. INT-CONS-19

    Consistencia NIF: PLCSP vs ROLECE

    Comprueba que el proveedor esté registrado (si aplica) y el ID sea coherente

  20. INT-CONS-20

    Consistencia de clasificación: tipo/procedimiento PLCSP vs autonómico

    Comprueba que no haya divergencias de clasificación entre fuentes

  21. INT-CONS-21

    Consistencia de fechas (hitos) PLCSP vs autonómico

    Comprueba que no haya cronologías incompatibles entre fuentes

  22. INT-CONS-22

    Consistencia de entidad compradora (órgano) PLCSP vs TED

    Comprueba que la entidad compradora coincida (o se mapee)

Fiabilidad Rangos razonables y duplicados. De INT-FIA-01 a INT-FIA-12. 12 indicadores
  1. 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

  2. INT-FIA-02

    Nº de ofertas PYME dentro de rango razonable

    Que el nº de ofertas PYME sea plausible (y compatible con el total)

  3. INT-FIA-03

    Nº de lotes en rango razonable

    Que el nº de lotes no sea atípico extremo sin justificación

  4. INT-FIA-04

    Plazo de presentación de ofertas razonable

    Que el plazo no sea imposible (negativo) ni absurdo (años)

  5. 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)

  6. 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)

  7. 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

  8. INT-FIA-08

    PBL atípico o inverosímil

    Detectar PBL desorbitados que suelen ser errores de registro (p.ej. basados en acuerdo marco)

  9. 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)

  10. 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)

  11. 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

  12. 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 Lo que no obliga la ley pero mejora la transparencia. De INT-BPP-01 a INT-BPP-14. 14 indicadores
  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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”

  10. 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

  11. 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

  12. 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.

  13. 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

  14. 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.

Contratos sin fecha y con un año imposible, por fuente
FuenteSin fecha% de la fuenteCon un año imposible
Plataforma estatal (PLACSP)00,00 %16
Comunidad de Madrid3.6920,08 %1
Catalunya (Registre)40,00 %39
Catalunya (PSCP)70,00 %23
C. Valenciana (menores)00,00 %1
País Vasco660,01 %17
Asturias70,00 %0
C. Valenciana (REGCON)10,00 %0
Extremadura90,00 %0
Castilla y León6940,40 %0
Catalunya (menores)171.295100,00 %0
Aragón390,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:

Frecuencia de descarga de cada fuente
FuenteDescargaCómo
PLACSPSemanalSindicación ATOM/XML de la plataforma
TEDSemanalAPI 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 MurciaSemanalPortales y datos abiertos de cada comunidad
Cataluña (Registre, PSCP, Generalitat) y BarcelonaSemanalDatos abiertos de la Generalitat y del Ayuntamiento
Comunitat Valenciana (REGCON y menores)SemanalDatos abiertos de la Generalitat, universidades y entidades locales
País VascoSemanalKontratazioA
Ayuntamiento de Madrid y ayuntamientos con datos propiosSemanalFicheros de datos abiertos de cada ayuntamiento
Comunidad de MadridMensualExportación del buscador del portal por ventanas de fecha
GaliciaMensualListados y fichas de contratosdegalicia.gal
Cataluña (menores) y BORMESin actualización periódicaLa 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.parquet existe, 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 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

Ficheros ZIP del release v2026.10
ArchivoContenidoTamaño
nacional_licitaciones_hasta_2019.zipPLACSP, 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 filas426 MB
nacional_licitaciones_2020_2021.zipPLACSP, tabla principal: 2020 y 20211.718.374 filas491 MB
nacional_licitaciones_2022_2023.zipPLACSP, tabla principal: 2022 y 20232.564.085 filas796 MB
nacional_licitaciones_2024_2025.zipPLACSP, tabla principal: 2024 y 20253.036.783 filas1,33 GB
nacional_licitaciones_desde_2026.zipPLACSP, tabla principal: desde 20261.970.904 filas799 MB
nacional_resultados.zipPLACSP: resultados (una fila por lote o empresa adjudicataria)10.677.644 filas800 MB
nacional_adjudicatarios.zipPLACSP: adjudicatarios10.146.626 filas352 MB
nacional_criterios.zipPLACSP: criterios de adjudicación14.571.218 filas695 MB
nacional_lotes_y_otras_tablas.zipPLACSP: lotes, modificaciones, entradas borradas y semilla5.903.920 filas250 MB
ted.zipTED: avisos de adjudicación de España857.017 filas y 5.296.388 de v2026.02, en su carpeta v2026.02/313 MB
andalucia.zipAndalucía: el buscador de los perfiles de contratante de la Junta900.931 filas83 MB
andalucia_menores.zipAndalucí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.zipAragón: registro de contratos, contratos del Gobierno y Ayuntamiento de Zaragoza267.292 filas14 MB
asturias.zipPrincipado de Asturias375.380 filas18 MB
canarias.zipCanarias: 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.zipCastilla-La Mancha: menores de la Junta y de la Universidad, caja pagadora y otras tablas6.945.081 filas176 MB
castilla_leon.zipCastilla y León: contratos de la Junta y de la Gerencia Regional de Salud185.058 filas11 MB
catalunya.zipCataluñ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.zipCataluñ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.zipComunitat 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.zipComunitat Valenciana: menores de universidades, Diputación de Alicante y Ajuntament de València1.882.091 filas59 MB
extremadura.zipExtremadura: registro de contratos221.749 filas8 MB
contratos_galicia.zipGalicia: contratosdegalicia.gal3.697.540 filas y 1.685.789 de v2026.02, en su carpeta v2026.02/100 MB
la_rioja.zipLa Rioja: contratos menores351.203 filas8 MB
comunidad_madrid.zipComunidad de Madrid4.906.068 filas149 MB
murcia.zipRegión de Murcia1.008.568 filas20 MB
euskadi.zipPaís Vasco: KontratazioA2.753.290 filas y 678.385 de v2026.02, en su carpeta v2026.02/423 MB
madrid_ayuntamiento.zipAyuntamiento de Madrid264.174 filas28 MB
municipios.zipContratos menores de ayuntamientos con datos abiertos propios289.747 filas. Valladolid aún no está en la web.18 MB
borme.zipBORME: 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.zipCalidad: 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

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.

Python
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.
Tiempos de consultas típicas con DuckDB en tres máquinas
Consulta2 CPU · 4 GB4 CPU · 8 GB8 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.

Tiempos de las mismas consultas con pandas en tres máquinas
Consulta con pandas2 CPU · 4 GB4 CPU · 8 GB8 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:

Terminal
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:

Python · DuckDB
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()
Python · pandas
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.