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?
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.
$1,000 into $40,254, with twenty years of hindsight
Top 50 by fundamentalsS&P 500
Value of $1,000 invested at the end of 2006, compounded through the past returns of the 50 companies that rank highest on fundamentals today. Picked with hindsight; survivors only.
| Window | Top 50 by fundamentals, final value | S&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. Even the scale helps: on a linear axis, compounding always looks most dramatic in the final years.
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 is nothing 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, 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:
The strongest-fundamentals companies of 2016 lost to the index over the decade after
The 50 companies ranked strongest on fundamentals using only data available in 2016, equal-weighted and held with no rebalancing. Each panel is indexed to 100 at its own start, because the first decade is a description of the companies and not a portfolio anyone held. Two members had not listed by 2006, so that panel averages 48 names. Adjusted closes, dividends reinvested on both sides.
| Year | Cohort | S&P 500 |
|---|---|---|
| 2006 (building the record) | 100 | 100 |
| 2007 (building the record) | 127 | 120 |
| 2008 (building the record) | 106 | 105 |
| 2009 (building the record) | 93 | 77 |
| 2010 (building the record) | 128 | 88 |
| 2011 (building the record) | 222 | 117 |
| 2012 (building the record) | 254 | 121 |
| 2013 (building the record) | 325 | 147 |
| 2014 (building the record) | 465 | 183 |
| 2015 (building the record) | 550 | 196 |
| 2016 (building the record) | 521 | 203 |
| 2016 (after selection) | 100 | 100 |
| 2017 (after selection) | 122 | 118 |
| 2018 (after selection) | 139 | 134 |
| 2019 (after selection) | 147 | 149 |
| 2020 (after selection) | 145 | 160 |
| 2021 (after selection) | 222 | 225 |
| 2022 (after selection) | 202 | 202 |
| 2023 (after selection) | 244 | 239 |
| 2024 (after selection) | 276 | 298 |
| 2025 (after selection) | 298 | 342 |
| 2026 (after selection) | 351 | 432 |
From 2006 to 2016, the decade those companies were building the record that got them selected, the cohort returned +421% against the S&P 500's +103%. From 2016 to 2026, the decade after, the same fifty companies returned +251% against the index's +332%.
My first assumption was a bug on my side. I re-ran it on fresh data and went through the fifty names by hand, looking for a bad split or a currency mix-up that would explain the second decade. There wasn't one. The numbers held.
Their return was about four times the index's while their fundamentals were getting strong. Then they lost to it, once that strength was visible to everyone. That's the finding, and it isn't flattering for a company selling fundamental rankings.
The ranking didn't find winners. It found companies that had already won.
Why it happens is no mystery. 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
Once I trusted the numbers, I spent several weeks trying to rescue the idea. 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, first as a crude two-point difference and then rebuilt properly, as a year-by-year series with a fitted slope;
- 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 two that sting 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 where every one of those winners ranked on fundamentals for that same period, along with their average. The 50th percentile is a coin flip; the 100th is the top of the list.
The longer the window, the stronger the winners' fundamentals
Each faint dot is one of that window's 50 best-performing stocks, placed at its fundamental percentile for that same window; the solid dot is their average. The dashed line is the 50th percentile, a coin flip.
| Holding period | Average fundamental percentile of the winners | Winners with below-median fundamentals |
|---|---|---|
| 1 year | 54 | 23 of 50 |
| 5 years | 75 | 10 of 50 |
| 10 years | 79 | 4 of 50 |
| 20 years | 82 | 4 of 50 |
| 30 years | 82 | 3 of 50 |
| Whole listed history | 86 | 2 of 50 |
Over one year the winners average the 54th percentile, and twenty-three of the fifty had below-median fundamentals. That is close to a coin flip, and the spread shows it: the one-year winners land everywhere from the very bottom of the rankings to the very top. Stretch the window and it tightens: 75th over five years, 79th over ten, 82nd over twenty and thirty, and 86th over a company's whole listed history, where the median winner sits in the 94th.
Almost all of the gain comes from stretching the window from one year to ten; past that, longer windows add little. Over a decade or more, the winners are almost never fundamental junk. At ten years and beyond, only two to four of the top fifty performers came from the bottom half of the rankings.
The whole universe, not just the tails
Both of those tests live in the tails: fifty companies picked by fundamentals, fifty picked by returns. That left me wondering whether the relationship was a tail thing. So I ranked every stock that has both a score and a return, split them into deciles of the fundamental ranking, and looked at where each decile's returns landed over the same window.
The bottom of the ranking is more informative than the top
Every stock with a score and a return, grouped into deciles of the fundamental ranking; each line is the decile's median return percentile over the same window. The dashed line means matching the middle of the whole universe.
| Fundamental-score decile | 1 year (3,408 stocks) | 10 years (2,542 stocks) | 30 years (1,045 stocks) |
|---|---|---|---|
| 1 (weakest) | 26.5 | 12.2 | 9.4 |
| 2 | 39.7 | 19.1 | 19.7 |
| 3 | 38.8 | 27.2 | 26.6 |
| 4 | 43.5 | 35.7 | 37.4 |
| 5 | 55.5 | 45.2 | 41.4 |
| 6 | 49.5 | 58 | 53.7 |
| 7 | 54.9 | 59.7 | 63.7 |
| 8 | 58.1 | 67.4 | 72.1 |
| 9 | 63.3 | 72.6 | 78.3 |
| 10 (strongest) | 66.8 | 80.6 | 85.9 |
Over ten years the staircase is monotonic: the weakest decile's median stock landed around the 12th percentile of returns, the strongest decile's around the 81st. Over one year the middle of the table is mush, which by now should not surprise you. If you want it as one number, the Spearman rank correlation climbs from 0.27 over one year to about 0.7 over thirty.
But look at which end does the work. At every horizon, the weakest decile sinks further below the middle than the strongest rises above it. Fundamentals turned out to be better at flagging losers than at picking winners.
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.
Most big winners had good fundamentals. Good fundamentals were nowhere near enough to make one.
Those are two different statements. Of the fifty best performers in each window, only around five 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 these backwards tests, the fundamentals and the returns cover the same window. The winners of 2016–2026 had strong 2016–2026 financials. That shows 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: the relationship is weak over a year and strengthens the longer you hold, so this is a tool for people who intend to hold for years. 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.
- No factor controls. Nothing here separates the score from things that travel with it, like company size, sector or valuation. Some of the relationship may belong to those.
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.