# Observatorio de bajas competidas · metodología del corte

Extracción real: 13-oct-2026 22:22 UTC. Ventana de fechas: 14-oct-2025 inclusive a 14-oct-2026 exclusive; el último día no ha concluido en UTC al extraer. No presentar como trimestre T4 completo, censo nacional ni histórico privado de tenderyou. Fuente primaria: Plataforma de Contratación del Sector Público, base pública TY-LIC del runner; esta base contenía 325.081 expedientes en la lectura de volumen de esta sesión. La app privada, sus 6M y sus años de histórico no se han consultado.

## Unidad, fórmula y selección

Una observación es un elemento de adjudicación de un expediente, identificado por `(id, ord)`, no un expediente ni una empresa. Fórmula: `(1 - importe de adjudicación sin impuestos / presupuesto comparable sin impuestos) × 100`.

El presupuesto procede del lote emparejado por identificador; solo si no hay varios lotes y existe una única adjudicación se usa el presupuesto del expediente. Se excluyen: falta de emparejamiento, presupuesto o importe nulo/no positivo, constitución de acuerdo marco o SDA, varios adjudicatarios del mismo lote, presupuesto menor de 1.000 en las unidades monetarias cargadas, resultado inferior a -10 % o superior a 60 %. Estos límites son filtros de calidad de esta muestra, no reglas jurídicas. Se conservan valores entre -10 % y 0 %: una baja negativa indica adjudicación por encima de ese presupuesto y requiere interpretación, no se convierte en cero.

La base conserva los importes de adjudicación sin impuestos, pero no su código de moneda. No se ha verificado que la moneda del importe adjudicado coincida con la del presupuesto; el umbral de 1.000 no se certifica como homogéneo en euros.

Para «competida» se exigen al menos dos ofertas recibidas y se excluyen contratos basados en acuerdo marco (sistema 3). «Dos ofertas recibidas» no certifica que ambas fueran admitidas. Se incluyen basados en SDA si superan los demás filtros. No estima la baja óptima para ganar ni detecta ofertas anormalmente bajas.

Se usa fecha de adjudicación; cuando falta, la fecha de publicación. La fila nacional incluye 17.372 observaciones con esa sustitución sobre 87.267 (19,91 %); cada celda expone su propio recuento. Esta sustitución puede desplazar adjudicaciones entre periodos. La publicación continua puede revisar expedientes: una reejecución posterior no promete un CSV idéntico aun usando el mismo corte.

## Clasificación y deduplicación

Taxonomía sectorial CPV de TY-LIC/TY-OUT: el prefijo más largo de `00-taxonomia.sql`. CPV del lote cuando existe, del expediente en otro caso. Provincia por NUTS; las celdas sin provincia no se atribuyen arbitrariamente. Una adjudicación puede pertenecer a varios sectores; se deduplica por `(id,ord,sector)` dentro de cada sector y por `(id,ord)` para el nacional. **No sumar sectores para obtener el total nacional.** El nacional comprende adjudicaciones clasificadas en la taxonomía, no las sin CPV mapeado.

Publicación de agregados: n ≥20 adjudicaciones y ≥5 identificadores de adjudicatario distintos no nulos. Se cuentan NIF normalizados internamente; no salen NIF, nombres, IDs ni expedientes del runner. Un NIF enmascarado puede limitar la precisión del conteo de adjudicatarios: no llamar a esta columna «empresas verificadas». El umbral reduce fragilidad y exposición; no garantiza representatividad estadística.

## Resultados y columnas

CSV UTF-8: `bajas-competidas.csv`, 1.475 filas: 1 nacional + 80 sectores + 1.394 sector–provincia. La referencia histórica de 1.413/4.160 celdas del 6-oct usaba otro corte/base y no se traslada al actual. Media, mediana y percentiles 25/75 en puntos porcentuales, redondeados a dos decimales; p25/p75 describen dispersión, no un intervalo de confianza. La media no está ponderada por importe.

`nivel`, `sector`, `provincia`: grupo; `n`: observaciones; `adjudicatarios`: identificadores distintos; `fecha_publicacion_sustituida`: falta fecha de adjudicación; `media_pct`, `mediana_pct`, `p25_pct`, `p75_pct`: estadísticos; `desde_incluido`, `hasta_excluido`: corte. Sector/provincia son slugs de la taxonomía existente, no nuevos catálogos Norte.

## Procedencia, reproducción y licencia

`procedencia.json` fija SHA-256 del CSV y de cada SQL usado. `herramientas/exportar-observatorio.py` envía los SQL al runner en una sesión con tablas TEMP y transacción finalizada en rollback; no cambia las tablas fuente. Solo exporta agregados. Los interruptores se leyeron antes: `licitaciones` no es tabla apagada. Duración observada ~4 minutos; timeout de consultas 180 segundos y del conjunto 600 segundos.

Fuentes: [catálogo oficial PLACSP](https://datos.gob.es/catalogo/e05250001-licitaciones-publicadas-en-los-perfiles-del-contratante-ubicados-en-la-plataforma-de-contratacion-del-sector-publico-excluyendo-los-contratos-menores), [condiciones de reutilización](https://www.hacienda.gob.es/es-ES/Paginas/Avisolegal.aspx). Mantener atribución y fecha, no sugerir aval oficial ni relicenciar como CC0. Este subconjunto no sirve para publicar un informe de contratos menores: el universo tiene exclusiones y no se ha validado su cobertura de menores. Fuente y licencia reflejan el patrón ya implementado en `licitaciones/sitio/lib/seo/metadatos.mjs:29` (base baad54ad86).
