Verified track record
Every model signal is frozen the moment it's made: timestamped, hashed and chained to the one before, so it can't be edited later. Live returns count only from the next market close after the freeze.
Live (since each model went live)
Momentum Top 15Live
Since 2026-10-19
+0.0%
0 trading days
SPY same days
+0.0%
benchmark
vs SPY
+0.0%
1 signal
✓ hash chain verified · latest d6a98920732d… · frozen Oct 18, 2026 11:01 PM ET
Quality GrowthLive
Since 2026-10-19
+0.0%
0 trading days
SPY same days
+0.0%
benchmark
vs SPY
+0.0%
1 signal
✓ hash chain verified · latest 6e90ea35dc5e… · frozen Oct 19, 2026 12:25 AM ET
Momentum BlendLive
Since 2026-10-19
+0.0%
0 trading days
SPY same days
+0.0%
benchmark
vs SPY
+0.0%
1 signal
✓ hash chain verified · latest 02bc14619427… · frozen Oct 18, 2026 11:35 PM ET
Backtest (hypothetical, for comparison)
Backtest Simulated on past data with 10 bps costs. Backtest only counts stocks after they joined the S&P 500. Not real money and not part of the live record above.
| Model | OOS / yr | SPY | Max DD |
|---|---|---|---|
| Momentum Top 15 | +26.6% | +12.0% | -25.3% |
| Quality Growth | +14.7% | +12.0% | -18.8% |
| Momentum Blend | +16.0% | +12.0% | -28.1% |
OOS = Jan 2022 – Sep 2026, a period the models weren't tuned on.
How verification works
For each signal we store the model, signal date, freeze time (UTC), holdings and weights, and a SHA-256 hash of all of that plus the previous signal's hash. Changing any past pick would break every hash after it. Anyone can download the raw record and recompute the chain. Entry prices are the first close after the freeze time, so no pick benefits from hindsight. Returns are price-only (no dividends), before costs and taxes.