{
 "model": "tuatara-embed-stocks-1 (Tuatara Vector financial stocks build; symbol rows `<symbol>_sym`, hashed 4096)",
 "model_revision": "d3f8853e97a9f826",
 "harness": "scripts/research/backtest_tuatara_vs_claude_stocks.py (Task B; Task C with --hidden-only) + scripts/research/models/symbols/write_evidence.py; Task A diagnostic: scripts/research/models/symbols/{universe,run_task_a}.py",
 "prereg": "static/research/tuatara-embed-stocks-symbols/PREREG.md",
 "prereg_revision": 2,
 "git_sha": "ecbc0a5bcc6d420afa8e63cc43a33e6fd4873745",
 "dataset_version": "symbol benchmark v2 (returns): Task B symbench-b-2026-10-14t23-50-35; Task C symbench-c-2026-10-15t00-59-33; Task A diagnostic universe 3778 symbols",
 "built_at": "2026-10-15",
 "metrics": {
  "symbols/test/b_tuatara_vs_spy_pct": -0.5552625,
  "symbols/test/b_tuatara_vs_spy_ci_low": -0.86496,
  "symbols/test/b_tuatara_vs_spy_ci_high": -0.2713875,
  "symbols/test/b_lift_over_llm_pct": 0.5176987951807229,
  "symbols/test/b_lift_over_llm_ci_low": -0.552710843373494,
  "symbols/test/b_lift_over_llm_ci_high": 1.5612289156626507,
  "symbols/test/b_llm_vs_spy_pct": -1.2093975903614458,
  "symbols/test/b_tuatara_win_pct": 36.0,
  "symbols/test/b_llm_win_pct": 39.75903614457831,
  "symbols/test/b_tuatara_sharpe": -0.1738157324668911,
  "symbols/test/b_headlines": 400,
  "symbols/test/b_tuatara_priced": 400,
  "symbols/test/b_llm_priced": 83,
  "symbols/test/b_both_priced": 83,
  "symbols/test/b_minilm_vs_spy_pct": -0.586395,
  "symbols/test/b_minilm_priced": 400,
  "symbols/test/c_hidden_tuatara_vs_spy_pct": -0.5023734335839599,
  "symbols/test/c_hidden_tuatara_vs_spy_ci_low": -0.8152380952380952,
  "symbols/test/c_hidden_tuatara_vs_spy_ci_high": -0.2073483709273183,
  "symbols/test/c_hidden_lift_over_llm_pct": -0.01207741935483874,
  "symbols/test/c_hidden_lift_over_llm_ci_low": -0.5677290322580646,
  "symbols/test/c_hidden_lift_over_llm_ci_high": 0.5705225806451613,
  "symbols/test/c_hidden_llm_vs_spy_pct": -0.7400774193548387,
  "symbols/test/c_hidden_tuatara_win_pct": 37.34335839598997,
  "symbols/test/c_hidden_llm_win_pct": 40.0,
  "symbols/test/c_hidden_tuatara_sharpe": -0.1567070497920138,
  "symbols/test/c_hidden_headlines": 400,
  "symbols/test/c_hidden_tuatara_priced": 399,
  "symbols/test/c_hidden_llm_priced": 155,
  "symbols/test/c_hidden_both_priced": 155,
  "symbols/test/c_hidden_minilm_vs_spy_pct": -0.605225,
  "symbols/test/c_hidden_minilm_priced": 400
 },
 "previous_release": {},
 "task_b": {
  "complete": true,
  "run_id": "symbench-b-2026-10-14t23-50-35",
  "parameters": {
   "sample": 400,
   "hold": 2,
   "top_k": 12,
   "min_tuatara_score": 0.04,
   "neutral_band": 0.04,
   "cost": 0.0015,
   "max_leg_move": 3.0,
   "hidden_only": false,
   "tuatara_max_results": 30,
   "since": "2026-07-01",
   "until": "2026-10-08",
   "namespace": "CMDB-nasdaq-v07",
   "benchmark": "SPY",
   "price_source": "historical_stock_prices",
   "entry": "next-session open",
   "exit": "close +hold sessions"
  },
  "summary": {
   "n_headlines": 400,
   "tuatara_input": "full_article_keywords_k24",
   "full_content_headlines": 305,
   "claude_input": "full_article",
   "tuatara": {
    "n": 400,
    "mean_pct": -0.593,
    "median_pct": -0.728,
    "win_pct": 36.0,
    "stdev_pct": 3.286,
    "mean_vs_spy_pct": -0.555
   },
   "claude": {
    "n": 83,
    "mean_pct": -1.265,
    "median_pct": -0.515,
    "win_pct": 39.8,
    "stdev_pct": 5.299,
    "mean_vs_spy_pct": -1.209
   },
   "overlap": {
    "n": 71,
    "mean_pct": -1.074,
    "median_pct": -0.323,
    "win_pct": 46.5,
    "stdev_pct": 5.658,
    "mean_vs_spy_pct": -1.027
   },
   "combined": {
    "n": 400,
    "mean_pct": -0.628,
    "median_pct": -0.728,
    "win_pct": 35.8,
    "stdev_pct": 3.272,
    "mean_vs_spy_pct": -0.591
   },
   "MiniLM": {
    "n": 400,
    "mean_pct": -0.624,
    "median_pct": -0.596,
    "win_pct": 34.8,
    "stdev_pct": 3.313,
    "mean_vs_spy_pct": -0.586
   },
   "head_to_head": {
    "n_both_traded": 83,
    "claude_beats_tuatara": 35,
    "tuatara_beats_claude": 48,
    "claude_win_pct": 42.2,
    "mean_jaccard_overlap": 0.035
   }
  }
 },
 "task_c": {
  "complete": true,
  "run_id": "symbench-c-2026-10-15t00-59-33",
  "parameters": {
   "sample": 400,
   "hold": 2,
   "top_k": 12,
   "min_tuatara_score": 0.04,
   "neutral_band": 0.04,
   "cost": 0.0015,
   "max_leg_move": 3.0,
   "hidden_only": true,
   "tuatara_max_results": 60,
   "since": "2026-07-01",
   "until": "2026-10-08",
   "namespace": "CMDB-nasdaq-v07",
   "benchmark": "SPY",
   "price_source": "historical_stock_prices",
   "entry": "next-session open",
   "exit": "close +hold sessions"
  },
  "summary": {
   "n_headlines": 400,
   "tuatara_input": "full_article_keywords_k24",
   "full_content_headlines": 305,
   "claude_input": "full_article",
   "tuatara": {
    "n": 399,
    "mean_pct": -0.541,
    "median_pct": -0.557,
    "win_pct": 37.3,
    "stdev_pct": 3.268,
    "mean_vs_spy_pct": -0.502
   },
   "claude": {
    "n": 155,
    "mean_pct": -0.751,
    "median_pct": -0.753,
    "win_pct": 40.0,
    "stdev_pct": 3.248,
    "mean_vs_spy_pct": -0.74
   },
   "overlap": {
    "n": 123,
    "mean_pct": -1.163,
    "median_pct": -0.797,
    "win_pct": 39.0,
    "stdev_pct": 3.365,
    "mean_vs_spy_pct": -1.149
   },
   "combined": {
    "n": 399,
    "mean_pct": -0.53,
    "median_pct": -0.532,
    "win_pct": 36.3,
    "stdev_pct": 3.175,
    "mean_vs_spy_pct": -0.491
   },
   "MiniLM": {
    "n": 400,
    "mean_pct": -0.643,
    "median_pct": -0.649,
    "win_pct": 34.2,
    "stdev_pct": 3.317,
    "mean_vs_spy_pct": -0.605
   },
   "head_to_head": {
    "n_both_traded": 155,
    "claude_beats_tuatara": 74,
    "tuatara_beats_claude": 81,
    "claude_win_pct": 47.7,
    "mean_jaccard_overlap": 0.084
   }
  }
 },
 "diagnostics": {
  "task_a_comovement": {
   "complete": true,
   "gates": false,
   "metrics": {
    "a_lift_nn10_vs_dense": -0.07910614568395932,
    "a_lift_nn10_vs_dense_ci_low": -0.08236012424257005,
    "a_lift_nn10_vs_dense_ci_high": -0.07581584451549372,
    "a_lift_cross_vs_dense": -0.05389085040067298,
    "a_lift_cross_vs_dense_ci_low": -0.05804588548658711,
    "a_lift_cross_vs_dense_ci_high": -0.049585952134899504,
    "a_tuatara_minus_industry": -0.039064467986153116,
    "a_tuatara_minus_random": 0.05324455074876307,
    "a_tuatara_nn10": 0.06032118789744521,
    "a_tuatara_cross": 0.013549949337987869,
    "a_tuatara_cross_pairs": 24191,
    "a_dense_nn10": 0.13942733358140452,
    "a_dense_cross": 0.06952965750684766,
    "a_dense_cross_pairs": 8520,
    "a_random_nn10": 0.007076637148682145,
    "a_random_cross": 0.004763607101367327,
    "a_random_cross_pairs": 32494,
    "a_industry_nn10": 0.09938565588359832,
    "a_industry_cross": -0.0034608558639894395,
    "a_industry_cross_pairs": 9,
    "a_cross_random_nn10": 0.00449781453345205,
    "a_cross_random_cross": 0.00449781453345205,
    "a_cross_random_cross_pairs": 37318,
    "a_symbols": 3778
   },
   "scored_symbols": 3778,
   "tuatara_missing": 0,
   "k": 10,
   "window": [
    "2025-10-15",
    "2026-10-13"
   ],
   "calendar_days": 251,
   "dense_model": "BAAI/bge-large-en-v1.5",
   "note": "Retired from the gate under PREREG revision 2 (operator 2026-10-14: a financial benchmark is scored in returns; known relationships earn nothing). Kept published."
  }
 },
 "supplementary": {
  "task_a_representation_diagnostic": {
   "question": "Is the Task A shortfall in the symbol rows themselves or in the 4,096-slot sign-hash the route serves?",
   "method": "Same protocol (k=10 cosine neighbours, residual co-movement after market + own sector, same 3,778 symbols) scored on the `<symbol>_sym` rows in their own term space (27,978 distinct associate terms, top-200 associates + 0.5 self, unit length) and on the same rows sign-hashed to 4,096 (what the route serves; equals task_a.json) and 16,384 slots. Script: scratch diag_hash.py, 2026-10-14.",
   "rows": [
    {
     "representation": "bge-large-en-v1.5 on company profiles (comparator)",
     "nn10": 0.1394,
     "cross": 0.0695
    },
    {
     "representation": "Tuatara symbol rows, exact term space (no hashing)",
     "nn10": 0.0934,
     "cross": 0.0294,
     "lift_vs_dense_nn10": -0.0461,
     "lift_vs_dense_cross": -0.0401,
     "cross_pairs": 16892
    },
    {
     "representation": "Tuatara symbol rows, sign-hashed 16,384 slots",
     "nn10": 0.0813,
     "cross": 0.0215,
     "lift_vs_dense_nn10": -0.0582,
     "lift_vs_dense_cross": -0.0481,
     "cross_pairs": 19844,
     "mean_abs_cosine_error_vs_exact": 0.001,
     "top10_overlap_with_exact": 0.76
    },
    {
     "representation": "Tuatara symbol rows, sign-hashed 4,096 slots (SERVED; = task_a.json)",
     "nn10": 0.0603,
     "cross": 0.0135,
     "lift_vs_dense_nn10": -0.0791,
     "lift_vs_dense_cross": -0.056,
     "cross_pairs": 24191,
     "mean_abs_cosine_error_vs_exact": 0.004,
     "top10_overlap_with_exact": 0.46
    },
    {
     "representation": "same-industry partner baseline",
     "nn10": 0.0994
    },
    {
     "representation": "random partner baseline",
     "nn10": 0.0071
    }
   ],
   "reading": "The rows carry real relationships (exact-space neighbours: XOM -> IMO, SHEL, CNQ, CVX, BP; A -> WAT, RGEN, AVTR, TMO, DHR, IDXX; AAPL -> NFLX, MSFT, TSLA, AMZN, GOOGL, NVDA) but score below the dense comparator even unhashed, at about the same-industry baseline. The served 4,096-slot hash loses a further third: the true neighbour cosines are small (0.15-0.36) so rare slot collisions of heavy self-name terms (e.g. FOXX beside A) displace real neighbours, although the mean cosine error is only 0.004. Widening to 16,384 slots recovers most of the ranking (76% top-10 overlap with exact). The served width is the listing's dimension decision (E5).",
   "protocol_note": "Co-movement is signed, as pre-registered. Rows such as `aapl_sym` list single-stock ETFs on the same name (aapu, aapd, aapb ...); an inverse ETF neighbour contributes a negative correlation. Not changed after measurement."
  },
  "superseded_runs": {
   "note": "Runs that another session wrote evidence from at 154dc9b537 (2026-10-15 ~01:10 UTC). The Task B run there is VOID under PREREG \"No partial result\": its LLM leg finished 380/400 (log: \"WARNING: 20 entitlement calls FAILED\"; the 20 replies self-corrected in prose and the harness greedy JSON match spanned both objects). The Task C run there is an independent complete run on the same protocol and is kept here as a second measurement; its gate row also fails.",
   "task_b": {
    "run_id": "symbench-b-2026-10-14t22-40-28",
    "llm_calls_ok": 380,
    "llm_calls_failed": 20,
    "b_tuatara_vs_spy_pct": -0.5552625,
    "b_lift_over_llm_pct": 0.5051666666666667,
    "b_llm_vs_spy_pct": -1.166897435897436,
    "b_both_priced": 78,
    "status": "void (partial LLM leg)"
   },
   "task_c": {
    "run_id": "symbench-c-2026-10-14t23-51-47",
    "llm_calls_ok": 400,
    "llm_calls_failed": 0,
    "c_hidden_tuatara_vs_spy_pct": -0.5023734335839599,
    "c_hidden_lift_over_llm_pct": -0.35551162790697677,
    "c_hidden_llm_vs_spy_pct": -0.34536046511627905,
    "c_hidden_both_priced": 86,
    "status": "complete independent run; floors FAIL as in the run of record"
   }
  }
 },
 "note": "Floors, window, hold, side, costs and the LLM prompts were fixed in PREREG.md (revision 2) before the returns tasks ran. A returns task without a complete result writes no metric: the gate then stays closed."
}