The Momentum Portfolio

A simple, fully mechanical strategy: rank every US stock above $1B market cap by its 12-month price momentum, skipping the most recent month, hold the top 25 equal-weight, and re-rank at every month-end. A stock enters the basket at rank 25 or better and stays while it still ranks in the top 75; at most 7 of the 25 may come from one industry. No forecasts, no discretion. We tested it point-in-time on three separate windows back to 2009 — including two we never touched while designing it. It beat the S&P 500 in 2016–2026 and 2009–2012, and lost to it in 2012–2016 (9.9% vs 11.4%/yr). Over the full 2009–2026 window it earned 22.2%/yr after 0.3%/trade costs vs the index’s 13.4% — real, but regime-dependent: the edge comes from the strong windows and reverses in the weak one, with drawdowns half again as deep as the index. We publish the loss next to the wins — the honest caveats are below, right next to the results.

🔒

The 25 holdings are for Premium members

The full performance and backtest below are free for everyone. Premium unlocks this month’s 25 positions and the portfolio check, updated automatically at every month-end rebalance — $19/month or $149/year, with a 14-day free trial.

Start 14-day free trial
Already a member? Sign in

The backtest — three independent windows

Same rules applied point-in-time: universe membership and market cap use only data knowable at each rebalance (annual filings with a 91-day lag, and that day’s price). The 2012-2016 and 2009-2012 windows were run after the strategy was fixed on 2016-2026 data — a true out-of-sample check. The strategy won 2009-2012 and lost 2012-2016: momentum rode the 2013-2015 mid-cap biotech run-up straight into the late-2015 crash. One win, one loss out-of-sample — that is the record, and we show both.

The chart shows total return since the selected period started, after 0.3%/trade costs on the strategy side — the strategy (green) against the S&P 500 (SPY, grey) and the Nasdaq-100 (QQQ, purple). The CAGR figures above are that same result expressed as a constant annual rate; the % scale on the chart isn’t directly comparable to the yearly stats. Switch the tabs to see the full 2009–2026 run or each individual window.

The harder benchmark — our strategies vs the Nasdaq-100

The S&P 500 is the standard yardstick; the Nasdaq-100 (QQQ) is the harder one — a tech-concentrated index that compounded over 20%/yr across this whole period. Here are both of our strategies against it, after 0.3%/trade costs on the strategy side (the indices are buy-and-hold, so costs on them are ~zero). Green means the cost-adjusted strategy beat QQQ in that window; red means it lost. The honest summary: the Nasdaq-100 is a very hard benchmark in this period — after costs both strategies edge it over the full 17 years (Quality Momentum 21.5%, Momentum 22.2%, vs 20.3%) and beat it clearly in 2016–2026, but both lose to it in 2012–2016, and Momentum loses to it in 2009–2012 as well. If your goal is maximum growth and you can stomach a −34% drawdown and heavy single-sector concentration, buying QQQ was historically an excellent trade, and we say so. What the strategies offer instead is sector-diversified exposure with an edge over the S&P 500 (Quality Momentum +6.9pp/yr after costs on the full window) — a different risk profile, not a Nasdaq substitute. Beating a diversified index is hard; beating a concentrated index that happened to hold the decade’s biggest winners is harder — which is why we show it.

Same backtest, same point-in-time universe and $5M liquidity floor for both strategies. Gross figures (before costs) are on each strategy’s own page. Drawdowns are peak-to-trough on monthly closes, before costs. QQQ’s own worst drawdown: see the far-right column.

Methodology — and what this test can and cannot claim

  • Signal: 12M-1M price momentum — the close one month before the rebalance divided by the close thirteen months before, minus one. The most recent month is skipped because short-term returns tend to reverse (the standard academic convention). Nothing else: no earnings, no scores, no opinions.
  • Universe: US-listed stocks with market cap ≥ $1B at the rebalance date, mega caps and mid caps competing in one pool. In testing, letting the whole spectrum compete beat restricting to either group alone. One tradability guard on top: a name must have a median daily dollar volume of at least $5M over the three complete months before the rebalance — measured point-in-time, so no look-ahead. A stock trading a few hundred thousand dollars a day has a bid-ask spread several times our modelled 0.3% cost; keeping it in the backtest would book returns nobody could have collected. The floor exists to keep the cost assumption honest, not to boost returns.
  • Portfolio: 25 names, equal weight, re-ranked every month-end under a rank band: a stock enters at rank 25 or better and is kept while it still ranks in the top 75; only when it drops below 75 (or fails a universe gate) is it sold and the slot given to the best-ranked entrant. A full re-rank every month had been selling winners on rank noise — the band halves turnover (typically 3-5 names change per month) and raised the return before costs, not only after. One risk cap on top: at most 7 of the 25 from any one industry (the Fama-French 12-industry scheme, from each company’s SIC code in its SEC filings). Wider baskets (25) survived out-of-sample; concentrated ones (top 5-10) looked better in-sample and failed out-of-sample, so we don’t use them.
  • Revision note (September 2026): the holding rule above replaced a plain monthly re-rank. It was one of five holding rules tested on the same data at once (rank band, industry cap, a return-consistency screen, an intermediate 12-7 month signal, and staggered tranches); the band and the cap were the two that improved every test window, the others were rejected. Under the previous rule this page showed 16.4%/yr after costs for 2009–2026, 2.9% for 2012–2016 and a −44% worst drawdown. We keep those numbers here on purpose: the change was made after seeing them, which is itself a form of selection, and the true out-of-sample test of the new rule only starts now.
  • What we tried and rejected, in the open: per-stock trailing stop-losses (whipsawed, made results worse), market regime filters — 200-day trend, partial exposure, volatility-index tiers (each helped one window, hurt another; none passed both), quality-fundamental gates on top of momentum (diluted returns at monthly cadence). The bankruptcy check was the one defensive test that passed: in nine real collapses (2020-2023), momentum turned deeply negative 3-12 months before the end, so the monthly re-rank had already rotated out of every one of them.
  • Where this page came from: our original test asked whether ranking stocks by fundamentals beats the market. Honest answer: it didn’t (top-quintile 11.3%/yr vs SPY 13.5% in the mega-cap universe, 2016-2026). We published nothing and kept iterating; the momentum finding above is what survived every check we could throw at it.
Honest limitations. The universe is every SEC filer listed on a US exchange with at least three years of filings and usable price history — no size cutoff at all, foreign issuers (20-F/40-F) included (~4,350 names, the same registry the site’s screener and stock pages run on). Since August 2026 it also includes companies that delisted or went bankrupt along the way — the full SEC Form 25 graveyard (6,300+ dead filers) restored with their real filed fundamentals, positions exiting at the last traded price (methodology). We take this seriously: each time we widened the pool the numbers came down and we published the lower ones (an early ~600-name draft showed 17.8%/yr for 2012-2016; the full survivors-only universe showed 9.7%; with the graveyard restored it fell to 5.3%; the rank-band holding rule adopted in September 2026 lifted it to 11.1% before costs, 9.9% after). We also publish our mistakes: an earlier revision of this page briefly showed 5.8% for that window and “a tie with the index” overall — that came from a data defect we then found and fixed, where split-adjusted prices were multiplied by unadjusted share counts, silently dropping the era’s biggest winners (pre-split NVDA, Tesla, Apple) out of the point-in-time universe while letting reverse-split microcaps in. Every figure on this page is computed with split-corrected share counts; the correction moved results in both directions and we re-published everything. The out-of-sample record after costs is +1.8pp/yr (2009-2012) and −1.5pp/yr (2012-2016): the honest expectation is a modest edge over long horizons with multi-year stretches of losing to the index — not the +14.9pp of the main window. Returns are price-only (dividends excluded on both sides — which understates the SPY side more than the basket). The cost-adjusted CAGR assumes 0.3% per trade, and the $5M point-in-time liquidity floor above is what makes that assumption defensible. Max drawdowns ran deeper than the index (-31.8% vs -23.8% on the main window, -34.2% vs -10.9% in the losing 2012-2016 window) — momentum strategies are known to crash hardest when markets whipsaw. The variant of this idea with the strongest full-universe record is the Quality Momentum strategy — the same momentum signal behind a profitability gate. Past results are no guarantee of future results. Educational only, not investment advice.