# MP1 · Modelo probabilístico ex ante multi-desenlace · pre-registro Ejecutor: MP1 (Opus 5.5) · 26-oct-2026. Se sella (md5 en `DEFINICIONES_MP1.md5`, copia 444 en `.original.md`) **antes** de calcular ninguna variable cruzada con un desenlace, ninguna predicción y ninguna métrica. Lo único medido antes está en `ESTADO.md` (sondas de composición: esquemas, recuentos de resolución por mes, tiempos anuncio→resultado de 2025-S1, tasa base de modificación en años de entrenamiento, recuentos del banco de tribunales y del de cárteles). Las enmiendas van al final (§14), fechadas y rotuladas ANTERIOR (antes de la primera métrica en la ventana de prueba) o POSTERIOR. **Esto es un intento nuevo, no una repetición de E1.** E1 (oferta única ex ante) NO PASÓ (AUC 2025 = 0,6794 < 0,68; calibración 2025 decil 2 −7,1 puntos) y E1c (desierto) tampoco (0,6797). Sus porterías no se mueven: los umbrales de MP1 para (a) y (b) son los de E1/E1c o más exigentes, sobre una población más dura (la parecida a producción) y en un año que E1 no tocó. **Alcance (RUMBO.md aprobado, §7.2-7.3 y §12.1; mensaje del orquestador del 26-oct)**: MP1 es el **vehículo único de lo ex ante** y absorbe la pieza «probabilidad» de E5. Desenlaces: (a) oferta única, (b) desierto, (c) modificación (**solo interno**), (d) recurso contra el pliego (si el banco casa) y (e) licitación en t + 1 de una serie de menores. **Fuera de MP1 por decisión del propietario**: la colusión (sin probabilidad hasta tener ≥ 40 licitaciones de cártel con ofertas por licitador; no se construye el prior jerárquico) y las empresas vinculadas (van en REL1/GRAFO1). El propietario aprobó publicar en En plazo las probabilidades que pasen, plegadas bajo el hecho, con su intervalo y su calibración. Vocabulario: «probabilidad estimada», «desenlace», «indicador». Nunca «fraude», «sospechoso» ni «troceo». Solo órganos y mercados; ninguna empresa ni persona en salidas públicas. ## 1. Datos (solo lectura) - `/unified_20261025` (instantánea del 25-oct-2026) y sus satélites `.identidad` (`organos_filas`, `organos_tipo`), `.criterios`, `.documentos`, `.cpvs`, `.vinculos` (`filas`: `cuenta`) y, **solo para construir la etiqueta (c) y su historial**, `.modificaciones`. - Banco de tribunales (etiqueta d): `/PLIEGOS/banco/casado.jsonl` (casado resolución↔licitación sobre `unified_20261018`), `TRIBUNALES/seleccion_pdfs.jsonl` y `TRIBUNALES//indice.jsonl` (fracciones de muestreo). Solo metadatos (tribunal, sentido, fecha, licitación); ningún texto con modelos. - (e): el módulo de producción `etl/series_licitadas.py` (main b4519bd; series M1r de la PLACSP y de las demás fuentes, etiqueta E0b de «objeto parecido») ejecutado sobre `unified_20261025` desde una copia en `mp1/tmp/` con un único cambio declarado: el año y el corte de la licitación por fecha (§9). Ninguna lectura con modelos. - Código de lectura de lotes y de los comparadores de E1/E1c: `/etl/v2/exante_l1.py` en `main` b4519bd (solo lectura; `paso_entrada`, `paso_lotes`, `paso_historial`, `paso_objetos`, `paso_dataset`, `ajustar`, `predecir`). - Cotejo (§11): ZIP ATOM originales de la PLACSP en `/nacional/zips/` y los textos de las resoluciones del banco de tribunales. Sin red. ## 2. Unidad, población y censura (desenlaces a, b, c) - **Lote** = `x_lotes` de E1 (`paso_lotes`, pre-registro E1 §2 y aclaraciones A1-A5): (feed, `licitacion_id`, `coalesce(lote_id, licitacion_id)`), con `adjudicado`, `desierto` (códigos 3, 6, 7), `desistido`, `num_ofertas` (máximo), `fecha_adj` (mínima) y los atributos del primer `id_canonical` no nulo. - **Población P** (parecida a producción, más dura que la de la aceptación de E1): 1. feed propio (`resultados_licitaciones`) de la PLACSP, procedimientos y exclusiones de E1 §2 (sin basados ni emergencias); 2. **con anuncio previo y plazo**: `fecha_pub` no nula, `fecha_fin_ofertas` no nula, `0 < ffo − fecha_pub ≤ 180` días y (`fecha_adj` nula o `fecha_pub ≤ fecha_adj`) (el `fpub_ok` de E1, aquí solo como **filtro de población**: en producción solo existen anuncios con plazo; E1 midió que los lotes sin anuncio inflaban la AUC); 3. sin copias: fuera el lote si todas sus filas tienen `cuenta = false` en `.vinculos`; 4. **resuelto a tiempo**: adjudicado o desierto (no solo desistido) con `fecha_adj − fecha_pub ≤ 175` días. La regla se aplica igual en entrenamiento, recalibración y prueba, de modo que la censura de la prueba de 2026 (anuncios de enero a abril, ≥ 178 días hasta el 25-oct) es la misma que en los demás años. El estimando publicado es, por tanto, «la probabilidad del desenlace para un lote que se resuelve en ≤ 175 días» (≈ 94 % de los que se resuelven; sondas). Los lotes que no se resuelven nunca (≈ 10-12 % de las licitaciones) quedan fuera, y se declara. - `fecha_adj`, `anio_ref`, `unidad`, `estado` solo definen población, ventana y etiqueta; **nunca una variable** (§4). ## 3. Desenlaces | Id | Desenlace | Universo | y = 1 | |---|---|---|---| | (a) | oferta única | P con `num_ofertas ≥ 1` | `num_ofertas = 1` | | (b) | desierta | P | `desierto AND NOT adjudicado` (E1c: códigos 3, 6, 7 sin adjudicación; desistimientos y renuncias fuera de P) | | (c) | modificación temprana | P adjudicados (algún `adjudicacion`) | alguna fila de `.modificaciones` con `tipo = 'modificacion'` (no prórroga ni «sin nota») casada a uno de los contratos del lote (`contrato_casado = 'uno'` por `id_canonical`) o, si la licitación tiene un solo lote, casada a la licitación; con `fecha_adj ≤ fecha_primera_version ≤ fecha_adj + 365` días | | (d) | recurso estimado contra el pliego | licitaciones del §8 | resolución del banco casada a la licitación con acto `pliegos` y sentido `estimacion` o `estimacion_parcial` | | (e) | licitación en t + 1 | series M1r de menores que acaban en t (§9) | el mismo órgano publica entre el 1-ene y el 24-oct de t + 1 una licitación no menor con objeto parecido (E0b) | (c) es «modificación publicada»: la PLACSP solo tiene lo que el órgano publica; el modelo aprende también quién publica (EXANTE §2.2). Se declara en todo lo que salga. Secundaria de (c), informativa: la misma con cambio de importe ≥ 10 % del adjudicado. ## 4. Variables ex ante (disponibles el día de publicación del anuncio) | Grupo | Variables | Fuente y disponibilidad | |---|---|---| | procedimiento | `proc_nat`, `tram` (categóricas) | anuncio | | objeto | `tipo_contrato`, `cpv_div` (categóricas; `??` si nula), `cpv_n_div` (nº de divisiones del lote o de la licitación en `.cpvs`) | anuncio | | importe | `log_pbl` (PBL del lote o del expediente), `pbl_na`, `log_ve` (valor estimado del expediente), `ve_na`, umbrales `bajo_60k`, `bajo_139k`, `bajo_215k`, `bajo_80k_obras`, `bajo_2M_obras`, `bajo_5M_obras` (E1) | anuncio | | duración y plazo | `dur`, `dur_na`, `plazo` (= ffo − fecha_pub, ya filtrado a 1-180), `plazo_lt15` | anuncio | | lotes | `log_nlotes` (lotes **anunciados**: lotes distintos de la licitación en `.cpvs` con ámbito lote; 1 si no hay), `es_lote` | anuncio | | marcas | `sara`, `sara_na`, `ue` | anuncio | | criterios | `sin_crit`, `n_crit`, `un_solo_crit`, `peso_precio`, `peso_jv`, `peso_jv_gt50` (E1, ámbito expediente) | anuncio (versión publicada; ver limitación) | | pliegos | `pcap`, `ppt` (E1) | anuncio | | órgano | `tipo_organo`, `ccaa`, `mes_pub` (categóricas); `org_nsp` (peso del negociado sin publicidad del órgano, T-3…T-1), `log_org_adj` | identidad / historial | | historial (para cada desenlace h ∈ {ou, des, mod}) | posteriores empíricas (§5) del órgano, del órgano en T-1, del órgano × CPV, del mercado (CPV × procedimiento), del territorio (CCAA × CPV) y de tipo de órgano × CCAA, en logit, y `log(1+n)` de cada nivel | resultados de años **anteriores** al del anuncio T (`anio_ref ≤ T-1`); para `mod`, contratos adjudicados en `≤ T-2` (seguimiento de 12 meses completo antes de T) | **Lista negra (no entra en ninguna variable ni se deriva de ella)**: `num_ofertas` (salvo como etiqueta e historial de años anteriores), `imp_adj_*`, baja, `adjudicatario_*`, `es_pyme`, `ofertas_anormales`, `oferta_min_eur`, `oferta_max_eur`, `fecha_adj`, `fecha_adj_es`, `fecha_formalizacion`, `estado`, `estado_native`, `unidad`, `anio_ref` (salvo ventanas), todo `.modificaciones` del propio lote o posterior a T, `fpub_ok`, `plazo_fable`, `desierto`, `desistido`, `adjudicado`, cualquier resolución de tribunal y, en (e), cualquier licitación o contrato posterior al 31-dic de t. Limitación declarada: criterios, pliegos y fechas son los de la última versión publicada del anuncio (puede incluir correcciones dentro del plazo), como en E1. ## 5. Modelo **5.1 Jerárquico / empirical Bayes** (variables de historial). Para cada desenlace h y nivel ℓ con k éxitos en n casos en su ventana, posterior Beta(k + m_ℓ·π, n − k + m_ℓ·(1 − π)), con π la posterior del nivel padre: mercado ← global (T-3…T-1); CPV ← global; territorio (CCAA × CPV) ← CPV; tipo de órgano × CCAA ← global; órgano (acumulado < T) ← tipo de órgano × CCAA; órgano en T-1 ← órgano; órgano × CPV (acumulado < T) ← órgano. Cada `m_ℓ` se estima por **máxima verosimilitud marginal beta-binomial** (búsqueda en rejilla logarítmica 0,5-2.000 y refinamiento) sobre las celdas-año de los años de entrenamiento, con su π. La variable es `logit` de la media posterior (recortada a [1e-4, 1 − 1e-4]). **5.2 Dos modelos por desenlace (a, b, c)**: - **H**: logística L2 (sklearn `LogisticRegression`, lbfgs, C = 1, `max_iter` 2.000), numéricas estandarizadas con la media y la desviación del entrenamiento, categóricas en indicadores con los niveles de ≥ 30 lotes en entrenamiento (el resto a «otros»; NULL es nivel propio). - **G**: `HistGradientBoostingClassifier` (learning_rate 0,05, max_iter 600, max_leaf_nodes 63, min_samples_leaf 200, l2_regularization 1, early_stopping con validation_fraction 0,1 y n_iter_no_change 30, random_state 20261026), las 7 categóricas como nativas, **monotonía +1** en el logit de las posteriores del propio desenlace (órgano, órgano en T-1, órgano × CPV, mercado, territorio). - **Elección** H o G en la ventana de recalibración por AUC (si |Δ| < 0,002, H). En la prueba solo decide el elegido; el otro se informa. - **Recalibración** del elegido en la ventana de recalibración: isotónica (`IsotonicRegression`, `out_of_bounds = 'clip'`) si esa ventana tiene ≥ 1.000 positivos; si no, Platt (logística de y sobre logit(p)). La probabilidad publicada es la recalibrada; la AUC de aceptación se mide sobre ella (la del bruto se informa). - **Producción** = exactamente lo validado (modelo entrenado en la ventana de entrenamiento + calibrador de la ventana de recalibración); se rehace cada año corriendo las ventanas un año. **5.3 Ventanas** (por `fecha_pub` del lote): | Desenlace | Entrenamiento | Recalibración y elección | Prueba (holdout NUEVO) | |---|---|---|---| | (a), (b) | 2018-01-01…2024-12-31 | 2025-01-01…2025-12-31 | **2026-01-01…2026-04-30** | | (c) | 2019-01-01…2023-12-31 | 2024-01-01…2024-12-31 | **2025-01-01…2025-04-15** | | (d) | 2025-01-01…2025-12-31 | (ninguna: Platt dentro del entrenamiento con validación cruzada 5 por órgano) | **2026-01-01…2026-04-30** | | (e) | series que acaban en t = 2019…2023 | t = 2024 (licitación en 2025) | **t = 2025 (licitación entre el 1-ene y el 24-oct de 2026)** | - 2026 no lo tocó E1 ni E1c (midieron 2023-2025). 2025 lo midieron E1 y E1c para (a) y (b): aquí solo se usa para recalibrar y elegir, **nunca como prueba**. - (c) no puede probarse en 2026 (la modificación en 12 meses no ha tenido tiempo). Su prueba es 2025-01-01…2025-04-15 con adjudicación ≤ 175 días (adjudicada como tarde el 7-oct-2025: 12 meses de seguimiento completos antes del 25-oct-2026). Ningún modelo de modificación a fecha de anuncio se ha probado en 2025 (EXANTE línea 2 probó 2022-2023 con variables de la adjudicación; EJ1 es un hecho por órgano, no una predicción). Se declara. - (e): E-M2/E-M2b midieron series de 2019-2024 (licitación en 2020-2025) como descriptor y lectura, nunca un modelo; la prueba son las series de 2025, que nadie ha medido. Como 2026 solo llega al 25-oct, **en todos los años la etiqueta es «licitación publicada entre el 1-ene y el 24-oct de t + 1»** (misma censura en entrenamiento, recalibración y prueba). - **Anexo B de RUMBO** («≥ 0,68 el último año y ≥ 0,66 el anterior»): el «anterior» es la ventana de recalibración (2025 en a y b; 2024 en c; t = 2024 en e). Para el modelo es fuera de tiempo (entrenado hasta el año previo), pero se usa para elegir H/G y para calibrar; se declara así. ## 6. Comparadores - **B1 «órgano × CPV»** para cada desenlace: la receta `orgcpv_rate` de E1 (k/n del órgano × CPV acumulado < T encogido m = 10 hacia la tasa del órgano, encogida m = 20 hacia la tasa del entrenamiento), sobre los mismos historiales de §4. - **B2 el modelo de E1** (a) y **de E1c** (b): `exante_l1.py` @b4519bd, variante B, entrenado con sus propios lotes de anuncio 2016-2025 (para E1c con la etiqueta cambiada como en `e1c/py/01_medida.py`: 1 desierto, 2 adjudicado), aplicado a los lotes de la prueba casados por (`licitacion_id`, `lote_u`). - **B3 «solo importe»** (c) y (d): logística de una variable (log del valor estimado; si falta, del PBL). ## 7. Métricas (las mismas en las dos implementaciones) - **AUC** de Mann-Whitney con rangos medios (empates ½). **IC 95 %** por bootstrap de órganos (`organo_clave`; los lotes sin órgano, cada uno su propio grupo), 2.000 réplicas, semilla 20261026, percentiles 2,5-97,5. **ΔAUC** emparejada con las mismas réplicas. - **Brier**, **Brier skill** frente a la tasa de la ventana de recalibración, **log-loss** (p recortada a [1e-6, 1 − 1e-6]), **AP** (precisión media, sklearn) en (c) y (d). - **Calibración por deciles**: `pandas.qcut(p, 10, duplicates='drop')`; por decil, media predicha y observada. **Calibración global**: media predicha − tasa observada. **Pendiente**: coeficiente b de `y ~ a + b·logit(p)` (logística sin penalizar, statsmodels `GLM` binomial). - **Cobertura de intervalos** (§7.1). **7.1 Intervalos.** Por caso, intervalo del 90 % de la probabilidad: S = 200 extracciones de las posteriores Beta de los niveles de §5.1 (independientes por nivel, con la media del padre), propagadas por el modelo y el calibrador fijos; en logit, la desviación de cada extracción respecto de la predicción central se multiplica por λ; el intervalo es [q05, q95]. **λ** se fija en la ventana de recalibración (rejilla 0,25…6 en pasos de 0,25) como el menor λ con cobertura ≥ 90 % de las celdas **órgano × CPV con ≥ 10 lotes** de esa ventana, donde el intervalo de la celda es [q05, q95] del recuento simulado Σ Bernoulli(p_i^(s)) (200 extracciones × 20 simulaciones, semilla 20261026). En la prueba, con λ fijo, se mide la cobertura de las celdas de la prueba con ≥ 10 lotes. En (d), sin historiales, el intervalo sale de 50 reajustes por bootstrap de órganos del entrenamiento (informativo, sin prueba de cobertura); en (e) se usa la simulación de las posteriores, sin prueba de cobertura (§12). **7.2 Explicación por caso.** Grupos: historial del órgano (órgano, órgano en T-1, órgano × CPV, NSP, tamaño), mercado y territorio (mercado, territorio, tipo de órgano × CCAA, CPV), objeto (tipo de contrato, CPV), importe y umbrales, procedimiento y tramitación, plazo, duración, lotes, criterios y pliegos, órgano (tipo, CCAA), mes, otros desenlaces (los historiales de los otros dos desenlaces). Con H: contribución al logit = Σ β_j (x_j − media_j) del grupo (exacta: la suma más el logit medio da el logit). Con G: oclusión (el grupo a su valor de referencia del entrenamiento: mediana o moda) y Δp. Se informan las tres de mayor |contribución| con su signo. No es causalidad y así se escribe. **7.3 Deriva** (informativa, no decide): PSI de cada variable numérica (10 tramos por los deciles del entrenamiento) y categórica, y de p, entre entrenamiento y prueba; calibración global por mes de la prueba. Alarmas: PSI ≥ 0,25; mes con |observada − predicha| > 3 puntos en (a) y (b) o O/E fuera de [0,7; 1,4] en (c). ## 8. Desenlace (d): población y pesos - **Licitaciones** (no lotes) de la PLACSP, los dos feeds y también las que siguen sin resultado (tablas `resultados_licitaciones`, `resultados_agregacion` y `licitaciones_sin_resultado`, unidades adjudicación, desierto y `licitacion:sin_resultado`: un pliego anulado a menudo no llega a adjudicarse), vigentes, con órgano de Andalucía (AN, TARCJA), Cataluña (CT, TCCSP), Aragón (AR, TACPA), Canarias (CN, TACPC) o Castilla y León (CL, TARCCYL) y `tipo_organo <> 'age'` (la AGE recurre ante el TACRC), procedimiento de E1, sin basados ni emergencias, **recurribles**: valor estimado del expediente ≥ 100.000 € en servicios y suministros o ≥ 3.000.000 € en obras y concesiones (LCSP art. 44.1; si falta, el PBL), y con `fecha_pub` y fin de ofertas (anuncio con plazo). Una fila por licitación (atributos del primer `id_canonical`). - y = 1 si el banco tiene una resolución casada (`estado = 'casada'`) de esa licitación con acto pliegos y sentido estimación o estimación parcial. Peso de cada positivo = 1 / s, con s = seleccionadas / indexadas de su celda tribunal × sentido × año de la resolución (2026 ≈ 1; TARCJA 2025 < 1). Los negativos pesan 1. Contaminación declarada: estimatorias no seleccionadas o no casadas (≈ 25 %) cuentan como negativos. - Variables: las del anuncio de §4 (sin historiales: el banco empieza en 2023) más el tribunal (CCAA) como categórica. Modelo H con C = 0,1 (pocos positivos); sin G. Sin el filtro de «resuelto a tiempo» de §2. - **«Si el banco casa»**: (d) solo se mide si ≥ 90 % de las licitaciones casadas del banco (sobre `unified_20261018`) se encuentran en la población de `unified_20261025`; si no, NO CONFIRMADA sin medir. - Limitación declarada: cuando un pliego se anula y se vuelve a publicar, la `fecha_pub` y las variables del anuncio pueden ser las de la versión corregida (se vio en la sonda: resoluciones anteriores a la `fecha_pub`). ## 9. Desenlace (e): licitación en t + 1 de una serie de menores - **Unidad**: serie M1r (dos o más menores del mismo órgano, empresa, clase y objeto en 12 meses que juntos pasan del umbral; la del job) cuyo último contrato es de t, de la PLACSP y de las demás fuentes con menores calculables, tal como la construye `series_licitadas.py` (universo sin copias). Una serie es la fila `tipo_unidad = 'serie'`. - **y = 1** si el mismo órgano tiene una licitación no menor con objeto parecido según la etiqueta **E0b** del módulo (Jaro- Winkler ≥ 0,85 con el CPV de 5 dígitos, o ≥ 60 % de los tokens, y los dos primeros tokens del objeto de la serie) cuya primera fecha (`fecha_pub`, o `fecha_adj` si falta) cae entre el 1-ene y el 24-oct de t + 1. **Único cambio frente al módulo**: el año de la licitación es el de esa fecha (no `anio_ref`) y se corta en el 24-oct (censura igual en todos los años). Es «objeto parecido», no «misma necesidad» (pareja a pareja, 48 % según los jueces de E-M2): se declara. - **Variables (conocidas el 31-dic de t)**: de la serie: log de la suma, nº de contratos, suma / umbral, días entre el primero y el último, clase (obras, servicios, suministros), división CPV del primer CPV, fuente, `en_lista`; del órgano: tipo, posterior EB (§5.1) de la tasa de paso de sus series de años ≤ t − 1 (su etiqueta se conoce el 24-oct de t), log de sus licitaciones no menores en t y de sus series en t; del mercado: posterior EB de la tasa de paso por clase × división CPV en t − 3…t − 1. Ninguna licitación ni contrato posterior al 31-dic de t. - Modelos H y G como §5.2 (monotonía +1 en las posteriores de la tasa de paso). Comparadores: B1 = tasa del órgano encogida (m = 20 hacia la de su fuente); B3 = «suma sobre el umbral» (la del BU2). - Uso: **solo para ordenar el bloque de necesidades** (RUMBO §7.2: lo público es el hecho con lista y el descriptor). ## 10. Fuera de MP1 (decisión del propietario, 26-oct) - Colusión: sin probabilidad ni prior hasta ≥ 40 licitaciones de cártel con ofertas por licitador (RUMBO §7.5, §13.2). - Empresas vinculadas (con el órgano o con otra licitadora): REL1 y GRAFO1. ## 11. Cotejo de 30 casos con la ficha original Semilla `mp1-cotejo-30`: 12 lotes de la prueba de (a)/(b) (al menos 3 desiertos), 8 de la prueba de (c) (4 con y = 1), 6 licitaciones de la prueba de (d) (3 con y = 1; si hay menos, todas) y 4 series de la prueba de (e) (2 con y = 1). Contra la entrada ATOM original (ZIP de la PLACSP del año, última versión; sin red): órgano, CPV, procedimiento, tipo, PBL (± 1 €), fecha de publicación, fin de ofertas, nº de lotes, resultado (nº de ofertas; código de resultado); en (c), la modificación (tipo y fecha) si la trae el ATOM; en (d), además, el expediente en el texto de la resolución; en (e), la licitación casada de t + 1 (órgano, objeto y fecha) y un contrato de la serie. Correcto = todo coincide, o la diferencia se explica por una versión posterior. **Pasa con ≥ 28/30.** ## 12. Aceptación por desenlace (prueba; todo sobre la probabilidad publicada) **(a) oferta única** — PASA si todo: (1) AUC ≥ 0,68 en la prueba y ≥ 0,66 en la ventana de recalibración (Anexo B); (2) ΔAUC frente a B1 ≥ 0,015 con LI > 0; (3) ΔAUC frente a B2 (E1) ≥ 0 y Brier ≤ el de B2; (4) calibración: |predicha − observada| ≤ 5 puntos en los deciles 1-9 y ≤ 8 en el 10, global ≤ 2 puntos, pendiente en [0,85; 1,15]; (5) cobertura de celdas en [0,85; 0,95]; (6) test ex ante (estático y dinámico); (7) segunda implementación; (8) cotejo ≥ 28/30. NO PASA si falla (1), (2) o (4). NO CONFIRMADA si solo fallan (3), (5), (7) u (8), o si la prueba tiene < 5.000 lotes. **(b) desierto** — igual que (a) con B2 = E1c. **(c) modificación temprana (solo interno)** — PASA si: (1) AUC ≥ 0,75; (2) AP ≥ 3 × tasa base de la prueba; (3) ΔAUC frente a B1 ≥ 0,03 con LI > 0 y frente a B3 ≥ 0,03 con LI > 0; (4) calibración relativa: O/E global en [0,8; 1,25], pendiente en [0,8; 1,2] y en cada decil |O − E| ≤ 2,58·√(Σ p(1 − p)) + 0,10·E; (5)-(8) como (a). NO PASA si falla (1), (3) o (4). NO CONFIRMADA si solo fallan (2), (5), (7) u (8), o si la prueba tiene < 100 positivos. Pase o no, no se publica (RUMBO §7.2): sirve para priorizar seguimiento. **(d) recurso estimado contra el pliego** — PASA si: (1) AUC ponderada ≥ 0,65 con LI > 0,55; (2) ΔAUC frente a B3 ≥ 0,02 con LI > 0; (3) O/E global (ponderado) en [0,67; 1,5]; (7)-(8). NO PASA si, con potencia, falla (1) o (2). **NO CONFIRMADA** si la prueba tiene < 30 positivos, el entrenamiento < 50, o el banco no casa (§8). **(e) licitación en t + 1** — como (a) (Anexo B), con B1 y B3 de §9 en lugar de B1/B2, y sin (5) (las series no forman celdas comparables). NO CONFIRMADA si la prueba tiene < 300 series con y = 1. **Comunes** — (6) **test ex ante**: estático (las columnas leídas por las variables no contienen ninguna de §4) y dinámico (con todos los desenlaces y columnas de la lista negra de las unidades de la prueba anulados o barajados, las variables de esas unidades no cambian: |Δ| ≤ 1e-9). (7) **segunda implementación** independiente de las métricas, escrita sin leer la primera (otro agente, solo con §7): AUC y pendiente a ≤ 1e-6, Brier y log-loss a ≤ 1e-9, deciles y coberturas idénticos (más estricto que el ± 0,002 del Anexo B). Todas las métricas se informan también **con y sin `avisado`** (hoy ningún anuncio está avisado: n = 0, se dice). ## 13. Qué se publica y qué se entrega - **Orden** (calendario de RUMBO, Anexo A): primero (a) y (b) (primer informe en S2, aceptación o nulo en S3); después (c), (d) y (e). Criterio de muerte de RUMBO: si en dos años cerrados seguidos una probabilidad no pasa, se publica solo el hecho. - **Satélite reproducible** (en `mp1/salidas/`, sin PR en esta fase): por desenlace, el modelo (coeficientes o árbol serializado sin datos personales), el calibrador, λ, el informe JSON (AUC, IC, Brier, deciles, pendiente, cobertura, deriva, con y sin avisados) y la **predicción de producción** para los anuncios en plazo de la instantánea (sin resultado, estado Publicada, fin de ofertas ≥ 25-oct-2026): p, intervalo, las tres variables que más la mueven y el hecho «de N parecidas, X» de E1b al lado. - **Web (propuesta; el propietario ya aprobó el principio)**: solo (a), (b) y, si pasara, (d), en la ficha En plazo, **plegadas bajo el hecho**, como «probabilidad estimada de …» con su intervalo, su calibración medida (tabla por deciles) y la frase fija de RUMBO §7.3. (c) y (e) nunca en público. Nada por empresa. Las entradas del registro de precisión se proponen en `salidas/`, sin editar `precision.json`. ## 14. Enmiendas (ninguna al sellar)