Three questions answered against snapshot copies, with no production change. Step 1 — how sensitive is the backtest to the ranking universe? Restoring 85 S&P 500 constituents removed between 2021-06 and 2026-07 moves the same window from 2.09 Sharpe / 51.6% CAGR to 1.57 / 38.1%. The failed banks never reached either book (identical best/worst trade R), so this measures universe recomposition, not survivorship bias. The removals list is curated by hand with per-symbol sources; only three explicitly confirmed terminal events get marks, and four unresolved endings are reported as caveats rather than inferred. Step 2 — does a total-return basis change the ranking? Ordered lists differ on 1009 of 1009 evaluated dates, 4.56 replacements per date. The shift correlates with trailing implied yield (mean Spearman +0.79), which is strong evidence consistent with a dividend effect but does not isolate own-yield, since both the stock and benchmark legs change. Step 3a — does that reach P&L? A paired replay reusing one shared candidate set (control reproduces the production row exactly) changes ~30% of entries. Treatment is -3.7pp CAGR and -1.9pp drawdown, with the entire return gap in 2025. A paired moving-block bootstrap (seed 20260907, 5000 replicates, 21/63 blocks, both reported) puts every interval across zero. Decision: production stays unchanged. No schema, no ingestion, no wider sweep. The observed window does not resolve which basis is better, and choosing a threshold now — with -3.7pp on the table — would be fitting the rule to the answer. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HAH7vVtn7qbcn1EVheecHQ
Backtest report index
Reports dated 2026-07-11 or earlier are the historical production research record and remain untouched.
The completed 2026-07-12/13 S/R and Gate Target Ladder research is preserved as compact decision evidence instead of full per-arm replay output:
sr-v2-validation-comparison.jsonandsr-v2-validation-cohorts.csvrecord the held-out detector comparison.sr-full-production-vs-candidate-comparison.jsonand its cohort CSV record the full-period clean-structure replacement decision.sr-explicit-target-ladder-comparison.jsonand its cohort CSV record exact GTL parity: 202,765 candidates, 1,086 qualified setups, 321 book trades, Sharpe 2.03, CAGR 50.0%, and max drawdown 21.4% in both arms.- The three
backtest-20260713-gtl-*.json/.mdpairs record the tuning, confirmation, and strength-sensitivity decisions. No stable improvement was found, so the production GTL stayed frozen.
The large backtest-sr-*.json replay files were removed after consolidation.
They duplicated hundreds of thousands of candidate rows while adding no
decision information beyond the compact comparisons and the narrative in
docs/research/sr-levels-and-exits.md. The original raw files remain available
in Git history if a forensic reconstruction is ever necessary.
The initial untracked backtest-20260712-sr-detector-rewrite.json is local-only
and is intentionally not part of the repository.
The 2026-07-17 post-stop re-entry decision is preserved in
daily_reentry_matrix.json. It is the canonical source for the nine-policy
daily replay, production-like full-universe ranking, the disjoint 2025+ book,
and the cost/capacity sensitivity matrix. The interpretation and production
decision live in
docs/research/post-stop-reentry.md.
The earlier post-stop-reentry-20260717.json,
post-stop-cooldown-sweep-20260717.json, and
gate-protected-stop-20260717.json reports were removed as superseded
intermediate experiments. They used weekly/hybrid entry cadence or tested the
rejected stop-adjustment path, and add no decision evidence beyond the final
daily matrix and narrative. Their matching one-off runners were removed too.
All remain recoverable from Git history. Rebuildable candidate pickle caches
are intentionally ignored and must not be committed.
Phase B fip breadth IC (2026-07-18/19) — compact evidence
Canonical artifacts:
fip-reconcile-20260719-000520.json— single-sourced authoritative ICs (unconditional liquid fip, tiers, prod-subset, mom-conditional, context signals). Membership symbol dumps stripped after the decision; narrative indocs/research/fip-breadth-ic.md.fip-breadth-20260718-211440-fingerprint.json— prod-snapshot fingerprint pass (fip IC −0.045 / t −2.91).
Removed as superseded / dangerous intermediate noise (recoverable from Git):
fip-breadth-20260718-211440-breadth.json(+ wrapper) — orphaned +0.0575 / t +5.12 from racing a partialresearch.sqlite. Kept out of the tree so it cannot be re-mythologized.fip-breadth-20260718-194828*.json— fingerprint-only partial run.fip-breadth-diagnostics-20260718-213705.jsonand…-213908.json— dual-path diagnostics superseded by the single-sourced reconcile.