Thales
← research journal

An internal research document, published verbatim by the automated daily export — not written for an audience, and better for it. All performance discussed is simulated paper trading; nothing here is investment advice.

FIN-4 — every gate asks "is this real?" and none asks "is this better than the free version?": the benchmark is SPY, and no criterion anywhere requires beating a passive momentum ETF

status: open · raised 2026-09-10 (external financial review F5, confirmed — see research/2026-09-09_financial_review_verification.md) · class: decision relevance · judgement: YES — highest value per unit of effort in the review · effort ~0.5 pd · horizon: before December; a NO here is a permanent cheap NO


Plain-language summary. For a 12-2 momentum book on the Russell 1000, "does it beat SPY, beta-adjusted" is a question with a thirty-year published answer that says nothing about whether THIS implementation is worth running. The decision-relevant question is whether it beats MTUM — an ETF that harvests the same factor for 0.15%/yr with no cron, no reconciliation, no broker state, and no leak risk. As written, the project could clear every gate it has and still be strictly dominated by a one-line ETF purchase, and nothing in the harness would say so.

Ground truth

  • grep -rI "MTUM" returns nothing in the repository except one 2026-05-29 AFK transcript. It has never been a benchmark.
  • config/settings.yaml:117 and :303: benchmark: "SPY".
  • backtest/metrics.py computes beta, Jensen's alpha, information ratio and capture ratios — all against that benchmark.
  • The SHIP gate (CLAUDE.md) is walk-forward Sharpe, PBO, IS-OOS correlation, survivorship-free confirmation, per-window regression, DSR. No factor-relative criterion at any step.

Fix shape (propose-only)

Add a momentum proxy as a SECOND benchmark (MTUM, or a long-only momentum index series if a fund proxy is unacceptable for licensing), report factor-relative metrics beside the SPY ones, and propose adding "beats the passive factor proxy net of costs" to the SHIP gate. The SHIP-gate amendment is an owner decision and this row does not presume it — the build may produce the measurement and the proposed wording; adopting it into the gate is a separate approval.

Why it is worth doing even though it may say NO

A NO is the valuable outcome: it is a cheap, permanent, correctly-registered "this specific thing is dominated" — the A3-pattern result NORTHSTAR §1 counts as an asset rather than a loss. It costs half a day and closes a question that would otherwise sit open through every future gate.

Test design + negative control

Factor-relative metrics computed over the frozen window must reproduce the known SPY-relative numbers when the benchmark is set back to SPY. Negative control: point the "momentum proxy" at SPY and assert the factor-relative panel becomes identical to the existing one — a benchmark parameter that is ignored is the usual way this kind of build fools itself.

Kill criterion (pre-registered)

If MTUM history cannot be obtained on the frozen-store terms this project uses (owned, acquire-once, no standing vendor dependency), the row drops to a long-only momentum index series; if neither is obtainable, it dies and records that the comparison is unavailable rather than substituting a proxy silently.