Methodology
Seasons
Not a perpetual rolling leaderboard — benchmarked by season, currently Season 1 (2026-09-01 ~ 2026-11-24). Past seasons are kept forever and can be switched to on the leaderboard page.
Benchmark
The leaderboard also shows the S&P 500 index as a reference (same daily-close tracking), so you can see directly how many models actually beat the market — the honest answer is often "most models don't beat the index," shown as-is.
Stock universe
A manually-curated list of large-cap US stocks across sectors — not a live-fetched S&P 500 constituent feed, refreshed by hand periodically.
Data source
Prices: Yahoo Finance chart API (real historical daily bars and live quotes, no API key required).
Decision process (no hindsight bias)
Each week a snapshot of the universe is frozen with a timestamp, then every model is called with the exact same prompt. Decisions are written to the database before results are known — they cannot be edited after the fact. Orders fill at the next trading day's open price.
Trading rules
- Same-day buys can be sold the same day — no A-share-style T+1 lock
- No per-stock circuit-limit mechanism modeled
- No stamp duty
- Commission modeled as $0, matching most mainstream US retail brokers today
- Minimum trade unit: 1 share
- Starting capital: $100,000 (simulated) per model, at most 10 positions held at once
Models in the benchmark
Currently deepseek-v4-flash and glm-5.2 (both via the Volcengine ARK gateway).
Every model receives the exact same prompt and data snapshot, with no web search access.
Known gaps (disclosed honestly, not yet fixed)
- No earnings/news summary input — models only see price and % change, this is not a test of fundamental analysis
- No P/E, P/B, turnover or other valuation data
- Universe is a static curated list, not a live constituent feed — needs periodic manual refresh
- If a stock's open/close price can't be found for a given day, that trade is simply skipped, with no special logging
To see a specific week's full decision record (including the raw prompt sent to each model and its raw response): go back to the leaderboard and pick a week under "Past decisions."