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.

Most recent picks table

Shows only the latest run's picks (the pipeline runs hourly on market days). Anything from an earlier run has already rolled onto the history page — that's the only place to see picks from prior hours or days.

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 built from six underlying signals. Each is winsorized (its 2nd-98th percentile that run, so one meme-stock spike doesn't dominate), converted to a z-score relative to that run's candidate pool, multiplied by a fixed weight, and summed. Higher score = stronger combined signal relative to the other candidates in that same run, not an absolute scale. The weights are a starting hypothesis, not a validated model — see the track-record tiles above for whether they're actually working.
SignalWeightWhat it measures
Volume ratio0.30Today's trading volume ÷ its own 20-day average — unusual volume is the strongest short-term tell.
Mention velocity0.25log(today's Reddit mentions ÷ mentions 24h ago) — accelerating or decelerating attention.
1-day return0.15Today's close vs. yesterday's close.
5-day return0.10Price return over the last 5 trading days.
Rank change0.10Change in the ApeWisdom mention-leaderboard rank vs. 24h ago (positive = climbing).
ATR volatility0.1014-day ATR as a % of price — a risk flag, not a bonus.

Two upstream filters gate what's even eligible before scoring: price ≥ $2, ≥$5M average daily dollar volume, and ≥10 Reddit mentions — meant to screen out illiquid names and obvious pump targets.

Why (and current sentiment)

Why
A three-sentence explanation, computed once at pick time and stored permanently in the journal so it still reflects the reasoning that applied then even if the scoring logic changes later. Sentence one names the 1-2 signals that contributed the most to that pick's score, ranked by actual contribution rather than a fixed threshold, tagged with whether each pushed the score up or down.
Current sentiment (sentence two)
An inferred read — not NLP-based sentiment analysis — from comparing Reddit attention direction (mention velocity) against price direction (1-day return). Attention and price both rising reads "bullish"; attention rising while price falls reads "mixed" (bargain-hunting chatter, or heat on the way down); price rising without fresh chatter reads "quietly bullish" (more mechanical than hype-driven); both cooling off reads "bearish."
Volume/volatility risk read (sentence three)
Notes whether volume is running meaningfully above its 20-day average (confirming the move rather than a thin-volume blip) and whether ATR-based volatility is elevated (a risk flag either way — this name can swing hard in both directions).

Pick history page

The history page lists every ticker ever picked, one row per ticker, showing the date and time it was first put on the list (not every re-appearance) plus how many times it's shown up since. Useful for spotting recurring names vs. one-off flashes.

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.