{
 "cementerios": [
  {
   "criterios": {
    "exceso_tienes_t≥1": true,
    "traspasos≤8": true,
    "vs_rasgo_cartera": false,
    "vs_rasgo_ic": true
   },
   "estado": "cementerio",
   "ficha": {
    "arranque": {
     "criterio_bate_train": "modelo bate a amplitud sola en exceso de cartera Y en IC (t NW ≥ 1 de la diferencia); exceso vs tienes t ≥ 1; ≤ 8 traspasos/año",
     "holdout": [
      "2020-01-01",
      "último mes con NAV completo"
     ],
     "mejor_rasgo": "amplitud",
     "subperiodos_train": [
      [
       "2004-01",
       "2009-12"
      ],
      [
       "2010-01",
       "2019-12"
      ]
     ],
     "train": [
      "2004-01-01",
      "2019-12-01"
     ],
     "train_resultado": {
      "bate_train": false,
      "conjunto": [
       "amplitud",
       "tono",
       "momentum",
       "revisiones"
      ],
      "criterios": {
       "exceso_tienes_t≥1": true,
       "traspasos≤8": true,
       "vs_rasgo_cartera": false,
       "vs_rasgo_ic": true
      },
      "dsr": 0.74,
      "exceso_podrias_pb_mes": 9.11,
      "exceso_podrias_t": 1.19,
      "exceso_tienes_pb_mes": 6.42,
      "exceso_tienes_t": 1.52,
      "gemelo_exceso_tienes_pb_mes": 9.52,
      "ic_amplitud": 65.18,
      "ic_amplitud_t": 2.14,
      "ic_barajado_p": 0.0,
      "ic_modelo": 92.47,
      "ic_modelo_t": 2.83,
      "max_dd": 0.49,
      "mejor_rasgo_exceso_tienes_pb_mes": 7.41,
      "meses": 192,
      "modelo": "suma",
      "modelo_vs_gemelo_t": -0.72,
      "modelo_vs_rasgo_cartera_t": -0.22,
      "modelo_vs_rasgo_ic_t": 1.02,
      "pbo": 0.71,
      "periodo": [
       "2004-01",
       "2019-12"
      ],
      "traspasos_ano": 2.06
     },
     "variantes_caza": 12,
     "variantes_propias": "top ∈ {2,3} × {suma, ridge} × 4 conjuntos = 16"
    },
    "banda": {
     "abs": 0.05,
     "histeresis": "una top sale si su puesto > 5 de 9",
     "revision": "meses (3, 6, 9, 12)"
    },
    "benchmark_podrias": "EUCA000555 Global Large-Cap Blend Equity (lo barato y sencillo), comprado y mantenido",
    "benchmark_tienes": "EW de las 9 categorías sectoriales con los mismos costes y banda (motor.control_ew)",
    "cadencia_max": {
     "traspasos_ano": 8,
     "traspasos_mes": 2
    },
    "control": "EW de las 9 con la misma banda y tránsito",
    "costes": {
     "fondos": "0 comisión; tránsito 3/21 del retorno del mes sobre la fracción comprada (traspaso de fondos en España)"
    },
    "estado": "pre-registrada",
    "fuentes": {
     "funds.category_nav_history": "2026-08-28",
     "smartmoney.insider_trades_enriched": "2026-09-01",
     "smartmoney.market_news": "2026-09-01",
     "stocks.analyst_ratings": "2026-10-05",
     "stocks.earnings_surprises": "2027-02-09"
    },
    "gemelo": "la misma cartera (top-2 al doble, trimestral, histéresis) con solo momentum 12-1",
    "id": "C1ROTACIONSECTORIAL",
    "marca": "banco-spellhold-v3",
    "notas": [
     "nóminas ALFRED probadas en la caza (t 0,69): peso cero, no entra",
     "transcripts fuera del tono en v1 (coste de texto y cobertura); solo titulares y descripciones",
     "noticias: cron semanal ⇒ hasta 7 d de retraso en vivo; en el backtest el mes M entra entero",
     "ratings desde 2011-12: antes rango neutro 0,5 (declarado); cobertura ×5 entre train y hoy ⇒ solo fracciones",
     "Energy alimenta EUCA000535 y EUCA000704; Materials alimenta 538 y 704; Utilities no tiene categoría",
     "el fin de mes de la decisión es el último hábil: eventos del fin de semana final entran en el mes (≤ 2 días)",
     "el retorno del mes M no se usa en la decisión de M (convención del motor), aunque en vivo se conoce"
    ],
    "persona": "carhart",
    "que_la_mataria": "exceso vs EW9 ≤ 0 en holdout, o el mejor rasgo solo (amplitud) lo iguala en holdout (t de la diferencia < 0), o 4 semestres seguidos en vivo por debajo de EW9",
    "semilla": 0,
    "senal": {
     "base": [
      "amplitud",
      "tono",
      "momentum"
     ],
     "cadencia": "decisión al cierre de los meses (3, 6, 9, 12) con eventos ≤ M y retornos ≤ M−1; pesos cobran M+1",
     "candidatos": [
      "revisiones",
      "npr"
     ],
     "casamiento_sector_categoria": {
      "Communication Services": [
       "EUCA000533"
      ],
      "Consumer Discretionary": [
       "EUCA000534"
      ],
      "Consumer Non-Cyclicals": [
       "EUCA000534"
      ],
      "Consumer Staples": [
       "EUCA000534"
      ],
      "Energy": [
       "EUCA000535",
       "EUCA000704"
      ],
      "Financials": [
       "EUCA000536"
      ],
      "Healthcare": [
       "EUCA000537"
      ],
      "Industrials": [
       "EUCA000538"
      ],
      "Materials": [
       "EUCA000538",
       "EUCA000704"
      ],
      "Real Estate": [
       "EUCA000541"
      ],
      "Technology": [
       "EUCA000542"
      ]
     },
     "conjunto": [
      "amplitud",
      "tono",
      "momentum",
      "revisiones"
     ],
     "modelo": "suma",
     "n_lexico": {
      "negativo": 30,
      "positivo": 24
     },
     "rango": "transversal entre las 9 categorías cada mes, NaN → 0,5",
     "rasgos": {
      "amplitud": "Σ n_baten / Σ n_empresas de las sorpresas de beneficios de 3 meses, acciones US del sector (≥ 5 empresas)",
      "momentum": "retorno 12-1 de la propia categoría (meses M−11..M−1)",
      "npr": "(compradores − vendedores)/(compradores + vendedores) de insiders en 3 meses (≥ 5)",
      "revisiones": "(Σ pt_sube − Σ pt_baja) / Σ n de analyst_ratings en 3 meses (≥ 10); desde 2011-12",
      "tono": "share_pos − share_neg de noticias (título+descripción, léxico sellado) de 3 meses (≥ 10 noticias)"
     },
     "regla_candidatos": "entra si en train su IC tiene media > 0 y t NW ≥ 1.0; si no, peso 0 declarado",
     "regla_modelo": "ridge (coef ≥ 0, expansivo, reajuste anual, ≥ 60 meses) solo si bate a la suma de rangos en IC y spread con t ≥ 1; si no, suma",
     "sector": "el de hoy (tracker.stock_catalog), no PIT",
     "sha_lexico": "c019bbe3205d7b604233b5632793e1a55c4dd5e81b9ea4a39d5bbc62655196d2"
    },
    "tipo": "cartera",
    "universo": {
     "categorias": [
      "EUCA000533",
      "EUCA000534",
      "EUCA000535",
      "EUCA000536",
      "EUCA000537",
      "EUCA000538",
      "EUCA000541",
      "EUCA000542",
      "EUCA000704"
     ],
     "supervivencia_rasgos": "acciones US de hoy (catálogo, scraper de insiders): las series de rasgos son de supervivientes; declarado",
     "supervivencia_vehiculo": "índices de categoría: no superviviente",
     "vehiculo": "índices Morningstar de 9 categorías sectoriales EUR (funds.category_nav_history), replicables con un fondo de cada categoría"
    },
    "version": "v1"
   },
   "id": "BQ-CEMENTERIO-C1ROTACIONSECTORIAL-v1",
   "llano": {
    "cifra": "modelo frente al mejor rasgo aislado: t = −0,22 (hacía falta t ≥ 1)",
    "idea": "Rotar entre sectores americanos mezclando tres pistas: amplitud del mercado, tono de las noticias e impulso de precio",
    "que_paso": "En dieciséis años (2004-2019) la mezcla ganaba 6,4 puntos básicos al mes al reparto igual entre sectores; el mejor de sus tres ingredientes solo, 7,4. Juntar pistas no aportó nada sobre la mejor de ellas, y ese era el criterio escrito de antemano."
   },
   "marca": "banco-spellhold-v3",
   "motivo": "train NO bate al mejor rasgo aislado (criterio pre-registrado): no se sella",
   "publicado": "2026-09-02T10:44:19+00:00",
   "resumen_train": {
    "bate_train": false,
    "conjunto": [
     "amplitud",
     "tono",
     "momentum",
     "revisiones"
    ],
    "criterios": {
     "exceso_tienes_t≥1": true,
     "traspasos≤8": true,
     "vs_rasgo_cartera": false,
     "vs_rasgo_ic": true
    },
    "dsr": 0.74,
    "exceso_podrias_pb_mes": 9.11,
    "exceso_podrias_t": 1.19,
    "exceso_tienes_pb_mes": 6.42,
    "exceso_tienes_t": 1.52,
    "gemelo_exceso_tienes_pb_mes": 9.52,
    "ic_amplitud": 65.18,
    "ic_amplitud_t": 2.14,
    "ic_barajado_p": 0.0,
    "ic_modelo": 92.47,
    "ic_modelo_t": 2.83,
    "max_dd": 0.49,
    "mejor_rasgo_exceso_tienes_pb_mes": 7.41,
    "meses": 192,
    "modelo": "suma",
    "modelo_vs_gemelo_t": -0.72,
    "modelo_vs_rasgo_cartera_t": -0.22,
    "modelo_vs_rasgo_ic_t": 1.02,
    "pbo": 0.71,
    "periodo": [
     "2004-01",
     "2019-12"
    ],
    "traspasos_ano": 2.06
   },
   "sha256_ficha": "6feb79c6cbe6eff28852ac17ff5f8d4ae4a56602e0b73a23acaea29286cfe9fd",
   "sha256_train": "5b1924383008508a0cf985a107e864617e7cea9de57aa2d1bd3dc96f0b17625e"
  },
  {
   "criterios": {
    "exceso_tienes_t≥1": true,
    "promesa_q1_t≤−1": true,
    "vs_rasgo_cartera": false,
    "vs_rasgo_ic": false
   },
   "estado": "cementerio",
   "ficha": {
    "arranque": {
     "control_barajado": "200 permutaciones de S dentro de cada categoría-revisión, semilla 0",
     "criterio_bate_train": "Q5 modelo bate a Q5 comisión sola en exceso (t NW ≥ 1 de la diferencia) Y en IC12 (t ≥ 1 por revisión); exceso vs tienes t ≥ 1; Q1 vs mediano < 0 con t ≤ −1",
     "holdout": [
      "2020-01",
      "último mes con NAV y categoría"
     ],
     "mejor_rasgo": "menos_ogc",
     "subperiodos_train": [
      [
       "2003-01",
       "2010-12"
      ],
      [
       "2011-01",
       "2019-12"
      ]
     ],
     "train": [
      "2003-01",
      "2019-12"
     ],
     "train_resultado": {
      "bate_train": false,
      "criterios": {
       "exceso_tienes_t≥1": true,
       "promesa_q1_t≤−1": true,
       "vs_rasgo_cartera": false,
       "vs_rasgo_ic": false
      },
      "dsr": 0.93,
      "exceso_podrias_pb_mes": 4.7,
      "exceso_podrias_t": 2.3,
      "exceso_tienes_pb_mes": 4.64,
      "exceso_tienes_t": 3.91,
      "gemelo_exceso_tienes_pb_mes": 2.51,
      "hgb_asciende": false,
      "ic_barajado_p": 0.0,
      "ic_comision": 186.64,
      "ic_comision_t": 10.97,
      "ic_gemelo": 179.78,
      "ic_modelo": 190.71,
      "ic_modelo_t": 5.92,
      "max_dd": 0.33,
      "mejor_rasgo_exceso_tienes_pb_mes": 4.1,
      "meses": 204,
      "modelo": "suma",
      "modelo_vs_gemelo_cartera_t": 1.19,
      "modelo_vs_rasgo_cartera_t": 0.42,
      "modelo_vs_rasgo_ic_t": 0.17,
      "pbo": 0.52,
      "periodo": [
       "2003-01",
       "2019-12"
      ],
      "q1_vs_control_pb_mes": -5.59,
      "q1_vs_control_t": -2.78,
      "revisiones": 17,
      "rotacion_ano": 0.49,
      "sin_q1_vs_tienes_pb_mes": 1.26,
      "sin_q1_vs_tienes_t": 2.88
     },
     "variante_elegida": "quintil_S_anual",
     "variantes_caza": 10,
     "variantes_propias": [
      "quintil_S_anual",
      "tercil_S_anual",
      "quintil_sin_firma_anual",
      "quintil_sin_ajustes_anual",
      "top1_S_anual",
      "quintil_S_semestral"
     ]
    },
    "banda": {
     "revision": "anual",
     "traspaso": "solo si el fondo cae al cubo inferior o aparece uno ≥ 2 cubos mejor (v1 mide el cubo entero; la histéresis por posición es la capa de C1/C3/C4)"
    },
    "benchmark_podrias": "pasivo accesible más barato de la categoría (fondo índice o ETF EUR con ≥ 12 m de NAV); si la categoría no tiene, la propia categoría sin coste (declarado)",
    "benchmark_tienes": "fondo medio de la categoría (EW de todos los elegibles), EW de categorías",
    "cadencia_max": {
     "traspasos_ano": 1,
     "traspasos_mes": 1
    },
    "control": "fondo mediano de la categoría, EW de categorías",
    "costes": {
     "fondos": "0 comisión de traspaso (España); tránsito 3/21 del retorno del primer mes sobre la fracción traspasada",
     "pasivos": "el mismo tránsito"
    },
    "estado": "pre-registrada",
    "fuentes": {
     "funds.category_nav_history": "2026-08-28",
     "funds.nav_history": "2026-09-01",
     "tracker.fund_catalog": "2026-09-02"
    },
    "gemelo": "el cubo superior por IR 36 m crudo solo (sin shrinkage, coste ni gestora)",
    "id": "C2SELECTORFONDOS",
    "marca": "banco-spellhold-v3",
    "notas": [
     "flujos (factors.fund_catalog_snapshots: 17 semanas desde 2026-05-18) peso cero: no hay historia PIT de OGC ni de categoría",
     "asimetría de captura probada en la caza y descartada (IC 0,014): no entra",
     "la categoría de hoy no es la de entonces: fondos que cambiaron de categoría se miden contra la actual (declarado)",
     "funds.category_nav_history acaba el último hábil disponible: el último mes del holdout es el último con categoría completa",
     "mapa activo/pasivo (share de fondos con IR36 > 0 por categoría, ρ entre revisiones a 5 años) se publica como diagnóstico; en v1 no puntúa",
     "el partícipe aplica C2 en las categorías que tenga: la cifra EW entre categorías es el valor añadido medio por categoría, no una cartera"
    ],
    "persona": "tikhonov",
    "que_la_mataria": "el cubo descartado NO rinde peor que el fondo mediano 3 años seguidos (holdout o vivo); o exceso del cubo superior vs fondo medio ≤ 0 en holdout; o la comisión sola lo iguala en holdout (t de la diferencia < 0)",
    "semilla": 0,
    "senal": {
     "cadencia": "revisión anual con NAV ≤ 31-dic (as_of 1-ene); pesos desde enero; tránsito 3/21 del retorno de enero sobre la fracción traspasada",
     "cubos": "5 cubos por S dentro de categoría; el modelo COMPRA el superior y la promesa es EVITAR el inferior",
     "modelo": "suma",
     "nav": "nivel de fin de mes por fondo: total_return solo si cubre ≥ 95 % de los meses y no queda por debajo del VL (regla D15 del MCP); |r| > 60 % → NaN",
     "puntuacion": "S = r(ir_shr) + r(menos_ogc) + r(ir_firma) − P_beta − P_closet; rangos percentil dentro de categoría, NaN → 0,5",
     "rasgos": {
      "alpha_fdr": "Benjamini-Hochberg q=0.1 sobre t(m̂) por categoría: se cuenta y se declara, no puntúa",
      "beta": "penalización de 1 rango si |β36 − 1| > 0.35",
      "closet": "penalización de 1 rango si TE < 2% anual, activo y OGC > 0.5%",
      "ir_firma": "IR 36 m crudo medio de los OTROS fondos de la misma gestora en el universo de la revisión (leave-one-out)",
      "ir_shr": "IR 36 m vs categoría shrinkeado (empirical Bayes dentro de categoría-revisión: m̂·τ²/(τ²+σ²/T)); mínimo 30 meses",
      "menos_ogc": "−ongoing_charge (tracker.fund_catalog, foto de HOY, no PIT)"
     },
     "regla_modelo": "HGB walk-forward (≥ 5 revisiones, {'max_iter': 200, 'learning_rate': 0.05, 'max_depth': 3, 'min_samples_leaf': 50, 'l2_regularization': 1.0, 'random_state': 0}) sobre ['r_ir_shr', 'r_ir36', 'r_menos_ogc', 'r_ir_firma', 'r_beta', 'r_te', 'r_hit', 'is_index'] solo si bate a la suma en IC12 y en exceso del cubo superior (t ≥ 1); si no, suma",
     "universo_revision": "fondos con ≥ 30 de 36 meses de NAV ≤ 31-dic en categorías con ≥ 10 de ellos"
    },
    "tipo": "cartera",
    "universo": {
     "agregacion": "EW de fondos dentro de categoría y EW de categorías cada mes: mide el valor añadido POR categoría (capa de vehículo de C1/C3/C4)",
     "categorias": "todas las Morningstar EUR con ≥ 10 fondos elegibles en la revisión (112 hoy)",
     "no_pit": [
      "ongoing_charge",
      "morningstar_category",
      "is_primary_share_class",
      "firm_name",
      "is_index_fund"
     ],
     "supervivencia": "catálogo de HOY: universo superviviente (los fondos muertos no están) → veredicto ≤ sandbox; el quintil malo real es peor (a favor), la persistencia de ganadores está inflada (en contra)",
     "vehiculo": "fondos UCITS clase EUR primaria (tracker.fund_catalog FO), traspasables; pasivos (fondos índice FO + ETFs FE EUR) como listón"
    },
    "version": "v1"
   },
   "id": "BQ-CEMENTERIO-C2SELECTORFONDOS-v1",
   "llano": {
    "cifra": "modelo frente a la comisión sola: t = 0,42 (hacía falta t ≥ 1)",
    "idea": "Elegir el mejor fondo de cada categoría sumando varias pistas: comisión, historial, tamaño, gestora",
    "que_paso": "La suma acierta: +4,6 puntos básicos al mes sobre el fondo medio en diecisiete años. Pero la comisión sola daba +4,1 y el modelo no la mejora con significación. Lo que sí sostiene la prueba es lo contrario: el quinto de fondos que el modelo señala como peor rinde 5,6 pb al mes menos que la media. Sirve para descartar, no para elegir."
   },
   "marca": "banco-spellhold-v3",
   "motivo": "train NO bate al mejor rasgo aislado (criterio pre-registrado): no se sella",
   "publicado": "2026-09-02T11:28:10+00:00",
   "resumen_train": {
    "bate_train": false,
    "criterios": {
     "exceso_tienes_t≥1": true,
     "promesa_q1_t≤−1": true,
     "vs_rasgo_cartera": false,
     "vs_rasgo_ic": false
    },
    "dsr": 0.93,
    "exceso_podrias_pb_mes": 4.7,
    "exceso_podrias_t": 2.3,
    "exceso_tienes_pb_mes": 4.64,
    "exceso_tienes_t": 3.91,
    "gemelo_exceso_tienes_pb_mes": 2.51,
    "hgb_asciende": false,
    "ic_barajado_p": 0.0,
    "ic_comision": 186.64,
    "ic_comision_t": 10.97,
    "ic_gemelo": 179.78,
    "ic_modelo": 190.71,
    "ic_modelo_t": 5.92,
    "max_dd": 0.33,
    "mejor_rasgo_exceso_tienes_pb_mes": 4.1,
    "meses": 204,
    "modelo": "suma",
    "modelo_vs_gemelo_cartera_t": 1.19,
    "modelo_vs_rasgo_cartera_t": 0.42,
    "modelo_vs_rasgo_ic_t": 0.17,
    "pbo": 0.52,
    "periodo": [
     "2003-01",
     "2019-12"
    ],
    "q1_vs_control_pb_mes": -5.59,
    "q1_vs_control_t": -2.78,
    "revisiones": 17,
    "rotacion_ano": 0.49,
    "sin_q1_vs_tienes_pb_mes": 1.26,
    "sin_q1_vs_tienes_t": 2.88
   },
   "sha256_ficha": "fcb4016de1ef55e7a14b3a45527c681531ea014690a2a6425cbbb85c5c81cf14",
   "sha256_train": "dd6e31c55daab5ce5f502fe717ec058dfd925c8304659b4437c8b7f5bdc86c03"
  },
  {
   "criterios": {
    "1_vs_cesta_t_ge_3": false,
    "2_vs_gemelo_vivo_gana": false,
    "3_traspasos_ano_le_8": true,
    "4_vs_mix_bloques_gana": true
   },
   "estado": "cementerio",
   "ficha": {
    "arranque": {
     "criterio_bate_train": "TODOS: (1) modelo neto − cesta t NW ≥ 3; (2) modelo vs gemelo_vivo gana (media > 0, t ≥ 1); (3) traspasos/año ≤ 8; (4) modelo vs mix_bloques gana (t ≥ 1)",
     "holdout": [
      "2020-01",
      "último mes cerrado"
     ],
     "holdout_contaminado": "el lab vivo (v5) se ajustó sobre 1991-2026: el holdout solo vale como continuidad; tope «re-registrada, holdout visto»",
     "lag_min_nw": 0,
     "n_variantes_caza": 9,
     "pre_registro": "~/banco/planes/banco_q8/ESTADO_Q8.md (2026-09-02 15:55)",
     "subperiodos": [
      [
       "1995-01",
       "1999-12"
      ],
      [
       "2000-01",
       "2007-12"
      ],
      [
       "2008-01",
       "2012-12"
      ],
      [
       "2013-01",
       "2019-12"
      ]
     ],
     "train": [
      "1995-01",
      "2019-12"
     ],
     "train_resultado": {
      "bate_train": false,
      "coste_medio_pb": 2.01,
      "criterios": {
       "1_vs_cesta_t_ge_3": false,
       "2_vs_gemelo_vivo_gana": false,
       "3_traspasos_ano_le_8": true,
       "4_vs_mix_bloques_gana": true
      },
      "dsr": 0.99,
      "e_medio": 0.958,
      "exceso_vs_cesta_pb_mes": 50.03,
      "exceso_vs_cesta_t": 2.5,
      "gemelo": "gemelo_vivo",
      "gemelo_vivo_vs_cesta_pb_mes": 55.98,
      "gemelo_vivo_vs_cesta_t": 2.55,
      "max_dd": 0.28,
      "max_dd_mix": 0.3,
      "meses": 300,
      "modelo": "m121_trim_escudo",
      "pbo": 0.81,
      "periodo": [
       "1995-01",
       "2019-12"
      ],
      "resid_vs_crudo_pb_mes": -6.72,
      "sharpe_anual": 0.85,
      "sin_vehiculo_medio": 2.6,
      "traspasos_ano": 7.6,
      "vs_gemelo_v5_pb_mes": 4.21,
      "vs_gemelo_vivo_pb_mes": -5.95,
      "vs_gemelo_vivo_t": -0.53,
      "vs_mix_pb_mes": 44.67,
      "vs_mix_t": 3.02
     },
     "variante_elegida": "m121_trim_escudo",
     "variantes_probadas": [
      "m121_trim_escudo",
      "m121_trim",
      "m121_mensual_escudo",
      "m121_mensual",
      "m120_trim_escudo",
      "m120_trim",
      "m120_mensual_escudo",
      "m120_mensual",
      "resid_121_trim_escudo"
     ]
    },
    "banda": {
     "banda_salida": 15,
     "decision": "trimestral (1, 4, 7, 10)",
     "pesos": "iguales",
     "top": 5
    },
    "benchmark_podrias": "cesta = EW de las categorías accesibles con señal válida cada mes (índices de categoría, sin coste)",
    "benchmark_tienes": "gemelo_vivo = la rotación viva SELLADA: 12-0, top-5 mensual con guarda de correlación, pesos por convicción, índice de categoría, sin escudo, coste cero",
    "cadencia_max": {
     "revisiones": "decisión trimestral; escudo mensual",
     "traspasos_ano": 8
    },
    "control": "mix_bloques = pesos por bloque de la cartera del modelo × EW de las accesibles de cada bloque, con el mismo escudo (beta de bloque)",
    "costes": {
     "comision": "dentro del NAV del vehículo",
     "transito": "la fracción sustituida pierde 0.1429 (3/21) del retorno de su primer mes; los cambios de estado del escudo pagan sobre el 50 % movido"
    },
    "estado": "re-registrada",
    "fuentes": {
     "factors.fund_catalog_snapshots": "2026-09-02",
     "factors.market_state": "2026-09-01",
     "funds.category_nav_history": "2026-08-28",
     "funds.nav_history": "2026-09-01"
    },
    "gemelo": "gemelo_vivo (la versión sellada); diagnóstico gemelo_v5 = lo que la ficha viva DICE (12-1, banda 15, TRIM, escudo, índice de categoría, sin coste)",
    "id": "C3ROTACIONCATEGORIAS",
    "marca": "banco-spellhold-v3",
    "notas": [
     "re-registro de la ficha viva rotacion_categorias: la viva no se toca; el cambio lo decide Gerard",
     "gemelo = versión SELLADA (12-0, mensual, convicción, coste cero), no lo que la ficha dice (eso es gemelo_v5, diagnóstico)",
     "la señal 12-0 de la viva pisa el último mes (reversión a un mes): el 12-1 es la corrección académica",
     "señal residual por bloque = variante, no criterio: se compara y se dice",
     "categorías sin bloque = Otros: el mix las trata como su propio bloque",
     "cesta y mix llevan el mismo escudo que el modelo: el criterio 4 aísla la selección dentro del bloque",
     "replicable por el partícipe: 5 categorías, 5 clases con ISIN, decisión trimestral y el estado del escudo"
    ],
    "persona": "carhart",
    "que_la_mataria": "en holdout: modelo neto − cesta ≤ 0, o modelo ≤ gemelo vivo, o modelo ≤ mix de bloques, o > 8 traspasos/año",
    "semilla": 2026,
    "senal": {
     "escudo": {
      "activo_desde": "2001 (market_state desde 1998 + 36 m); antes e=1: declarado",
      "coordenadas": {
       "corr_media_60d": 1,
       "drawdown_mediano_252d": -1,
       "pct_cierre_tercio_alto": -1,
       "vol_agregada_yz_20d": 1
      },
      "regla": "percentil expanding (≥ 36 m) de cada coordenada con signo, media; entra > 0.85, sale tras 2 meses < 0.7; e=0.5 → EUCA000591"
     },
     "momentum": "12-1 académica: nav[t−1]/nav[t−12] − 1 a fin de mes t sobre el NAV de categoría (funds.category_nav_history, último hábil del mes); cartera vigente en t+1",
     "pesos": "iguales 1/N",
     "seleccion": "greedy por señal con guarda de correlación (retornos mensuales 36 m, ≥ 24 obs, |ρ| < 0.8) hasta N=5; banda de salida 15 (se mantiene mientras su puesto ≤ 15); decisión en los meses [1, 4, 7, 10]",
     "vehiculo": "en cada decisión, la clase accesible con OGC más bajo (snapshot de hoy; sin OGC = fuera) con ≥ 30 meses de NAV hasta la decisión y NAV ese mes; si no hay, el índice de categoría (sin_vehiculo); fijo mientras se mantenga la categoría; retorno = NAV de la clase (comisión dentro)"
    },
    "tipo": "cartera",
    "universo": {
     "bloques": "patrones del lab sobre funds.fund_category_map (RVd, RVe, Gob, HY, Real, Mon); no casado = Otros",
     "cash": "EUCA000591",
     "categorias": "las accesibles HOY según FILTRO_ACCESIBLE del sello (EUR, acumulación, venta en ESP, mínimo 1-2500 €, sin clases cartera/sin retro/institucional/smart)",
     "min_categorias_mes": 30,
     "n_categorias_hoy": 161,
     "supervivencia": "el filtro de accesibilidad es el de hoy aplicado a todo el histórico (snapshots PIT solo desde 2026-05-18): declarado"
    },
    "version": "v2"
   },
   "id": "BQ-CEMENTERIO-C3ROTACIONCATEGORIAS-v2",
   "llano": {
    "cifra": "frente a la rotación viva: −5,9 pb/mes, t = −0,53 (hacía falta ganar); frente a la cesta t = 2,5 (hacía falta ≥ 3)",
    "idea": "Una rotación de categorías de fondos «mejorada»: escudo de mercado, impulso limpio del tipo de cambio y el coste del traspaso dentro del cálculo",
    "que_paso": "Gana 50 puntos básicos al mes a la cesta de categorías en veinticinco años. La rotación que ya está viva, medida con las mismas reglas, gana 56. La versión mejorada era seis puntos básicos al mes peor que la que pretendía sustituir."
   },
   "marca": "banco-spellhold-v3",
   "motivo": "train NO cumple el criterio pre-registrado (vs cesta t ≥ 3 / vs gemelo vivo / traspasos ≤ 8 / vs mix de bloques): no se sella",
   "publicado": "2026-09-02T15:34:59+00:00",
   "resumen_train": {
    "bate_train": false,
    "coste_medio_pb": 2.01,
    "criterios": {
     "1_vs_cesta_t_ge_3": false,
     "2_vs_gemelo_vivo_gana": false,
     "3_traspasos_ano_le_8": true,
     "4_vs_mix_bloques_gana": true
    },
    "dsr": 0.99,
    "e_medio": 0.958,
    "exceso_vs_cesta_pb_mes": 50.03,
    "exceso_vs_cesta_t": 2.5,
    "gemelo": "gemelo_vivo",
    "gemelo_vivo_vs_cesta_pb_mes": 55.98,
    "gemelo_vivo_vs_cesta_t": 2.55,
    "max_dd": 0.28,
    "max_dd_mix": 0.3,
    "meses": 300,
    "modelo": "m121_trim_escudo",
    "pbo": 0.81,
    "periodo": [
     "1995-01",
     "2019-12"
    ],
    "resid_vs_crudo_pb_mes": -6.72,
    "sharpe_anual": 0.85,
    "sin_vehiculo_medio": 2.6,
    "traspasos_ano": 7.6,
    "vs_gemelo_v5_pb_mes": 4.21,
    "vs_gemelo_vivo_pb_mes": -5.95,
    "vs_gemelo_vivo_t": -0.53,
    "vs_mix_pb_mes": 44.67,
    "vs_mix_t": 3.02
   },
   "sha256_ficha": "556d2455a65d0eefb357fef397575cdef53bca5d4900a1e70066e6930fb63893",
   "sha256_train": "bd027519cfaf4a5b2cd92705921e937db6efec639e8847e46b38c43d2f94bc9d"
  },
  {
   "criterios": {
    "1_vs_gemelo_vivo_neto_escalado": false,
    "2_max_dd_menor_que_gemelo_neto": true,
    "3_traspasos_ano_le_8": true,
    "4_vs_unosexto_escalado": false
   },
   "estado": "cementerio",
   "ficha": {
    "arranque": {
     "composicion_resultante": {
      "cfg": {
       "banda": 0.05,
       "base": "hrp",
       "nombre": "hrp_f8",
       "palanca": true,
       "sigma_obj": 0.08,
       "tilt": true,
       "transito": 3
      },
      "cfg_base_ablaciones": {
       "banda": 0.05,
       "base": "hrp",
       "nombre": "hrp_f8",
       "palanca": true,
       "sigma_obj": 0.08,
       "tilt": true,
       "transito": 3
      },
      "juicio_tilt": {
       "T": 264,
       "escala": 18.104508106725923,
       "exceso_sobre": "Mon",
       "gana": true,
       "lag": 4,
       "media": 0.0008819061738723963,
       "n": 264,
       "se": 0.0005160684964524741,
       "sigma_modelo_mes": 0.009199616372791618,
       "sigma_ref_mes": 0.0005081395373218624,
       "t": 1.70889364480634,
       "t_naive": 1.8148525095005141
      },
      "reglas": [
       "(b) tilt: modelo − sin_tilt +8.8 pb/mes t 1.71 ≥ 1: el tilt se queda"
      ],
      "traspasos_ano_elegida": 0.8636363636363636
     },
     "criterio_bate_train": "TODOS: (1) vs gemelo_vivo_neto Sharpe-escalado media > 0 y t NW ≥ 1; (2) maxDD(modelo) < maxDD(gemelo_vivo_neto); (3) traspasos/año ≤ 8; (4) vs unosexto Sharpe-escalado media > 0 y t ≥ 1",
     "holdout": [
      "2020-01",
      "último mes cerrado"
     ],
     "holdout_contaminado": "la Insignia viva y su lab diario se ajustaron sobre 1997-2026: el holdout solo vale como continuidad; tope «re-registrada, holdout visto»",
     "lag_min_nw": 0,
     "metricas": "retornos mensuales agregados de la simulación diaria",
     "n_variantes_caza": 12,
     "pre_registro": "~/banco/planes/banco_q8/ESTADO_Q8.md (2026-09-02 15:55)",
     "reglas_composicion": [
      "(a) si hrp_f8 hace > 8 traspasos/año en train, el freno sale",
      "(b) si modelo − sin_tilt (escalado) tiene t < 1, el tilt sale de la ficha"
     ],
     "subperiodos": [
      [
       "1998-01",
       "2000-12"
      ],
      [
       "2001-01",
       "2007-12"
      ],
      [
       "2008-01",
       "2012-12"
      ],
      [
       "2013-01",
       "2019-12"
      ]
     ],
     "train": [
      "1998-01",
      "2019-12"
     ],
     "train_resultado": {
      "bate_train": false,
      "criterios": {
       "1_vs_gemelo_vivo_neto_escalado": false,
       "2_max_dd_menor_que_gemelo_neto": true,
       "3_traspasos_ano_le_8": true,
       "4_vs_unosexto_escalado": false
      },
      "dsr": 0.0,
      "e_pal_medio": 0.891,
      "e_vol_medio": 0.997,
      "freno_pb_mes": -0.0,
      "freno_t": -2.27,
      "gemelo": "gemelo_vivo_neto",
      "gemelo_neto_ret_anual": 4.45,
      "gemelo_neto_sharpe": 0.67,
      "max_dd": 0.08,
      "max_dd_gemelo_neto": 0.18,
      "meses": 264,
      "modelo": "hrp_f8",
      "palanca_pb_mes": 0.33,
      "palanca_t": 0.17,
      "pbo": 0.08,
      "periodo": [
       "1998-01",
       "2019-12"
      ],
      "reglas_composicion": [
       "(b) tilt: modelo − sin_tilt +8.8 pb/mes t 1.71 ≥ 1: el tilt se queda"
      ],
      "ret_anual": 2.72,
      "sharpe_anual": 0.86,
      "tilt_pb_mes": 8.82,
      "tilt_t": 1.71,
      "traspasos_ano": 0.86,
      "unosexto_ret_anual": 4.62,
      "unosexto_sharpe": 0.58,
      "vol_anual": 3.17,
      "vs_gemelo_neto_pb_mes": -1.19,
      "vs_gemelo_neto_t": -1.68,
      "vs_gemelo_vivo_pb_mes": -1.09,
      "vs_gemelo_vivo_t": -1.47,
      "vs_unosexto_pb_mes": 0.11,
      "vs_unosexto_t": 0.05
     },
     "variante_elegida": "hrp_f8",
     "variantes_probadas": [
      "hrp_f6",
      "hrp_f8",
      "hrp_f10",
      "hrp_sin",
      "mv_f6",
      "mv_f8",
      "mv_f10",
      "mv_sin",
      "unosexto_f6",
      "unosexto_f8",
      "unosexto_f10",
      "unosexto_sin"
     ]
    },
    "banda": {
     "freno": 0.15,
     "l1": 0.05,
     "tilt_clip": [
      0.04,
      0.35
     ]
    },
    "benchmark_podrias": "unosexto = 1/6 estático (pesos constantes, sin tilt, palanca ni freno)",
    "benchmark_tienes": "gemelo_vivo_neto = la Insignia viva (1/6 × tilt × palanca con las mismas señales PIT) con la misma ejecución (banda 5 pp, tránsito 3 d)",
    "cadencia_max": {
     "revisiones": "base y tilt a fin de mes; palanca y freno diarios",
     "traspasos_ano": 8
    },
    "control": "sin_tilt (mismo modelo sin tilt); también sin_palanca y sin_freno como ablaciones",
    "costes": {
     "comision": "no modelada (índices de categoría): igual para modelo y gemelos",
     "transito": "3 días a retorno cero de la mitad de la fracción movida (limbo = L1/2)"
    },
    "estado": "re-registrada",
    "fuentes": {
     "factors.market_state": "2026-09-01",
     "funds.category_nav_history": "2026-08-28",
     "macro.observations": "2026-09-01",
     "macro.observations_latest": "2036-10-01"
    },
    "gemelo": "gemelo_vivo = 1/6 × tilt × palanca sin banda ni tránsito (lo que la ficha viva dice); gemelo_vivo_neto = la comparación justa",
    "id": "C4INSIGNIA",
    "marca": "banco-spellhold-v3",
    "notas": [
     "re-registro de la ficha viva insignia: la viva no se toca; el cambio lo decide Gerard",
     "HRP con el monetario dentro: la varianza casi nula de Mon le da la mayor parte del riesgo-paridad; el clip 0,04-0,35 del tilt lo acota (consecuencia del diseño, vista antes del train)",
     "Sharpe-escalado sobre EXCESO (enmienda pre-train 2-sep-2026 18:05, motivada por el mundo sintético): Δ = (r_modelo − r_Mon) − (r_ref − r_Mon)·σ(r_modelo − r_Mon)/σ(r_ref − r_Mon), r_Mon = mediana mensual del bloque monetario del panel, σ mensuales de la ventana; los subperiodos usan la escala de la ventana completa. Sobre retornos brutos el escalado premiaba a la caja (HRP sin tilt ≈ 100 % Mon) y habría sellado un monetario",
     "la palanca recorre los días con dato de market_state (como compuesto_palanca del sello); los días sin dato conservan el estado",
     "1/6 con pesos constantes = rebalanceo implícito diario sin coste: cota favorable al benchmark",
     "señales PIT desde 1997 (primera vintage de FEDFUNDS 1996-12-03): todo el train es PIT",
     "replicable por el partícipe: 6 pesos por bloque publicados a fin de mes + estado de palanca y freno (una clase por bloque)"
    ],
    "persona": "kelly",
    "que_la_mataria": "en holdout: modelo ≤ gemelo_vivo_neto (Sharpe-escalado), o maxDD ≥ el del gemelo neto, o modelo ≤ unosexto, o > 8 traspasos/año",
    "semilla": 2026,
    "senal": {
     "base": {
      "metodo": "hrp",
      "regla": "HRP (Ward sobre √(½(1−ρ)), cuasi-diagonalización, bisección por varianza inversa) sobre los últimos 756 retornos diarios de las medianas por bloque anteriores al día 1 del mes (≥ 252; si no, 1/6); recalculado a fin de mes"
     },
     "ejecucion": "rebalanceo cuando L1(objetivo − actual) > 0.05; tránsito 3 d a retorno cero de la mitad de la fracción movida (simulador del lab diario); pesos constantes entre rebalanceos (sin deriva): declarado",
     "freno_vol": {
      "regla": "e = mín(1, σ_obj/σ_21d) de la cartera pre-freno (anualizada, hasta d−1); cambia solo si |Δe| ≥ 0.15; 1−e → Mon",
      "sigma_obj": 0.08
     },
     "palanca": {
      "activa": true,
      "activa_desde": "2001 (market_state desde 1998 + 756 d); antes e=1: declarado",
      "coordenadas": {
       "corr_media_60d": 1,
       "drawdown_mediano_252d": -1,
       "pct_cierre_tercio_alto": -1,
       "vol_agregada_yz_20d": 1
      },
      "regla": "percentil expanding (≥ 756 d) con signo, media; entra > 0.85, sale tras 21 d < 0.7; e=0.5 → Mon"
     },
     "tilt": {
      "activo": true,
      "convencion": "señales del mes M con lo publicado antes del día 1 de M; pesos aplicados en M",
      "pit": "UNRATE/FEDFUNDS/CPIAUCSL con TODAS las vintages de macro.observations (lo conocido al día 1 del mes); T10Y2Y de observations_latest (dato de mercado, sin revisiones)",
      "regla": "w_b ∝ base_b·(1 + 0.2·votos_b), clip [0.04, 0.35], renormalizado (tabla VOTOS del sello)",
      "senales": {
       "cpi_acelerando": "CPI yoy > yoy hace 6 m y percentil expanding (≥ 120 obs) > 0.75",
       "cpi_desacelerando": "no acelera y percentil > 0,75 (regla del SELLO, no la del lab)",
       "curva_invertida": "T10Y2Y < 0 (último dato antes del día 1)",
       "curva_reempinada": "T10Y2Y > 0 tras estar < 0 en los 12 meses",
       "fed_bajando": "Fed funds − 6 m ≤ −0.25",
       "fed_subiendo": "≥ +0.25",
       "sahm_on": "media 3 m del paro − mínimo 12 m ≥ 0.5"
      }
     }
    },
    "tipo": "cartera",
    "universo": {
     "bloques": {
      "Gob": "patrones del lab sobre funds.fund_category_map",
      "HY": "patrones del lab sobre funds.fund_category_map",
      "Mon": "patrones del lab sobre funds.fund_category_map",
      "RVd": "patrones del lab sobre funds.fund_category_map",
      "RVe": "patrones del lab sobre funds.fund_category_map",
      "Real": "patrones del lab sobre funds.fund_category_map"
     },
     "n_categorias": {
      "Gob": 8,
      "HY": 24,
      "Mon": 2,
      "RVd": 8,
      "RVe": 11,
      "Real": 6
     },
     "serie": "mediana diaria de nav/nav_base de las categorías del bloque (funds.category_nav_history, isodow ≤ 5), desde 1997-01-01; días comunes a los 6 bloques",
     "supervivencia": "categorías de hoy en todo el histórico (sin altas/bajas de categoría): declarado"
    },
    "version": "v2"
   },
   "id": "BQ-CEMENTERIO-C4INSIGNIA-v2",
   "llano": {
    "cifra": "frente a la Insignia viva, a igual riesgo: −1,2 pb/mes, t = −1,68 (hacía falta ganar)",
    "idea": "La cartera Insignia repartida por riesgo (HRP) en vez de a partes iguales entre los seis bloques, con la palanca y el sesgo de siempre",
    "que_paso": "El reparto por riesgo se fue al monetario: un 68 % de la cartera en caja durante veintidós años. Rinde un 2,7 % anual frente al 4,45 % de la Insignia viva y, medida en exceso sobre la caja y a igual riesgo, queda por debajo. Cae menos (8 % frente a 18 %), pero eso no era el criterio."
   },
   "marca": "banco-spellhold-v3",
   "motivo": "train NO cumple el criterio pre-registrado (vs gemelo vivo neto Sharpe-escalado / maxDD / traspasos ≤ 8 / vs 1/6): no se sella",
   "publicado": "2026-09-02T16:05:27+00:00",
   "resumen_train": {
    "bate_train": false,
    "criterios": {
     "1_vs_gemelo_vivo_neto_escalado": false,
     "2_max_dd_menor_que_gemelo_neto": true,
     "3_traspasos_ano_le_8": true,
     "4_vs_unosexto_escalado": false
    },
    "dsr": 0.0,
    "e_pal_medio": 0.891,
    "e_vol_medio": 0.997,
    "freno_pb_mes": -0.0,
    "freno_t": -2.27,
    "gemelo": "gemelo_vivo_neto",
    "gemelo_neto_ret_anual": 4.45,
    "gemelo_neto_sharpe": 0.67,
    "max_dd": 0.08,
    "max_dd_gemelo_neto": 0.18,
    "meses": 264,
    "modelo": "hrp_f8",
    "palanca_pb_mes": 0.33,
    "palanca_t": 0.17,
    "pbo": 0.08,
    "periodo": [
     "1998-01",
     "2019-12"
    ],
    "reglas_composicion": [
     "(b) tilt: modelo − sin_tilt +8.8 pb/mes t 1.71 ≥ 1: el tilt se queda"
    ],
    "ret_anual": 2.72,
    "sharpe_anual": 0.86,
    "tilt_pb_mes": 8.82,
    "tilt_t": 1.71,
    "traspasos_ano": 0.86,
    "unosexto_ret_anual": 4.62,
    "unosexto_sharpe": 0.58,
    "vol_anual": 3.17,
    "vs_gemelo_neto_pb_mes": -1.19,
    "vs_gemelo_neto_t": -1.68,
    "vs_gemelo_vivo_pb_mes": -1.09,
    "vs_gemelo_vivo_t": -1.47,
    "vs_unosexto_pb_mes": 0.11,
    "vs_unosexto_t": 0.05
   },
   "sha256_ficha": "14f50aa2c3e63f1793ef6b9bc862849b77d7dadb3b805b816e2b77b0ce9fbc71",
   "sha256_train": "56693c35c94f2f0c81aa6309506ef46e81fa9a8f773df588c855f4469187c05d"
  },
  {
   "criterios": {
    "exceso_neto_vs_ew_t≥1": true,
    "vs_rasgo_cartera": false,
    "vs_rasgo_ic": false
   },
   "estado": "cementerio",
   "ficha": {
    "arranque": {
     "criterio_bate_train": "modelo vs mejor rasgo aislado gana en cartera (t NW dif ≥ 1) Y en IC (t ≥ 1), y top-40 neto − EW con media > 0 y t NW ≥ 1",
     "holdout": [
      "2020-01-01",
      "último mes con retorno"
     ],
     "mejor_rasgo": "inf_oportunistas",
     "n_variantes_caza": 10,
     "subperiodos": [
      [
       "2012-01",
       "2015-12"
      ],
      [
       "2016-01",
       "2019-12"
      ]
     ],
     "train": [
      "2012-01-01",
      "2019-12-01"
     ],
     "train_resultado": {
      "apilado_asciende": false,
      "bate_train": false,
      "criterios": {
       "exceso_neto_vs_ew_t≥1": true,
       "vs_rasgo_cartera": false,
       "vs_rasgo_ic": false
      },
      "dsr": 0.98,
      "exceso_neto_pb_mes": 20.79,
      "exceso_neto_t": 1.25,
      "gemelo": "S_caza",
      "gemelo_exceso_pb_mes": 23.5,
      "ic_S": 27.36,
      "ic_S_t": 2.57,
      "ic_barajado_p": 0.0,
      "ic_mejor_rasgo": 21.21,
      "ic_modelo_t": 0.53,
      "max_dd": 0.16,
      "mejor_rasgo": "inf_oportunistas",
      "mejor_rasgo_exceso_pb_mes": 24.06,
      "meses": 96,
      "modelo": "suma",
      "modelo_vs_rasgo_cartera_t": -0.2,
      "modelo_vs_rasgo_ic_t": 0.53,
      "pbo": 0.73,
      "periodo": [
       "2012-01",
       "2019-12"
      ],
      "q5_menos_ew_pb_mes": 22.44,
      "q5_menos_ew_t": 1.75,
      "rotacion_ano": 0.83
     },
     "variante_elegida": "top40_trim",
     "variantes_probadas": [
      "top40_trim",
      "top30_trim",
      "top50_trim",
      "top40_mensual",
      "top40_trim_sin_banda",
      "quintil_mensual"
     ]
    },
    "banda": {
     "n_top": 40,
     "pesos": "iguales cada mes (declarado)",
     "queda_si_rango_pct≥": 0.6,
     "revision": "trimestral (as_of ene/abr/jul/oct)"
    },
    "benchmark_podrias": "el mismo EW: no hay listón externo replicable para un universo superviviente propio; se declara igual a «tienes»",
    "benchmark_tienes": "EW del universo E2 (operable, sin top-300 ni lista E1), price-return, rebalance mensual, sin coste",
    "cadencia_max": {
     "operaciones_ano_aprox": "100-200",
     "revisiones_ano": 4
    },
    "control": "EW del universo E2 sin coste",
    "costes": {
     "aplicado_a": "rotación de la cartera: (entradas + salidas)/n × 10 pb",
     "pb_lado": 10.0
    },
    "estado": "pre-registrada",
    "fuentes": {
     "factors.analyst_call_outcomes": "2026-08-28",
     "factors.market_state": "2026-09-01",
     "smartmoney.insider_trades_enriched": "2026-09-01",
     "smartmoney.market_news": "2026-09-02",
     "stocks.analyst_ratings": "2026-10-05",
     "stocks.dividends_history": "2027-04-08",
     "stocks.earnings_surprises": "2027-02-09",
     "stocks.earnings_transcripts": "2026-08-19",
     "stocks.fundamentals_history": "2026-08-03",
     "stocks.price_history": "2026-09-01",
     "stocks.sec_filings": "2026-09-01",
     "stocks.splits_history": "2026-09-03"
    },
    "gemelo": "S_caza: S sin las novedades del v4 (13G+insider, ETR×devengos, devengos×compra, guía+rutina) y con momentum 12-1 crudo",
    "id": "E2RANKERMIDCAP",
    "marca": "banco-spellhold-v3",
    "notas": [
     "price-return, no total-return: declarado",
     "fundamentales con lag 180 d y sin PIT (loaded_at único): declarado",
     "sector de hoy (tracker.stock_catalog): no PIT, declarado; los deslistados no tienen sector → rango global",
     "régimen: nivel recalculado hoy (v1), umbral expandido PIT: declarado",
     "el mejor rasgo se elige EN MUESTRA (sube el listón: dirección conservadora)",
     "universo superviviente ⇒ metricas.veredicto tope sandbox hasta tener tabla de bajas",
     "estrategia de la casa (100-200 operaciones/año): versión partícipe no existe, y se dice"
    ],
    "persona": "tikhonov",
    "que_la_mataria": "top-40 neto − EW ≤ 0 en 6 trimestres seguidos en vivo; o exceso neto ≤ 0 en holdout",
    "semilla": 0,
    "senal": {
     "S": "suma de las 5 familias",
     "apilado": {
      "asciende_si": "bate a S en IC (t dif ≥ 1) y en Q5−EW (t dif ≥ 1) en los meses comunes",
      "meta": "Ridge(alpha=1.0, positive=True) sobre las OOF de años anteriores, desde 2016",
      "objetivo": "rango pct del retorno del mes − 0,5",
      "por_familia": "HistGradientBoostingRegressor {\"l2_regularization\": 1.0, \"learning_rate\": 0.05, \"max_depth\": 3, \"max_iter\": 200, \"min_samples_leaf\": 100, \"random_state\": 0}",
      "reajuste": "cada enero desde 2015, embargo 1 mes"
     },
     "cadencia": "puntuación mensual; as_of = primer día del mes, todo dato < as_of; se mide con el retorno del mes",
     "conmutador": "tercil expandido de vol_agregada_yz_20d al último día < as_of: 1-2 → momentum 12-1; 3 → −retorno del mes m−1",
     "familia": "media de los rangos de sus rasgos",
     "familias": {
      "analistas": [
       "ana_consistencia",
       "ana_racha",
       "ana_revisiones",
       "ana_upgrade_bajo"
      ],
      "fundamentales": [
       "fun_etr_dev",
       "fun_dev_ins",
       "fun_gp",
       "fun_fin_ext"
      ],
      "informados": [
       "inf_13g_ins",
       "inf_npr",
       "inf_oportunistas",
       "inf_skill"
      ],
      "precio": [
       "pre_conmutado",
       "pre_max",
       "pre_52s"
      ],
      "texto": [
       "txt_guia",
       "txt_guia_ins",
       "txt_atencion"
      ]
     },
     "guia": {
      "cobertura": "solo cuentan transcripts con texto: 6-39 % de las filas en 2012-21 (cascarones), 98 % desde 2022 → en train la guía casi no existe; declarado",
      "regex": "(rais(e|ed|ing)|increas(e|ed|ing))\\s+(our\\s+|the\\s+)?(full[- ]year\\s+|fiscal\\s+(year\\s+)?|annual\\s+|\\d{4}\\s+)?(guidance|outlook)",
      "ventana_d": 90
     },
     "modelo_sellado": "suma",
     "novedades_v4": [
      "inf_13g_ins",
      "fun_etr_dev",
      "fun_dev_ins",
      "txt_guia_ins",
      "pre_conmutado"
     ],
     "rangos": "pct dentro de (mes, sector) si el sector tiene ≥ 10 nombres, si no dentro del mes; NaN → 0,5; sector = tracker.stock_catalog HOY (no PIT, declarado)"
    },
    "tipo": "estrategia",
    "universo": {
     "excluidas": {
      "lista_e1": "lista negra E1 (umbral 2 con estrella)",
      "top_adv": "las 300 mayores por ADV20 (proxy PIT de las 300 mayores por capitalización)"
     },
     "mercado": "us",
     "n_min_mes": 200,
     "operable": {
      "adv20_min_usd": 5000000.0,
      "precio_min_usd": 5.0
     },
     "supervivencia": "price_history solo vivos: largos algo inflados; tope sandbox"
    },
    "version": "v1"
   },
   "id": "BQ-CEMENTERIO-E2RANKERMIDCAP-v1",
   "llano": {
    "cifra": "modelo frente a la mejor familia sola: t = −0,20 (hacía falta t ≥ 1)",
    "idea": "Un clasificador de acciones medianas americanas que suma cinco familias de pistas: participaciones grandes, directivos, devengos, guía de resultados e impulso",
    "que_paso": "El quinto mejor del ranking gana 21 puntos básicos al mes al universo en ocho años. La mejor familia sola, los compradores oportunistas, ganaba 24. Sumar las cinco no mejora a la mejor, y el aprendizaje automático encima tampoco."
   },
   "marca": "banco-spellhold-v3",
   "motivo": "train NO cumple el criterio pre-registrado (mejor rasgo aislado y/o EW neto): no se sella",
   "publicado": "2026-09-02T12:04:37+00:00",
   "resumen_train": {
    "apilado_asciende": false,
    "bate_train": false,
    "criterios": {
     "exceso_neto_vs_ew_t≥1": true,
     "vs_rasgo_cartera": false,
     "vs_rasgo_ic": false
    },
    "dsr": 0.98,
    "exceso_neto_pb_mes": 20.79,
    "exceso_neto_t": 1.25,
    "gemelo": "S_caza",
    "gemelo_exceso_pb_mes": 23.5,
    "ic_S": 27.36,
    "ic_S_t": 2.57,
    "ic_barajado_p": 0.0,
    "ic_mejor_rasgo": 21.21,
    "ic_modelo_t": 0.53,
    "max_dd": 0.16,
    "mejor_rasgo": "inf_oportunistas",
    "mejor_rasgo_exceso_pb_mes": 24.06,
    "meses": 96,
    "modelo": "suma",
    "modelo_vs_rasgo_cartera_t": -0.2,
    "modelo_vs_rasgo_ic_t": 0.53,
    "pbo": 0.73,
    "periodo": [
     "2012-01",
     "2019-12"
    ],
    "q5_menos_ew_pb_mes": 22.44,
    "q5_menos_ew_t": 1.75,
    "rotacion_ano": 0.83
   },
   "sha256_ficha": "1d86394fedde00b938153062f6b1c8412c46e320f2988da948aecdc9063d93fe",
   "sha256_train": "8e4ff6d85c7e8bfb94e5ed3cdf60da81fdae485f6c8e3e8d437c00090a78b7e6"
  },
  {
   "criterios": {
    "auc_oof>0,52": false,
    "exceso_neto_vs_ew_t≥1": false,
    "vs_control_cartera": false,
    "vs_mejor_evento_cartera": false
   },
   "estado": "cementerio",
   "ficha": {
    "arranque": {
     "criterio_bate_train": "modelo vs control gana en cartera (t NW dif ≥ 1) Y modelo vs mejor evento gana (t ≥ 1) Y exceso neto media > 0 con t NW ≥ 1 Y AUC OOF > 0,52",
     "holdout": [
      "2020-01-01",
      "última entrada con camino completo"
     ],
     "juicio_desde": 2015,
     "n_variantes_caza": 6,
     "subperiodos": [
      [
       "2015-01",
       "2017-12"
      ],
      [
       "2018-01",
       "2019-12"
      ]
     ],
     "train": [
      "2012-01-01",
      "2019-12-31"
     ],
     "train_resultado": {
      "auc_oof": {
       "gemelo": 0.5173,
       "hgb": 0.5122,
       "logit": 0.5094
      },
      "bate_train": false,
      "control_pb_mes": 22.0,
      "criterios": {
       "auc_oof>0,52": false,
       "exceso_neto_vs_ew_t≥1": false,
       "vs_control_cartera": false,
       "vs_mejor_evento_cartera": false
      },
      "dsr": 0.01,
      "exceso_neto_pb_mes": 8.18,
      "exceso_neto_t": 0.44,
      "gemelo": "juicio con solo tipo + log adv + tramo + reacción",
      "gemelo_pb_mes": -10.14,
      "hit_actuados": 0.5425,
      "hit_juzgados": 0.528,
      "mejor_evento_pb_mes": 6.1,
      "meses": 60,
      "modelo": "logit",
      "n_eventos": 4028,
      "pbo": 0.25,
      "periodo": [
       "2015-01",
       "2019-12"
      ],
      "vs_control_t": -0.77,
      "vs_mejor_evento_t": 0.05
     },
     "variante_elegida": "h126_u55_prop",
     "variantes_probadas": [
      "h126_u55_prop",
      "h126_u50_prop",
      "h126_u60_prop",
      "h126_u55_igual",
      "h63_u55_prop",
      "h63_u55_igual"
     ]
    },
    "banda": {
     "h": 126,
     "k": 0.5,
     "umbral": 0.55,
     "w_max": 0.1
    },
    "benchmark_podrias": "el mismo EW (se reporta SPY a título informativo)",
    "benchmark_tienes": "EW diario del universo operable del mes (pertenencia fija dentro del mes), price-return, sin coste",
    "cadencia_max": {
     "operaciones_ano_aprox": "según eventos actuados; se declara en train",
     "revisiones": "diaria (eventos)"
    },
    "control": "todos los eventos con peso igual 0.05, misma salida, mismo coste",
    "costes": {
     "aplicado_a": "peso efectivo de cada posición en la entrada y en la salida",
     "pb_lado": 10.0
    },
    "estado": "pre-registrada",
    "fuentes": {
     "factors.market_state": "2026-09-01",
     "smartmoney.insider_trades_enriched": "2026-09-01",
     "smartmoney.market_news": "2026-09-02",
     "stocks.analyst_ratings": "2026-10-05",
     "stocks.earnings_surprises": "2027-02-09",
     "stocks.price_history": "2026-09-01",
     "stocks.sec_filings_normalized": "2026-09-01"
    },
    "gemelo": "juicio con solo tipo + log adv + tramo + reacción",
    "id": "E3EVENTOSJUICIO",
    "marca": "banco-spellhold-v3",
    "notas": [
     "price-return, no total-return: declarado",
     "precios ajustados por split tal cual vienen; r diario > 100 % → NaN; hueco → 0",
     "ratings: cobertura ~30 % pre-2018 y sin cron vivo: declarado",
     "market_news.publish_on sin hora fiable → entrada al cierre siguiente (conservador)",
     "tickers de noticias nulos en ~70 % de filas: los eventos guía son una muestra",
     "filer_cik del 13G puede ser el agente presentador: declarado",
     "imputación por mediana del train (PIT: se ajusta dentro del walk-forward)",
     "universo superviviente ⇒ metricas.veredicto tope sandbox hasta tener tabla de bajas",
     "estrategia de la casa (eventos diarios): versión partícipe no existe, y se dice"
    ],
    "persona": "condorcet",
    "que_la_mataria": "exceso neto vs EW ≤ 0 en holdout, o AUC OOF ≤ 0,50 en holdout, o control ≥ modelo en holdout",
    "semilla": 0,
    "senal": {
     "cartera": {
      "actua_si": "p ≥ 0.55",
      "control": "todos los eventos w = 0.05",
      "exceso": "Σ w_i (r_i − r_ew) / max(1, Σ w_i) diario, sumado por mes",
      "mejor_evento": "solo 13g_ins w = 0.05",
      "peso": "min(0.1, 0.5·(p − 0,5))",
      "sin_reescalado": "los pesos no se reescalan cuando Σ w > 1: declarado"
     },
     "entrada": "cierre del día de bolsa siguiente al primero ≥ t; un símbolo con posición abierta no abre otra",
     "etiqueta": "y = exceso vs EW del universo operable en H > 0",
     "eventos": {
      "13g_ins": "SC 13G inicial de tercero + compra insider P ≥ 20000 $ presentada en [t−180, t]",
      "autotender": "SC TO-I inicial sin ventas insiders en [t−180, t)",
      "cluster": "≥ 3 compradores insiders distintos (P ≥ 20000 $) en [t−30, t] sin ventas; uno por racha",
      "confirmacion": "resultados publicados + net_raise de PT ≥ 3 en [r, r+7]; t = r+7",
      "guia_ins_rutina": "titular de subida de guía (regex) + ventas insiders en [t−60, t) Y en [t−365, t−61)",
      "pt_contra": "PT ≥ 1.05× con exceso vs EW de 10 días previos ≤ -8%"
     },
     "juicio": {
      "asciende_si": "AUC OOF ≥ logística + 0.01 Y mayor t de cartera",
      "modelo": "SimpleImputer(mediana) → QuantileTransformer(uniforme, 100) → LogisticRegression(C=1.0, L2) → isotónica cv=5",
      "modelo_sellado": "logit",
      "retador": "HistGradientBoostingClassifier {\"l2_regularization\": 1.0, \"learning_rate\": 0.05, \"max_depth\": 3, \"max_iter\": 200, \"min_samples_leaf\": 50} → isotónica",
      "walk_forward": "anual desde 2015: ajusta con eventos cuya SALIDA < 1-ene-Y, predice los de Y; mínimo 200 etiquetados"
     },
     "n_min_tipo": 50,
     "rasgos_gemelo": [
      "tipo_13g_ins",
      "tipo_guia_ins_rutina",
      "tipo_confirmacion",
      "tipo_pt_contra",
      "tipo_autotender",
      "tipo_cluster",
      "log_adv",
      "tramo_5_20",
      "reaccion"
     ],
     "rasgos_juicio": [
      "tipo_13g_ins",
      "tipo_guia_ins_rutina",
      "tipo_confirmacion",
      "tipo_pt_contra",
      "tipo_autotender",
      "tipo_cluster",
      "ins_npr",
      "ins_oport",
      "ins_solo_rut",
      "sor_hit",
      "sor_racha",
      "fun_dev",
      "fun_etr",
      "not_n",
      "pr_max",
      "rat_net",
      "log_adv",
      "tramo_5_20",
      "n_votos",
      "reaccion",
      "r_12_1",
      "tercil"
     ],
     "regex_guia": {
      "no": "cut|lower|trim|reduc|miss|below|withdraw|suspend",
      "si": "(rais|boost|lift|hik|increas)\\w*\\s+(its\\s+|their\\s+|the\\s+)?((full[- ]year|fy\\s*\\d*|fiscal(\\s+year)?\\s*\\d*|annual|\\d{4}|q[1-4]|quarterly|first[- ]half|second[- ]half|h[12])\\s+)?(guidance|outlook|forecast)"
     },
     "salida": "H = 126 días de bolsa (buy-and-hold)"
    },
    "tipo": "estrategia",
    "universo": {
     "lista_e1": "NO excluye: los votos entran como rasgo (n_votos)",
     "mercado": "us",
     "operable": {
      "adv20_min_usd": 5000000.0,
      "panel": "E1 del mes de t (as_of primero de mes)",
      "precio_min_usd": 5.0
     },
     "supervivencia": "price_history solo vivos: tope sandbox"
    },
    "version": "v1"
   },
   "id": "BQ-CEMENTERIO-E3EVENTOSJUICIO-v1",
   "llano": {
    "cifra": "acierto fuera de muestra (AUC) 0,51 (hacía falta > 0,52); frente a comprarlo todo: t = −0,77",
    "idea": "Juzgar cada acontecimiento societario —una participación grande, una compra de directivo, un hecho relevante— con un modelo que decide si merece cartera",
    "que_paso": "El modelo no distingue: acierta la dirección el 51 % de las veces, lo mismo que una moneda. Y comprar todos los eventos sin juzgarlos daba 22 puntos básicos al mes frente a los 8 del modelo. El juicio restaba."
   },
   "marca": "banco-spellhold-v3",
   "motivo": "train NO cumple el criterio pre-registrado (control / mejor evento / EW neto / AUC): no se sella",
   "publicado": "2026-09-02T12:44:49+00:00",
   "resumen_train": {
    "auc_oof": {
     "gemelo": 0.5173,
     "hgb": 0.5122,
     "logit": 0.5094
    },
    "bate_train": false,
    "control_pb_mes": 22.0,
    "criterios": {
     "auc_oof>0,52": false,
     "exceso_neto_vs_ew_t≥1": false,
     "vs_control_cartera": false,
     "vs_mejor_evento_cartera": false
    },
    "dsr": 0.01,
    "exceso_neto_pb_mes": 8.18,
    "exceso_neto_t": 0.44,
    "gemelo": "juicio con solo tipo + log adv + tramo + reacción",
    "gemelo_pb_mes": -10.14,
    "hit_actuados": 0.5425,
    "hit_juzgados": 0.528,
    "mejor_evento_pb_mes": 6.1,
    "meses": 60,
    "modelo": "logit",
    "n_eventos": 4028,
    "pbo": 0.25,
    "periodo": [
     "2015-01",
     "2019-12"
    ],
    "vs_control_t": -0.77,
    "vs_mejor_evento_t": 0.05
   },
   "sha256_ficha": "0cdeec43eb1473c10736a5a868dd37615c2c925fa9a05ad4f8703ff6666a67dc",
   "sha256_train": "14a9e4272ed2fbe6fe83acf86daf2bf5fca405bb24346835a309fd1199109d30"
  },
  {
   "criterios": {
    "ejecucion_t2": false,
    "exceso_neto_vs_ew": true,
    "modelo_vs_gemelo": true
   },
   "estado": "cementerio",
   "ficha": {
    "arranque": {
     "criterio_bate_train": "TODOS: (1) modelo neto − EW media > 0 y t NW ≥ 1; (2) modelo vs gemelo gana (t ≥ 1); (3) término de ejecución media > 0 y t ≥ 2",
     "holdout": [
      "2020-01-01",
      "último mes completo"
     ],
     "lag_min_nw": 0,
     "n_variantes_caza": 6,
     "subperiodos": [
      [
       "2005-01",
       "2008-12"
      ],
      [
       "2009-01",
       "2012-12"
      ],
      [
       "2013-01",
       "2016-12"
      ],
      [
       "2017-01",
       "2019-12"
      ]
     ],
     "train": [
      "2005-01-01",
      "2019-12-31"
     ],
     "train_resultado": {
      "bate_train": false,
      "coste_medio_pb": 7.29,
      "criterios": {
       "ejecucion_t2": false,
       "exceso_neto_vs_ew": true,
       "modelo_vs_gemelo": true
      },
      "dsr": 0.98,
      "ejecucion_pb_mes": 4.72,
      "ejecucion_t": 1.89,
      "ew_pb_mes": 55.54,
      "exceso_neto_pb_mes": 65.89,
      "exceso_neto_t": 2.57,
      "gemelo": "misma cartera al cierre",
      "gemelo_exceso_neto_pb_mes": 61.27,
      "gemelo_t": 2.35,
      "max_dd": 0.58,
      "max_dd_ew": 0.63,
      "meses": 180,
      "modelo": "momentum 12-1 crudo top 35 banda 55 + ejecución US→EU",
      "n_medio": 35.0,
      "pbo": 0.6,
      "periodo": [
       "2005-01",
       "2019-12"
      ],
      "sharpe_anual": 0.72,
      "turnover_medio": 0.4859,
      "vs_gemelo_t": 1.99
     },
     "variante_elegida": "crudo_35",
     "variantes_probadas": [
      "crudo_35",
      "crudo_50",
      "crudo_q5",
      "resid_35",
      "resid_50",
      "resid_q5"
     ]
    },
    "banda": {
     "banda": 55,
     "pesos": "iguales",
     "top": 35
    },
    "benchmark_podrias": "el mismo EW (no hay índice europeo sin supervivencia en casa: declarado)",
    "benchmark_tienes": "EW del universo líquido del mes de formación, en EUR, pesos fijos dentro del mes, price-return, sin coste",
    "cadencia_max": {
     "operaciones_ano_aprox": "según rotación; se declara en train",
     "revisiones": "mensual"
    },
    "control": "el mismo EW del universo",
    "costes": {
     "aplicado_a": "Σ|Δw| en cada rebalanceo (modelo y gemelo; el EW no paga)",
     "pb_lado": 15.0
    },
    "estado": "pre-registrada",
    "fuentes": {
     "macro.observations": "2036-10-01",
     "stocks.price_history": "2026-09-01",
     "stocks.stock_catalog_snapshots": "2026-08-31",
     "tracker.stock_catalog": "2026-08-30"
    },
    "gemelo": "la MISMA cartera (momentum crudo top 35 banda 55) ejecutada al cierre, sin fuente US: la diferencia es el término de ejecución",
    "id": "E4EUROPAMOMENTUM",
    "marca": "banco-spellhold-v3",
    "notas": [
     "price-return, no total-return: declarado",
     "precios ajustados por split tal cual vienen",
     "criterio (2) ⊂ (3) por construcción (modelo − gemelo = término de ejecución): se declara",
     "large caps US del catálogo de hoy (supervivencia en la SEÑAL de ejecución, no en el retorno): declarado",
     "15 nombres de lon cotizan en USD según catálogo: se convierten como USD",
     "sin topes de país ni sector: se reporta la concentración",
     "universo superviviente ⇒ metricas.veredicto tope sandbox hasta tener tabla de bajas",
     "replicable por el partícipe: lista mensual de 35 nombres + regla de hora de ejecución"
    ],
    "persona": "carhart",
    "que_la_mataria": "exceso neto vs EW ≤ 0 en holdout, o término de ejecución ≤ 0 en holdout, o modelo ≤ gemelo en holdout",
    "semilla": 0,
    "senal": {
     "cartera": "top 35 con banda 55, pesos iguales, rebalanceo el primer día de bolsa del mes; pesos fijos dentro del mes",
     "divisa": "contabilidad en EUR (FRED DEXUSEU/DEXUSUK/DEXSZUS/DEXSDUS/DEXNOUS/DEXDNUS, EUR por unidad); NO es señal: declarado",
     "ejecucion_us_eu": {
      "neutral": "open rancio (open == cierre previo), open ausente, sector desconocido o sin cierre US ⇒ al cierre",
      "regla": "último cierre US anterior al rebalanceo (≤ 4 días naturales): relativo del sector del nombre > 0 ⇒ compra en APERTURA, venta al CIERRE; ≤ 0 ⇒ compra al cierre, venta en apertura",
      "sector_us": "EW sector − EW mercado diario sobre large caps US (market_cap_usd ≥ 1e+10, tracker.stock_catalog de hoy)",
      "termino": "Σ Δw·(close/open − 1) de las órdenes ejecutadas en apertura, en moneda local (FX intradía ignorado: declarado)"
     },
     "momentum": "Π(1+r_mensual EUR) − 1 sobre m−12..m−2 (salta m−1), ≥ 9 de 11 meses presentes; elegida CRUDO (residual país+sector = variante)",
     "retornos": "cierre EUR arrastrado ≤ 5 días; r diario ∉ [-80%, +100%] → NaN y el mes sin retorno; hueco → 0 en cartera"
    },
    "tipo": "estrategia",
    "universo": {
     "bolsas": [
      "ams",
      "ath",
      "bit",
      "bme",
      "cph",
      "ebr",
      "eli",
      "epa",
      "hel",
      "ise",
      "lon",
      "aim",
      "osl",
      "sto",
      "swx",
      "vie"
     ],
     "filtro_mensual": {
      "momentum_computable": true,
      "precio_min_eur": 1.0,
      "valor_negociado_mes_min_eur": 50000000.0
     },
     "mercado": "europa",
     "sector": "último snapshot de stocks.stock_catalog_snapshots (11 sectores); desconocido ⇒ ejecución al cierre",
     "sin_alemania": "price_history no tiene etr/fra/ham",
     "supervivencia": "price_history conserva poco deslistado: tope sandbox (declarado)",
     "unidades": {
      "aim": "peniques ÷ 100",
      "gbx_catalogo": "divisa del último snapshot de stocks.stock_catalog_snapshots; fallback tracker.stock_catalog; fallback bolsa",
      "lon": "libras"
     }
    },
    "version": "v1"
   },
   "id": "BQ-CEMENTERIO-E4EUROPAMOMENTUM-v1",
   "llano": {
    "cifra": "término de ejecución +4,7 pb/mes, t = 1,89 (hacía falta t ≥ 2)",
    "idea": "Impulso de precio en acciones europeas de dieciséis bolsas, con una pista de Wall Street para decidir a qué hora ejecutar",
    "que_paso": "Es la que más cerca se quedó. Gana 66 puntos básicos al mes al universo en quince años y la cartera con la pista americana supera a la misma sin ella. Pero la pista de ejecución, medida sola, se queda en t = 1,89 y el criterio escrito pedía 2. Por once centésimas va al cementerio, porque el criterio se escribió antes y no se mueve después."
   },
   "marca": "banco-spellhold-v3",
   "motivo": "train NO cumple el criterio pre-registrado (exceso neto vs EW / modelo vs gemelo / término de ejecución t ≥ 2): no se sella",
   "publicado": "2026-09-02T13:26:21+00:00",
   "resumen_train": {
    "bate_train": false,
    "coste_medio_pb": 7.29,
    "criterios": {
     "ejecucion_t2": false,
     "exceso_neto_vs_ew": true,
     "modelo_vs_gemelo": true
    },
    "dsr": 0.98,
    "ejecucion_pb_mes": 4.72,
    "ejecucion_t": 1.89,
    "ew_pb_mes": 55.54,
    "exceso_neto_pb_mes": 65.89,
    "exceso_neto_t": 2.57,
    "gemelo": "misma cartera al cierre",
    "gemelo_exceso_neto_pb_mes": 61.27,
    "gemelo_t": 2.35,
    "max_dd": 0.58,
    "max_dd_ew": 0.63,
    "meses": 180,
    "modelo": "momentum 12-1 crudo top 35 banda 55 + ejecución US→EU",
    "n_medio": 35.0,
    "pbo": 0.6,
    "periodo": [
     "2005-01",
     "2019-12"
    ],
    "sharpe_anual": 0.72,
    "turnover_medio": 0.4859,
    "vs_gemelo_t": 1.99
   },
   "sha256_ficha": "a731d96f4ba2402a3076327a742eae0672e46b5fff3f93ab2bdae2b51b5be292",
   "sha256_train": "f0c261bb2f6373e68b6e54ac08a40629cd3074ff67dd914f1734be7083797a1b"
  }
 ],
 "fichas": [
  {
   "arranque": {
    "criterio_bate_train": "t NW(dif_votos − dif_nt) ≥ 1 y exceso_lista con t NW ≤ −1",
    "holdout": [
     "2020-01-01",
     "último mes con retorno"
    ],
    "mejor_rasgo": "r_nt (NT 10-K/10-Q)",
    "retador": "HGB anual hacia delante, objetivo exceso 6 m < mediana",
    "train": [
     "2012-01-01",
     "2019-12-01"
    ],
    "train_resultado": {
     "bate_train": true,
     "dif_hit": 0.59,
     "dif_neta_pb_mes": 2.52,
     "dif_neta_t_nw": 1.32,
     "dif_pb_mes": 4.53,
     "dif_t_nw": 2.35,
     "dsr": 0.86,
     "exceso_lista_pb_mes": -17.07,
     "exceso_lista_t_nw": -2.26,
     "f_media": 0.2,
     "hgb_asciende": false,
     "mejor_familia": "sec",
     "mejor_familia_dif_pb_mes": 2.64,
     "meses": 96,
     "nt_dif_pb_mes": 0.36,
     "nt_dif_t_nw": 0.9,
     "nt_nombres_mes": 11.91,
     "pbo": 0.48,
     "periodo": [
      "2012-01",
      "2019-12"
     ],
     "rotacion_media": 0.79,
     "votos_vs_mejor_familia_dif_t": 1.03,
     "votos_vs_nt_dif_t": 2.35,
     "votos_vs_nt_gana": true
    },
    "vara_adicional": "la familia sola con exceso_lista más negativo en train (se declara cuál y si el recuento la bate)",
    "variantes_probadas": [
     "umbral 1 con estrella",
     "umbral 1 sin estrella",
     "umbral 2 con estrella",
     "umbral 2 sin estrella",
     "umbral 3 con estrella",
     "umbral 3 sin estrella"
    ]
   },
   "banda": {},
   "benchmark_podrias": "el mismo EW: no hay listón externo replicable para un universo superviviente propio; se declara igual a «tienes»",
   "benchmark_tienes": "EW del universo operable US, price-return, rebalance mensual (lo que tiene quien compra el universo sin criterio)",
   "cadencia_max": {
    "operaciones_propias": 0,
    "revisiones_ano": 12
   },
   "control": "EW del universo operable; sin coste propio (ambas cestas rebalancean igual)",
   "costes": {
    "aplicado_a": "rotación de la lista: (entradas + salidas)/n_sin × 10 pb",
    "pb_lado": 10.0
   },
   "estado": "pre-registrada",
   "fuentes": {
    "factors.analyst_call_outcomes": "2026-08-28",
    "smartmoney.insider_trades_enriched": "2026-09-01",
    "smartmoney.market_news": "2026-09-01",
    "stocks.analyst_ratings": "2026-10-05",
    "stocks.dividends_history": "2027-04-08",
    "stocks.earnings_surprises": "2027-02-09",
    "stocks.fundamentals_history": "2026-08-03",
    "stocks.price_history": "2026-09-01",
    "stocks.sec_filings": "2026-09-01",
    "stocks.splits_history": "2026-09-03"
   },
   "fuentes_hoy": {
    "factors.analyst_call_outcomes": "2026-08-28",
    "smartmoney.insider_trades_enriched": "2026-09-01",
    "smartmoney.market_news": "2026-09-02",
    "stocks.analyst_ratings": "2026-10-05",
    "stocks.dividends_history": "2027-04-08",
    "stocks.earnings_surprises": "2027-02-09",
    "stocks.fundamentals_history": "2026-08-03",
    "stocks.price_history": "2026-09-01",
    "stocks.sec_filings": "2026-09-01",
    "stocks.splits_history": "2026-09-03"
   },
   "gemelo": "lista del mejor rasgo aislado (solo r_nt): la vara v4 es dif_votos − dif_nt",
   "id": "E1LISTANEGRA",
   "id_sello": "BQ-PREREG-E1LISTANEGRA-v1",
   "informe": {
    "evidencia_anios": 14.666666666666666,
    "holdout": {
     "dosis": [
      {
       "hit": 0.4989256113782871,
       "media": 0.0026494736786026284,
       "mediana": -0.00022788625173517964,
       "n": 68411,
       "votos": "0"
      },
      {
       "hit": 0.4888742325026303,
       "media": 0.0012186771079684053,
       "mediana": -0.002259310939799404,
       "n": 63681,
       "votos": "1"
      },
      {
       "hit": 0.4692052133912599,
       "media": -0.006018551506234458,
       "mediana": -0.0073422150990983225,
       "n": 27391,
       "votos": "2"
      },
      {
       "hit": 0.4396447757921281,
       "media": -0.010306498896190373,
       "mediana": -0.017569930568199832,
       "n": 9121,
       "votos": "≥3"
      }
     ],
     "familias": {
      "analistas": {
       "dif": {
        "T": 80,
        "hit": 0.425,
        "lag": 3,
        "media_anual": -0.010650434073193153,
        "media_mes": -0.0008875361727660961,
        "mediana": -0.0007214272346220407,
        "t_naive": -2.177618105070999,
        "t_nw": -2.298605138053476
       },
       "exceso_lista": {
        "T": 80,
        "hit": 0.575,
        "lag": 3,
        "media_anual": 0.022469329351930023,
        "media_mes": 0.001872444112660835,
        "mediana": 0.0014205489778253491,
        "t_naive": 1.9970767871654913,
        "t_nw": 2.0963673591527647
       },
       "exceso_por_nombre": {
        "hit": 0.4840490681942377,
        "mediana": -0.003478784200036389,
        "n": 53069
       },
       "n_l_medio": 663.3625
      },
      "atencion": {
       "dif": {
        "T": 80,
        "hit": 0.5125,
        "lag": 3,
        "media_anual": 0.0015787232060400138,
        "media_mes": 0.00013156026717000115,
        "mediana": 3.660144569922301e-05,
        "t_naive": 0.2847630624851962,
        "t_nw": 0.3409126408299533
       },
       "exceso_lista": {
        "T": 80,
        "hit": 0.4875,
        "lag": 3,
        "media_anual": -0.002740559202444319,
        "media_mes": -0.0002283799335370266,
        "mediana": -0.00013560893451069816,
        "t_naive": -0.13603743524152245,
        "t_nw": -0.16178997293896297
       },
       "exceso_por_nombre": {
        "hit": 0.4804921885801189,
        "mediana": -0.003885124844871392,
        "n": 36165
       },
       "n_l_medio": 452.0625
      },
      "fundamentales": {
       "dif": {
        "T": 80,
        "hit": 0.475,
        "lag": 3,
        "media_anual": -0.002448027550820288,
        "media_mes": -0.00020400229590169069,
        "mediana": -0.00011472188831942835,
        "t_naive": -1.5913464120610283,
        "t_nw": -1.633275314744137
       },
       "exceso_lista": {
        "T": 80,
        "hit": 0.525,
        "lag": 3,
        "media_anual": 0.02953570424005616,
        "media_mes": 0.0024613086866713467,
        "mediana": 0.0012727174743260047,
        "t_naive": 1.75915792662174,
        "t_nw": 1.7356710364610382
       },
       "exceso_por_nombre": {
        "hit": 0.49095625855732505,
        "mediana": -0.0023212170423937456,
        "n": 13877
       },
       "n_l_medio": 173.4625
      },
      "informados": {
       "dif": {
        "T": 80,
        "hit": 0.5625,
        "lag": 3,
        "media_anual": 0.00406157732038321,
        "media_mes": 0.0003384647766986008,
        "mediana": 0.00020136337394230028,
        "t_naive": 1.9842834847422965,
        "t_nw": 2.2596520299326466
       },
       "exceso_lista": {
        "T": 80,
        "hit": 0.4375,
        "lag": 3,
        "media_anual": -0.03963644226515657,
        "media_mes": -0.0033030368554297146,
        "mediana": -0.001907143166524473,
        "t_naive": -1.9817250854917743,
        "t_nw": -2.281818139561595
       },
       "exceso_por_nombre": {
        "hit": 0.4689083080040527,
        "mediana": -0.007688060897160093,
        "n": 15792
       },
       "n_l_medio": 197.4
      },
      "precio": {
       "dif": {
        "T": 80,
        "hit": 0.75,
        "lag": 3,
        "media_anual": 0.03041019817944002,
        "media_mes": 0.0025341831816200018,
        "mediana": 0.002818164298568609,
        "t_naive": 3.791600772505092,
        "t_nw": 3.4648786342753013
       },
       "exceso_lista": {
        "T": 80,
        "hit": 0.25,
        "lag": 3,
        "media_anual": -0.27757326582954356,
        "media_mes": -0.023131105485795295,
        "mediana": -0.025952157456576537,
        "t_naive": -4.032714523393553,
        "t_nw": -3.6597346211865958
       },
       "exceso_por_nombre": {
        "hit": 0.4168480498852874,
        "mediana": -0.03105413817689849,
        "n": 16999
       },
       "n_l_medio": 212.4875
      },
      "sec": {
       "dif": {
        "T": 80,
        "hit": 0.7875,
        "lag": 3,
        "media_anual": 0.015506800918778403,
        "media_mes": 0.0012922334098982003,
        "mediana": 0.0012326329276931185,
        "t_naive": 5.399621219941617,
        "t_nw": 5.974663744821553
       },
       "exceso_lista": {
        "T": 80,
        "hit": 0.2125,
        "lag": 3,
        "media_anual": -0.20851941972661625,
        "media_mes": -0.017376618310551355,
        "mediana": -0.018752920570565122,
        "t_naive": -5.880749835378563,
        "t_nw": -6.093066973615557
       },
       "exceso_por_nombre": {
        "hit": 0.44482845823147604,
        "mediana": -0.013079758233676053,
        "n": 11863
       },
       "n_l_medio": 148.2875
      }
     },
     "lista": {
      "coste_medio_mes": 0.00023464489720810712,
      "dif": {
       "T": 80,
       "hit": 0.625,
       "lag": 3,
       "media_anual": 0.022842185050497697,
       "media_mes": 0.001903515420874808,
       "mediana": 0.0019292048596326868,
       "t_naive": 3.062009937325923,
       "t_nw": 3.466186891337507
      },
      "dif_neta": {
       "T": 80,
       "hit": 0.6,
       "lag": 3,
       "media_anual": 0.02002644628400041,
       "media_mes": 0.0016688705236667007,
       "mediana": 0.0016726496370693795,
       "t_naive": 2.6863886432910515,
       "t_nw": 3.0443272267870687
      },
      "exceso_lista": {
       "T": 80,
       "hit": 0.375,
       "lag": 3,
       "media_anual": -0.07446933932034498,
       "media_mes": -0.006205778276695415,
       "mediana": -0.0052282770679972996,
       "t_naive": -3.1085928963376306,
       "t_nw": -3.4795486693978086
      },
      "exceso_por_nombre": {
       "hit": 0.4634839943627944,
       "mediana": -0.008777545531222761,
       "n": 39736
      },
      "f_media": 0.23601240825340913,
      "n_l_medio": 496.7,
      "n_u_medio": 2107.55,
      "rotacion_media": 0.7595080307329569
     },
     "mejor_familia": {
      "dif": {
       "T": 80,
       "hit": 0.7875,
       "lag": 3,
       "media_anual": 0.015506800918778403,
       "media_mes": 0.0012922334098982003,
       "mediana": 0.0012326329276931185,
       "t_naive": 5.399621219941617,
       "t_nw": 5.974663744821553
      },
      "familia": "sec",
      "t_exceso_lista": -6.093066973615557,
      "votos_vs_familia_dif": {
       "T": 80,
       "gana": true,
       "lag": 3,
       "media": 0.0006112820109766074,
       "se": 0.00048736485355886335,
       "t": 1.2542595275651685,
       "t_naive": 1.2681447571001505
      }
     },
     "mejor_rasgo_nt": {
      "dif": {
       "T": 80,
       "hit": 0.725,
       "lag": 3,
       "media_anual": 0.006161307237005399,
       "media_mes": 0.00051344226975045,
       "mediana": 0.0005527837243496448,
       "t_naive": 4.704756214314548,
       "t_nw": 4.869623700364384
      },
      "exceso_lista": {
       "T": 80,
       "hit": 0.275,
       "lag": 3,
       "media_anual": -0.3686717167030411,
       "media_mes": -0.03072264305858676,
       "mediana": -0.03234391272167556,
       "t_naive": -3.8127292049127623,
       "t_nw": -3.985938894451504
      },
      "exceso_por_nombre": {
       "hit": 0.39669421487603307,
       "mediana": -0.03136134377710347,
       "n": 2541
      },
      "n_l_medio": 31.7625
     },
     "meses": 80,
     "modelo_vs_rasgo": {
      "calidad": {
       "T": 80,
       "gana": false,
       "lag": 3,
       "media": -0.02451686478189135,
       "se": 0.007195235159912102,
       "t": -3.407375052657883,
       "t_naive": -3.4854086157015307
      },
      "dif": {
       "T": 80,
       "gana": true,
       "lag": 3,
       "media": 0.0013900731511243577,
       "se": 0.0005171493662824893,
       "t": 2.6879529237691067,
       "t_naive": 2.4821227768820133
      }
     },
     "primer_mes": "2020-01",
     "tramos": [
      {
       "hit": null,
       "media": null,
       "mediana": null,
       "n": 0,
       "t": null,
       "tramo": "<1"
      },
      {
       "hit": null,
       "media": null,
       "mediana": null,
       "n": 0,
       "t": null,
       "tramo": "1-5"
      },
      {
       "hit": 0.4156573116691285,
       "media": -0.019125309998608855,
       "mediana": -0.024206659905232946,
       "n": 10155,
       "t": -8.521715347626742,
       "tramo": "5-20"
      },
      {
       "hit": 0.4799026402082418,
       "media": -0.002390211575067927,
       "mediana": -0.004479455881953332,
       "n": 29581,
       "t": -2.498243353374269,
       "tramo": ">20"
      }
     ],
     "ultimo_mes": "2026-08"
    },
    "id": "BQ-INFORME-E1LISTANEGRA-v1",
    "marca": "banco-spellhold-v3",
    "motivos": [
     "universo superviviente (sin tabla de bajas): como mucho sandbox",
     "bate a «lo que tienes» y «lo que podrías tener»"
    ],
    "sellado_at": "2026-09-02 11:48:59.514994+02:00",
    "sha256": "8167fa3c62fa7756c55a045eea7be12e74febd91e30540b5cf3beee942fe67f8",
    "sha_ficha": "24c4211c3f7cfa3a73561b5a1dd8c3bf4005997693009c188d1831ab002a7e30",
    "supervivencia": "cota inferior: universo de vivos",
    "train": {
     "bate_train": true,
     "dosis": [
      {
       "hit": 0.5034924737191353,
       "media": 0.0011705386789779004,
       "mediana": 0.0004651495601756834,
       "n": 57266,
       "votos": "0"
      },
      {
       "hit": 0.489172916446604,
       "media": -0.0005467394377449615,
       "mediana": -0.001457289562776496,
       "n": 47335,
       "votos": "1"
      },
      {
       "hit": 0.4798292188953966,
       "media": -0.001473592001056222,
       "mediana": -0.0032890834639093813,
       "n": 18269,
       "votos": "2"
      },
      {
       "hit": 0.4819032126880846,
       "media": -0.002893677193451517,
       "mediana": -0.0031249505848388696,
       "n": 4918,
       "votos": "≥3"
      }
     ],
     "dsr": {
      "T": 96,
      "dsr": 0.8622320616616237,
      "n_variantes": 6,
      "psr0": 0.9844832224794754,
      "sr0": 0.1142660199725814,
      "var_sharpes": 0.007724198660782093
     },
     "familias": {
      "analistas": {
       "dif": {
        "T": 96,
        "hit": 0.5208333333333334,
        "lag": 3,
        "media_anual": 0.0016181169828680304,
        "media_mes": 0.0001348430819056692,
        "mediana": 0.0001428683679529875,
        "t_naive": 0.7140375625020016,
        "t_nw": 0.7355451296324036
       },
       "exceso_lista": {
        "T": 96,
        "hit": 0.4791666666666667,
        "lag": 3,
        "media_anual": -0.00254701834077679,
        "media_mes": -0.00021225152839806583,
        "mediana": -0.00041985438528753093,
        "t_naive": -0.36542656609426016,
        "t_nw": -0.3919658311911108
       },
       "exceso_por_nombre": {
        "hit": 0.48998048750271006,
        "mediana": -0.0014782223539350874,
        "n": 32287
       },
       "n_l_medio": 336.3229166666667
      },
      "atencion": {
       "dif": {
        "T": 96,
        "hit": 0.5833333333333334,
        "lag": 3,
        "media_anual": 0.003649528701139497,
        "media_mes": 0.0003041273917616248,
        "mediana": 0.0004188097081961892,
        "t_naive": 1.6079688975546182,
        "t_nw": 1.7688859668458505
       },
       "exceso_lista": {
        "T": 96,
        "hit": 0.4166666666666667,
        "lag": 3,
        "media_anual": -0.014001076936013861,
        "media_mes": -0.0011667564113344885,
        "mediana": -0.001469353756726834,
        "t_naive": -1.6649835306993366,
        "t_nw": -1.8003414551275938
       },
       "exceso_por_nombre": {
        "hit": 0.48609931696510983,
        "mediana": -0.0019072855130115047,
        "n": 27085
       },
       "n_l_medio": 282.1354166666667
      },
      "fundamentales": {
       "dif": {
        "T": 96,
        "hit": 0.5104166666666666,
        "lag": 3,
        "media_anual": 0.0007346239437194203,
        "media_mes": 6.121866197661836e-05,
        "mediana": 6.311097171570607e-05,
        "t_naive": 0.6716493210343123,
        "t_nw": 0.6420928606331999
       },
       "exceso_lista": {
        "T": 96,
        "hit": 0.4895833333333333,
        "lag": 3,
        "media_anual": -0.008383104235719438,
        "media_mes": -0.0006985920196432865,
        "mediana": -0.000823466747258415,
        "t_naive": -0.6652012253227163,
        "t_nw": -0.6268289582602328
       },
       "exceso_por_nombre": {
        "hit": 0.49901864573110893,
        "mediana": -0.00014351790001063645,
        "n": 10190
       },
       "n_l_medio": 106.14583333333333
      },
      "informados": {
       "dif": {
        "T": 96,
        "hit": 0.6354166666666666,
        "lag": 3,
        "media_anual": 0.0015919141276587966,
        "media_mes": 0.00013265951063823304,
        "mediana": 0.0002583024361530392,
        "t_naive": 1.1046896439329696,
        "t_nw": 1.0138574815301264
       },
       "exceso_lista": {
        "T": 96,
        "hit": 0.3645833333333333,
        "lag": 3,
        "media_anual": -0.018366842981344743,
        "media_mes": -0.0015305702484453953,
        "mediana": -0.0026772976092691836,
        "t_naive": -1.1308701942404669,
        "t_nw": -1.0344382150089786
       },
       "exceso_por_nombre": {
        "hit": 0.4778445362373263,
        "mediana": -0.003867939321094341,
        "n": 10652
       },
       "n_l_medio": 110.95833333333333
      },
      "precio": {
       "dif": {
        "T": 96,
        "hit": 0.4583333333333333,
        "lag": 3,
        "media_anual": 0.000994969976168567,
        "media_mes": 8.291416468071392e-05,
        "mediana": -0.00021035586377730203,
        "t_naive": 0.2888974092202393,
        "t_nw": 0.32210197505404353
       },
       "exceso_lista": {
        "T": 96,
        "hit": 0.5416666666666666,
        "lag": 3,
        "media_anual": -0.011071417863977827,
        "media_mes": -0.0009226181553314856,
        "mediana": 0.00218120986565927,
        "t_naive": -0.3054198226151963,
        "t_nw": -0.3427528721578709
       },
       "exceso_por_nombre": {
        "hit": 0.47313446047623264,
        "mediana": -0.006187514470452651,
        "n": 11297
       },
       "n_l_medio": 117.67708333333333
      },
      "sec": {
       "dif": {
        "T": 96,
        "hit": 0.6041666666666666,
        "lag": 3,
        "media_anual": 0.0031631439770693362,
        "media_mes": 0.0002635953314224447,
        "mediana": 0.00027440757341083005,
        "t_naive": 2.60917627193209,
        "t_nw": 2.6538123117669263
       },
       "exceso_lista": {
        "T": 96,
        "hit": 0.3958333333333333,
        "lag": 3,
        "media_anual": -0.04183248612262962,
        "media_mes": -0.003486040510219135,
        "mediana": -0.0051689471599754054,
        "t_naive": -2.2251105796443467,
        "t_nw": -2.296618132989951
       },
       "exceso_por_nombre": {
        "hit": 0.46440418474100537,
        "mediana": -0.005024950366900536,
        "n": 7838
       },
       "n_l_medio": 81.64583333333333
      }
     },
     "hgb": {
      "asciende": false,
      "dif_hgb": {
       "T": 60,
       "hit": 0.55,
       "lag": 3,
       "media_anual": 0.00507730057724411,
       "media_mes": 0.0004231083814370092,
       "mediana": 0.00026703649180402113,
       "t_naive": 1.2459298602864766,
       "t_nw": 1.4285544790435076
      },
      "dif_votos_mismos_meses": {
       "T": 60,
       "hit": 0.7,
       "lag": 3,
       "media_anual": 0.01009696695631281,
       "media_mes": 0.0008414139130260676,
       "mediana": 0.001066663172105936,
       "t_naive": 3.491787310931022,
       "t_nw": 4.127656389722343
      },
      "hgb_vs_votos_dif": {
       "T": 60,
       "gana": false,
       "lag": 3,
       "media": -0.0004183055315890584,
       "se": 0.0002292219600979899,
       "t": -1.8248929178087359,
       "t_naive": -1.5579125948587593
      },
      "horizonte_m": 6,
      "meses": 60,
      "n_ajustes": 5,
      "n_filas_ultimo_train": 100568,
      "precision_hgb": 0.5196481536432107,
      "precision_votos": 0.5230988636666503,
      "primer_anio": 2015
     },
     "lista": {
      "coste_medio_mes": 0.0002007412992282555,
      "dif": {
       "T": 96,
       "hit": 0.59375,
       "lag": 3,
       "media_anual": 0.005435671362582659,
       "media_mes": 0.0004529726135485549,
       "mediana": 0.0005095758793014092,
       "t_naive": 2.2764063509830597,
       "t_nw": 2.3480442662108447
      },
      "dif_neta": {
       "T": 96,
       "hit": 0.5520833333333334,
       "lag": 3,
       "media_anual": 0.0030267757718435927,
       "media_mes": 0.0002522313143202994,
       "mediana": 0.0003126880807462145,
       "t_naive": 1.2706603402323535,
       "t_nw": 1.321778270751786
      },
      "exceso_lista": {
       "T": 96,
       "hit": 0.40625,
       "lag": 3,
       "media_anual": -0.020482010865184145,
       "media_mes": -0.0017068342387653453,
       "mediana": -0.0020125041007381913,
       "t_naive": -2.205590900546979,
       "t_nw": -2.26258653247063
      },
      "exceso_por_nombre": {
       "hit": 0.4781156415572449,
       "mediana": -0.0034378848530313847,
       "n": 26046
      },
      "f_media": 0.20299883589581202,
      "n_l_medio": 271.3125,
      "n_u_medio": 1331.125,
      "rotacion_media": 0.7887244747106866
     },
     "mejor_familia": {
      "dif": {
       "T": 96,
       "hit": 0.6041666666666666,
       "lag": 3,
       "media_anual": 0.0031631439770693362,
       "media_mes": 0.0002635953314224447,
       "mediana": 0.00027440757341083005,
       "t_naive": 2.60917627193209,
       "t_nw": 2.6538123117669263
      },
      "familia": "sec",
      "t_exceso_lista": -2.296618132989951,
      "votos_vs_familia_dif": {
       "T": 96,
       "gana": true,
       "lag": 3,
       "media": 0.00018937728212611022,
       "se": 0.00018360036984923673,
       "t": 1.0314646004341776,
       "t_naive": 0.9747636513702568
      }
     },
     "mejor_rasgo_nt": {
      "dif": {
       "T": 96,
       "hit": 0.53125,
       "lag": 3,
       "media_anual": 0.00043684472398944395,
       "media_mes": 3.640372699912033e-05,
       "mediana": 3.0339489750278847e-05,
       "t_naive": 0.8622399387839228,
       "t_nw": 0.9029197287766764
      },
      "exceso_lista": {
       "T": 96,
       "hit": 0.46875,
       "lag": 3,
       "media_anual": -0.0010929847540560068,
       "media_mes": -9.108206283800057e-05,
       "mediana": -0.003607137656016692,
       "t_naive": -0.016068875456751952,
       "t_nw": -0.016201883706092546
      },
      "exceso_por_nombre": {
       "hit": 0.4715660542432196,
       "mediana": -0.0051564865635653975,
       "n": 1143
      },
      "n_l_medio": 11.90625
     },
     "meses": 96,
     "modelo_vs_rasgo": {
      "calidad": {
       "T": 96,
       "gana": false,
       "lag": 3,
       "media": 0.0016157521759273474,
       "se": 0.0052883876205668656,
       "t": 0.3055283182427074,
       "t_naive": 0.297411505894798
      },
      "dif": {
       "T": 96,
       "gana": true,
       "lag": 3,
       "media": 0.00041656888654943453,
       "se": 0.0001771750115056112,
       "t": 2.351171776479561,
       "t_naive": 2.239962178203376
      }
     },
     "pbo": {
      "N": 6,
      "S": 16,
      "T": 96,
      "degradacion": -0.931708445980559,
      "lambda_mediana": 0.28768207245178085,
      "n_combos": 3000,
      "pbo": 0.4846666666666667
     },
     "primer_mes": "2012-01",
     "tramos": [
      {
       "hit": null,
       "media": null,
       "mediana": null,
       "n": 0,
       "t": null,
       "tramo": "<1"
      },
      {
       "hit": null,
       "media": null,
       "mediana": null,
       "n": 0,
       "t": null,
       "tramo": "1-5"
      },
      {
       "hit": 0.46156920207806046,
       "media": -0.003663677952125177,
       "mediana": -0.007062116235328035,
       "n": 7507,
       "t": -2.3462819925331435,
       "tramo": "5-20"
      },
      {
       "hit": 0.48481579373213224,
       "media": -0.0014465479968558041,
       "mediana": -0.0021443917138109295,
       "n": 18539,
       "t": -2.0956949203348487,
       "tramo": ">20"
      }
     ],
     "ultimo_mes": "2019-12",
     "variantes": {
      "T": 96,
      "elegida": "u2_con_estrella",
      "sharpe_mensual": {
       "u1_con_estrella": 0.304474269416377,
       "u1_sin_estrella": 0.304474269416377,
       "u2_con_estrella": 0.23112150571092602,
       "u2_sin_estrella": 0.1507926947825032,
       "u3_con_estrella": 0.28393025610578876,
       "u3_sin_estrella": 0.09448695472402945
      }
     }
    },
    "veredicto": "sandbox"
   },
   "llano": {
    "cifra": "universo sin la lista frente al universo: +19 pb/mes, t = 3,47, en 80 meses fuera de muestra",
    "idea": "Una lista de acciones que evitar: entra la que dos familias de pistas independientes —directivos, analistas, registros de la SEC, noticias, contabilidad— votan en contra",
    "que_paso": "En los seis años y medio que el modelo nunca vio (2020-2026) el universo sin las vetadas rinde 19 puntos básicos al mes más que el universo entero, y las que reúnen tres o más votos pierden un 1 % al mes de media. Sellada y en pruebas, sin dinero: el universo con el que se probó es el de las empresas que siguen vivas, y hasta tener la tabla de bajas no pasa de ahí."
   },
   "marca": "banco-spellhold-v3",
   "notas": [
    "price-return, no total-return (dividends_history cubre desde 2016): declarado",
    "fundamentales con lag 180 d y sin PIT (loaded_at único): declarado",
    "noticias: cron semanal ⇒ hasta 7 d de retraso en vivo; cobertura de tickers ~29 % en 2019",
    "ratings desde 2011-12: por eso train arranca en 2012-01",
    "dividends_history: especial y regular con la misma ex_date comparten fila (mediana de 4 como defensa)",
    "universo superviviente ⇒ metricas.veredicto tope sandbox hasta tener tabla de bajas",
    "en el universo operable (≥ 5 M$) NT vota en ~12 nombres/mes y su dif no se distingue de 0: la vara NT es floja aquí; por eso se sella también la comparación con la mejor familia sola (train_resultado)",
    "la rotación mensual de la lista es alta (reglas de cuantil: noticias, MAX, Amihud); el coste de 10 pb por entrada/salida se carga entero aunque quien sigue la lista solo deje de comprar"
   ],
   "persona": "condorcet",
   "que_la_mataria": "los excluidos rinden ≥ la mediana del universo en 4 semestres seguidos en vivo; o exceso_lista ≥ 0 en holdout",
   "sellado_at": "2026-09-02 11:42:10.817306+02:00",
   "semilla": 0,
   "senal": {
    "cadencia": "mensual; as_of = primer día del mes, todo dato < as_of; se mide con el retorno del mes",
    "cuantiles": "dentro del universo del mes (ADV20 ≥ 1 M$, precio ≥ 5 $)",
    "entra": "≥ 2 familias votan, o 1 voto de la familia ★ sec",
    "familias": {
     "analistas": {
      "reglas": {
       "r_downgrade_ignorado": "downgrade en 90 d con precio a 5 sesiones ≥ precio del día",
       "r_missers": "hit de sorpresas (últimas 8, ≥ 4) en el quintil bajo del mes",
       "r_upgrade_tercil_bajo": "upgrade en 90 d de analista del tercil bajo de skill PIT"
      }
     },
     "atencion": {
      "reglas": {
       "r_atencion": "nº de noticias en 30 d por encima del quintil alto del mes (y > 0)"
      }
     },
     "fundamentales": {
      "reglas": {
       "r_devengos_venden": "devengos (Sloan) quintil alto del mes y más vendedores que compradores en 90 d",
       "r_retraso_10k": "último 10-K ≥ 20 d más tarde que el anterior"
      }
     },
     "informados": {
      "reglas": {
       "r_13d": "≥ 1 SC 13D(/A) en 90 d",
       "r_solo_rutinarias": "solo compras rutinarias (CMP) en 90 d"
      }
     },
     "precio": {
      "reglas": {
       "r_amihud": "Amihud (|r|/$vol) 20 sesiones en el decil alto del mes",
       "r_max_loteria": "mayor retorno diario de 20 sesiones en el decil alto del mes",
       "r_recorte_div": "último dividendo ≥ 25% por debajo de la mediana de los 4 anteriores, sin split en la ventana"
      }
     },
     "sec": {
      "estrella": true,
      "reglas": {
       "r_nt": "≥ 1 NT 10-K/10-Q en 183 d",
       "r_serial_424b5": "≥ 3 424B5 en 365 d y ninguna compra de insider en 90 d",
       "r_split_shelf": "split inverso en 180 d y S-1/S-3/424B5 en 180 d"
      }
     }
    },
    "modelo": "recuento de votos (condorcet); el HGB solo asciende si gana en dif (t NW ≥ 1) Y en precisión a igual cobertura"
   },
   "sha256": "24c4211c3f7cfa3a73561b5a1dd8c3bf4005997693009c188d1831ab002a7e30",
   "tipo": "estrategia",
   "universo": {
    "mercado": "us",
    "n_min_mes": 100,
    "operable": {
     "adv20_min_usd": 5000000.0,
     "precio_min_usd": 5.0
    },
    "panel_tramos_adv_min_usd": 1000000.0,
    "supervivencia": "price_history solo vivos (5.082/5.096 símbolos US con última fecha en 2026): cota inferior"
   },
   "version": "v1"
  }
 ],
 "generado": "2026-09-02T16:30:55+00:00",
 "n_cementerios": 7,
 "n_fichas": 1,
 "nota": "1 fichas; 7 en el cementerio; filas ajenas al banco (no JSON o sin marca): BQ-PREREG-BC2-202608",
 "version_arnes": "b250c558ed1588e585f06e4f4b9d51019910086c7628038fa079d80e7548d3a9"
}
