SledgeKey Backtests
Does midcap value still work? We backtested it two ways.
Figures as of September 2026. Every number on this page comes from one run with its window ending September 13, 2026. We refresh our published backtests once a quarter rather than every time the data moves, so the same screen run in the app on today's data can differ a little. Next refresh: January 2027. Later runs moved the survivorship comparison on this page, and the January refresh will replace it. How we date and refresh these pages.
Most free backtesters test a strategy against the list of companies that exists today. Any company that went bankrupt, was seized by regulators, or otherwise left the exchange along the way has already been removed from the data, which means the strategy under test never has to own its casualties. This is survivorship bias, and although nearly every backtesting guide warns about it in the abstract, it is almost never measured, so we measured it. The guides also assume it flatters a strategy. On this screen it did the opposite.
We ran the same midcap value screen over the same nine and three quarter years twice. The first run used a survivor-only universe, the way most free tools quietly do. The second run was honest: every company listed at each rebalance date was eligible for selection, including the ones that later disappeared, and any holding that delisted was booked out at its frozen last traded price.
Growth of $100,000 · 2017–2026
The same screen ran over the same dates, and the only difference between the blue and gold lines is whether delisted companies were allowed to exist. The blue line, which kept them, finishes higher.
View the data as a table (calendar year-end values)
| Year | Honest | Survivor-only | SPY |
|---|---|---|---|
| 2017 | $125,378 | $125,992 | $119,995 |
| 2018 | $129,199 | $130,727 | $127,361 |
| 2019 | $138,828 | $140,654 | $148,109 |
| 2020 | $146,810 | $140,996 | $175,813 |
| 2021 | $174,596 | $164,398 | $219,434 |
| 2022 | $157,024 | $148,483 | $201,434 |
| 2023 | $157,432 | $146,063 | $230,582 |
| 2024 | $205,970 | $186,260 | $306,717 |
| 2025 | $256,426 | $223,639 | $350,488 |
| 2026 | $276,704 | $242,397 | $397,034 |
The exact screen
The full configuration is listed below exactly as it ran, so that anyone who wants to reproduce the result, or pick it apart, can work from the same table we did.
| P/E ratio | 0 – 15 (trailing twelve months, positive earnings required) |
| Market cap | $2B – $20B |
| Selection | Top 20 qualifying companies by market cap at each rebalance |
| Weighting | Equal weight, max position size 10% |
| Rebalance | Quarterly (39 rebalances over the window) |
| Transaction cost | 0.10% per trade (honest run paid $7,262 in modeled costs) |
| Initial capital | $100,000 |
| Benchmark | SPY (total price return over the same window) |
| Universe | NYSE + NASDAQ operating companies (no SPACs, REITs, ETFs, or funds). Point-in-time: eligibility at each rebalance reflects the companies listed on that date. |
| Delisting treatment | Honest run: delisted holdings are booked out at their frozen last traded price. Survivor-only run: companies that later delisted are excluded from the universe entirely. |
The result, run both ways
| Metric | Honest | Survivor-only | SPY |
|---|---|---|---|
| Total return | 176.70% | 142.40% | 297.03% |
| Annual return (CAGR) | 11.07% | 9.56% | 15.28% |
| Final value | $276,704 | $242,397 | $397,034 |
| Sharpe ratio | 0.49 | 0.43 | 0.81 |
| Volatility (ann.) | 20.72% | 20.55% | 16.18% |
| Max drawdown | -48.15% | -48.29% | -33.72% |
| Calmar ratio | 0.23 | 0.20 | 0.45 |
| Winning months | 69 of 116 | 70 of 116 | 77 of 116 |
| Total trades | 1,001 | 984 | – |
| Avg holding period | 154 days | 159 days | – |
| Annual turnover | 116.6% | 113.5% | – |
The sign is the finding. The survivor-only run reports 9.56% a year; the honest run made 11.07%. Nothing about the screen changed between the two runs except whether the data was allowed to remember companies that later disappeared, and this time remembering them helped. Fifteen of the honest run's holdings left the exchange during the window, and most of them left because someone paid a premium to take them: Alexion to AstraZeneca, Marathon Oil to ConocoPhillips, Kellanova to Mars, Discover to Capital One, WestRock into Smurfit WestRock, Hologic to private equity. A survivor-only universe deletes those companies before the screen can buy them, so it deletes the premiums too, and it reports a strategy 1.51 points a year worse than the one an investor would have owned. Against the index's 15.28%, the honest shortfall was 4.2 points a year; the biased run would have called it 5.7.
The 15 companies survivorship bias would have deleted
These are the delisted companies the honest run actually held at some point, positions a survivor-only universe never gets the chance to pick. Most of them were acquired at healthy premiums rather than going to zero, which is why the honest run finished ahead, and that mix is worth absorbing, because once delisted companies are removed from a universe the screen selects a different twenty names at every rebalance and the entire history shifts along with them.
The one genuine casualty on the list is Credit Suisse. The screen held CS through its final descent into the UBS rescue, because right up to the end it looked like everything a midcap value screen wants: a cheap bank trading below book. A survivor-only backtest cannot surface that event, since in its universe the company never existed, and it cannot surface the fourteen buyouts either. Both kinds of exit are what the honest run is for.
What this backtest does not prove
A page like this earns whatever credibility it has in this section, so here is everything the result above does not establish.
The strategy lost to the index. Both versions fell short of SPY, and the honest one trailed it by 4.2 points a year while carrying more volatility and a much deeper drawdown, so anyone hunting for a market-beating formula should keep hunting. What this page demonstrates is a measurement problem: the same mediocre strategy reads a point and a half better or worse depending on whether the data remembers the companies that left.
One window, one configuration. This is a single 9.7-year run that happens to span an era brutal to value and kind to megacap growth, the exact stretch where SPY was hardest to beat. Different dates, bands, or rebalance schedules will produce different numbers, and the size and even the direction of the survivorship gap depend on what the screen buys. In our small-cap value run ($300M–$2B) the honest universe also came out ahead, by 0.49 points a year. On a Piotroski-style screen the bias ran the textbook way and overstated the result by 3.06 points, and on the Magic Formula the two universes produced the same portfolio. The gap is not a constant you can bolt onto any backtest. It measures how your strategy's holdings left the market, buyouts at a premium pulling one way and failures and forced exits pulling the other, and a survivor-only backtester hides both.
Frozen-price booking is conservative but imperfect. When a company delists, the honest run books the position out at its frozen last traded price. For acquisitions that approximates the deal price; for a collapse like Credit Suisse it may still be generous; the true exit for a retail holder could be worse. And a handful of the delistings above are foreign issuers ending their US listings (ADR terminations), where the delisting is administrative rather than a verdict on the business.
Modeled costs flatter real execution. The 0.10% per trade covers commissions and typical slippage at midcap liquidity. Real execution during stressed markets runs worse than any flat assumption, and selling a bank in the week of its rescue is about the most stressed trade there is.
This page was revised on September 13, 2026. The version published in August reported the bias running the other way, 1.77 points a year of phantom performance, and named Silicon Valley Bank among the holdings. In September we found and repaired a fault in our fundamentals history: for roughly 1,800 companies, later filings had been copied onto earlier dates, so some screens between 2020 and 2024 were reading financials that did not yet exist. Every number on this page was regenerated from the corrected data. We would rather show the revision than pretend the first number never existed.
You can run this exact screen, or your own version of it, on the same survivorship-free point-in-time data and see how your strategy holds up with the casualties left in.
Run your own backtest · free, no card required