1. What counts as a Buy rating
We track every stock our analysis rates a Buy. A stock can stay rated Buy for weeks at a time — our analysis runs hourly between 08:00–18:00 UTC on weekdays, so a single ongoing Buy rating generates many rows of raw data. Counting every one of those rows as a separate rating would be misleading: it would count one investment decision dozens of times and make the sample look far larger and more thoroughly tested than it is.
So we count distinct Buy runs instead — one per continuous period a stock holds a Buy rating, counted once at the moment it starts. Over our current 90-day window, that's 215 distinct Buy ratings. The raw daily count behind those runs is 8538 — we're showing you both numbers here deliberately, because the gap between them is the whole point: 8538 looks like a much larger, more convincing sample than 215 actually is.
2. How entry and exit prices are captured
Each Buy rating's entry price is whatever price our analysis job recorded at the moment the Buy rating started. The exit price is the next price our analysis job recorded for that stock at least 3 months later. Both are point-in-time snapshots from our own analysis pipeline, taken hourly between 08:00–18:00 UTC on weekdays (every 15 minutes for the few stocks with active price alerts) — not verified market closes, and not necessarily captured on the exact calendar day the window ends.
The S&P 500 comparison figure is different: it's pulled from real daily market candles via a live data provider, precise to the trading day — over the same window, the S&P 500 (SPY) returned +2.8%. We're stating this plainly because it means the two sides of the "vs S&P 500" comparison aren't measured the same way — our entry and exit prices carry more timing noise than the benchmark they're compared against. We don't think this materially changes the direction of the result, but it's a real asymmetry, not a footnote we should bury.
3. What "high-conviction" means
A high-conviction Buy rating is one where at least 70% of the Wall Street analysts covering that stock also rate it a Buy. That threshold has been fixed since we first built this calculation — it was not chosen or adjusted after looking at results, and it hasn't moved since.
4. The time window
Results above are for a 90-day holding window — the price when the Buy rating started, compared with the price 3 months later. This window is one of four settings (14, 30, 90, or 180 days) that can be changed, and the numbers on this page will shift if it is. We're stating the current setting explicitly rather than leaving it implicit, since a different window can produce a meaningfully different headline number from the same underlying data.
5. Unresolved ratings
Of the Buy ratings eligible for this window, 0 could not be resolved — meaning the stock was removed from our coverage list before the holding window closed, so no later price exists in our own data. When this happens, we first try to look up the price from a live market data source; if that also fails (the ticker is gone, delisted, or otherwise unavailable everywhere), we count it here rather than quietly leaving it out of the calculation. Silently dropping unresolved ratings would flatter the result — a stock that was removed from coverage after going badly wrong could vanish from the sample instead of counting against it. We'd rather show you an honest "we don't know" than a number that looks better than it should.
6. Mean vs. median — and why we lead with the median
The mean (average) return of our high-conviction Buy ratings is +13.2%. The median — the return of the middle rating when all 215 ratings are sorted from worst to best — is +4.4%. Those two numbers should be close together if returns were evenly spread out; they aren't, with the mean roughly 3x the median, because a small number of large winners are pulling the mean upward far more than they represent the typical outcome. The median tells you what a representative rating actually returned. We lead with it for that reason.
This isn't unique to our ratings. The same pattern shows up in the base rate — the return of every stock we cover, regardless of rating: mean +5.9%, median +2.3%. Stock returns in general are skewed this way — a few large winners in any group of stocks will pull an average upward, whether or not a Buy rating was ever involved. So this isn't a property of how we rate stocks; it's a property of how stock returns are distributed across almost any group of stocks over almost any period.
7. Limitations
We're stating these directly rather than softening them:
- The sample is small. 215 distinct Buy ratings is not a large number to draw conclusions from, and all of them come from a single 90-day window in one market environment. A different period, a different market regime, or a longer track record could look meaningfully different.
- The observations aren't independent. Even after collapsing daily repeats into distinct runs, Buy ratings on similar stocks in similar sectors during the same window tend to move together. This isn't a set of fully independent observations — it's closer to a smaller number of genuinely separate outcomes than the headline count suggests.
- This is not an audited track record. These numbers come from our own database and our own calculation, described on this page. Nobody outside our team has verified them.
- Past results do not indicate future performance. A 57% hit rate over one window and one set of market conditions is not a forecast for the next one.