← Back to rankings

How Rankings Work

What "4+ sources agree" actually means, where the data comes from, and the honest limitations of a free-tier data pipeline.

The short version

Every stock in the tracked universe is checked against three independent data sources. If 4 or more distinctly-named sources (analyst firms or news outlets) currently rate a stock Buy, it lands on the Buy board; the same logic applies for Sell. Boards are ranked by how many sources agree — more agreement, higher rank — not by price movement, trading volume, or how many shares changed hands.

Data sources

SeekingAlpha and Morningstar specifically aren't reachable without violating their terms of service (paywalled ratings, bot-blocked pages), so this app uses three licensed APIs instead. Each contributes distinct, named, dated ratings:

SourceWhat it contributesCounts as
FinnhubAggregated analyst recommendation trend (how many firms rate a stock Strong Buy / Buy / Hold / Sell / Strong Sell) and the live price quote1 source: "Finnhub Analyst Consensus"
Financial Modeling Prep (FMP)Individual rating actions from named analyst firms (e.g. "Citigroup: maintain Buy", "Keybanc: downgrade to Underweight")1 source per firm
Alpha VantageNews sentiment analysis across financial outlets (Benzinga, Seeking Alpha, Reuters, TipRanks, etc.), plus historical price charts1 source per outlet with a strongly bullish/bearish article

The consensus rule

  • Only ratings from the trailing 90 days count — older ratings age out automatically rather than being deleted, so they can still count again if a source repeats the same call.
  • A stock needs 4 or more distinct sources (by name, not by rating count) agreeing on the same direction to qualify for a board. One firm issuing three "maintain Buy" notes in 90 days still counts as one source, not three.
  • A stock can appear on both boards at once if different sources are split — e.g. some analysts upgrading it while news sentiment turns bearish. That's a real signal of disagreement, not a bug.
  • Within each board, stocks are ranked by total agreeing-source count, highest first, capped at the top 20.

Trend indicators

Every Monday, that week's Top 20 Buy and Sell boards are snapshotted. The ▲ / ▼ / – arrow next to a stock compares its rank to the previous week's snapshot, and the number beside it ("3w") is how many consecutive weeks it's held that exact rank. A ★ marks a stock's first week appearing on a board.

Tracked universe

This app tracks the 200 largest S&P 500 companies by market-cap weight, not the full US market. That's a deliberate tradeoff to stay within free-tier API rate limits — a smaller, higher-quality universe means daily call budgets stretch further and more symbols get real multi-source data rather than partial coverage across hundreds of thinly-tracked names.

What this is not

  • Not trading volume or order flow. "Sources" here means analyst firms and news outlets issuing Buy/Sell opinions — not how many shares were bought or sold, and not a "most popular trades today" list.
  • Not investment advice. This aggregates public opinions from third parties; it doesn't evaluate whether those opinions are correct.
  • Not always fully live. Free-tier API rate limits (particularly Alpha Vantage's ~25 requests/day and FMP's daily cap) mean data collection is rationed — news-sentiment checks are prioritized for stocks already one source away from a board, and historical price charts refresh only for stocks currently on a board. A "Refresh Data" click may not update every source for every stock immediately if a provider's daily quota is already spent.