Reading the reports

What each post and file contains, with an example of each built from our latest data.

The evolution post

Posted silently to Discord after each run. The coloured bar is green, yellow or red by verdict.

This is the real report builder run on the latest S&P 500 scoreboard row (sp500-20261014-201443): champion, benchmark, momentum, percentile and concentration are that run's figures. The fitness line, drawdowns, the random-portfolio spread, deflated Sharpe and the recipe are filler to show the layout, not that run's values.

1 sp500: no signal yet: champion within the range of fair random portfolios (percentile 58)
2 Run sp500-20261014-201443. 60 generations, 4 islands × 20 bots, judged on 4 training windows (6400 bot runs, 6 shake-ups, 11 migrations). Trained 2018-08-08 to 2026-04-15; unseen test 2026-04-16 to 2026-10-14.
Data: point-in-time index membership.
3 Best training fitness by generation
g0: -9.0 → g1: -4.5 → g2: -2.0 → g3: -1.2 → g4: -0.8 → g5: -0.6 → g6: -0.5
4 Champion recipe (training fitness -0.50)
top 5 stocks by momentum 126d; monthly
5 Unseen months: return, worst drop, score vs index
#1 i0-g59-00 +7.50% dd 18.0% score -2.83
baseline: momentum-12-1 +8.60% dd 25.0% score -1.73
SPY (index) +10.33% dd 15.0%
6 Luck check: fair random portfolios, momentum, uncertainty
Champion +7.50%: beats 58% of 100 fair random portfolios
Textbook momentum 12-1 +8.60%: beats 55%
Random portfolios: median +6.15%, 10th +0.15%, 90th +13.15%
SPY (index) +10.33%
Deflated Sharpe 0.41 after 5200 strategies tried (above 0.95 would be convincing).
One holdout window of 126 trading days; a percentile under 95 is consistent with luck.
Top 2 holdings made 42% of the result (SNDK, INTC)
  1. Title. Arena and verdict. If the comparison is missing, the title says "comparison missing: no result claimed".
  2. Description. Trained and unseen dates, and the data note (for example point-in-time membership).
  3. Best training fitness. How the best bot's training score rose by generation. It is training, so it flatters; it says nothing about the future.
  4. Champion recipe. The champion's settings in one line. If it has a stop-loss, a filter or a short lookback, you can read it here.
  5. Unseen months. Return, worst drop and score on days the run never saw, next to the baselines and the index. Higher is not the point; compare it with the next field.
  6. Luck check. The percentile among fair random portfolios, textbook momentum, the deflated Sharpe, the number of strategies tried and how concentrated the gain was. This field is what decides whether the title means anything.

The weekly scorecard

Posted silently on Saturday mornings. Built now from the forward test and the forecast scorecard; the weekly file for this week does not exist yet.

Weekly scorecard 2026-10-15
Forward test
Forward test starts 2026-10-16.

Forecasts
21 resolved; Brier score: not enough yet (under 30).
Champion base rates are in-sample (computed from data the champion was fitted on).

Shipped this week
- (Ticket merges from the past 7 days are listed here.)
  1. Forward test. The day count, each frozen strategy's paper return and its gap to SPY, in points. Days are few, so read it as a log.
  2. Forecasts. How many forecasts resolved. The Brier scores appear only after 30 have resolved, then base rate against coin flip.
  3. Shipped this week. Tickets merged in the last 7 days, so you can see what changed in the engine.

The CEO digest

One silent Discord post per digest; a corrected digest replaces the old post. This is the real latest one.

CEO digest, 2026-10-15 (evening)
Shipped today
  • Presentable website: https://evolution-trader.pages.dev/ (story with Present mode, genome guide, glossary, results) (T29)
  • Fair luck test: champions are ranked against 100 fully invested random portfolios (T6, T9)
  • Full-market prices and 9.5 years of history, including the 2018, 2020 and 2022 selloffs (T7)
  • Renamed S&P joiners count only from their real join dates (T8)
  • Evolution must now beat textbook momentum, and neighboring settings must hold up (T10)
  • Forward test v1 starts Fri Oct 16: 5 frozen strategies recorded every weekday (T11)
  • Monday forecasts with Brier scores (T20); Saturday scorecard post (T21)
  • Deflated Sharpe (T18); blend-core4 strategy (T19); honest single-strategy run and settings schema (T22, T23)
  • Point-in-time Nasdaq-100 members from Mar 2020 (T16)
Results (S&P 500, unseen Apr 16 to Oct 14, 2026)
  • Newest champion +7.5% vs SPY +10.3% and textbook momentum +8.6%
  • Luck check: 58th percentile of random portfolios, so no signal yet
Learning
  • Small caps are now point-in-time: SEC filings recovered 1,427 delisted tickers; we cover about 89% of delistings
  • First honest small-cap run: champion −17.7% vs IWM +1.0%, momentum −35.1% (14th pct): no signal
  • No stock-ranking signal predicted next month's returns (S&P 500, 100 months; all |t| < 0.7)
  • Walk-forward champion +51% Apr to Oct 2026 was real but one bet: MU and SNDK made 73% of it
  • Same window, evolution champion +7.5%: results swing a lot from run to run
  • Nasdaq-100 champion +99.8% vs QQQ +14.3%, momentum +32.0% (100th pct; MU, MRNA 38% of it): one window, a lead to test forward
  • Small caps: Alpaca's free plan is missing many delisted stocks, so T17 needs SEC EDGAR too
  • Details in ops/LEARNING.md and on the dashboard
Problems
  • Forward ledger (Fri) and Monday forecasts have not run on real data yet
  • Nasdaq-100 member tables for Jul to Oct 2026 didn't parse; today's list covers that gap
Needs you
  • Nothing right now (small caps approved for reporting)
Budget
  • Actions: about 520 of 2,000 min (budget 1,200); tonight's data builds and test runs were most of it
Forecasts for next run
  • 80%: Friday's forward ledger run is green
  • 75%: Saturday's evolve is green in all three arenas
  • 70%: Monday's forecast run is green on its first try
  1. Title. The date and time of the CEO run.
  2. Shipped, Results, Learning. What changed, the newest numbers with their luck checks, and what we learned from them.
  3. Problems and Needs you. What is broken and what only the board can decide.
  4. Budget and Forecasts. Actions minutes used, and the CEO's own forecasts for the next run, scored like any others.

The scoreboard files

One row per run in scoreboard/<arena>.csv. Walk-forward windows have a similar file with test_start and test_end.

ColumnMeaning
dateThe last day of the unseen period (the data date).
run_idUnique name of the run: arena, date, start time. Rows are never replaced.
train_startFirst day of the history the run trained on.
holdout_start, holdout_endThe unseen period the champion traded once, at the end.
benchmark, bench_returnThe index fund (SPY, QQQ or IWM) and its percent return over the unseen period.
champion, champion_returnThe strategy the run ranked first after the neighbor check, and its percent return on the unseen period.
champion_scoreHeadline score: return minus the benchmark's, minus half of any extra drawdown, in percentage points.
team_return, team_scoreThe top 5 strategies with money split evenly, and their score.
best_baseline, best_baseline_return, best_baseline_scoreThe textbook strategy that scored best on the same unseen days.
random_median_returnMedian return of the fair random portfolios.
verdictA one-line label written by rule from the luck check. See below.
momentum_returnReturn of textbook momentum 12-1 on the same days. Blank on older runs.
champion_percentileShare of fair random portfolios the champion beat, 0 to 100. Blank on older runs.
top2_share, top2_symbolsShare of the gain made by the two biggest contributors, and which stocks they were.

The honest-run report

One genome run by hand on unseen days. This is the real latest report, for base-momentum-12-1 on sp500.

base-momentum-12-1 on sp500: beats 70% of random portfolios
Warm-up 2024-10-09 to 2026-04-15; unseen test 2026-04-16 to 2026-10-14 (126 trading days). top 10 stocks by momentum 252d skip 21d; monthly
Return in the test window
Genome +8.60%
SPY +10.33%
Textbook momentum +8.60%
Max drawdown
Genome 24.97%
SPY 4.49%
Luck check
within the range of luck: beats 70% of 100 fair random portfolios
Random portfolios: median +2.58%, 10th -7.46%, 90th +17.01%
Deflated Sharpe 0.66 (n_trials=1)
Read this first
One test window of 126 trading days; a percentile under 95 is consistent with luck.
A hand-made genome tested on history is not evidence: its author may have seen this history. Only a forward test on days after the genome was locked counts.
  1. Return in the test window. The one genome against the index and textbook momentum, on days after its warm-up.
  2. Max drawdown. The deepest fall from a peak. A big return with a deep fall is a bumpy ride.
  3. Luck check. The percentile among fair random portfolios and the deflated Sharpe. For a single genome, n_trials is how many strategies stand behind it.
  4. Where it came from. Which stocks made the gain, when present.
  5. Read this first. The plain statement of what the numbers can and cannot show.

Four words you will meet

Percentile
Where the champion ranks among at least 100 fair random portfolios on the same days. 58 means it beat 58%. 50 is average luck. Under 95 is consistent with luck.
Top-2 share
The share of the gain made by the two biggest contributors. Above 50% the verdict adds "concentrated: mostly one or two stocks", because that is one bet.
Deflated Sharpe
A risk-adjusted return marked down for how many strategies were tried to find this one. Above 0.95 would be convincing. Far below it means the result is what a big search would produce by chance.
Verdict
One line, chosen by rule. "Beat the index, textbook momentum and N% of random portfolios" needs a positive score, a percentile of at least 95 and a win over momentum. "No signal yet" means the champion sits inside the range of random portfolios. "Unverified" means the comparison is missing, and no result is claimed.