The model
The Bull Rankings score is a deterministic quality-growth screen — the classic GARP idea, “growth at a reasonable price” — a single 0–100 number built from three pillars. Quality rewards durable returns on capital, healthy margins, low leverage, and clean, cash-backed earnings. Growth measures revenue and earnings expansion. Value grades valuation against sector peers — the PEG ratio, earnings and cash-flow multiples. A high score means a strong, growing business trading at a fair price.
Every weekday the cron pulls the full NASDAQ Trader US-listed symbol list (~5,000 names across NYSE, NASDAQ, and AMEX), runs each through a market-cap and liquidity screen (drops the smallest / illiquid names, ~3,000 survive), scores the survivors that have complete fundamentals (~2,200 of them) on the quality-growth model, and builds a 30-name book from the strongest. The same code runs against every name; nothing is hand-curated. Banks, insurers and REITs run on a different financial model, so they're graded on a sector-appropriate card rather than the quality-growth score.
That's the schedule, and it isn't a promise of a perfect record: the run depends on third-party data that sometimes throttles or times out, and a handful of weekdays since launch have no edition because of it. When a run doesn't complete, nothing is improvised — the previous edition simply stays up, dated with its own as-of date rather than today's, so a stale book is never presented as a fresh one. Every published edition is in the daily archive, gaps included.
The 30-name book is not simply the top 30 scores. A pure top-30 would routinely be half software and half small caps, so the book applies concentration limits: at most 3 names per sub-industry (software, semiconductors, biotech and specialty pharma each count as one), at most 8 per broad sector, at most 10 names under $10B, and at most 3 under $2B. When a limit is full, the next-ranked name that fits takes the slot. That is why a high-scoring name can be absent from Top Picks while a lower-scoring one appears — the score ranks a stock, the limits build a diversified book. Every score is shown in full on the screener, uncapped and unfiltered.
When a metric shows “—”. Some inputs genuinely don't exist for a company: a business with no meaningful debt has no useful debt-to-equity, one with negative or erratic earnings has no meaningful P/E or PEG, and vendors occasionally fail to report a field. We show a dash rather than invent a number or quietly substitute a zero — a zero would read as “no debt” or “free,” a much stronger claim than “unknown.” A missing input is excluded from its pillar and the remaining signals carry the weight; it is never scored as a zero and never counted as a penalty. That is why a stock can still carry a full score with a dash in its grid. Where too many inputs are missing to grade a name honestly, it drops out of the ranking entirely rather than being scored on fragments.
About the grade card. Beneath the headline score, the three quality-growth pillars (Quality, Growth, Value) break down how the number was reached. Each name also carries a grade card of the underlying fundamentals: on the row cards across the rankings, watchlist, and individual stock pages, the five most-discriminating grades sit on the compact strip (FCF, Rev, D/E, P/E·or·P/S, PEG), with the full set — FCF yield, ROE and more — in the expanded score-breakdown tooltip and the compare-page deep-dive.
The principles
- Transparency over mystique. Every score is auditable. Click a row and the breakdown shows you exactly which grades and adjustments produced the number.
- Durability first. Return on equity, free-cash-flow yield, and balance-sheet quality dominate the durability inputs — we reward businesses that compound for years, not quarters.
- Pay fair price for real growth. The Value pillar and its PEG grade reward valuations anchored to actual earnings growth, not extrapolated narratives.
- Concentration over breadth. A focused list of thirty reflects the view that the top of the ranking is materially better than the middle — we'd rather surface fewer high-conviction picks than dilute the signal.
What the site is not
This is not personalized advice. The rankings are general information published to a broad audience; nothing on the site is calibrated to any individual's circumstances, risk tolerance, or tax situation. Read the full disclosures at the footer of every page.
Methodology & limitations
The Bull Rankings model — its pillars, weightings, concentration limits and screen philosophy — was designed and is maintained by Bartholomew Chupka Jr., the site's founder. Every rule below is a deliberate choice, and the reasoning behind the ones that shape the book most is set out in why the rules are what they are.
We're explicit about the boundaries of what this model can and can't tell you. The screen is mechanical and transparent — and it has known structural limits worth naming.
- Universe is today's universe. The ~5,000-name candidate pool we screen every weekday is sourced from the NASDAQ Trader daily symbol file at run time— which, despite the name, lists every US-listed common stock and ETF across NASDAQ, NYSE, and AMEX, not just NASDAQ-traded names. That means delisted, acquired, or bankrupt names from prior periods don't appear — a structural form of survivorship bias. We audited this and it is total: zero of the ~5,000 price histories end early, so the backtest sees only survivors, and any historical return it produces is overstated. We've quantified the effect rather than just naming it: calibrated to the delisting-to-zero hazard of the strategy's actual holdings, it haircuts the back-test by roughly 3 points a year (e.g. an out-of-sample CAGR of ~33% / ~15%-a-year alpha becomes ~30% / ~12% after the haircut — a real edge, smaller than the raw figure). The haircut is modest for a specific, checkable reason: every one of the strategy's holdings generates positive free cash flow, so it structurally avoids the cash-burning companies that actually go to zero. (We verified this directly — a bankruptcy-risk screen for levered cash-burners removed none of the picks.) We disclose this haircut alongside any back-test number, and are scoping a point-in-time constituent dataset (Russell 3000 / S&P 500 historical membership) to retire the bias entirely.
- Fundamentals depth ≈ 10 years. Yahoo Finance — our primary source — provides ~10 years of quarterly and annual statements for most names, less for recent IPOs. Backtest windows beyond ~2014 thin out materially.
- Foreign listings + ADRs. When a foreign issuer reports financials in a non-USD currency, we convert at the current FX rate. Multi-year backtests that include foreign listings carry residual FX drift.
- Forward EPS estimates are sell-side consensus. The PEG signal and any forward-EPS-derived numbers reflect sell-side analysts, not the company's own guidance. Coverage thins out below ~$2B market cap; we surface that gap by marking such names with a derived or neutral PEG grade rather than penalizing them.
- Forward track record is short. The model is new; we log every pick at its pick-time price the moment the cron commits it, never back-dated, and value the log live against an S&P 500 benchmark on the performance page. Aggregate return / hit-rate figures only appear there once the earliest tracked picks have at least five trading days of history — a one- or two-day return is noise, not signal. Treat early numbers as directional only.
Where the data comes from
Every number on the site is traceable to a named source, and the grade card tags each value with where it came from and the period it covers:
- SEC EDGAR — official, as-filed company financials (10-K / 10-Q XBRL data). For US filers we reconcile the income, cash-flow, and balance-sheet figures against EDGAR so the fundamentals rest on the primary regulatory filing, not a third-party rounding of it.
- Yahoo Finance — quarterly and annual statements, live and historical prices, and sell-side analyst estimates used for forward-looking signals and price targets.
- Finnhub, Polygon & Financial Modeling Prep — fallback quote and fundamentals sources when the primary feed is unavailable (so a name still resolves rather than erroring), and the company-news feeds behind the “Latest developments” headlines.
- Company news — recent headlines are pooled from the feeds above plus Google News, de-duplicated and filtered to the specific company (generic market round-ups and off-topic hits are dropped). Every headline on the site is attributed to its publisher and links back to the original — we never state an event without a named, linkable source.
- NASDAQ Trader — the daily US-listed symbol file that defines the universe we screen (every common stock on NYSE, NASDAQ, NYSE American, and NYSE Arca).
How we keep it accurate
Bad data is worse than no data on a finance site, so accuracy is enforced mechanically rather than trusted:
- A daily data-quality gate. Before any new edition ships, an automated validator checks it — list completeness, positive prices, day-over-day ticker-count stability, and per-field coverage regressions. If a data-source hiccup truncates or degrades the scan, the run is aborted and the last good edition stays live rather than shipping broken numbers.
- EDGAR reconciliation. US-filer fundamentals are cross-checked against the as-filed SEC data, and values that look implausible (trough-earnings P/Es, buyback-distorted ROE, FX-unit mismatches on ADRs) are flagged or suppressed rather than scored as if real.
- Every figure in the written analysis is checked. Before a deep dive or narrative publishes, an automated pass verifies that each dollar amount, percentage, and multiple it cites actually appears in the underlying data — and that the direction is right too: a claim that revenue “grew” when it fell, or a healthy-looking margin on a company that is losing money, is caught and rewritten. Figures are dated to the reporting quarter they rest on, so a number is never shown as more current than it is.
- Out-of-sample discipline. No change that affects the score or the picks ships without being validated on data the change wasn't tuned on — and we publish the negative results too. Several intuitively-appealing signals were tested and rejected because they didn't hold up out-of-sample; we'd rather ship a smaller, honest edge than a flattering, over-fit one.
Why the rules are what they are
Before the rules themselves, it's worth saying what they're for. They do three things. They keep the book diversified, so no single idea — however good it looks — decides the outcome. They keep the decision with the numbers rather than my convictions, because the limits bind whether or not I like a company. And they force honest comparison: every business is judged against companies that actually resemble it, through several independent lenses rather than one flattering figure.
Every rule below costs something. That's what makes it a rule rather than a preference.
- Growth — is the business getting bigger? Revenue and earnings expansion. A company that isn't growing can still be a good investment, but that's a different thesis and a different discipline. This screen looks for compounding, so growth is a requirement rather than a bonus.
- Return on capital, against free cash flow — is the growth worth having? This is the quality question, and it's the one most often skipped. A company can expand revenue for years while destroying capital doing it. Return on capital tells you how much profit each dollar invested actually produces; checking it against free cash flow confirms the profit arrives as cash rather than as an accounting entry. Growth without this test is just activity.
- The PEG ratio — what are you paying for it? Price on its own tells you little. A multiple of forty is expensive for a business growing at ten percent and unremarkable for one growing at forty. PEG makes that relationship explicit, so “it's a great company” can't become a reason to pay any price for it. Quality is not a valuation.
- Supplemental checks, kept light. Behind those three sit accruals quality, which flags reported earnings running ahead of cash actually collected; EV/EBIT, which values the whole business including its debt, so leverage can't make a company look cheap; and revenue consistency, which separates a durable record from one good year. Each is a fair test, and each one applied strictly would exclude some genuinely excellent business — a company investing hard ahead of its growth will show poor accruals, and a high-quality compounder will rarely look cheap on EV/EBIT. As gates they'd remove the very companies this screen exists to find. They inform the score; they don't hold a veto.
- One score, everywhere. A company carries a single quality-growth score, and it's the same number wherever you meet it — the rankings, the screener, a sector page, its own profile. That sounds trivial. It isn't: a reader who sees one figure in a list and a different one on the detail page has no way to tell which is right, and reasonably decides neither is reliable. Consistency is what makes the data usable at all, so it's enforced once in the code rather than left to each page to get right on its own. The aim throughout is the most consistent, most defensible number I can produce, presented the same way every time.
- Three names per sub-industry. A pure top thirty by score would routinely come back half software. This limit forces the book across at least ten industries. I don't want to be overly exposed to one theme, even a theme the model happens to like.
- Ten technology names, not eight. Technology produces the most high-scoring businesses, and an eight-name ceiling was leaving good ones out. I widened it to ten. The three-per-sub-industry rule still applies underneath, so those ten have to spread across at least four different technology industries — it can't quietly become ten software companies.
- At most ten names under $10B, and three under $2B. Small caps score well and fall harder. Backtesting showed these limits give up a little return and meaningfully reduce the worst drawdown, and I took that trade deliberately: I'd rather forgo some upside than hold a book concentrated in small, illiquid names at the moment it matters most.
- Peers compared like for like. A payments company and a database company are both “software” to a standard classification, and grading one against the other tells you very little. I split the industry groups down to the level where the comparison is honest — which changes both what a valuation percentile means and which names the limits treat as duplicates.
None of these are tuned to make a backtest look good. Where a choice cost performance, it's because I preferred the risk profile — and where a signal I liked failed out of sample, it was dropped. Those results are published above rather than quietly omitted.
Who's behind The Bull Rankings
I'm Bartholomew Chupka Jr., and I built The Bull Rankings.
I hold a Bachelor of Science in Business Administration and a Doctor of Physical Therapy, both from Misericordia University. I've spent about seven years managing my own investments, and this site started as the screen I built for myself — I wanted one transparent number I could actually defend, instead of a dozen conflicting ratings I couldn't check.
I'm not a licensed financial advisor, a broker, or a registered investment adviser, and nothing here is personalized advice. You shouldn't have to take my word for any of it — which is why the methodology is published in full: every metric, every weighting, and the signals I tested and rejected because they didn't hold up out of sample. Every score breaks down into the figures that produced it, and the track record is published whether it looks good or not.
The Bull Rankings is independent and self-funded. I have no business relationship with any company the model scores, and no one can pay to be featured, ranked higher, or removed.
Found an error, or want to reach me? Contact me — corrections to the underlying data or the methodology are genuinely welcome, and I'd rather hear about a wrong number than leave it live. My editorial standards and corrections policy set out how I source and check figures, how errors get fixed, where automated writing is used, and how the site is funded.