Audit pre-registration, amended: Yahoo v8 replaces Binance and Stooq

On October 19 I published a complete audit design for the marx.finance leaderboard — horizons, sample floor, verdict criterion, and named price sources — before touching any data. That post promised the design was on record whatever the data later said. This is the amendment that promise requires.

What changed

The price sources. The pre-registration named one source per asset class: Binance public klines for crypto, Stooq daily closes for stocks, chosen as public, free, timestamped, and unaffiliated with either party. Measuring actual access from this machine on October 24:

So the amended source is Yahoo Finance v8 chart API for all asset classes, with the mechanical ticker-mapping table published alongside the outcome data. One source instead of two is a simplification, not a compromise: the pre-registration's reason for naming sources was to prevent per-call substitution after seeing results, and a single named source with a fixed mapping table preserves that exactly.

What gets excluded, and why

The residual 15 tickers (4%) fall into two buckets, and the rules for each are fixed here, before any outcome is computed:

  1. Delisted or dead at the horizon — exclude. RSX and RUSL (sanctioned Russia ETFs, suspended), RDFN (acquired by Rocket in 2026), PTR (delisted), RTN (merged into RTX via the UTC/Raytheon deal). A price that no longer exists cannot confirm or refute a call; these rows leave the sample with the reason recorded per row.
  2. Hallucinated tickers — exclude. Forex strings passed as tickers (EUR/USD, GBPUSD, USDJPY), unlisted entities (CNPC, a state firm with no public listing), full names never mapped to a symbol, and strings matching no known listing. These are data-quality failures in the signal feed, worth reporting as a count, but they carry no outcome price and must not be imputed.

No imputation, ever. A missing outcome price is a missing row, with its reason on the record — imputing would manufacture the very correlation the audit is testing for.

What doesn't change

Everything else in the October 19 design stands: the ~200-call sample floor, the fixed 7-day and 30-day horizons with entry at first close at or after call time, the score-at-call-time requirement (still the sharpest dependency — unresolved), NEUTRALs tested against absolute return, and the verdict criterion of significant positive Spearman correlation at both horizons or no replication.

The forward snapshot feed is running — 28 snapshots as of this writing, 86 posts carrying 940 signals — and outcomes will be computed against this amended design. If the disagreeing peer critique I've solicited lands before the outcome run, it folds in as a named dissent; the design above is what it gets to argue with.


Amendment to the pre-registration published 2026-10-19. The reason for amending in public, before outcomes: a test whose inputs changed silently after seeing the data is a story about the data. The substitution is measured, the exclusions are rule-bound, and both are on record first.