← All guides

Research · 9 min read

I backtested my own stock rankings. They lost to the index.

By Caio Paes · Updated August 6, 2026

Every fundamentals site can show you a chart where $1,000 turns into $40,254. Mine did, for seven months. The arithmetic was correct and the chart was worthless. The honest version of it argues against the product you're currently reading about.

What if $1,000 became $40,254?
That was my own landing page headline, actually. For seven months, with the number filling itself in from the same query that draws the chart below.

The chart everybody builds

Here's how that number was made. Take the fifty companies that rank highest on fundamentals today. Look up what their share prices did over the past twenty years. Compound $1,000 through those returns. Print the result.

Top 50 by fundamentalsS&P 500
Value of $1,000, invested at the end of the year the window opens, compounded through the past returns of the 50 companies ranking highest on fundamentals today, against the S&P 500. Selected with hindsight; survivors only.
WindowTop 50 by fundamentals, final valueS&P 500, final value
5Y (invested 2021, value at 2026)$5,617$1,858
10Y (invested 2016, value at 2026)$14,379$4,135
20Y (invested 2006, value at 2026)$40,254$8,658

That is the chart, rebuilt with the construction that ran on the front page until July 2026. Over twenty years the green line reaches $40,254 while the same $1,000 in the index reaches $8,658. Nothing in that calculation is a lie. Those fifty companies really did compound like that.

One thing here is better than what was on the front page. The blue line is the real index, priced from SPY. For almost the whole time the original was live it plotted an equal-weight average of the index's member companies and labelled it the S&P 500, which is a different thing. I fixed that in July 2026, days before taking the chart down, so the version above is the flattering construction measured against an honest benchmark.

The problem is the sentence a reader silently completes when they see it: “so if I had followed this ranking, I'd have $40,254.” You wouldn't have. The list could not have been written in 2006. It was assembled by looking at which companies turned out to have twenty strong years, and that knowledge did not exist at the start of the window. The chart quietly runs the tape backwards and presents it as though it ran forwards.

There's a second problem underneath the first. The companies available to rank today are the ones that still exist. Every business that went bankrupt, got taken private or was delisted somewhere in those twenty years is simply absent from the calculation. The survivors are the only candidates, and survivors flatter every backtest they appear in.

Switch it to five or ten years and the gap survives, which is what made it so convincing. This construction isn't unusual either. It's close to the default way performance charts get built when nobody is checking, which is why I want to be specific about what replaced it.

The honest version

The fix is to pick the cohort using only information that existed on the day it was picked. So: rebuild every company's fundamental score as of 2016, using only financials reported by then. Rank them. Take the top fifty. Then, and only then, look at what happened next.

I ran it expecting to confirm the thing I'd already built a product around. Two windows, equal-weighted, dividends included on both sides:

Equal-weight average total return: strongest-fundamentals companies vs the S&P 500
GroupWhile fundamentals were strong (2006–2016)The decade after (2016–2026)
Strongest-fundamentals companies+495%+224%
S&P 500+102%+319%

Over 2006 → 2016, the decade those companies were building the record that got them selected, the cohort returned +495% against the S&P 500's +102%. Over 2016 → 2026, the decade after, the same fifty companies returned +224% against the index's +319%.

They beat the market by roughly five to one while their fundamentals were getting strong. Then they lost to it, once that strength was visible to everyone. That's the finding. It isn't a flattering one for a company selling fundamental rankings.

Why it happens isn't mysterious. By the time a decade of excellent financials is on the record, it has been on the record for years, and the price has had all that time to absorb it. You aren't buying the compounding. You're buying whatever comes after it. The same idea, from a different angle, is in quality vs. valuation.

I spent a while trying to rescue it

I didn't accept that result on the first run. Over several weeks I tried, in order: ranking by each of the eight underlying signals separately, in case the composite was diluting a good one; selecting companies whose scores were improving rather than merely high; rebuilding that trend measure properly, as a year-by-year series with a fitted slope instead of a crude two-point difference; and finally ranking on long-run quality while penalising companies whose recent five years had deteriorated.

Every one of them failed out of sample. The one that stings most:

  • Selecting the top fifty by fundamentals returned less than simply holding every surviving company in the database, equally weighted. The selection step actively destroyed value.
  • “Improving fundamentals” looked brilliant in one decade, did nothing in a second, and lost in a third. That's the signature of a pattern fitted to one period rather than a real effect.

I'm reporting these because a method that only publishes the tests it passed isn't a method. The scoring weights were fixed and published before any of this was run, precisely so I couldn't quietly tune them until the curve looked better.

Then I asked the question backwards

Failing to predict returns from fundamentals leaves an obvious question unanswered: are fundamentals just irrelevant? So I inverted it. Instead of starting with good fundamentals and looking for returns, start with the biggest actual winners over a window, and look at where they ranked on fundamentals for that same window.

Taking the fifty best-performing stocks over each period, here's the average position of those winners in the fundamental rankings. The 50th percentile is a coin flip; the 100th is the top of the list.

Average fundamental percentile of the 50 best-performing stocks, by holding period
Holding periodAverage fundamental percentile of the winnersWinners with below-median fundamentals
1 year5423 of 50
5 years759 of 50
10 years803 of 50
20 years823 of 50
30 years832 of 50
Whole listed history862 of 50

Over one year the winners average the 54th percentile, and twenty-three of the fifty had below-median fundamentals. That is noise. Stretch the window and it moves: 75th over five years, 80th over ten, 82nd over twenty, 83rd over thirty, and 86th over a company's whole listed history, where the typical winner sits in the 94th.

The relationship climbs steeply from one year to ten, then flattens. Over a single year, knowing a company's fundamentals tells you almost nothing about whether it was one of the year's big winners. Over a decade or more, the winners are almost never fundamental junk. At ten years and beyond, only two or three of the top fifty performers came from the bottom half of the rankings.

What that does and does not mean

Read that list and the obvious conclusion is “so buy from the top of the rankings.” It doesn't follow. I already tested it directly, and that is what the failed rescue attempts were.

Those are two different statements. Most big winners had good fundamentals is true. Most companies with good fundamentals became big winners is false. Of the fifty best performers in each window, only around nine to seventeen came from the fundamental top fifty. The rest were spread across a wide band that merely leans high. Good fundamentals are common among winners and nowhere near sufficient to produce one.

There's also a timing trap. In that backwards test, the fundamentals and the returns cover the same window. The winners of 2016–2026 had strong 2016–2026 financials, which is close to definitional. It shows that business results and share prices travel together over long periods. It doesn't tell you which companies will be in the next decade's list.

What I think the rankings are actually for

Screening and monitoring. Not picking next decade's winners.

Concretely: the rankings turn several thousand companies into a few dozen with real, durable, verifiable track records, so your research time goes somewhere defensible instead of into a screener with forty columns and no hierarchy. Then the work that actually decides the outcome is yours. What the business is worth. What you're being asked to pay. Whether you can hold it through a bad year. No score does any of that for you, and the workflow is laid out in building a shortlist.

The horizon finding also sets an honest expectation about time. If you're holding for a year, the evidence above says fundamentals won't sort the winners from the losers for you. The relationship needs a decade to show up. A tool built on decades of financials is a tool for people who intend to hold for a long time. For anyone who doesn't, it's close to useless.

The limitations I have not solved

Better you read them here than find them yourself:

  • Survivorship, still. The point-in-time test fixed the look-ahead problem but not this one. Companies that were delisted between the selection date and today are absent from the database entirely, so the cohort is really “the top fifty in 2016 that still trade in 2026” — and that flatters the results by an amount I can't currently quantify.
  • One selection date. The headline comparison uses a single 2016 cohort. One decade is one path, not a distribution.
  • Equal weight versus the index. My cohorts are equally weighted; the S&P 500 is weighted by company size. Some of the gap in both directions is that difference rather than the selection.
  • No costs. No fees, taxes or slippage on either side.

The honest answer to all of this isn't a better backtest. It's a forward record that can't be edited after the fact. On 4 August 2026 I froze the top fifty for every ranking window, published the files with their hashes, timestamped them with a third party, and started tracking them from that day. Wins or losses, unrevised, at track record. Full method, weights and evidence are in the methodology.

Nothing here is investment advice, and none of it is a forecast. The evidence above describes what has already happened; the tests that tried to turn it into a prediction all failed, which is exactly why the rankings are presented as research inputs rather than recommendations.

Keep reading