QuanterLab produced this study: it wasn’t written up afterwards. Registered hypothesis and search record in Appendix A2.

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.

As seen on Quantocracy
All research
QuanterLab · Research

The choice that washes out - book-to-market against the earnings yield it displaced, twenty sealed windows of the S&P 500

Universe · S&P 500 (point-in-time constituents)
Method · Comparative: Book-to-market vs Earnings yield
Manipulated variable · The value metric, and nothing else. Both arms load the same point-in-time S&P 500, compute value scores from the same SEC acceptedDate-gated filings, and rank on a single value measure each. Arm A ranks on book-to-market - price against book equity, the variable Fama and French built HML on in 1992-93 and the spine of academic value since. Arm B ranks on earnings yield - E/P, Basu's 1977 measure, which Fama-French 1992 claimed book-to-market "seems to absorb the roles of leverage and E/P". Thirty best-ranked names each, equal weighted, long only, re-selected annually, against the same RSP benc
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 14, 2026
Search record · none (size unknown, see §2.3)
Abstract

In 1992 Fama and French rebuilt asset pricing around book-to-market and wrote that it "seems to absorb the roles of leverage and E/P" - the earnings yield Basu had documented fifteen years earlier was declared redundant, and HML, the value factor built on book-to-market, became the spine of academic value. This study puts the absorption claim on trial where most invested money actually sits: the point-in-time S&P 500, twenty sealed one-year windows, 2006 through 2025. Two circuits rank the same universe on one value measure each - book-to-market against earnings yield, thirty names, equal weight, re-selected annually - and differ in nothing else. The verdict is a tie neither camp should celebrate: pooled Sharpe 0.46 against 0.44, compound growth 8.5 against 8.0 percent a year, and a block bootstrap of the paired daily differences that finishes with the book-to-market book ahead in 57.1 percent of 2,000 resampled twenty-year paths - a coin flip. The tie is not because the two measures pick the same stocks. They agree on a median of five names in thirty, the agreement has collapsed across the sample - twelve shared names in the first window, three or fewer from 2017 on, at most one across the last four - and in single years the two books diverge by ten to twenty points. Two decades, two portfolios that ended up sharing nothing, the same destination: among large caps, the argument over which ratio defines cheap moved the outcome by less than half a point a year.

1  Methodology

Two sealed circuits, identical except the single active metric on the Value Factor node: Arm A ranks on book-to-market (price to book, lower is cheaper), Arm B on earnings yield (E/P, higher is cheaper). Point-in-time S&P 500 membership; fundamentals gated by SEC acceptance date; z-scored, winsorized single-metric scores; the thirty highest-ranked names; equal weight; long only; annual re-selection; the equal-weight S&P 500 (RSP) as benchmark; twenty one-year out-of-sample windows anchored each January from 2006. Every window was registered before it ran and its run report frozen at execution. This is the second registration of the question: the first (project c995aac21202, identical design) was abandoned at step two because its circuit carried a zero-weighted quality node - a hygiene defect caught at inspection, not a results decision; its first-window selections were identical to this study's, and it is counted in the trial record.

Transaction costs are not modelled in this study; all results are gross of costs.

2  Results

2.1  Headline

Book-to-market, pooled Sharpe
0.46
5012 OOS bars
Earnings yield, pooled Sharpe
0.44
5012 OOS bars
P(Book-to-market beats Earnings yield)
57.1%
5011 paired bars · CAGR gap (Book-to-market − Earnings yield) +0.4 pp
Out-of-sample equity: normalised growth (1.00x = break even)-0.09x2.71x5.50x2006200920122015201820212024
Figure 1. Both arms stitched through the identical windows,  Book-to-market (+398.1%),  Earnings yield (+359.5%), benchmark grey (+325.6%). 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.
Out-of-sample equity: normalised growth (1.00x = break even)0.53x2.06x3.59x20162018202020222024
Figure 2. The same walk, re-based to 1.00x at the first window starting in 2016, 10 of the 20 windows above.  Book-to-market (+228.9%),  Earnings yield (+179.7%), benchmark grey (+152.4%). This is a subset of Figure 1, not a correction to it. The era boundary here is pinned by the author at 2016, a break this study's own record shows, not a chart-scaling choice, and the era rows below put a number on the two periods it separates. The full record is what the study claims.

2.2  Per-step results

Table 1. One row per step, raw out-of-sample results.
#Out-of-sample window Book-to-market SR Earnings yield SR
1 2006-01-03 → 2006-12-29 1.43 0.73
2 2007-01-03 → 2007-12-31 -0.49 0.48
3 2008-01-02 → 2008-12-31 -1.06 -0.95
4 2009-01-02 → 2009-12-31 1.17 0.94
5 2010-01-04 → 2010-12-31 1.01 0.75
6 2011-01-03 → 2011-12-30 -0.36 -0.20
7 2012-01-03 → 2012-12-31 0.93 1.12
8 2013-01-02 → 2013-12-31 2.80 2.75
9 2014-01-02 → 2014-12-31 0.63 0.92
10 2015-01-02 → 2015-12-31 -0.28 -0.74
11 2016-01-04 → 2016-12-30 0.80 0.93
12 2017-01-03 → 2017-12-29 2.06 1.73
13 2018-01-02 → 2018-12-31 -0.38 -0.76
14 2019-01-02 → 2019-12-31 1.63 1.16
15 2020-01-02 → 2020-12-31 0.45 -0.03
16 2021-01-04 → 2021-12-31 2.10 1.71
17 2022-01-03 → 2022-12-30 -0.37 -0.62
18 2023-01-03 → 2023-12-29 0.98 0.99
19 2024-01-02 → 2024-12-31 1.14 1.24
20 2025-01-02 → 2025-12-31 1.12 1.21
Out-of-sample equity: normalised growth (1.00x = break even)0.29x0.97x1.66xbars into the window →
Figure 3. Book-to-market: 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.40x0.98x1.56xbars into the window →
Figure 4. Earnings yield: the same windows, the other arm. Compare shape-for-shape with the previous figure: the two arms trade the identical out-of-sample legs.

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 rBook-to-market − rEarnings yield 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 is the one statistic here that a missing search record does not weaken: it was declared in advance, and it is scored on the difference rather than on either arm's level.

Table 2. Window-by-window paired comparison. Δ is the growth gap (Book-to-market − Earnings yield) over the window's paired dates.
#WindowPaired bars Book-to-marketEarnings yield ΔLeader
1 2006-01-04 → 2006-12-29 250 +15.9% +8.4% +7.5 pp Book-to-market
2 2007-01-04 → 2007-12-31 250 -9.8% +7.5% -17.4 pp Earnings yield
3 2008-01-03 → 2008-12-31 252 -49.8% -39.3% -10.5 pp Earnings yield
4 2009-01-05 → 2009-12-31 251 +52.7% +30.0% +22.8 pp Book-to-market
5 2010-01-05 → 2010-12-31 251 +26.0% +14.6% +11.3 pp Book-to-market
6 2011-01-04 → 2011-12-30 251 -14.2% -9.0% -5.3 pp Earnings yield
7 2012-01-04 → 2012-12-31 249 +16.6% +19.7% -3.1 pp Earnings yield
8 2013-01-03 → 2013-12-31 251 +48.1% +48.2% -0.1 pp Earnings yield
9 2014-01-03 → 2014-12-31 251 +7.7% +12.0% -4.3 pp Earnings yield
10 2015-01-05 → 2015-12-31 251 -6.0% -13.8% +7.9 pp Book-to-market
11 2016-01-05 → 2016-12-30 251 +16.2% +18.3% -2.1 pp Earnings yield
12 2017-01-04 → 2017-12-29 250 +20.0% +20.3% -0.3 pp Earnings yield
13 2018-01-03 → 2018-12-31 250 -6.8% -11.8% +5.0 pp Book-to-market
14 2019-01-03 → 2019-12-31 251 +21.0% +19.1% +1.9 pp Book-to-market
15 2020-01-03 → 2020-12-31 252 +10.2% -11.6% +21.7 pp Book-to-market
16 2021-01-05 → 2021-12-31 251 +42.6% +39.2% +3.4 pp Book-to-market
17 2022-01-04 → 2022-12-30 250 -10.7% -16.9% +6.1 pp Book-to-market
18 2023-01-04 → 2023-12-29 249 +12.9% +17.4% -4.5 pp Earnings yield
19 2024-01-03 → 2024-12-31 251 +12.4% +21.4% -9.0 pp Earnings yield
20 2025-01-03 → 2025-12-31 249 +17.4% +28.1% -10.7 pp Earnings yield

Paired Sharpe of the difference track: 0.05 · block bootstrap (2000 paths, block 10, seed 1234): P(Book-to-market beats Earnings yield) = 57.1%.

Window win-rate. Book-to-market led 9 of 20 windows (45.0%), Earnings yield led 11, yet the mean window gap runs the other way: +1.03 pp toward Book-to-market. Earnings yield wins more often and smaller; Book-to-market wins less often and larger. The count and the mean answer different questions, and neither settles the comparison by itself. Widest single window: 2009 at +22.8 pp.

Table 3. The same comparison split at 2016. Pooling the whole walk into one row hides which side of the split the difference came from.
PeriodWindows Book-to-marketEarnings yield Mean gapBook-to-market led
All windows 20 +11.12% +10.09% +1.03 pp 9/20
Before 2016 10 +8.72% +7.83% +0.89 pp 4/10
2016 onward 10 +13.52% +12.35% +1.17 pp 5/10
All windowsn=20 · Book-to-market led 9+11.1%+10.1%+1.03 ppBefore 2016n=10 · Book-to-market led 4+8.7%+7.8%+0.89 pp2016 onwardn=10 · Book-to-market led 5+13.5%+12.3%+1.17 ppgap
Figure A1, mean window return per period. Book-to-market above, Earnings yield 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, Book-to-market vs Earnings yield, walked on the same registered out-of-sample windows. Book-to-market: 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. Earnings yield: 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: Value Factor, earnings_yield: off → high; Value Factor, pb_ratio: high → off. The contrast under test: whether Book-to-market generates better risk-adjusted returns than Earnings yield 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 composite: click for detailsfactor compositefactor top tier: click for detailsfactor top tierportfolio backtest: click for detailsportfolio backtestportfolio forward autopsy: click for detailsportfolio forward autopsyuniverse: click for detailsuniverseprice loader: click for detailsprice loaderfactor loader: click for detailsfactor loaderfactor value: click for detailsfactor valuefactor composite: click for detailsfactor compositefactor top tier: click for detailsfactor top tierportfolio backtest: click for detailsportfolio backtestportfolio forward autopsy: click for detailsportfolio forward autopsyBook-to-marketEarnings yieldshared
Figure 5. The frozen circuit, every node a primitive, every wire a typed data-flow; the two arms are colour-coded (Book-to-market green, Earnings yield 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 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.
Portfolio Backtest, Replay the portfolio forward, rebalanced, point-in-time. No transaction-cost overlay is wired in this circuit, so these results are gross of costs.
Portfolio Forward Autopsy, The post-mortem, where the forward test’s return actually came from.

The objective and the search

Book-to-market

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

Earnings yield

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

What differs between the arms, one manipulated variable, expressed as 2 paired settings on one node:

  • paramValue Factor, earnings_yield: off → high
  • paramValue Factor, pb_ratio: high → off

Everything else is held identical, so an out-of-sample gap between the arms is attributable to this one change.

No transaction-cost elements are wired into this circuit; results are gross of costs.

Show the mathematics, 8 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 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.6  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.7  Portfolio Backtest

Replay the portfolio forward, rebalanced, point-in-time.

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

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 A15 of 20 inside the 90% band-87%+47%+181%in band20062007200820092010201120122013201420152016201720182019202020212022202320242025Arm B18 of 20 inside the 90% band-87%+47%+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
Book-to-market 20 35 15 / 20 75.0% ±9.68 90.0% 5011 6.45% ±0.347 5.0%
Earnings yield 20 35 18 / 20 90.0% ±6.71 90.0% 5011 5.81% ±0.33 5.0%

± 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

Pooled over 5,012 out-of-sample days, the book-to-market book earned a Sharpe of 0.456 against 0.444 for earnings yield, compounding at 8.5 against 8.0 percent a year - a 0.4-point annual gap; a block bootstrap of the paired daily differences (2,000 resampled paths, ten-day blocks) finishes with book-to-market ahead in 57.1 percent of paths - a coin flip. Earnings yield won eleven of the twenty windows, book-to-market nine. Neither separates far from the index either: compounded across the same twenty windows the equal-weight benchmark returned 7.5 percent a year, with book-to-market ahead of it in fourteen windows and earnings yield in ten - margins earned before dividends and before any costs.

The average hides the violence of the disagreement. The two books share a median of five of the thirty names selected, and the agreement has collapsed across the sample: twelve shared names in the 2006 window, six to ten through the early 2010s, three by 2017, and from the 2018 window on never more than two. In the 2022 window the two books shared nothing at all; in each of the last three windows they shared exactly one name - Hewlett-Packard. Year by year, these near-disjoint portfolios swing hard against each other. In the 2007 window earnings yield finished 17.4 points ahead. Book-to-market answered with 22.8 points in 2009 and 11.3 in 2010. In the 2020 window the earnings-yield book - loaded with the cyclical earners a low P/E selects going into a shutdown - lost 11.6 percent while the book-to-market book made 10.2 and the benchmark 9.9: a 21.7-point gap between two portfolios both sold under the same word, value. Then the roles reversed again, earnings yield finishing 9.0 points ahead in the 2024 window and 10.7 ahead in 2025.

In 2008 both books did what value books do in a credit crisis: book-to-market lost 49.8 percent, earnings yield 39.3, the benchmark 40.2.

5.2  Interpretation

Fama-French 1992 made a claim about redundancy: once book-to-market is on the table, the earnings yield adds nothing worth keeping. Loughran 1997 answered with a claim about scope: among large caps, book-to-market itself has little to say. Twenty sealed years of the S&P 500 side with a blunter reading than either. The two measures are not redundant - portfolios this disjoint, swinging twenty points against each other in single years, are not measuring the same thing. And neither is dominant - the twenty-year outcomes land within half a point of each other. What 1992 read as absorption looks, in large caps, like two different roads to the same modest place. Each ratio loads on a different flavour of cheap - accounting equity against current earnings power. Each flavour has its own regimes: the earnings-yield book bleeding into the 2020 shutdown, the book-to-market book sitting behind the index through the 2014, 2015 and 2019 windows. Across enough regimes, the flavours cancel. The practical sentence for the ratio argument is this: among the five hundred most-watched stocks in the world, the choice of value definition moved the twenty-year outcome by less than half a point a year, while the choice of year routinely moved the one-year outcome by twenty.

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

Price returns only: no dividends on either side of any comparison. Both value measures tilt toward payers, so absolute levels understate total-return reality; the arm-versus-arm tie is unaffected - both books are measured identically - but the thin margins over the index should not be read as investable. No trading costs, slippage or taxes are modelled. The engine held twenty-seven to thirty of the thirty selected names per window - a name with no usable entry bar is skipped at buy and the remaining weights renormalize, with the counts disclosed per window rather than hidden. The universe is the point-in-time S&P 500: the large-cap test is the point of the study, and nothing here speaks to small caps, where both Fama-French's and Loughran's evidence locate the stronger effects. Formation is each January against acceptance-dated filings, not the end-of-June convention of the original papers. The size leg of the 1992 claim is deliberately absent - this isolates the value comparison and does not reproduce the joint size-and-value sort.

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. Fama, E. F. and French, K. R. (1992). The Cross-Section of Expected Stock Returns. Journal of Finance 47(2).
  2. Fama, E. F. and French, K. R. (1993). Common Risk Factors in the Returns on Stocks and Bonds. Journal of Financial Economics 33(1).
  3. Basu, S. (1977). Investment Performance of Common Stocks in Relation to Their Price-Earnings Ratios: A Test of the Efficient Market Hypothesis. Journal of Finance 32(3).
  4. Loughran, T. (1997). Book-to-Market across Firm Size, Exchange, and Seasonality: Is There an Effect? Journal of Financial and Quantitative Analysis 32(3).

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 9183f1421fc6 1178 2006-01-01 2006-01-03 → 2006-12-29
2 7fcf236ae50e 1179 2007-01-01 2007-01-03 → 2007-12-31
3 e3eff8a227ee 1180 2008-01-01 2008-01-02 → 2008-12-31
4 9e8d408a9fe5 1181 2009-01-01 2009-01-02 → 2009-12-31
5 b1cd38e59998 1182 2010-01-01 2010-01-04 → 2010-12-31
6 963192705c8b 1183 2011-01-01 2011-01-03 → 2011-12-30
7 60d6d5ec17a8 1184 2012-01-01 2012-01-03 → 2012-12-31
8 d49c5574fd15 1185 2013-01-01 2013-01-02 → 2013-12-31
9 8fd1932a23f0 1186 2014-01-01 2014-01-02 → 2014-12-31
10 d745f5a7818a 1187 2015-01-01 2015-01-02 → 2015-12-31
11 7c9beacc5170 1188 2016-01-01 2016-01-04 → 2016-12-30
12 3a25269253bc 1190 2017-01-01 2017-01-03 → 2017-12-29
13 602b0986279d 1191 2018-01-01 2018-01-02 → 2018-12-31
14 07e7f462c539 1193 2019-01-01 2019-01-02 → 2019-12-31
15 a32caf13d309 1194 2020-01-01 2020-01-02 → 2020-12-31
16 07c33e39bd52 1195 2021-01-01 2021-01-04 → 2021-12-31
17 63e6821eeaea 1196 2022-01-01 2022-01-03 → 2022-12-30
18 6ba211e17eef 1197 2023-01-01 2023-01-03 → 2023-12-29
19 7e9f00cf7a94 1198 2024-01-01 2024-01-02 → 2024-12-31
20 2c3ac3904540 1199 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, Book-to-market vs Earnings yield, walked on the same registered out-of-sample windows. Book-to-market: 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. Earnings yield: 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: Value Factor, earnings_yield: off → high; Value Factor, pb_ratio: high → off. The contrast under test: whether Book-to-market generates better risk-adjusted returns than Earnings yield 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 4. 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-14 14:19:20 2026-08-14 14:22:27
2 2007-01-012026-08-14 14:22:32 2026-08-14 14:25:32
3 2008-01-012026-08-14 14:25:37 2026-08-14 14:27:38
4 2009-01-012026-08-14 14:27:43 2026-08-14 14:31:23
5 2010-01-012026-08-14 14:31:28 2026-08-14 14:35:09
6 2011-01-012026-08-14 14:35:14 2026-08-14 14:38:55
7 2012-01-012026-08-14 14:39:00 2026-08-14 14:41:20
8 2013-01-012026-08-14 14:41:25 2026-08-14 14:45:26
9 2014-01-012026-08-14 14:45:31 2026-08-14 14:49:11
10 2015-01-012026-08-14 14:49:17 2026-08-14 14:53:19
11 2016-01-012026-08-14 14:53:25 2026-08-14 14:56:05
12 2017-01-012026-08-14 14:56:10 2026-08-14 15:00:31
13 2018-01-012026-08-14 15:00:36 2026-08-14 15:07:16
14 2019-01-012026-08-14 15:07:22 2026-08-14 15:14:23
15 2020-01-012026-08-14 15:14:28 2026-08-14 15:17:08
16 2021-01-012026-08-14 15:17:13 2026-08-14 15:21:35
17 2022-01-012026-08-14 15:21:40 2026-08-14 15:25:41
18 2023-01-012026-08-14 15:25:46 2026-08-14 15:30:07
19 2024-01-012026-08-14 15:30:12 2026-08-14 15:32:52
20 2025-01-012026-08-14 15:32:57 2026-08-14 15:37:18

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

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 27 names held · selection: reselect · 0.0% in cash · 3 names dropped at load (28 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 4.4% of 250 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2006-01-01 -13.8258% 4.0456% 26.0475% 17.395%yes 1.2546% 11 / 250
2007-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 28 names held · selection: reselect · 0.0% in cash · 2 names 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 4.0% of 250 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2006-01-01 -8.8454% 14.5185% 44.459% 8.7529%yes 1.4596% 10 / 250
2007-01-01 no segment follows this rebalance, not scored

Step 2 · 2007-01-03 → 2007-12-31

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 29 names held · selection: reselect · 0.0% in cash · 2 names dropped at load (28 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 13.6% of 250 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2007-01-01 -5.6969% 13.1285% 36.1543% -11.8046%no 1.2127% 34 / 250
2008-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · 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 10.0% of 250 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2007-01-01 -2.3104% 22.4512% 54.1106% 4.089%yes 1.4942% 25 / 250
2008-01-01 no segment follows this rebalance, not scored

Step 3 · 2008-01-02 → 2008-12-31

Book-to-market

Portfolio book, rebalanced annual · 1 constructions · 28 names held · selection: reselect · 0.0% in cash · 2 names dropped at load (28 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 30.16% of 252 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2008-01-01 -33.8229% -11.0037% 17.7799% -43.2406%no 1.8319% 76 / 252

Earnings yield

Portfolio book, rebalanced annual · 1 constructions · 29 names held · selection: reselect · 0.0% in cash · 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 26.59% of 252 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2008-01-01 -10.8888% 13.7295% 43.245% -39.5316%no 1.4405% 67 / 252

Step 4 · 2009-01-02 → 2009-12-31

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · 2 names dropped at load (28 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.76% of 251 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2009-01-01 -68.7356% -37.8153% 24.9835% 68.4796%no 3.911% 22 / 251
2010-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.17% of 251 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2009-01-01 -51.8194% -13.36% 57.194% 33.3459%yes 3.1893% 18 / 251
2010-01-01 no segment follows this rebalance, not scored

Step 5 · 2010-01-04 → 2010-12-31

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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 -65.6733% -13.079% 123.226% 26.564%yes 5.8702% 0 / 251
2011-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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 -51.8662% -2.8784% 98.0672% 15.3183%yes 4.2986% 0 / 251
2011-01-01 no segment follows this rebalance, not scored

Step 6 · 2011-01-03 → 2011-12-30

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.59% of 251 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2011-01-01 -17.4848% 46.6419% 162.8907% -15.6865%yes 3.6198% 9 / 251
2012-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.79% of 251 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2011-01-01 -32.6382% 21.8297% 122.3317% -9.2223%yes 3.6088% 7 / 251
2012-01-01 no segment follows this rebalance, not scored

Step 7 · 2012-01-03 → 2012-12-31

Book-to-market

Portfolio book, rebalanced annual · 1 constructions · 29 names held · selection: reselect · 0.0% in cash · 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
2012-01-01 -35.3699% 2.5183% 59.1593% 16.399%yes 3.0054% 2 / 249

Earnings yield

Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash

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
2012-01-01 -33.6603% 3.1212% 57.035% 18.307%yes 2.8267% 2 / 249

Step 8 · 2013-01-02 → 2013-12-31

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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
2013-01-01 -33.565% -0.1516% 50.9985% 49.4625%yes 2.5312% 1 / 251
2014-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.59% of 251 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2013-01-01 -28.4054% 4.5478% 53.549% 50.415%yes 2.2436% 4 / 251
2014-01-01 no segment follows this rebalance, not scored

Step 9 · 2014-01-02 → 2014-12-31

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.79% of 251 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2014-01-01 -6.6231% 23.0231% 62.7619% 5.5277%yes 1.7678% 7 / 251
2015-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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
2014-01-01 -4.6169% 25.6151% 66.1226% 8.7087%yes 1.6803% 10 / 251
2015-01-01 no segment follows this rebalance, not scored

Step 10 · 2015-01-02 → 2015-12-31

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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 7.57% of 251 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2015-01-01 -4.7511% 18.9744% 49.1127% -7.6237%no 1.4445% 19 / 251
2016-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 29 names held · selection: reselect · 0.0% in cash · 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 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 -2.5236% 22.9939% 55.7405% -15.9974%no 1.4804% 21 / 251
2016-01-01 no segment follows this rebalance, not scored

Step 11 · 2016-01-04 → 2016-12-30

Book-to-market

Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash

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.37% of 251 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2016-01-01 -28.2041% -6.3339% 22.693% 19.8225%yes 1.7076% 21 / 251

Earnings yield

Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash

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
2016-01-01 -21.5092% 4.4309% 39.5478% 19.3938%yes 1.7767% 17 / 251

Step 12 · 2017-01-03 → 2017-12-29

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash · 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 1.2% of 250 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2017-01-01 -23.0876% 2.3212% 36.8206% 19.3252%yes 1.8105% 3 / 250
2018-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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 -24.4892% 2.6751% 40.381% 16.8258%yes 2.0712% 1 / 250
2018-01-01 no segment follows this rebalance, not scored

Step 13 · 2018-01-02 → 2018-12-31

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.4% of 250 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2018-01-01 -12.5173% 7.622% 32.8889% -8.4488%yes 1.2524% 26 / 250
2019-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.2% of 250 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2018-01-01 -13.6349% 10.5659% 42.1749% -12.5919%yes 1.5372% 18 / 250
2019-01-01 no segment follows this rebalance, not scored

Step 14 · 2019-01-02 → 2019-12-31

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.38% of 251 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2019-01-01 -7.7845% 12.5036% 37.6706% 22.1602%yes 1.384% 11 / 251
2020-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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
2019-01-01 -18.6934% 4.1052% 33.7981% 20.3214%yes 1.4974% 17 / 251
2020-01-01 no segment follows this rebalance, not scored

Step 15 · 2020-01-02 → 2020-12-31

Book-to-market

Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash

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 16.27% of 252 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2020-01-01 -11.629% 11.2766% 38.382% 14.7524%yes 1.5973% 41 / 252

Earnings yield

Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash

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 18.25% of 252 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2020-01-01 -22.7896% 2.707% 34.5291% -3.9169%yes 1.9869% 46 / 252

Step 16 · 2021-01-04 → 2021-12-31

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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 -37.3257% 9.2473% 92.0424% 44.3139%yes 2.963% 1 / 251
2022-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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
2021-01-01 -45.3846% 3.1463% 96.6917% 40.0012%yes 3.5941% 0 / 251
2022-01-01 no segment follows this rebalance, not scored

Step 17 · 2022-01-03 → 2022-12-30

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.0% of 250 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2022-01-01 12.0777% 66.5914% 149.3817% -10.4369%no 2.0232% 20 / 250
2023-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.2% of 250 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2022-01-01 -33.5091% 16.3395% 105.6068% -16.086%yes 2.9223% 8 / 250
2023-01-01 no segment follows this rebalance, not scored

Step 18 · 2023-01-03 → 2023-12-29

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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 -13.1611% 20.124% 63.674% 13.0952%yes 1.9192% 6 / 249
2024-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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 249 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2023-01-01 -10.662% 36.7314% 105.158% 17.6869%yes 2.5853% 1 / 249
2024-01-01 no segment follows this rebalance, not scored

Step 19 · 2024-01-02 → 2024-12-31

Book-to-market

Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash

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 -22.4414% 6.3017% 46.3964% 13.594%yes 1.8316% 2 / 251

Earnings yield

Portfolio book, rebalanced annual · 1 constructions · 30 names held · selection: reselect · 0.0% in cash

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 -32.2943% 3.1401% 58.127% 19.4736%yes 2.5699% 3 / 251

Step 20 · 2025-01-02 → 2025-12-31

Book-to-market

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.42% of 249 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2025-01-01 -1.5889% 22.404% 50.7066% 16.4087%yes 1.3444% 11 / 249
2026-01-01 no segment follows this rebalance, not scored

Earnings yield

Portfolio book, rebalanced annual · 2 constructions · 30 names held · selection: reselect · 0.0% in cash

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.43% of 249 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2025-01-01 -8.4885% 21.2555% 58.5741% 27.5348%yes 1.6818% 16 / 249
2026-01-01 no segment follows this rebalance, not scored
QuanterLab · Study bb0d8e579cb9 · compiled August 14, 2026. Point-in-time constituents and hypothesis-registration timestamps are enforced by the platform; transaction costs are not modelled in this study. 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.