QuanterLab produced this study: it wasn’t written up afterwards. Registered hypothesis and search record in Appendix A2.
As seen on Quantocracy
All research
QuanterLab · Research

One Half of the Magic Formula Beat the Whole Thing: Greenblatt's Two Ranks, Tested Apart

Universe · S&P 500 (point-in-time constituents)
Method · Comparative: Magic Formula vs Quality alone
Manipulated variable ·
The composite weighting, and nothing else. Both arms load the same point-in-time S&P 500, compute the same two factor legs from SEC acceptedDate-gated filings - an acquirer-style earnings yield (EV/EBITDA, inverted) and a return on capital (ROIC) - take the thirty HIGHEST composite-ranked names, equ… (full sealed statement)The composite weighting, and nothing else. Both arms load the same point-in-time S&P 500, compute the same two factor legs from SEC acceptedDate-gated filings - an acquirer-style earnings yield (EV/EBITDA, inverted) and a return on capital (ROIC) - take the thirty HIGHEST composite-ranked names, equal weighted, long only, re-selected annually, which is the holding period Greenblatt prescribes, against the same RSP benchmark. Arm A weights the two legs equally, which is the Magic Formula. Arm B sets the value weight to zero: quality alone, good companies bought without asking the price. This is the companion to a walk that asked the same question of the other ingredient, where the quality rank was switched off instead. Greenblatt argues that the pairing beats either half, and a single contrast can only test one half at a time, so the two walks together bracket the claim. The objection this one closes: if the return on capital alone delivers what the blend delivers, the cheapness leg is dead weight and the formula is quality investing under another name. Both arms are measured in total returns, with dividends credited at the ex-date and held as cash to the next rebalance, ten basis points of transaction cost charged on every one-way traded dollar, and the RSP benchmark rebuilt as a total-return index. That layer is byte-identical on both sides and is not part of the contrast: it is the ruler, not the question. Stated proxies: EBITDA/EV stands in for his EBIT/EV; ROIC, meaning NOPAT over invested capital, stands in for his EBIT over net working capital plus net fixed assets; and the point-in-time S&P 500 stands in for his all-cap screen above fifty million dollars, so this is the large-cap reading of the formula, not the small-cap one his book is built on.
Step size · 1 year per forward window
In-sample · 2 years before each anchor
Out-of-sample span · 2006-01-03 → 2025-12-31
Compiled · August 26, 2026
Search record · none (size unknown, see §2.3)
Abstract

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

Magic Formula, pooled Sharpe
0.53
5012 OOS bars
Quality alone, pooled Sharpe
0.66
5012 OOS bars
P(Magic Formula beats Quality alone)
13.9%
5011 paired bars · CAGR gap (Magic Formula − Quality alone) -2.2 pp
Cheapness alone · study benchmark, Sharpe
0.43
8.3%/yr · worst drawdown -66.1% · computed
Out-of-sample equity: normalised growth (1.00x = break even)-0.21x4.93x10.06x2006200920122015201820212024
Figure 1. Both arms stitched through the identical windows,  Magic Formula (+520.1%),  Quality alone (+818.9%), platform reference grey (+515.1%, total return, its own dividends reinvested, pooled Sharpe 0.545),  Cheapness alone (+389.8%). The benchmark of this study is the Cheapness alone line, the unit its own literature measures itself in. The platform reference in grey is the same yardstick in every study, whichever fund the study names. Dotted verticals mark the step boundaries; the dashed horizontal is break-even. These figures compound each arm's own stitched daily series; the pooled statistics in the text inner-join both arms' trading days, one session apart, both are printed from the frozen record.
Table 1. Every book in this study on one ruler
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.

The same walk, measured five ways0.00x3.46x6.91x
Figure 2. The measurement ladder: Magic Formula's whole walk, chained five ways.  price only (+359.1%),  with dividends (+531.7%),  net of costs (+520.1%), against the benchmark measured both ways:  price only (+325.6%),  total return (+515.1%). The distance between the two green pairs is the dividends collected; the sliver between the last two greens is the cost bill; the distance between the two greys is what a price-only chart hides about the index. Every other figure on this page uses the deepest rung on each side, net of costs against the total-return benchmark.
Out-of-sample equity: normalised growth (1.00x = break even)0.60x2.32x4.04x20162018202020222024
Figure 3. The same walk, re-based to 1.00x at the first window starting in 2016, 10 of the 20 windows above.  Magic Formula (+216.2%),  Quality alone (+273.5%), benchmark grey (+199.2%, total return),  Cheapness alone (+142.1%). This is a subset of Figure 1, not a correction to it. The era boundary here is pinned by the author at 2016 rather than left at the platform default, and the era rows below put a number on the two periods it separates. Whether the record actually breaks there is a question those rows answer, not one this caption settles.

2.2  Per-step results

Table 2. One row per step, raw out-of-sample 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
Out-of-sample equity: normalised growth (1.00x = break even)0.39x0.89x1.39xbars into the window →
Figure 4. Magic Formula: every step's out-of-sample curve overlaid, each rebased to 1× at its own start. Read alongside Table 1: consistent shape across steps is the walk-forward's evidence; a single lucky leg is not.
Out-of-sample equity: normalised growth (1.00x = break even)0.48x0.95x1.42xbars into the window →
Figure 5. Quality alone: the same windows, the other arm. Compare shape-for-shape with the previous figure: the two arms trade the identical out-of-sample legs.
Out-of-sample equity: normalised growth (1.00x = break even)0.34x0.94x1.54xbars into the window →
Figure 6. Cheapness alone: the same windows once more, from a companion run. Same reading as the figures above.

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.

Table 3. Window-by-window paired comparison. Δ is the growth gap (Magic Formula − Quality alone) over the window's paired dates. The Cheapness alone column carries companion books' growth over the full window; the Δ and Leader columns compare only this study's two registered arms.
#WindowPaired bars Magic FormulaQuality 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.

Table 4. The same comparison split at 2016. Pooling the whole walk into one row hides which side of the split the difference came from.
PeriodWindows Magic FormulaQuality alone Cheapness alone Mean gapMagic 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
All windowsn=20 · Magic Formula led 8+11.2%+13.2%-1.99 ppBefore 2016n=10 · Magic Formula led 4+9.2%+11.1%-1.91 pp2016 onwardn=10 · Magic Formula led 4+13.3%+15.4%-2.07 ppgap
Figure A1, mean window return per period. Magic Formula above, Quality alone below, with the gap at right. The pooled bar and the post-2016 bar are the same comparison over different periods.

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).

The hypothesis under test

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 frozen circuit, data flows left to rightuniverse: click for detailsuniverseprice loader: click for detailsprice loaderfactor loader: click for detailsfactor loaderfactor value: click for detailsfactor valuefactor quality: click for detailsfactor qualityfactor composite: click for detailsfactor compositefactor top tier: click for detailsfactor top tierportfolio backtest: click for detailsportfolio backtestportfolio forward autopsy: click for detailsportfolio forward autopsytransaction cost: click for detailstransaction costuniverse: click for detailsuniverseprice loader: click for detailsprice loaderfactor loader: click for detailsfactor loaderfactor value: click for detailsfactor valuefactor quality: click for detailsfactor qualityfactor composite: click for detailsfactor compositefactor top tier: click for detailsfactor top tierportfolio backtest: click for detailsportfolio backtestportfolio forward autopsy: click for detailsportfolio forward autopsytransaction cost: click for detailstransaction costMagic FormulaQuality aloneshared
Figure 7. The frozen circuit, every node a primitive, every wire a typed data-flow; the two arms are colour-coded (Magic Formula green, Quality alone blue, shared feeds neutral). Each box is one step of the strategy; data flows along the wires left to right, and no box can see data dated later than the box feeding it. The whole diagram was frozen when the hypothesis was registered. Click any node to open what that step ran with and what it produced.

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.

What each part does
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.
Price Loader, Bulk OHLCV fetch for the whole universe, point-in-time, no future bars.
Factor Loader, Point-in-time fundamentals, never let the user see a number before the SEC did.
Factor Value, Value, how cheap is the stock, cross-sectionally?
Factor Quality, Quality, is this a strong, profitable, well-financed business?
Factor Composite, The weighting console, blend Value, Quality, Momentum, Growth into one 0–100 score.
Factor Top Tier, The cut out of the factor lane, keep the top-ranked names.
Transaction Cost, Charge for trading, slippage + commission on every turn.
Portfolio Backtest, Replay the portfolio forward, rebalanced, point-in-time, with costs.
Portfolio Forward Autopsy, The post-mortem, where the forward test’s return actually came from.

The objective and the search

Magic Formula

UniverseS&P 500 index constituents.
Validation & out-of-sampleportfolio forward test (buy-and-hold book) (1y horizon from the anchor, annual rebalance); overlays: Transaction Cost.
Other componentsFactor models: Factor Composite, Factor Select, Fundamentals Loader (PIT), Quality Factor, Value Factor.

Quality alone

UniverseS&P 500 index constituents.
Validation & out-of-sampleportfolio forward test (buy-and-hold book) (1y horizon from the anchor, annual rebalance); overlays: Transaction Cost.
Other componentsFactor 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.

Point-in-time membership

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\}
Constituents resolved from the index change-log; the same point-in-time set the factor + screening modules use.

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.

The window is derived, not guessed

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 } t

3.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.

The PIT gate
\text{visible}(f, t) \iff \text{acceptedDate}(f) \le t
Missing acceptance dates fall back to filingDate, else statement date + 45 days.
Byte-identical to FM101FBKT (shared_libs/factor_core). US indexes only (SEC reliability).

3.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.

Cross-sectional z-score per metric
z_{i,k} = \pm\,\frac{x_{i,k} - \bar x_k}{s_k}
Sign encodes direction (cheap = good). Winsorized at 1% / 99%.
Importance-weighted family score
\text{Value}_i = \frac{\sum_k \omega_k\,z_{i,k}}{\sum_k \omega_k}, \quad \omega \in \{0,\,0.5,\,1,\,2\}
Off / Low / Medium / High = 0 / 0.5 / 1 / 2. Binding rank happens in Factor Composite.
Byte-identical to FM101FBKT (shared_libs/factor_core).

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.

Family score
\text{Quality}_i = \frac{\sum_k \omega_k\,z_{i,k}}{\sum_k \omega_k}
Debt metrics enter inverted (less leverage = higher quality).
Byte-identical to FM101FBKT (shared_libs/factor_core).

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.

Cross-sectional standardize + winsorize
z_{i,f} = \frac{x_{i,f} - \bar x_f}{s_f}\quad(\text{clipped at the 1st / 99th percentile})
Weighted blend, scaled to 0–100
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}
W = your four slider weights (total 100) OR the Regime Tilt radar's suggestion. Needs ≥ 10 names, ≥ 3 valid metrics each.
Byte-identical to FM101FBKT ranking (shared_libs/factor_core.rank_stocks_at_date).

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.

Rank cut
\{\, i : \operatorname{rank}(C_i) \le N\,\}, \quad C_i = \text{composite score}
Byte-identical to FM101FBKT ranking (shared_libs/factor_core).

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.

Compounded equity
E_t = E_{t-1}\big(1 + \mathbf w_{t}^{\top}\mathbf r_t - \text{costs}_t\big)
Drawdown
\text{DD}_t = \frac{E_t}{\max_{\tau\le t}E_\tau} - 1, \qquad \text{MaxDD} = \min_t \text{DD}_t
Financing a levered book
\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}
A levered long/short book (the β-neutral Long/Short Select) borrows its excess notional. WHO you are decides the loan: a prime broker nets short-sale proceeds against the margin loan, a fully-netted BAB book carries almost none, while a retail margin account cannot net, so the same book borrows the long leg’s excess over equity. Profiles: institutional = 50 bps spread + 25 bps GC short borrow; retail = 350 bps + 150 bps (the BEST retail tier, so any verdict is conservative); custom = your own knobs, spread on negative cash. Charged daily, reported as financing_drag_pct, never silent.

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.

Reading it

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.

Cost per rebalance
\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^-}\rvert

4  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 A17 of 20 inside the 90% band-69%+56%+181%in band20062007200820092010201120122013201420152016201720182019202020212022202320242025Arm B17 of 20 inside the 90% band-69%+56%+181%in band20062007200820092010201120122013201420152016201720182019202020212022202320242025
Figure A2, projected range versus what occurred, at each of 40 scored rebalance segments, pooled across both arms. The final rebalance of each step has no following segment to score, the ledger marks those rows “no segment follows this rebalance”, which is why this count sits below the raw rebalance totals in the table beneath. Each vertical bar is that rebalance's P5–P95 Monte Carlo cone with the median ticked; the dot is the realized return of the segment that followed. Filled green = the outcome landed inside its own cone; red = it did not. The strip beneath repeats that as one mark per rebalance, so a run of misses in one period is visible as a run. Every cone was fitted only on data prior to the segment it is scored against.
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

QuanterLab reference architecture
  1. 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.
  2. 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
  3. Lo, A. W. (2002). The Statistics of Sharpe Ratios. Financial Analysts Journal, 58(4), 36–52. doi:10.2469/faj.v58.n4.2453
Author’s references?
  1. Greenblatt, J. (2006). The Little Book That Beats the Market. Wiley.
  2. Novy-Marx, R. (2013). The other side of value: the gross profitability premium. Journal of Financial Economics 108(1), 1-28.
  3. 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.

#CommitReportAnchorOOS 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:

Table 5. Registration audit, one row per registered step, with the time each specification was frozen and the time its window was scored. The hypothesis is identical on every row by design: it was registered once and re-registered unchanged at each anchor. Rows that differ would mean the specification moved mid-walk, which is the thing this record exists to rule out. The timestamps are the separate claim: each seal precedes its own run, and each run precedes the next seal.
#AnchorRegistered at (UTC)Run completed (UTC)
1 2006-01-012026-08-26 07:17:37 2026-08-26 07:24:32
2 2007-01-012026-08-26 07:24:38 2026-08-26 07:31:58
3 2008-01-012026-08-26 07:32:03 2026-08-26 07:36:44
4 2009-01-012026-08-26 07:36:49 2026-08-26 07:44:50
5 2010-01-012026-08-26 07:44:55 2026-08-26 07:52:36
6 2011-01-012026-08-26 07:52:41 2026-08-26 08:00:42
7 2012-01-012026-08-26 08:00:47 2026-08-26 08:06:09
8 2013-01-012026-08-26 08:06:14 2026-08-26 08:14:34
9 2014-01-012026-08-26 08:14:40 2026-08-26 08:23:00
10 2015-01-012026-08-26 08:23:06 2026-08-26 08:31:46
11 2016-01-012026-08-26 08:31:51 2026-08-26 08:37:52
12 2017-01-012026-08-26 08:37:57 2026-08-26 08:46:58
13 2018-01-012026-08-26 08:47:03 2026-08-26 08:56:24
14 2019-01-012026-08-26 08:56:29 2026-08-26 09:05:50
15 2020-01-012026-08-26 09:05:55 2026-08-26 09:12:16
16 2021-01-012026-08-26 09:12:21 2026-08-26 09:21:42
17 2022-01-012026-08-26 09:21:48 2026-08-26 09:31:09
18 2023-01-012026-08-26 09:31:14 2026-08-26 09:40:37
19 2024-01-012026-08-26 09:40:42 2026-08-26 09:47:03
20 2025-01-012026-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
QuanterLab · Study 19a0f6cb02b5 · compiled August 26, 2026. Point-in-time constituents and hypothesis-registration timestamps are enforced by the platform. This report is generated from the frozen study artifact and is reproducible from the ledger above. Educational research, not investment advice: every result on this page is simulated, and nothing here is a recommendation to buy or sell any security.

Run a study like this one

Everything above was produced inside QuanterLab, the registration, the walk, the statistics and the paper itself. Build the circuit on a canvas, register the hypothesis before you score it, and the platform enforces the rest.

The lab is in private beta and opens in September 2026. Reading the research needs no account, follow it and we'll tell you when the next study publishes.

As seen on Quantocracy

A note on AI. QuanterLab is a quantitative finance research platform, and every number in this study comes from a run on the platform. The hypothesis, the parameter choices, the validation design and the conclusions belong to the author. Runs execute on point-in-time data with walk-forward validation, and each study ships with its methodology and logs, so a reader can reconstruct the result instead of trusting it. I use AI to edit and structure the prose; it does not generate results, produce numbers, or decide what a study concludes.