One Half of the Magic Formula Beat the Whole Thing: Greenblatt's Two Ranks, Tested Apart
Joel Greenblatt's Magic Formula ranks companies on two numbers and buys the ones that score well on both. One asks whether a business is cheap. The other asks whether it is any good. The claim in the book is that the pair works better than either number on its own.
We tested that claim by running all three books over the same twenty one-year windows of the S&P 500, from 2006 to 2025. Thirty names, equal weight, long only, reselected once a year. Every window was registered before it was run, and all three books are measured the same way: total returns with dividends credited, ten basis points charged on every dollar traded, against an equal-weight S&P 500 rebuilt as a total-return index.
Over the twenty years the combination returned 520.1 percent. Cheapness alone returned 389.8 percent. Quality alone returned 818.9 percent. The index returned 515.1 percent.
So the combination matched the market. Quality alone beat it by 2.2 points a year while running lower volatility and a shallower worst drawdown than the index itself. And the ordering holds on every measure we have: as the cheapness weight rises from none to half to all of it, return falls, volatility rises, the Sharpe ratio falls and the drawdown deepens, without a single exception.
The strength of that claim should be stated with it. The combination was ahead of quality alone in 8 of the 20 windows, and across 5,011 paired trading days the probability that it was the better book came to 13.9 percent. That is a clear lean in one direction across this record, not a law about the future.
The cheapness rank was not adding to the return on capital rank. It was subtracting.
1 Methodology
WHAT THE FORMULA IS
Greenblatt ranks every company in a universe twice. Once on an earnings yield, which is operating profit divided by what it would cost to buy the whole business. Once on a return on capital, which is operating profit divided by the money tied up in running it. He adds the two rank positions together and buys the names with the best combined score, holding for about a year.
The two ranks do different jobs. The earnings yield finds companies trading below what they earn. The return on capital finds companies that earn a lot relative to what they consume. The argument for pairing them is that a cheap business earning nothing is cheap for a reason.
WHAT WE RAN
Three books. The combination, weighting the two ranks equally. Cheapness alone, with the quality weight set to zero. Quality alone, with the value weight set to zero. Nothing else differs between them: same universe, same two legs computed in all three, same thirty names, same equal weighting, same annual reselection, same twenty windows, same costs, same benchmark.
Both ranks are computed from filings that were already public at each anchor date, on the S&P 500 as it stood on that date rather than as it stands now. The earnings yield leg is EV/EBITDA inverted. The quality leg is return on invested capital. Both are the standard institutional readings of his two ingredients, and both are stated here rather than left to be assumed.
A note on how this was assembled: the platform's comparison test holds two books against each other, so three books took two registered runs sharing one arm. The combination is the same registered circuit in both. It ran on two different days and produced the same thirty names in all twenty windows and the same returns to four decimal places, which is what makes the three columns comparable rather than merely adjacent. Read this as one study of three books; the pairwise machinery underneath is a detail of how the contrast is sealed, not a second paper.
HOW IT IS MEASURED
Every return is a total return. Dividends are credited on the day the stock goes ex-dividend and held as cash until the next rebalance. Ten basis points come off every dollar traded in one direction, charged at each entry and at every reselection, in all three books equally. The benchmark is the equal-weight S&P 500, rebuilt as a total-return index from its own dividend record so that it is measured on the same basis as the strategies.
Figure 2 shows what each adjustment is worth. The combination returns 359.1 percent on price alone, 531.7 percent once dividends are credited, and 520.1 percent after costs. The index moves from 325.6 percent to 515.1 percent on the same treatment. Dividends matter far more than costs, and they matter more to the index than to the strategy, which is why the comparison has to be made after both.
ONE DEVIATION WORTH NAMING
Greenblatt adds rank positions. First place plus fortieth place. We average standardised scores, which is what this platform's composite does. For two signals at equal weight the two methods agree on the ordering only when the two score distributions have the same shape, and in practice they do not. The effect is measurable in the books themselves, and it is reported in the findings along with the direction it pushes the result.
2 Results
2.1 Headline
| Book | Total return | Per year | Volatility | Sharpe | Worst drawdown | Mean window |
|---|---|---|---|---|---|---|
| Quality alone | +818.9% | 11.73% | 20.1% | 0.65 | -52.9% | +13.25% |
| Magic Formula | +520.1% | 9.55% | 22.4% | 0.52 | -64.0% | +11.26% |
| Benchmark (reference) | +515.1% | 9.51% | 20.7% | 0.54 | -60.7% | +11.11% |
| Cheapness alone (companion run) | +389.8% | 8.27% | 26.6% | 0.43 | -66.1% | +10.34% |
Volatility, Sharpe and worst drawdown are computed on each book's own stitched daily series over the identical trading days that Figure 1 draws, so the panel and the figure are the same arithmetic. Sharpe carries no cash hurdle. Mean window is the arithmetic average of the one-year window returns and does not compound to the total beside it; the difference is volatility drag.
2.2 Per-step results
| # | Out-of-sample window | Magic Formula SR | Quality alone SR | Cheapness alone SR |
|---|---|---|---|---|
| 1 | 2006-01-03 → 2006-12-29 | 1.11 | 1.24 | 1.44 |
| 2 | 2007-01-03 → 2007-12-31 | 0.56 | 0.42 | 0.87 |
| 3 | 2008-01-02 → 2008-12-31 | -0.82 | -0.75 | -0.81 |
| 4 | 2009-01-02 → 2009-12-31 | 0.80 | 1.06 | 0.77 |
| 5 | 2010-01-04 → 2010-12-31 | 1.09 | 1.19 | 0.88 |
| 6 | 2011-01-03 → 2011-12-30 | 0.12 | 0.22 | -0.13 |
| 7 | 2012-01-03 → 2012-12-31 | 1.19 | 1.22 | 1.47 |
| 8 | 2013-01-02 → 2013-12-31 | 2.37 | 2.71 | 2.60 |
| 9 | 2014-01-02 → 2014-12-31 | 1.08 | 1.01 | 0.73 |
| 10 | 2015-01-02 → 2015-12-31 | -0.18 | 0.44 | -0.81 |
| 11 | 2016-01-04 → 2016-12-30 | 0.67 | 0.64 | 0.97 |
| 12 | 2017-01-03 → 2017-12-29 | 2.50 | 2.89 | 1.38 |
| 13 | 2018-01-02 → 2018-12-31 | -0.15 | 0.07 | -0.53 |
| 14 | 2019-01-02 → 2019-12-31 | 1.92 | 2.10 | 1.13 |
| 15 | 2020-01-02 → 2020-12-31 | 0.28 | 0.64 | 0.23 |
| 16 | 2021-01-04 → 2021-12-31 | 1.33 | 2.02 | 1.01 |
| 17 | 2022-01-03 → 2022-12-30 | -0.61 | -0.67 | -0.56 |
| 18 | 2023-01-03 → 2023-12-29 | 1.44 | 1.50 | 0.16 |
| 19 | 2024-01-02 → 2024-12-31 | 1.46 | 1.68 | 0.87 |
| 20 | 2025-01-02 → 2025-12-31 | 1.14 | 0.57 | 1.24 |
2.3 Search accounting
No search record exists for this design. It was not promoted from a recorded evolving search, so the number of alternatives tried before it, on paper, in another tool, or in the author's head, is unknown. Unknown is a different fact from one: a study with no lineage is not a strategy with one trial, it is a strategy with an unrecorded number of them. Accordingly no count of alternatives tried is claimed, and nothing in this paper is corrected for a search that was never recorded; the number that stands is the raw out-of-sample result plus this disclosure. The registered per-step record below (§4) still guarantees each window's hypothesis was hashed and registered before that window was scored.
2.4 The comparison
Both arms trade the same registered windows, so their returns can be PAIRED: inside each window the two return series are inner-joined date by date and the difference rMagic Formula − rQuality alone is the object under test. Because this is ONE pre-declared contrast, frozen at registration before any window was scored, the paired statistic needs no multiple-testing deflation, and the per-arm pooled numbers above are likewise uncorrected, this design has no recorded search to correct against (§2.3). The paired contrast carries that gap differently from the arm levels: it was declared before each window ran and it is scored on the difference, so no window could be read first and scored after. What the timestamps cannot speak to is how this contrast came to be the declared one, which is the limit §2.3 states.
| # | Window | Paired bars | Magic Formula | Quality alone | Δ | Leader | Cheapness alone |
|---|---|---|---|---|---|---|---|
| 1 | 2006-01-04 → 2006-12-29 | 250 | +14.9% | +15.4% | -0.5 pp | Quality alone | +22.1% |
| 2 | 2007-01-04 → 2007-12-31 | 250 | +9.5% | +6.0% | +3.5 pp | Magic Formula | +16.6% |
| 3 | 2008-01-03 → 2008-12-31 | 252 | -39.6% | -31.5% | -8.1 pp | Quality alone | -42.8% |
| 4 | 2009-01-05 → 2009-12-31 | 251 | +24.9% | +29.6% | -4.7 pp | Quality alone | +28.9% |
| 5 | 2010-01-05 → 2010-12-31 | 251 | +21.3% | +20.2% | +1.1 pp | Magic Formula | +21.4% |
| 6 | 2011-01-04 → 2011-12-30 | 251 | -0.3% | +2.4% | -2.7 pp | Quality alone | -8.5% |
| 7 | 2012-01-04 → 2012-12-31 | 249 | +19.3% | +16.7% | +2.6 pp | Magic Formula | +28.6% |
| 8 | 2013-01-03 → 2013-12-31 | 251 | +32.1% | +35.3% | -3.1 pp | Quality alone | +45.5% |
| 9 | 2014-01-03 → 2014-12-31 | 251 | +14.1% | +11.6% | +2.5 pp | Magic Formula | +9.4% |
| 10 | 2015-01-05 → 2015-12-31 | 251 | -4.0% | +5.6% | -9.6 pp | Quality alone | -16.2% |
| 11 | 2016-01-05 → 2016-12-30 | 251 | +9.2% | +8.5% | +0.7 pp | Magic Formula | +23.0% |
| 12 | 2017-01-04 → 2017-12-29 | 250 | +21.2% | +24.3% | -3.1 pp | Quality alone | +15.4% |
| 13 | 2018-01-03 → 2018-12-31 | 250 | -4.1% | -0.3% | -3.8 pp | Quality alone | -10.4% |
| 14 | 2019-01-03 → 2019-12-31 | 251 | +31.7% | +35.3% | -3.6 pp | Quality alone | +19.2% |
| 15 | 2020-01-03 → 2020-12-31 | 252 | +3.6% | +17.9% | -14.3 pp | Quality alone | +0.6% |
| 16 | 2021-01-05 → 2021-12-31 | 251 | +25.6% | +31.7% | -6.1 pp | Quality alone | +26.0% |
| 17 | 2022-01-04 → 2022-12-30 | 250 | -16.7% | -19.6% | +2.9 pp | Magic Formula | -16.0% |
| 18 | 2023-01-04 → 2023-12-29 | 249 | +23.3% | +23.1% | +0.2 pp | Magic Formula | +1.1% |
| 19 | 2024-01-03 → 2024-12-31 | 251 | +18.5% | +24.1% | -5.6 pp | Quality alone | +12.2% |
| 20 | 2025-01-03 → 2025-12-31 | 249 | +20.6% | +8.6% | +12.0 pp | Magic Formula | +30.8% |
Paired Sharpe of the difference track: -0.24 · block bootstrap (2000 paths, block 10, seed 1234): P(Magic Formula beats Quality alone) = 13.9%.
Window win-rate. Magic Formula led 8 of 20 windows (40.0%), Quality alone led 12 , and the mean window gap of -1.99 pp points the same way. Widest single window: 2020 at -14.3 pp.
| Period | Windows | Magic Formula | Quality alone | Cheapness alone | Mean gap | Magic Formula led |
|---|---|---|---|---|---|---|
| All windows | 20 | +11.25% | +13.24% | +10.32% | -1.99 pp | 8/20 |
| Before 2016 | 10 | +9.22% | +11.13% | +10.77% | -1.91 pp | 4/10 |
| 2016 onward | 10 | +13.29% | +15.36% | +9.87% | -2.07 pp | 4/10 |
3 The circuit
The strategy is a circuit of platform primitives, frozen when the study is registered. Below is the circuit as wired on the canvas, the objective it encodes and how the search runs through it, followed by the mathematics each primitive actually computes, the same formulas the execution engine runs. The complete parameterisation is preserved in the study ledger (Appendix A).
A COMPARATIVE study: Magic Formula vs Quality alone, walked on the same registered out-of-sample windows. Magic Formula: S&P 500, rebalanced annual across the selected basket, and run out-of-sample from the anchor: whatever the design estimates from history is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. Quality alone: S&P 500, rebalanced annual across the selected basket, and run out-of-sample from the anchor: whatever the design estimates from history is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. The arms differ in: Factor Composite, quality_weight: 50 → 100; Factor Composite, value_weight: 50 → 0. The contrast under test: whether Magic Formula generates better risk-adjusted returns than Quality alone over the identical out-of-sample windows.
Envelopes show counts, ratios, dates, and the parameters the author chose. Full price and per-name data series are not republished: the underlying market data is licensed to QuanterLab. Point figures quoted in the prose, a named holding's return over a stated span, are summary facts derived from public market prices, not redistributed series.
The objective and the search
Magic Formula
| Universe | S&P 500 index constituents. |
|---|---|
| Validation & out-of-sample | portfolio forward test (buy-and-hold book) (1y horizon from the anchor, annual rebalance); overlays: Transaction Cost. |
| Other components | Factor models: Factor Composite, Factor Select, Fundamentals Loader (PIT), Quality Factor, Value Factor. |
Quality alone
| Universe | S&P 500 index constituents. |
|---|---|
| Validation & out-of-sample | portfolio forward test (buy-and-hold book) (1y horizon from the anchor, annual rebalance); overlays: Transaction Cost. |
| Other components | Factor models: Factor Composite, Factor Select, Fundamentals Loader (PIT), Quality Factor, Value Factor. |
What differs between the arms, one manipulated variable, expressed as 2 paired settings on one node:
- paramFactor Composite, quality_weight: 50 → 100
- paramFactor Composite, value_weight: 50 → 0
Companion book. Cheapness alone comes from a companion run whose one change against this study's Magic Formula arm is Factor Composite, quality_weight: 50 → 0; Factor Composite, value_weight: 50 → 100. Its results run through this paper's tables under its own name.
Everything else is held identical, so an out-of-sample gap between the arms is attributable to this one change.
Cost elements are wired into the circuit, the realised drag is reported per step in Appendix B.
Show the mathematics, 10 primitives, formulas and parity notes
3.1 Universe
The starting set of tickers, resolved point-in-time from the index change-log, so names delisted or removed later still compete on the dates they traded.
Before any math, you need a list of stocks. An index preset (S&P 500, Nasdaq-100, Dow 30) is reconstructed as it stood ON your anchor date by replaying the historical add/drop change-log backwards, so a 2018 backtest sees the 2018 membership, not today's winners.
Start from today's constituents and un-apply every membership change after the anchor t:
\mathcal{U}(t) = \mathcal{U}_{\text{now}} \;\ominus\; \{\text{adds after } t\} \;\oplus\; \{\text{drops after } t\}3.2 Price Loader
Bulk OHLCV fetch for the whole universe, point-in-time, no future bars.
Momentum, volatility, trend, every price-based metric needs history. This loads open/high/low/close/volume for all names in parallel, clipped so nothing after the anchor can leak in. The lookback window is derived automatically from the deepest metric you wired.
It loads exactly enough history for the hungriest downstream metric plus a warm-up buffer:
W = \max_k(\text{lookback}_k) + \text{buffer}, \qquad \text{bars} \le \text{anchor } t3.3 Factor Loader
Point-in-time fundamentals, never let the user see a number before the SEC did.
Loads ~23 fundamental metrics (valuation, quality, growth) per name, but with one inviolable rule: a financial statement becomes visible only on or after its SEC acceptedDate. A 2020 backtest sees only what was actually filed by 2020, no look-ahead, ever.
\text{visible}(f, t) \iff \text{acceptedDate}(f) \le t3.4 Factor Value
Value, how cheap is the stock, cross-sectionally?
Blends cheapness metrics, P/E, P/B, P/S, EV/EBITDA (lower is better) plus free-cash-flow and earnings yields (higher is better). Each metric is z-scored across the universe, winsorized against outliers, weighted by the importance you set (Off/Low/Med/High), and averaged.
z_{i,k} = \pm\,\frac{x_{i,k} - \bar x_k}{s_k}\text{Value}_i = \frac{\sum_k \omega_k\,z_{i,k}}{\sum_k \omega_k}, \quad \omega \in \{0,\,0.5,\,1,\,2\}3.5 Factor Quality
Quality, is this a strong, profitable, well-financed business?
Blends profitability (ROE, ROA, ROIC, margins) and balance-sheet strength (debt-to-equity inverted, current ratio, interest coverage). Same z-score, winsorize, importance-weight recipe as every factor family.
\text{Quality}_i = \frac{\sum_k \omega_k\,z_{i,k}}{\sum_k \omega_k}3.6 Factor Composite
The weighting console, blend Value, Quality, Momentum, Growth into one 0–100 score.
Where the four factor families become a single ranking. Each family score is standardized across the universe, blended with your slider weights (or the radar's suggested tilt), and min-max scaled to 0–100. Winsorizing tames outliers; z-score or percentile normalization is your choice.
z_{i,f} = \frac{x_{i,f} - \bar x_f}{s_f}\quad(\text{clipped at the 1st / 99th percentile})C_i = \sum_f W_f\,z_{i,f}, \qquad \text{score}_i = 100\cdot\frac{C_i - \min_j C_j}{\max_j C_j - \min_j C_j}3.7 Factor Top Tier
The cut out of the factor lane, keep the top-ranked names.
Takes the composite-ranked factor set and keeps the best N, carrying the composite score, the four family scores and the point-in-time market cap for each survivor. Feed 10–20 to a direct portfolio, or 30–100 as an optimizer pool.
\{\, i : \operatorname{rank}(C_i) \le N\,\}, \quad C_i = \text{composite score}3.8 Portfolio Backtest
Replay the portfolio forward, rebalanced, point-in-time, with costs.
Holds the basket and rebalances on schedule, re-selecting and re-optimizing point-in-time at each rebalance (so it only ever uses information available then), and reports the equity curve, Sharpe, drawdown and trade stats, optionally net of cost and risk overlays.
E_t = E_{t-1}\big(1 + \mathbf w_{t}^{\top}\mathbf r_t - \text{costs}_t\big)\text{DD}_t = \frac{E_t}{\max_{\tau\le t}E_\tau} - 1, \qquad \text{MaxDD} = \min_t \text{DD}_t\text{charge}_t \;=\; \text{loan}_t \cdot \frac{\text{spread}}{252}, \qquad \text{loan}_t = \begin{cases}\max(0,\,-\text{cash}_t) & \text{institutional (netted)}\\ \max(0,\,\text{long MV}_t - E_t) & \text{retail (no netting)}\end{cases}3.9 Portfolio Forward Autopsy
The post-mortem, where the forward test’s return actually came from.
Runs after the Portfolio Forward Test and dissects its realized path: per-rebalance contributions, winners and losers, exposure and cash periods, and how the realized route compares to what the risk cones projected. It computes nothing new about the future, it explains the past the book just lived.
Depth I–IV: headline attribution, per-segment breakdown, per-name contributions, and the calibration ledger (projected cone vs realized, segment by segment). In a study, this is the node that fills the appendices.
3.10 Transaction Cost
Charge for trading, slippage + commission on every turn.
Real trading isn't free. This deducts a cost proportional to how much you trade (turnover), in basis points, so the backtest reflects net, not gross, performance.
\text{cost}_t = \frac{\text{bps}}{10{,}000}\;\times\;\text{turnover}_t, \qquad \text{turnover}_t = \tfrac12\sum_i \lvert w_{i,t}-w_{i,t^-}\rvert4 Projection calibration, pooled across the walk
Every rebalance carried a Monte Carlo cone and a 95% VaR estimated before the segment it is scored against. Two questions, pooled over the whole study: did realized outcomes land inside the band as often as the band claims, and were VaR breaches as frequent as 5%?
This section is produced by the forward tester itself: every portfolio backtest fits the cone and the VaR estimate at each rebalance and scores them against the segment that followed. It does not require, and this circuit does not contain, a Monte Carlo primitive; that primitive is a separate, standalone analysis.
| Arm | Steps | Rebalances | In band | Coverage | Expected | VaR days | Breach rate | Expected |
|---|---|---|---|---|---|---|---|---|
| Magic Formula | 20 | 35 | 17 / 20 | 85.0% ±7.98 | 90.0% | 5011 | 6.77% ±0.355 | 5.0% |
| Quality alone | 20 | 35 | 17 / 20 | 85.0% ±7.98 | 90.0% | 5011 | 6.59% ±0.35 | 5.0% |
| Cheapness alone (companion run) | 20 | 35 | 18 / 20 | 90.0% ±6.71 | 90.0% | 5011 | 6.47% ±0.347 | 5.0% |
Note. In nine of the forty book-windows the projection band is distorted by an estimation defect described in the limitations: the band is built from the basket's own trailing two years, so after a sharp recovery the whole cone, median included, is displaced upward. The displacement runs one way, which makes the coverage figures above a floor.
± values are binomial standard errors on the estimate. A coverage figure below the expected band means the projection was over-confident; a breach rate above 5% means the same of the risk model. Both forecasts used only data prior to the segment scored.
5 Discussion
5.1 Findings
THE DECOMPOSITION
The panel under Figure 1 puts every book in this study on one ruler. Every cell is computed from the same stitched daily series that the figure draws, over the same 5,011 paired trading days, so the columns can be read against each other.
Quality alone returned 818.9 percent, or 11.73 percent a year. The combination returned 520.1 percent, or 9.55 percent. The index returned 515.1 percent, or 9.51 percent. Cheapness alone returned 389.8 percent, or 8.27 percent.
Quality alone did not buy that return with risk. Its volatility was 20.1 percent against the combination's 22.4 and the cheap book's 26.6, and its worst drawdown was 52.9 percent against 64.0 and 66.1. It ran below the index on both measures while finishing 2.2 points a year ahead of it.
Now order the three books by how much cheapness weight each carries: none, half, all of it. Return falls at every step. Volatility rises at every step. The Sharpe ratio falls at every step. The worst drawdown deepens at every step. Four measures, three points each, and the order never breaks. A single pairwise comparison cannot show that. Three books can.
HOW STRONG THE CLAIM IS
Four independent measurements of that gap point the same way. The combination led in 8 of 20 windows. Its mean window return was 1.99 points below quality alone. Its compound return was 2.18 points a year below. The paired difference series carries a Sharpe of minus 0.24, and resampling 5,011 paired trading days 2,000 times in ten-day blocks puts the probability that the combination was the better book at 13.9 percent.
That last figure is roughly 86 percent confidence in one direction, which is a lean rather than a proof, and there is a structural reason it is not sharper: the two books share 19.9 of their 30 names on average. Two portfolios that overlap by two thirds cannot differ by much on any given day, so the daily difference series is thin by construction. The finding lives in the compound record and in the consistency of its direction, not in the daily track.
IT IS NOT ONE ERA
Split the record in half at 2016 and the answer barely moves. Quality alone led by 1.9 points a window in the first ten years and by 2.1 points in the second ten, winning six of ten in each half. Figure 3 shows the second half on its own, without 2008 deciding the shape of the picture.
THE YEAR THE COMBINATION LOOKED BEST
2023 is the window where the combination beat cheapness alone by 22 points, and it is the year that makes the case for the formula if any year does. The combination returned 23.2 percent. Cheapness alone returned 1.1 percent. The index returned 13.8 percent.
Quality alone returned 23.0 percent.
The combination's best year against the cheap book was, to within two tenths of a point, the quality book's year. Nothing was added by combining. (The window table reads 23.3 and 23.1 for the same two books: those are measured on the paired trading days the two books share, while the figures here are full-window returns. The bases differ by a session at each end.)
WHAT THE BOOKS ACTUALLY HELD
That result stops being surprising once the holdings are counted. Averaged over the twenty windows, the combination shared 19.9 of its 30 names with the quality book and 9.7 with the cheap book, and it was closer to the quality book in 18 of the 20 windows.
The two halves barely met. Quality alone and cheapness alone shared 1.4 names out of 30 on average, and in five windows they shared none at all. These are not two views of one portfolio. They are two different portfolios, and the combination sits almost on top of one of them.
THE MIX IS NOT FIXED
The weights never moved off fifty-fifty in any window, but the resulting book did. In 2010 the combination shared 23 names with the quality book and 7 with the cheap one. In 2014 that reversed to 11 and 18. In 2022 it went to 25 and 5. Nobody chose those mixes.
This is the deviation named in the methodology, showing up in the holdings. Averaging standardised scores hands more of the thirty places to whichever rank happens to be more spread out that year, so a book described as equally weighted quietly reweights itself from one year to the next. An investor running it holds something whose factor mix changes with no decision being taken.
THE COMPOUNDING GAP, AND WHY IT FAVOURS THE ARGUMENT
The mean window returns in that panel are arithmetic averages and do not compound to the total returns beside them. At their mean window returns the three books would have returned about 1,103, 744 and 613 percent; they delivered 818.9, 520.1 and 389.8. The shortfall is volatility drag, and it is not evenly shared. The cheap book kept 64 percent of what its average window implied, the combination 70 percent, the quality book 74 percent. The most volatile book gives up the most, which is the same ranking again, measured a fifth way.
INCOME IS NOT THE EXPLANATION
The three books collected almost identical dividends: 1.69 percent a year for quality alone, 1.74 for the combination, 1.81 for cheapness alone. The gap between them is a price gap. Costs were 0.10 percent a year in every book and every window, which is what an annual reselection of thirty large-cap names costs at ten basis points.
5.2 Interpretation
The result is not that value investing does not work. It is narrower and more useful. On this universe, with these two measures, over these twenty years, adding a cheapness rank to a return on capital rank produced a worse portfolio than the return on capital rank by itself.
IS QUALITY ALONE JUST LARGE TECHNOLOGY?
This is the first objection the result invites, and the strongest answer is a fact rather than an estimate. In 2020, quality alone's largest win at 14.3 points, its technology holdings were a strict subset of the combination's: three names against four, at a smaller median market capitalisation and a smaller total. It won by fourteen points holding less technology than the book it beat.
The correlations point the same way but carry little weight on their own. Across the twenty windows, the correlation between the size of quality's lead and its relative median market capitalisation is minus 0.09, and against the difference in technology name counts minus 0.11. With twenty observations the standard error on a correlation is near 0.23, so these numbers rule out a strong positive relationship and nothing more.
One window does fit the objection and should be said so. In 2021 quality alone held seven technology names against the combination's four, at a median capitalisation half again as large, and won by 6.1 points. What is true in general is that quality tilts larger: its median market capitalisation exceeded the combination's in 18 of 20 windows. What is not true is that the tilt explains the lead, because the two do not move together.
WHY THE CHEAPNESS RANK COSTS
The reason is visible in the years where the books came apart. A cheapness screen run on large American companies keeps finding the same kind of name: businesses trading at a low multiple of profits that are about to stop earning those profits. In 2023 the cheap book was heavy in regional banks and returned 1.1 percent in a year the index gained 13.8. In 2009 its dividend income fell to 0.6 percent while the quality book collected 1.8, because it held the companies that had just cut. The return on capital rank has no special view about banks. It declines to buy businesses that do not earn much on the capital they employ, and that removes most of the same names.
So the two ingredients are not independent contributors that add up. The quality rank already excludes most of what the cheapness rank was supposed to protect against, and once it has, the cheapness rank has little left to do except pull the book toward companies the quality rank had reason to skip.
WHAT A COMPOSITE ACTUALLY BUYS YOU
There is a second point here about construction rather than about Greenblatt. Two signals combined at equal weight are only equally weighted in name. What decides how many of the thirty places each signal wins is how spread out its scores are that year, and that changes. A reader running a two-factor blend and expecting a stable fifty-fifty exposure is not holding what they think they are. This is measurable, we measured it, and the numbers are in the findings.
The Magic Formula is a good and famous idea and its record here is respectable: it matched an equal-weight S&P 500 over twenty years, after costs, holding thirty names. The finding is not that it failed. The finding is that one of its two ingredients carried it and the other held it back, and that this was only visible by taking the thing apart and running the halves.
No search record exists for this study: the design was not promoted from a recorded evolving search, so the number of alternatives tried before it is UNKNOWN, which is a different fact from one. No count of alternatives tried is claimed, and nothing is corrected for a search that was never recorded; the number that stands is the raw out-of-sample result plus this disclosure. The out-of-sample windows are historical.
5.3 Limitations
This is the large-cap reading of the formula. Greenblatt screens all listed companies above a small size floor, and his own book reports the effect as strongest among smaller names. The S&P 500 is the part of the market this study can hold with confidence, and the part where the formula has least room to work. A small-cap test is a different study and may give a different answer.
The two legs are proxies. EV/EBITDA inverted is not operating profit over enterprise value, and return on invested capital is not operating profit over net working capital plus fixed assets. They are close readings of the same two ideas, computed from filings available at the time, and identical in all three books.
The combination averages standardised scores where Greenblatt adds rank positions. The direction of that difference runs one way here. Averaging scores tilted our combination toward the quality rank, which was the better of the two, and a rank-sum version would have given more weight to the cheapness rank, which finished last. The version tested therefore carried more of the winning ingredient than the book's own method would have given it, and still finished behind that ingredient alone.
Two names were selected and not held. In 2023 both the combination and the quality book chose KLA Corporation, whose price history from our data vendor carries a tenfold level break in June of that year and cannot be used; the company rose sharply, so both books are understated by roughly two points in that window, equally, which leaves the comparison between them intact. In the same year the cheap book chose Signature Bank, which regulators seized in March; its post-failure record is a series of one-day moves no position could have been held through, so the window ran on the other twenty-nine names. Had it been held to zero at its selected weight, cheapness alone would be about three points worse in 2023 than reported. The quality book had the fewest such refusals of the three, two across twenty years, so its lead is not an artifact of names quietly dropped.
The projection band in the calibration section is estimated from each basket's own trailing two years of returns, which in windows following a sharp recovery displaces the whole band upward, median included; in nine of the forty book-windows the lower bound sits above zero. The displacement runs one way, so the reported coverage is a floor rather than a flattering figure, and no claim in this paper rests on it. It is being corrected at the engine level, which requires the walks to be re-run.
Costs are charged on the strategies and not on the index, the standard convention, which flatters the index slightly. One further basis note: the cheapness book rides into this paper as a computed benchmark series, and its chained totals are carried gross of the per-window entry charge the two arms' chains pay. Charged like for like it reads 380.1 percent, 8.16 a year, and no ordering in this paper moves.
Twenty windows is twenty observations. A gap of two points a year across them is a clear result in this record and not a law about the future.
References
- Gelman, A., & Loken, E. (2013). The garden of forking paths: Why multiple comparisons can be a problem, even when there is no “fishing expedition.” Working paper, Columbia University.
- Harvey, C. R., Liu, Y., & Zhu, H. (2016). … and the Cross-Section of Expected Returns. Review of Financial Studies, 29(1), 5–68. doi:10.1093/rfs/hhv059
- Lo, A. W. (2002). The Statistics of Sharpe Ratios. Financial Analysts Journal, 58(4), 36–52. doi:10.2469/faj.v58.n4.2453
- Greenblatt, J. (2006). The Little Book That Beats the Market. Wiley.
- Novy-Marx, R. (2013). The other side of value: the gross profitability premium. Journal of Financial Economics 108(1), 1-28.
- Fama, E. F. and French, K. R. (2015). A five-factor asset pricing model. Journal of Financial Economics 116(1), 1-22.
Appendix A Reproducibility in QuanterLab
Each step is backed by a frozen run report. The study is re-derivable from the ledger below.
| # | Commit | Report | Anchor | OOS window |
|---|---|---|---|---|
| 1 | ea2731077664 | 1576 | 2006-01-01 | 2006-01-03 → 2006-12-29 |
| 2 | a5213a68850a | 1577 | 2007-01-01 | 2007-01-03 → 2007-12-31 |
| 3 | d5d5b98aac92 | 1578 | 2008-01-01 | 2008-01-02 → 2008-12-31 |
| 4 | f689855d43c7 | 1579 | 2009-01-01 | 2009-01-02 → 2009-12-31 |
| 5 | c74ba657106c | 1580 | 2010-01-01 | 2010-01-04 → 2010-12-31 |
| 6 | 537d396c1536 | 1581 | 2011-01-01 | 2011-01-03 → 2011-12-30 |
| 7 | 63b807d49a7e | 1582 | 2012-01-01 | 2012-01-03 → 2012-12-31 |
| 8 | 3e6f88e1752a | 1583 | 2013-01-01 | 2013-01-02 → 2013-12-31 |
| 9 | 26d4fa8ecd69 | 1584 | 2014-01-01 | 2014-01-02 → 2014-12-31 |
| 10 | ad70288d7ef6 | 1585 | 2015-01-01 | 2015-01-02 → 2015-12-31 |
| 11 | fed888e84ba1 | 1586 | 2016-01-01 | 2016-01-04 → 2016-12-30 |
| 12 | 8d2588d7f124 | 1587 | 2017-01-01 | 2017-01-03 → 2017-12-29 |
| 13 | a9c9b0acee9e | 1588 | 2018-01-01 | 2018-01-02 → 2018-12-31 |
| 14 | 1f18199bfbfe | 1589 | 2019-01-01 | 2019-01-02 → 2019-12-31 |
| 15 | 8698037c7b45 | 1590 | 2020-01-01 | 2020-01-02 → 2020-12-31 |
| 16 | 21460c5f9142 | 1591 | 2021-01-01 | 2021-01-04 → 2021-12-31 |
| 17 | fa0203b5799d | 1592 | 2022-01-01 | 2022-01-03 → 2022-12-30 |
| 18 | 607d91f46ffa | 1593 | 2023-01-01 | 2023-01-03 → 2023-12-29 |
| 19 | 0a83442b9df6 | 1594 | 2024-01-01 | 2024-01-02 → 2024-12-31 |
| 20 | 909c23ec5eff | 1595 | 2025-01-01 | 2025-01-02 → 2025-12-31 |
Appendix A2 Registration record
What this record does and does not establish. Every window in this study is historical: the data existed before the study began, so this is sequential sealing on past windows, not pre-registration in the clinical-trial sense, and no procedure could make it so. What the platform does enforce is order, each step's specification was frozen and hashed before that step was scored, and the walk cannot advance past a step that was never run or close one with a result registered for a different window. The two timestamp columns below are the evidence: read them together and each seal precedes its own run, and each run precedes the next seal. A study whose seals all post-date its runs would show it here. Wall-clock spacing between seals varies with the author's schedule and queue latency; the ordering, not the tempo, is the claim.
“A COMPARATIVE study: Magic Formula vs Quality alone, walked on the same registered out-of-sample windows. Magic Formula: S&P 500, rebalanced annual across the selected basket, and run out-of-sample from the anchor: whatever the design estimates from history is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. Quality alone: S&P 500, rebalanced annual across the selected basket, and run out-of-sample from the anchor: whatever the design estimates from history is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. The arms differ in: Factor Composite, quality_weight: 50 → 100; Factor Composite, value_weight: 50 → 0. The contrast under test: whether Magic Formula generates better risk-adjusted returns than Quality alone over the identical out-of-sample windows.”
The same hypothesis was registered independently at every step, hashed before each step's out-of-sample window was scored:
| # | Anchor | Registered at (UTC) | Run completed (UTC) |
|---|---|---|---|
| 1 | 2006-01-01 | 2026-08-26 07:17:37 | 2026-08-26 07:24:32 |
| 2 | 2007-01-01 | 2026-08-26 07:24:38 | 2026-08-26 07:31:58 |
| 3 | 2008-01-01 | 2026-08-26 07:32:03 | 2026-08-26 07:36:44 |
| 4 | 2009-01-01 | 2026-08-26 07:36:49 | 2026-08-26 07:44:50 |
| 5 | 2010-01-01 | 2026-08-26 07:44:55 | 2026-08-26 07:52:36 |
| 6 | 2011-01-01 | 2026-08-26 07:52:41 | 2026-08-26 08:00:42 |
| 7 | 2012-01-01 | 2026-08-26 08:00:47 | 2026-08-26 08:06:09 |
| 8 | 2013-01-01 | 2026-08-26 08:06:14 | 2026-08-26 08:14:34 |
| 9 | 2014-01-01 | 2026-08-26 08:14:40 | 2026-08-26 08:23:00 |
| 10 | 2015-01-01 | 2026-08-26 08:23:06 | 2026-08-26 08:31:46 |
| 11 | 2016-01-01 | 2026-08-26 08:31:51 | 2026-08-26 08:37:52 |
| 12 | 2017-01-01 | 2026-08-26 08:37:57 | 2026-08-26 08:46:58 |
| 13 | 2018-01-01 | 2026-08-26 08:47:03 | 2026-08-26 08:56:24 |
| 14 | 2019-01-01 | 2026-08-26 08:56:29 | 2026-08-26 09:05:50 |
| 15 | 2020-01-01 | 2026-08-26 09:05:55 | 2026-08-26 09:12:16 |
| 16 | 2021-01-01 | 2026-08-26 09:12:21 | 2026-08-26 09:21:42 |
| 17 | 2022-01-01 | 2026-08-26 09:21:48 | 2026-08-26 09:31:09 |
| 18 | 2023-01-01 | 2026-08-26 09:31:14 | 2026-08-26 09:40:37 |
| 19 | 2024-01-01 | 2026-08-26 09:40:42 | 2026-08-26 09:47:03 |
| 20 | 2025-01-01 | 2026-08-26 09:47:08 | 2026-08-26 09:56:28 |
Appendix B Per-step diagnostics
What each step's run actually did beyond its return: capital allocation across lanes and regimes, the portfolio book's rebalancing and cost drag, and how positions were sized. Harvested from the frozen run reports, present where the circuit produced them.
Step 1 · 2006-01-03 → 2006-12-29
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 29 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1% · 1 name dropped at load (29 names actually held across the window), weights renormalised onto the rest
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 6.0% of 250 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2006-01-01 | -1.4093% | 22.8354% | 53.6452% | 14.3295% | yes | 1.4516% | 15 / 250 |
| 2007-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 5.2% of 250 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2006-01-01 | 0.9657% | 23.3637% | 51.2714% | 15.2806% | yes | 1.2298% | 13 / 250 |
| 2007-01-01 | no segment follows this rebalance, not scored | ||||||
Step 2 · 2007-01-03 → 2007-12-31
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 29 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1% · 1 name dropped at load (29 names actually held across the window), weights renormalised onto the rest
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 12.4% of 250 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2007-01-01 | -3.0594% | 20.727% | 50.9411% | 6.348% | yes | 1.3252% | 31 / 250 |
| 2008-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1% · 1 name dropped at load (30 names actually held across the window), weights renormalised onto the rest
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 12.0% of 250 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2007-01-01 | -0.0503% | 21.4266% | 48.0327% | 2.5217% | yes | 1.2038% | 30 / 250 |
| 2008-01-01 | no segment follows this rebalance, not scored | ||||||
Step 3 · 2008-01-02 → 2008-12-31
Magic Formula
Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 0.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 26.59% of 252 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2008-01-01 | -16.1773% | 8.9047% | 39.5013% | -39.7959% | no | 1.6412% | 67 / 252 |
Quality alone
Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 0.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 25.0% of 252 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2008-01-01 | -11.1044% | 12.7558% | 41.1913% | -35.202% | no | 1.4567% | 63 / 252 |
Step 4 · 2009-01-02 → 2009-12-31
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 6.77% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2009-01-01 | -52.0608% | -12.2533% | 62.0911% | 35.7942% | yes | 3.2864% | 17 / 251 |
| 2010-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 5.58% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2009-01-01 | -46.203% | -7.2313% | 61.3017% | 31.4087% | yes | 2.769% | 14 / 251 |
| 2010-01-01 | no segment follows this rebalance, not scored | ||||||
Step 5 · 2010-01-04 → 2010-12-31
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1% · 1 name dropped at load (30 names actually held across the window), weights renormalised onto the rest
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 0.0% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2010-01-01 | -48.0352% | 7.1001% | 123.1726% | 20.0131% | yes | 4.5566% | 0 / 251 |
| 2011-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 0.0% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2010-01-01 | -37.8485% | 10.5329% | 98.3032% | 17.9186% | yes | 3.5414% | 0 / 251 |
| 2011-01-01 | no segment follows this rebalance, not scored | ||||||
Step 6 · 2011-01-03 → 2011-12-30
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 29 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1% · 1 name dropped at load (29 names actually held across the window), weights renormalised onto the rest
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 2.39% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2011-01-01 | -30.3639% | 30.0897% | 145.3433% | -3.7136% | yes | 3.9437% | 6 / 251 |
| 2012-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 4.78% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2011-01-01 | -1.9224% | 45.8581% | 118.2275% | 0.1685% | yes | 2.4352% | 12 / 251 |
| 2012-01-01 | no segment follows this rebalance, not scored | ||||||
Step 7 · 2012-01-03 → 2012-12-31
Magic Formula
Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 1.2% of 249 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2012-01-01 | -22.7134% | 14.8132% | 67.4443% | 16.6711% | yes | 2.4712% | 3 / 249 |
Quality alone
Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 1.2% of 249 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2012-01-01 | -11.5688% | 22.8676% | 68.1181% | 14.6183% | yes | 2.0824% | 3 / 249 |
Step 8 · 2013-01-02 → 2013-12-31
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 1.2% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2013-01-01 | -21.4439% | 9.6955% | 53.9574% | 28.4731% | yes | 2.0379% | 3 / 251 |
| 2014-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 1.2% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2013-01-01 | -13.0215% | 17.0429% | 58.2109% | 33.3945% | yes | 1.778% | 3 / 251 |
| 2014-01-01 | no segment follows this rebalance, not scored | ||||||
Step 9 · 2014-01-02 → 2014-12-31
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 6.37% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2014-01-01 | 7.1815% | 37.8701% | 78.0251% | 12.3548% | yes | 1.4415% | 16 / 251 |
| 2015-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 5.58% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2014-01-01 | 6.7747% | 31.5145% | 62.5001% | 9.8873% | yes | 1.2248% | 14 / 251 |
| 2015-01-01 | no segment follows this rebalance, not scored | ||||||
Step 10 · 2015-01-02 → 2015-12-31
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 29 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1% · 1 name dropped at load (29 names actually held across the window), weights renormalised onto the rest
Projection accuracy, realized outcome fell inside the P5–P95 cone in 0.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 8.37% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2015-01-01 | 0.0183% | 23.9733% | 54.1676% | -8.0212% | no | 1.3674% | 21 / 251 |
| 2016-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 7.97% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2015-01-01 | 2.1768% | 25.0741% | 53.5735% | 3.4807% | yes | 1.3163% | 20 / 251 |
| 2016-01-01 | no segment follows this rebalance, not scored | ||||||
Step 11 · 2016-01-04 → 2016-12-30
Magic Formula
Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 5.58% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2016-01-01 | -11.276% | 11.7145% | 41.1555% | 7.7107% | yes | 1.5335% | 14 / 251 |
Quality alone
Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 3.98% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2016-01-01 | -8.0738% | 14.8455% | 43.9649% | 7.9226% | yes | 1.5087% | 10 / 251 |
Step 12 · 2017-01-03 → 2017-12-29
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 0.4% of 250 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2017-01-01 | -15.456% | 8.7575% | 40.5372% | 17.599% | yes | 1.6076% | 1 / 250 |
| 2018-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 1.2% of 250 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2017-01-01 | -11.9428% | 11.8424% | 42.6609% | 22.2937% | yes | 1.4964% | 3 / 250 |
| 2018-01-01 | no segment follows this rebalance, not scored | ||||||
Step 13 · 2018-01-02 → 2018-12-31
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 10.8% of 250 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2018-01-01 | -6.6404% | 15.7554% | 44.0765% | -5.7299% | yes | 1.4118% | 27 / 250 |
| 2019-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 0.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 12.4% of 250 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2018-01-01 | -1.5833% | 19.4168% | 45.3999% | -1.6938% | no | 1.1911% | 31 / 250 |
| 2019-01-01 | no segment follows this rebalance, not scored | ||||||
Step 14 · 2019-01-02 → 2019-12-31
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 3.98% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2019-01-01 | -13.9084% | 8.7174% | 37.7769% | 30.4273% | yes | 1.5883% | 10 / 251 |
| 2020-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 3.98% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2019-01-01 | -6.4545% | 18.2326% | 49.9673% | 34.5693% | yes | 1.5534% | 10 / 251 |
| 2020-01-01 | no segment follows this rebalance, not scored | ||||||
Step 15 · 2020-01-02 → 2020-12-31
Magic Formula
Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 17.86% of 252 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2020-01-01 | -16.4879% | 6.647% | 34.4002% | 6.7783% | yes | 1.5011% | 45 / 252 |
Quality alone
Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 15.08% of 252 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2020-01-01 | -8.055% | 17.2658% | 47.6032% | 19.3661% | yes | 1.4856% | 38 / 252 |
Step 16 · 2021-01-04 → 2021-12-31
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 0.4% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2021-01-01 | -40.8769% | 5.3475% | 89.3659% | 24.4069% | yes | 3.0181% | 1 / 251 |
| 2022-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 0.8% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2021-01-01 | -20.7143% | 24.2021% | 95.8953% | 31.3421% | yes | 2.5679% | 2 / 251 |
| 2022-01-01 | no segment follows this rebalance, not scored | ||||||
Step 17 · 2022-01-03 → 2022-12-30
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 0.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 15.2% of 250 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2022-01-01 | 19.44% | 72.5144% | 150.8166% | -18.1977% | no | 1.763% | 38 / 250 |
| 2023-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 0.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 16.0% of 250 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2022-01-01 | 21.5797% | 78.4911% | 163.8483% | -20.3275% | no | 1.899% | 40 / 250 |
| 2023-01-01 | no segment follows this rebalance, not scored | ||||||
Step 18 · 2023-01-03 → 2023-12-29
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 29 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1% · 1 name dropped at load (29 names actually held across the window), weights renormalised onto the rest
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 2.41% of 249 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2023-01-01 | -7.9995% | 30.2892% | 81.5457% | 21.5101% | yes | 1.8939% | 6 / 249 |
| 2024-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 29 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1% · 1 name dropped at load (29 names actually held across the window), weights renormalised onto the rest
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 0.8% of 249 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2023-01-01 | -13.2337% | 21.9195% | 68.6214% | 21.408% | yes | 2.0194% | 2 / 249 |
| 2024-01-01 | no segment follows this rebalance, not scored | ||||||
Step 19 · 2024-01-02 → 2024-12-31
Magic Formula
Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 1.2% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2024-01-01 | -24.0637% | 4.8403% | 45.4569% | 16.3933% | yes | 1.9263% | 3 / 251 |
Quality alone
Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 0.8% of 251 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2024-01-01 | -23.1708% | 9.0516% | 55.6139% | 22.5757% | yes | 2.0561% | 2 / 251 |
Step 20 · 2025-01-02 → 2025-12-31
Magic Formula
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 6.02% of 249 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2025-01-01 | 3.7774% | 31.1186% | 63.8679% | 15.6987% | yes | 1.3942% | 15 / 249 |
| 2026-01-01 | no segment follows this rebalance, not scored | ||||||
Quality alone
Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · turnover 1.0× · cost drag 0.1%
Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 1 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 8.03% of 249 days (expected ~5.0%)
| Rebalance | P5 | Median | P95 | Realized | In band | VaR 95 (1d) | Breaches |
|---|---|---|---|---|---|---|---|
| 2025-01-01 | 3.4576% | 30.1793% | 62.0589% | 6.5923% | yes | 1.3105% | 20 / 249 |
| 2026-01-01 | no segment follows this rebalance, not scored | ||||||