SledgeKey Backtests
We ran a quality at a fair price screen honestly. It was calmer than the S&P 500 and trailed it by 3.86 points a year.
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. How we date and refresh these pages.
Buying good businesses at sensible prices is the most repeated advice in modern value investing, and it is easy to state as a screen: high return on equity, healthy operating margins, a price-to-earnings ratio that is not stretched, and free cash flow that is actually positive. We ran exactly that screen once a year for ten years, on the universe as it stood on each rebalance date, and let it hold whatever it found. It returned 11.49 percent a year. The S&P 500 returned 15.35 percent.
The gap of 3.86 points a year has a plain cause. The screen behaved like a lower-beta version of the index, with a beta of 0.75: in the index's up months its average gain was 73 percent of the index's, and in the down months its average loss was 70 percent of the index's. A quality tilt is usually bought as insurance, and in a decade when the index returned 15.35 percent a year, carrying a quarter less market exposure accounts for most of the shortfall.
Growth of $100,000 · September 2016 to September 2026
A quality at a fair price screen against the S&P 500, both starting from $100,000 in September 2016. Hover or tap the chart for values at any month.
The exact screen
Every threshold below was set in the SledgeKey screener and run without further adjustment. The screen filled all twenty slots at every one of its ten rebalances, so the portfolio was never short of candidates.
| Universe | NYSE and NASDAQ operating companies, all 11 sectors |
| Market capitalization | $1B minimum |
| Return on equity | 15% minimum |
| Operating margin | 15% minimum |
| P/E ratio | 25 maximum |
| Free cash flow | Positive, applied through the Quality filter |
| Liquidity floor | $100,000 median daily dollar volume |
| Holdings | 20 maximum, equal weight, 10% position cap |
| Rebalance | Annual |
| Transaction cost | 0.10% (10 bps) per trade |
| Hedging | Off |
| Benchmark | SPY |
| Window | September 15, 2016 to September 13, 2026 (120 months, 10 rebalances) |
Two of those rows deserve a note. The positive free cash flow requirement is expressed through the screener's Quality filter, which also imposes a $50M market capitalization floor; that floor sits well below the $1B minimum already applied, so it changes nothing here. The liquidity floor removes securities that do not trade in meaningful size on a typical day, measured as a median rather than an average so that a single block trade cannot make a dormant listing look tradeable.
The result against the index
| Measure | Quality at a fair price | S&P 500 |
|---|---|---|
| Total return | 196.40% | 316.78% |
| Annual return (CAGR) | 11.49% | 15.35% |
| Final value | $296,402 | $416,779 |
| Max drawdown | -27.02% | -33.72% |
| Volatility | 12.36% | 14.32% |
| Sharpe ratio | 0.74 | 0.90 |
| Calmar ratio | 0.43 | 0.46 |
| Winning months | 82 of 120 | 89 of 120 |
| Total trades | 246 | n/a |
The screen was genuinely calmer. Its worst peak-to-trough fall was 27.0 percent against the index's 33.7 percent, and its annual volatility was two points lower. Anyone who bought a quality tilt for a smoother ride received one. The question is what that smoothness cost, and the capture ratios answer it more clearly than the headline return does.
Where the defense actually showed up
| Upside capture | 73.00 |
| Downside capture | 70.49 |
| Beta | 0.75 |
| Alpha | -0.55 |
| Sortino ratio | 1.13 |
| Tracking error | 6.96 |
| Information ratio | -0.53 |
| Months beating the index | 43.3% |
| Best month | +10.67% |
| Worst month | -15.39% |
Capture ratios describe how much of the benchmark's movement a portfolio inherits, separated by direction. An upside capture of 73.00 means that in the index's up months the screen's average gain was 73 percent of the index's. A downside capture of 70.49 means its average loss in the down months was 70 percent of the index's. That is what a portfolio with a beta of 0.75 looks like, and it shows no real asymmetry. The 3.86 point annual gap is mostly the cost of that lower beta in a decade when the index returned 15.35 percent a year.
The chart shows how that played out. The two lines run within a few points of each other through 2019, and the screen falls appreciably less in the crash of early 2020, 10.8 percent between the February and April observations against 17.2 for the index, which is the moment a quality tilt earns its reputation. The separation that lasts opens in 2021: the screen returned 17.9 percent that calendar year against 29.1 for the index and ended it eight percentage points further behind in cumulative terms than it began it. A second leg during 2024, 14.7 percent against 29.9, widened the shortfall by another ten points. By the close of the window the screen trailed the index by 29 percent cumulatively, and roughly three fifths of that shortfall was already in place before 2024 began.
A plausible reading is that a P/E ceiling of 25 excluded the companies that drove most of the index's return in the second half of the window. The screen was not wrong about those businesses being expensive. It was simply unwilling to own them, and over this particular decade that unwillingness was costly. A different decade could reverse the conclusion, which is the whole reason for stating the window in every sentence that quotes a number.
What this backtest does not prove
One ten-year window is a single observation. The dispersion statistics on this page, including volatility, Sharpe, Sortino, capture ratios and tracking error, move as the window moves at either end, so they should be read as a description of this decade rather than as constants belonging to the strategy. The stable figures are total return, annualized return, final value and the daily-basis maximum drawdown.
The run assumes annual rebalancing at a fixed date, equal weights, a 10 percent position cap and 10 basis points of cost per trade. It does not model taxes, slippage beyond that flat cost, or the behavior of a real person watching a portfolio trail its benchmark for most of a decade. Companies that delisted during the window are kept in the universe and booked out at their last traded price. We have not run this screen on a survivor-only universe, so this page makes no claim about which way that would move the number; on the screens where we have measured it, the gap has run in both directions.
The screen itself is a reasonable expression of a popular idea, and it is not the only one. Raising the P/E ceiling, ranking on quality rather than filtering on it, or rebalancing more often would each produce a different portfolio. Those are separate backtests, and the configuration table above exists so that anyone can reproduce this one before arguing with it.
This page was revised on September 13, 2026. The version published on September 2 reported 12.46 percent a year and a screen that captured 61 percent of the index's upside against 93 percent of its downside. 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.
Revised again on October 1, 2026. The capture ratios were recomputed with Morningstar's method, which compares the screen's average monthly return with the index's, separately for the index's up and down months. The earlier figures, 45.12 and 81.80, divided cumulative returns over those months, a calculation that drifts with the length of the window. The headline and the passages built on those figures were rewritten. No other number on this page changed.