Metrics explained

Track record tiles

Picks logged
Total number of picks ever written to the journal, across every run since the bot started. This just grows over time — it's not a performance number.
Hit rate vs SPY (1d)
Of the picks old enough to score (at least one trading day has passed), the percentage whose 1-day return beat SPY's 1-day return over the same window. 50% is coin-flip; consistently above 50% is the first sign of edge. Shows "—" until at least one pick is a day old.
Avg excess return (1d)
The average of (pick's 1-day return − SPY's 1-day return) across all evaluated picks. Positive means picks are beating the market on average over that window; negative means they're lagging it. This is the single most important number on the page.

Cumulative excess return chart

Each day's picks produce one average excess-return number (pick return minus SPY return, averaged across that day's picks). The chart plots the running total of those daily averages over time — a rising line means the edge is compounding session over session; a flat or falling line means it isn't. This is the fastest way to eyeball whether the whole approach is working without reading the raw journal.

The chart only appears once at least two different days have picks old enough to evaluate — before that you'll see a placeholder message.

Today's picks table

Ticker / Price
The stock symbol and its price at the moment the pick was made (delayed free data, not real-time).
Score
A composite z-score: each underlying signal is winsorized (extreme outliers clipped) and converted to a z-score, then combined with fixed weights — volume ratio 0.30, mention velocity 0.25, 1-day return 0.15, 5-day return 0.10, leaderboard rank change 0.10, ATR volatility 0.10. Higher score = stronger combined signal that day. The weights are a starting hypothesis, not a validated model — see the track-record tiles above for whether they're actually working.
Why
A plain-English readout of which underlying signals triggered for that pick: unusual trading volume (vs. its own 20-day average), accelerating Reddit mention counts, a big jump on the mention leaderboard, a large same-day price move, and/or high ATR-based volatility (a risk flag, not a bonus).

Reading this responsibly

All data is free and delayed (15+ minutes), and this is a short-term signal surfacer, not a trading system — it's built to be honest with itself via the journal above, not to guarantee returns. The standard the project was built around: watch the excess-return numbers accumulate for about 20 trading days before treating any pick here as more than a research lead. If excess return isn't reliably positive by then, the signals are noise, and that's a valid (and cheap) thing to learn.