A random S&P 500 stock beat the index in 48% of the 10-year windows I ran. That reads like a coin flip. Then I cut the same test by start year. If the 10 years began in 2000, the single name won 70% of the time. If they began in 2016, the odds of beating the S&P 500 fell to 25%. Same rule. Same index. Different decade.
I wanted a number I could defend, not the usual “most managers lose to the benchmark” slide. So I rebuilt the live roster each month from 1996, drew names that were actually in the index on that day, held them, and compared the result with the S&P 500 Total Return. No forecast. No screen. Just cherry picking with a random number generator.
One stock, 10 years
48%
beat the total-return index, all start months pooled
Same test, start 2016
25%
one name over the next 10 years
10 stocks, start 2016
27%
beat the index over the next 10 years. Pooled era: 70%
Lost half in 10 years
6%
of single-stock holds, dividends included
Why a random S&P name is not a free lunch
The index is a cap-weighted average. A few winners do most of the lifting. Hendrik Bessembinder showed the extreme version of that in Do Stocks Outperform Treasury Bills?: from 1926 to 2016, about 4% of listed U.S. stocks created all of the market’s net wealth. The other 96% as a group matched T-bills. That paper is the whole market, including tiny names that never made the S&P 500.
I stayed inside the index on purpose. These are already the large, liquid names. If cherry picking has a chance, it should show up here. It does, in a narrow sense. The win rate sits near 50%. The median still lags, because a few names do most of the lifting and a lot of names just do not. Miss the one that did the work and you can still “win” half the time while finishing behind.
That is also why a tiny equal-weight basket can look clever. You are no longer betting on one draw. You are betting that the average name beats the cap-weighted average. For years that was true. Then the biggest names stopped being just another group. I wrote about that split in the seven largest S&P 500 companies piece. This test asks the other question: what happens if you do not own those seven on purpose.
How I measured the odds of beating the S&P 500
The universe is the point-in-time roster, not today’s 500 names pasted onto 2004. I used the updated historical components file from the same public reconstruction I described in historical S&P 500 constituents, January 1996 through August 2026. Each month I took the members that were in the index that month. If you want a workbook instead of a script, the ATH Scanner builds that kind of file.
The draw
Pick 1, 5, 10, or 20 names at random from that month’s list. Equal weight. Buy and hold for 1, 5, 10, or 20 years. Dividends stay in (Yahoo adjusted close). The benchmark is the S&P 500 Total Return. 400 random baskets per start month. One-stock results are exhaustive: every name with a usable start price, not a sample.
What I did with names that left
If a stock dropped out of the index, I still held it. You do not sell just because S&P changed the list. If the price series ended (takeover, bankruptcy), the last print is the exit and the cash sits. I did not reinvest that cash into the index. That keeps the test honest as a stock pick, not as a stealth index fund.
Price coverage is the weak spot, and I am not going to hide it. I found a usable start price for 70% of member-months. That is 46% in the late 1990s and 94% in the 2020s. The holes are the delisted and reused tickers that Yahoo no longer serves. Missing losers make stock picking look a bit better than it was. The friendly 1996-2007 win rates sit on the thinnest data. The ugly 2015-2016 numbers sit on the best coverage I have. Treat the old single-stock win rates as an upper bound.
One stock, four holding periods
Across every start month I could complete, a single random name beat the total-return index 48.6% of the time over one year, 48.3% over five years, 48.3% over ten, and 48.6% over twenty. The win rate barely moves. The median gap does. At one year the typical stock trails by 0.8 percentage points. At ten years it trails by 6.7 points. At twenty years, 16 points. The longer you sit in one name, the more that missing right tail costs you.
Money-losing holds are common enough to matter. One year: 34% of single stocks were down. Ten years: 16% still lost money, and 6% were down 50% or worse, dividends in. That is inside the S&P 500, not a junk pile.
| Hold | Beat index | Median excess | Lost money | Lost 50%+ |
|---|---|---|---|---|
| 1 year | 48.6% | −0.8 pp | 33.7% | 2.4% |
| 5 years | 48.3% | −3.3 pp | 22.2% | 5.9% |
| 10 years | 48.3% | −6.7 pp | 15.7% | 6.4% |
| 20 years | 48.6% | −16 pp | 8.9% | 4.8% |
So the “coin flip” line is only about the win rate. The typical draw still loses to the fund you could have bought in one click. That is the skew talking. A few names do the index’s work. Plenty of names do fine and still lose that race.
More names used to raise the win rate
If you only look at the pooled chart below, the answer looks obvious. More names, longer hold, higher win rate. Twenty random stocks held twenty years beat the index in 83% of trials. That is the best cell in the table. It is also the easiest one to misread.
Five names already cut the one-stock junk. Over ten years a 5-name basket won 64% of the pooled trials, ten names 70%, twenty names 74%. The 20-year line sits even higher: 70%, 77%, and 83%. Two things puff up that black line. A 20-name equal-weight basket is no longer cherry picking. It is a mini equal-weight index. And I can only finish a 20-year hold for starts from 1996 through 2006. Those windows miss most of the megacap run. A 20-year hold that started in 2006 and ended this year won 40% of the time, not 83%.
So no, 20 names for 20 years is not the recipe. Spreading the one-stock junk helps. Equal weight versus cap weight used to help too. Neither one is a headcount that still works after 2015. The next two charts show the shape of the luck, then the decade that broke it.
The next chart is not a win rate. It is the gap after 10 years: stock return minus S&P 500 return, in percentage points. Zero means you tied the index. In a typical 10-year window the index itself was up about 140%, so $10,000 became about $24,000. The median single stock finished 7 points behind that, call it $23,300. The 10th percentile finished 214 points behind: the index +140%, the stock about −74%, so $10,000 shrank to about $2,600. The 90th percentile finished 279 points ahead, roughly $52,000. Ten random names squeeze that spread. The middle moves to +41 points, and the ugly tail is shorter. That middle is still an average across eras.
That 70% for ten names is the same story in a different shape. Equal weight of random S&P members used to beat cap weight. Dated. The start-year chart is why I wrote the title the way I did.
When the odds of beating the S&P 500 fell apart
Pool every 10-year window since 1996 and you get that polite 48% / 70% split. Split the same windows by the year they started, and the story changes in one slide.
If you began a 10-year hold in 2000, a random name beat the index 70% of the time and a 10-stock basket won 99% of the trials. That was the decade after the tech peak, when equal weight and anything that was not a leftover megacap had room to run. If you began in 2016, both lines sit in the mid-20s. The basket does not save you. The index you are trying to beat is now a concentrated growth bet, and a random draw from the other 490 names is underweight that bet on purpose.
Five-year windows say the same thing with more recent starts. A 5-year hold that began in 2019 beat the index 28% of the time with one stock and 22% of the time with ten. One-year windows in 2023, 2024, and 2025 sit in the mid-30s for a single name. I would not build a philosophy on three years. I also would not ignore them after looking at the 10-year slide.
What this does not say
It does not say you can never pick a winner. The 90th percentile of a 10-year single-stock hold is +280 points versus the index. Someone in your feed did that. The test says the base rate is not on their side, and the last ten years made the base rate worse.
It does not say active is dead. I did not test quality, momentum, or any rule with a reason attached. I tested a dart. If you have a rule, test the rule. The time in the market vs timing the market piece was the same idea on a different question: write the rule down, run it on long prices, then decide if you still like it.
I am also short delisted prices before 2010, so this is not a CRSP-grade 1990s file. If those missing names are mostly takeovers at a premium, I am a bit too harsh. If they are mostly zeros, I am a bit too kind. Bessembinder’s full-CRSP result says the zeros are not rare. That is why I called the pooled 48% an upper bound, and why I trust the 2015-2016 collapse more than the 2000-era 70%.
The honest verdict
Cherry picking one S&P 500 stock is a coin flip that loses on the median. Adding names used to push the win rate up, because equal weight had a tailwind against the cap-weighted index. After 2010 that tailwind faded. For a 10-year clock that started in 2016, the odds of beating the S&P 500 with a random 10-stock basket were about 27%. That is not a recipe for 20 names and a long hold. It is a warning about concentration.
A dart at the live S&P 500 list is not an edge. If you like the index, an index fund is the clean way to own the names that did the lifting. If you pick, pick with a rule you can write down. This test never ran that rule.
FAQ: odds of beating the S&P 500
What are the odds of beating the S&P 500 with one stock?
In this test, about 48% over 1, 5, 10, or 20 years if you pool every start month from 1996. The median stock still trails. That 48% is also an upper bound: I am missing more delisted prices in the early years. Start the 10-year clock in 2016 and the win rate drops to 25%.
Does a 10-stock basket beat the S&P 500 more often than one stock?
In the pooled sample, yes: 70% of 10-year trials. That is mostly equal weight versus cap weight, not stock-picking skill. After 2015 the basket stops helping. A 2016 start: 27%.
How did the odds of beating the S&P 500 change after 2015?
They collapsed. Ten-year windows starting in 2000 favored a random name (70%) and a 10-stock basket (99%). Windows starting in 2015-2016 sit in the mid-20s for both. The index became a concentrated megacap bet.
Is stock picking just a coin flip against the S&P 500?
The win rate is a coin flip. The payoff is not. The median lags, the left tail is deep, and the right tail is where the whole pitch comes from. A coin with a bad median is a bad bet.
What is the median excess return of a random S&P 500 stock?
About −0.8 percentage points over one year, −3.3 over five, −6.7 over ten, and −16 over twenty, versus the S&P 500 Total Return. Those are medians of the difference, not annualized rates.
Why do most stocks lag the S&P 500 even if half of them win?
Because “half” is the count of winners, not the size of the win. A few names do most of the index’s work. Miss them and you can win 48% of the time and still finish behind on the typical draw.
Did I include delisted and acquired companies?
In the roster, yes: the point-in-time file keeps names that later left. In the prices, only where Yahoo still has a series that overlaps membership. Coverage is 70% of member-months, much worse in the 1990s. Missing delistings likely inflate the single-stock win rate a bit.
How many stocks do you need to match the S&P 500?
This test never “matches” the index. It asks how often a random equal-weight basket beats it. Ten names used to be enough in the pooled 10-year sample (70%). After 2015, ten names were not enough. There is no fixed number that survives a change in concentration.
Does this mean I should only buy an index fund?
It means a dart at the S&P 500 list is not an edge. An index fund is the clean way to own the names that did the lifting. If you pick, pick with a written rule. This test never ran that rule.
What data did this S&P 500 stock-picking test use?
Monthly point-in-time constituents from January 1996 to August 2026, Yahoo monthly adjusted closes, S&P 500 Total Return as the benchmark. Equal-weight buy and hold. Last price is the exit when a series ends. No costs, no taxes.



