ESSAY · Updated September 2, 2026

How the Bull Rankings model works

In brief: What goes into the score, and the rules I hold it to — a live forward record instead of a back-dated one, extra shelves kept off the scorecard, and a run that would rather publish nothing than publish something wrong.

EssayWritten by Bartholomew Chupka Jr. Editorial standards

I wanted this model to be transparent, and transparency isn't a tone — it's a set of decisions you make when they cost you something. This is what goes into the score, and the rules I hold it to.

What goes in

The score is only as good as the numbers underneath it, so most of the work is there rather than in the formula.

  • Company filings, reconciled. Where a company files with the SEC, its financials are checked against those filings rather than taken on faith from a single data feed. Revenue, earnings, cash flow and returns on capital come from what the company actually reported. Banks and other financial companies, and companies with no SEC filings to check against, rest on the data provider's figures.
  • Live prices. Valuation is computed against today's price, refreshed every weekday, so the "fair price" leg reflects where a stock trades now rather than where it traded when the fundamentals were filed.
  • A gate that can stop the run. Before an edition publishes, the data runs through sanity checks. If it fails them, the run stops and yesterday's edition stays up.

That last one is the part worth explaining, because it means the site is sometimes deliberately a day behind. I care a lot about data integrity, and stopping incorrect data matters more to me than being current. A stale number is a small problem you can see. A wrong number is a big one you can't — it renders exactly as confidently as a right one, and someone might act on it.

The score itself

One number, 0 to 100, on every stock the model can grade. It's the GARP idea — growth at a reasonable price — built from quality, growth and value. Valuation is judged against sector peers and the stock's own history rather than the whole market, and so is debt; growth and most of the quality reads are measured on fixed scales. A name has to hold up on all three, because a cheap bad business and an excellent unaffordable one are both bad buys.

Banks, insurers and REITs don't get one at all. Free cash flow and leverage don't mean the same thing for a balance-sheet business, so those names are graded on their own card and labeled as such.

If you want the mechanics — the three pillars, how they combine, the sector exceptions — that's how the score works. If you want the research, including the signals I tested and threw out, that's the research behind the rankings.

The record is forward-only, and never back-dated

The tracked book holds the Top 30, equal-weight, and rebalances once a quarter. Every holding is logged at its real price on the day it's bought and marked forward from there, and the whole book is measured against the S&P 500 bought with the same money on the day it started. Nothing is added to the record after the fact, and nothing is removed from it.

The reasoning is simple, and I think it's the strongest argument for doing it this way. Back-dating can produce better answers. Run a strategy over history and you will land on flattering numbers, because you are choosing the rules after seeing the outcome. But stocks are forward-looking. What a model would have done is a different question from what it does, and only one of those is the question you're actually asking when you buy something.

So the track record shows how the model has tracked against the index in real time — and the return on every name it holds, losers included. The losers are the point. A record that only shows you the winners isn't a record — it's marketing.

I still run backtests; they're how signals get tested before they ship. But a backtest is a research tool, not evidence of performance, and I try never to present one as the other. Historical simulation also suffers from survivorship bias — you can only test the companies that still exist — a bias I've measured and haircut rather than quietly ignored.

The extra shelves stay off the scorecard

There are two other lists on the site. Compounders is long-horizon quality; Moonshots is speculation, clearly labeled as such. Neither is part of the tracked Top 30 and neither appears in the track record.

They exist because I believe in GARP, but I would be silly to think there is only one winning strategy. Quality compounding at a full price is a real way to make money. So is a small speculative position you've sized honestly. I'm not going to pretend those approaches don't work just because I built my model around a different one.

What I won't do is blend them into the number I ask you to judge me on. The moment a good Moonshot counts toward the track record, the record stops measuring the model and starts measuring my selection of which list to point at. Keeping them separate costs me the occasional flattering result. That's the trade, and it's the right way round.

When two sources disagree

The reference metrics on this site — the P/E, the multiples you'd also see on Google or Yahoo — are shown as the data provider publishes them, even when my own filing-reconciled figure disagrees. That's deliberate. Continuity matters: if you check a number here against two other sites and it doesn't match, the reasonable conclusion is that I'm fixing numbers, and I'd rather not invite that thought.

Where my own work shows is in the score. The business figures underneath it — revenue, earnings, cash flow, returns on capital — come from the reconciled filings, because that's where accuracy actually changes the answer. The price multiples are the exception: the P/E the score ranks is the same published figure you see on the page. And when a company shows a positive P/E but its filings report a loss, the number stays on the page, but it gets a neutral grade and the score ignores it, along with the PEG that goes with it, because there are no earnings behind it to be cheap or expensive about.

Not advice

The model is a research tool. It doesn't know your goals, your tax situation or how much volatility you can live with, and it has no idea what else you own. Start with the rankings, check the track record, and do your own work before you buy anything.


The Bull Rankings is automated fundamentals research for education, not personalized investment advice and not a recommendation to buy or sell any security. Always do your own research.

Not investment advice. The Bull Rankings publishes a quantitative ranking model and accompanying analysis for general informational purposes only. Nothing on this page is a recommendation to buy, sell, or hold any security; nothing is personalized to your circumstances, risk tolerance, or tax situation. Investing carries the risk of loss — invest at your own risk and consider consulting a licensed financial professional before acting on anything you read here. See terms and methodology for full disclosures.