What we've learned
Findings the CEO has checked, what we are testing, and the decisions behind it.
Findings
The CEO adds findings here after checking them. Each one names its evidence and how sure we are. Monthly post-mortems (biggest misses, luckiest hits) go at the bottom. See ops/FORECASTING.md for the method.
2026-10-15
- No stock-ranking signal predicted next month's returns in the S&P 500, 2018–2026. Monthly rank IC over 100 months: momentum −0.003 (t −0.1), trend +0.004, pullback +0.004, low volatility −0.014, reversal −0.011; all |t| < 0.7. Source:
reports/signal-ic-sp500-2026-10-14.json. Caveat: stocks that delisted mid-month drop out of that month's IC. Confidence: moderate. It means any edge an evolved bot shows needs a reason beyond these signals. - Evolution's answer depends heavily on the run. On the same unseen window (2026-04-16 to 2026-10-14), the evolution run's champion made +7.5% and the walk-forward champion made +51.1%. Both were trained on data up to Apr 2026. Source:
scoreboard/sp500.csvandscoreboard/walkforward-sp500.csv. A single champion's result is mostly the luck of the search plus the market. - The +51% was real, and it was one bet. The walk-forward champion was 5-stock, 6-month momentum. MU made 47% of its gain and SNDK 26% (memory chips), and its worst drop was 32%. Textbook momentum held the same names but more diluted (+8.6%). Data checks found no split or bad-bar artifacts; the largest one-day move was 33% (DELL). Source:
reports/honest-run-wf-sp500-w3-i0-g28-11-2026-10-14.json. Lesson: high percentiles against random portfolios can come from one theme in one window. Judge champions across windows, on the forward test, and by concentration. - Run forecasts started. Base-rate forecasts of each run's own holdout are scored against coin-flip twins (dashboard, Forecasting scorecard). Fewer than 30 have resolved, so there's no verdict yet.
- Nasdaq-100 (now reportable), unseen Apr 16 to Oct 14, 2026: the champion made +99.8%, against QQQ +14.3% and textbook momentum +32.0%. That's the 100th percentile of fair random portfolios, and MU and MRNA made 38% of the gain. Run nasdaq100-20261014-201445. One 6-month window in a strong theme market. Treat it as a lead to test forward, not as evidence.
- Run forecasts are inflated by my verification reruns. 33 base-rate run forecasts have resolved, with Brier 0.123 against 0.25 for the coin flip. But several are repeats of the same question (the same S&P window rerun 3 times, and the walk-forward run twice), so they aren't independent. Fixed the same day: the scorecard now counts each (arena, window, question) once. After deduplication, 18 base-rate forecasts have resolved, with Brier 0.197 against 0.25 for the coin flip. That's still under 30, so no verdict yet.
- Delisted stocks: Alpaca's free plan is incomplete. It lists 1,544 inactive stocks on major exchanges and serves SIP bars for 139 of a 150-stock sample. But SIVB, FRC, BBBY, TWTR and ATVI are missing (XLNX and CERN are present). A small-cap list built only from Alpaca would still lean toward survivors. T17 needs a second source for delisted names (SEC EDGAR filings index). Source:
reports/probe-inactive-2026-10-15.json. - Small caps are now point-in-time (T17, T17b). The top 400 most-traded stocks priced $2–50 at each month-end, Mar 2020 to Sep 2026, with index members and exchange-traded products excluded. SEC delisting notices (Form 25-NSE) for operating companies from 2020 on: we know the ticker for 90% and Alpaca has prices for 89% (by year, 76% to 95%; 2026 is lowest). 314 of the 1,692 stocks that were ever members came only from tickers recovered from SEC filings, so the old list really did lean toward survivors. Sources:
reports/smallcap-coverage-2026-10-15.json,universes/smallcap_snapshots.csv. - First point-in-time small-cap run, unseen Apr 17 to Oct 15, 2026: the champion made −17.7%, against IWM +1.0% and textbook momentum −35.1%. That's the 14th percentile of fair random portfolios: no signal. Momentum lost badly in small caps over this window. Run smallcap-20261015-225409.
Experiments
| Id | Change | Expected | Observed | Verdict |
|---|---|---|---|---|
| E-T7 | Full-market SIP feed, 9.5-year default history, end date clamped to the last completed trading day | More training and test data; less noise in holdout results and fewer missing-bar artifacts | Ran on real SIP data, 9.5 years; walk-forward and evolve runs green. Signal ICs over 2018-2026 are ~0 (see ops/LEARNING.md). | works; no edge found |
| E-T10 | Training fitness measured against textbook momentum per fold; top 5 finalists ranked by min(own, median of 6 one-setting neighbors) | Fewer lucky or fragile champions; more champions beat textbook momentum on unseen days | 1 S&P run each on the same unseen Apr-Oct 2026 window: before T10 champion +0.5% (31st pct); after T10 +7.5% (58th pct); momentum +8.6%. Still below momentum. | too early (n=1) |
| E-T18 | Deflated Sharpe: discount the champion's Sharpe for the number of strategies tried | Honest probability that the champion's Sharpe is real; most champions should not clear it | pending | pending |
Signal information (IC)
Information coefficient (IC): the rank correlation between each signal at month-end and the next month's stock returns. Near 0 means no predictive power; |t| of 2 or more is the usual bar.
S&P 500
| Signal | Mean IC | t-stat | Hit rate | Months | Last-12 mean IC |
|---|---|---|---|---|---|
| momentum | -0.0029 | -0.14 | 0.53 | 100 | +0.0368 |
| trend | +0.0043 | +0.20 | 0.52 | 101 | +0.0251 |
| pullback | +0.0044 | +0.24 | 0.51 | 101 | -0.0241 |
| low_volatility | -0.0136 | -0.53 | 0.48 | 101 | -0.0602 |
| reversal | -0.0106 | -0.65 | 0.47 | 101 | -0.0314 |
Takeaway (2026-10-14): |t| < 2 for every signal: no signal reliably predicted next month.
Nasdaq-100
Not yet: no signal-ic report for nasdaq100 yet.
Small caps
Not yet: no signal-ic report for smallcap yet.
Decisions timeline
Board and CEO entries from ops/DECISIONS.md, newest first.
- Board 2026-10-15
(late) Small-cap results may be reported now (point-in-time members from Mar 2020, about 89% of delisted stocks covered); always state the coverage caveat. - Board 2026-10-15
Nasdaq-100 results may be reported now that its members are point-in-time (from Mar 2020). Small caps stay unreported until T17. - Board 2026-10-15
Keep working until the weekly usage reset (Saturday morning); the board watches plan usage and says when to stop. - Board 2026-10-15
Digests must be readable: short headings and bullets, one post per digest. - Board 2026-10-15
The board talks to the CEO in #evolution-trader any time. The CEO checks `ops/INBOX.md` before each ticket and between workers, pauses to answer, and resumes once the board says so. - Board 2026-10-15
Until Saturday, Oct 17, 9am Denver, the board releases the remaining plan usage (about half) for Phase 1 work. The 2-tickets-per-run cap is lifted until then. One worker at a time still applies. - CEO 2026-10-15
Forward test v1 start recorded per the locked rules: start 2026-10-16, champion from run sp500-20261014-151728 (the first evolution run after T3-T8, a manual sp500 run to verify T7). The forward ledger chain-links equity so dividend adjustments never rewrite recorded days; its tamper check compares past trades exactly and past daily returns within 0.003 (whole-share rounding moves returns about 0.001 when prices are rescaled). - CEO 2026-10-15
(01:25 UTC run) Started no workers. The chat CEO session merged T3 and T4 minutes before this run, so a second worker on the remaining tickets would probably duplicate its work. Asked the board not to overlap chat and scheduled CEO sessions. - CEO 2026-10-15
The scheduled run had no tool to start workers, so the CEO wrote T4 itself (small, outside the core-math files) and parked it on a branch instead of shipping it: the definition of done needs a reviewer that didn't write the change. Asked the board how scheduled runs should get workers. - Board 2026-10-14
(night) Cost comes first; this is an unfunded project. The CEO runs at high effort instead of max, work goes to the cheapest capable model, and one worker runs at a time. - Board 2026-10-14
(night, replaces D6) The board talks to the company through Discord. Each CEO run posts a short silent digest to #evolution-trader. Once the board adds the bot token and its Discord ID, the CEO reads the board's messages from there (`ops/INBOX.md`). - Board 2026-10-14
(night) Tonight's extra CEO run may finish up to 4 Phase 1 tickets, one worker at a time. - Board 2026-10-14
(D8) Once the forward test runs, a short weekly scorecard posts silently to #evolution-trader on Saturday mornings (T21). - Board 2026-10-14
(D4) Forward-test rules v1 approved as drafted and locked (`ops/forward-test-rules.md`). - Board 2026-10-14
(evening) Phase order set by the board. Phase 1 builds the best starting algorithm with no AI in the trading logic: fix every known bias, including survivorship in the Nasdaq-100 and small-cap arenas. Phase 2 is a genome dashboard (sliders, plus custom rules an LLM translates into settings). AI comes after. The Superforecasting method (Tetlock and Gardner) is how we track results going forward; see `ops/FORECASTING.md`. - Board 2026-10-14
(D7) The scheduled CEO runs Monday, Wednesday and Friday mornings (Denver time). - Board 2026-10-14
(D6, replaced the same night) No CEO digest in Discord. - Board 2026-10-14
(D4) The board approves the forward test's pass/fail rules before the test starts. The CEO drafts them; once approved they're locked in git. - Board 2026-10-14
(D2) The CEO may move evolution from nightly to weekly once the P0 fixes land. - Board 2026-10-14
(D1) Goal for now: a system Derek trusts to run and report honestly on its own. Beating SPY is a long-running experiment, not the goal. - Board 2026-10-14
Run the project as a company. Opus 5.5 at max effort is CEO and delegates to cheaper models (Sonnet, Haiku). - CEO 2026-10-14
Moved evolution from weeknights to Saturday mornings (14:07 UTC) now rather than after the P0 fixes. GitHub started the nightly job hours late, so its posts landed at 2–4 a.m. in Denver, and they headlined a best bot with no luck check. Authority: D2, plus the board's concern about these posts. - CEO 2026-10-14
Worker roster: `builder`, `reviewer` and `analyst` on Sonnet, `ops` on Haiku. Workers' effort level is left at the default for now. - CEO 2026-10-14
Monthly Actions budget set at 1,200 of the 2,000 free minutes, leaving headroom for reruns. - Board 2026-10-13
Kill switch at a 35% drop from peak. Baselines include a 20% SPY core. Separate arenas for S&P 500, Nasdaq-100 and small caps. Trading costs (slippage) are charged. - Board 2026-10-12
Paper trading only; stocks only, no crypto. Alpaca supplies data only; trades live in our own SQLite ledger. Results go to Discord silently. Hosting stays free (GitHub Actions free tier). Exhaust non-AI methods before adding AI, because an AI knows past market outcomes. AI work runs as scheduled tasks on Derek's Claude plan, not API billing.