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 compounders and the cigar butts - gross profitability against earnings yield in total returns, twenty sealed windows of the S&P 500

Universe · S&P 500 (point-in-time constituents)
Method · Comparative: Gross profitability vs Earnings yield
Manipulated variable · The composite weighting, and nothing else. Both arms load the same point-in-time S&P 500 and compute the same two factor legs from the same SEC acceptedDate-gated filings: gross profitability (gross profits over total assets - Novy-Marx 2013, the measure Fama-French 2015 folded into their RMW factor) and earnings yield. Thirty highest composite-ranked names, equal weighted, long only, re-selected annually, twenty registered one-year windows. Arm A weights profitability 100 and value 0; Arm B weights value 100 and profitability 0 - the quality signal against the cheapness signal, head to head, on i
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 16, 2026
Search record · none (size unknown, see §2.3)
Abstract

Novy-Marx called gross profitability the other side of value: a quality measure that predicts returns like a value measure while selecting the opposite stocks. Fama and French folded it into their five-factor model in 2015 and ranked its standing comparable to value itself. This study puts that claim on twenty sealed one-year windows of the point-in-time S&P 500, measured in total returns with real costs on both sides: thirty names ranked on gross profits over assets, against thirty ranked on earnings yield, equal weight, re-selected annually, both against an equal-weight index with its own dividends reinvested. Comparable standing is exactly what the record shows - ten windows each, a 48.5 percent bootstrap, a difference track with a Sharpe of 0.01: a coin flip. Everything else about the two books is opposite. They share a median of ONE name in thirty and in five windows share nothing at all. The profitability book collected 1.3 percent a year in dividends, the cheapness book 2.8. The profitability book won every crisis on the record - 2008 by ten points, 2018 by fourteen, 2020 by thirty-eight, the widest gap in this series - and cheapness has won all five windows since 2021. One more fact sits on this record - stated as a description of a single path, not a pre-registered claim: the profitability book compounded at 11.8 percent a year with less volatility than the index it beat (20.3 against 20.7 percent; Sharpe 0.649 against 0.545), the only one of this series' three books to beat the honest benchmark on return and risk at once. The verdict stands regardless: you were never choosing between two returns - twenty years cannot rank them. You were choosing between two experiences: quality compounds quietly and pays almost nothing in cash; cheap explodes, collapses, and pays you to wait. Which is, precisely, Fama-French's claim of comparable standing.

1  Methodology

Two sealed circuits, identical except the composite family weighting: BOTH arms compute the same two factor legs from the same SEC acceptance-dated filings - gross profitability (gross profits over total assets) and earnings yield - and Arm A weights profitability 100 with value 0 while Arm B weights value 100 with profitability 0. Symmetry of the two ranked pools is by construction and machine-checked per window. Thirty highest composite-ranked names, equal weight, long only, annual re-selection, twenty one-year out-of-sample windows anchored each January from 2006. Robust-minus-weak is deliberately not constructed - no shorting, no weak leg; the claim is tested long-only on the robust side.

The realism layer is identical in both arms: TOTAL returns with each held name's dividend credited on its ex-date (split-adjusted amounts matching the split-adjusted price series) and held as cash to the next rebalance; ten basis points of transaction cost per one-way traded dollar; the RSP benchmark rebuilt as a total-return index by the same ex-date rule (its dividends added 2.03 points a year on average). Sharpe ratios are raw daily-return Sharpes, no cash hurdle. Machine gates verified per window that the total-return basis, the cost charge and the dividend accounting were live in both arms.

Lineage, in plain words: this circuit was registered once, before running, and every window's report was frozen at execution. Its design is the preceding dividend study's frozen shape with one change - the composite weighting replaces the value-metric selection as the single difference - and no alternative specifications were explored or run before registration. The design history behind the inherited shape is that study's, disclosed there.

2  Results

2.1  Headline

Gross profitability, pooled Sharpe
0.65
5012 OOS bars
Earnings yield, pooled Sharpe
0.56
5012 OOS bars
P(Gross profitability beats Earnings yield)
48.5%
5011 paired bars · CAGR gap (Gross profitability − Earnings yield) +0.8 pp
Out-of-sample equity: normalised growth (1.00x = break even)-0.20x4.85x9.90x2006200920122015201820212024
Figure 1. Both arms stitched through the identical windows,  Gross profitability (+790.3%),  Earnings yield (+672.9%), benchmark grey (+515.1%, total return, its own dividends reinvested, pooled Sharpe 0.545). 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.
The same walk, measured five ways-0.23x4.93x10.09x
Figure 2. The measurement ladder: Gross profitability's whole walk, chained five ways.  price only (+618.0%),  with dividends (+806.6%),  net of costs (+790.3%), 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.86x1.68x2.51x20212022202320242025
Figure 3. The same walk, re-based to 1.00x at the first window starting in 2021, 5 of the 20 windows above.  Gross profitability (+56.7%),  Earnings yield (+135.9%), benchmark grey (+65.9%, total return). This is a subset of Figure 1, not a correction to it. The era boundary here is pinned by the author at 2021, 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 Gross profitability SR Earnings yield SR
1 2006-01-03 → 2006-12-29 1.15 0.97
2 2007-01-03 → 2007-12-31 0.43 0.77
3 2008-01-02 → 2008-12-31 -0.48 -0.84
4 2009-01-02 → 2009-12-31 1.20 1.00
5 2010-01-04 → 2010-12-31 1.33 0.82
6 2011-01-03 → 2011-12-30 0.23 -0.13
7 2012-01-03 → 2012-12-31 0.82 1.27
8 2013-01-02 → 2013-12-31 2.55 2.90
9 2014-01-02 → 2014-12-31 1.30 1.07
10 2015-01-02 → 2015-12-31 -0.35 -0.60
11 2016-01-04 → 2016-12-30 0.24 1.08
12 2017-01-03 → 2017-12-29 1.99 1.87
13 2018-01-02 → 2018-12-31 0.34 -0.62
14 2019-01-02 → 2019-12-31 1.16 1.30
15 2020-01-02 → 2020-12-31 0.99 0.04
16 2021-01-04 → 2021-12-31 2.24 1.81
17 2022-01-03 → 2022-12-30 -0.65 -0.49
18 2023-01-03 → 2023-12-29 0.75 1.14
19 2024-01-02 → 2024-12-31 1.32 1.36
20 2025-01-02 → 2025-12-31 0.59 1.28
Out-of-sample equity: normalised growth (1.00x = break even)0.55x1.01x1.47xbars into the window →
Figure 4. Gross profitability: 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.44x1.01x1.59xbars into the window →
Figure 5. 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 rGross profitability − 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.

In the table: Arm A = Gross profitability · Arm B = Earnings yield.

Table 2. Window-by-window paired comparison. Δ is the growth gap (Arm A − Arm B) over the window's paired dates.
#WindowPaired bars Arm AArm B ΔLeader
1 2006-01-04 → 2006-12-29 250 +14.0% +11.5% +2.4 pp Arm A
2 2007-01-04 → 2007-12-31 250 +6.3% +13.9% -7.5 pp Arm B
3 2008-01-03 → 2008-12-31 252 -24.4% -34.6% +10.2 pp Arm A
4 2009-01-05 → 2009-12-31 251 +39.1% +32.4% +6.7 pp Arm A
5 2010-01-05 → 2010-12-31 251 +26.6% +16.2% +10.4 pp Arm A
6 2011-01-04 → 2011-12-30 251 +2.7% -7.0% +9.7 pp Arm A
7 2012-01-04 → 2012-12-31 249 +11.1% +22.5% -11.3 pp Arm B
8 2013-01-03 → 2013-12-31 251 +38.7% +50.8% -12.1 pp Arm B
9 2014-01-03 → 2014-12-31 251 +15.7% +14.2% +1.5 pp Arm A
10 2015-01-05 → 2015-12-31 251 -6.4% -11.4% +5.0 pp Arm A
11 2016-01-05 → 2016-12-30 251 +2.6% +21.8% -19.2 pp Arm B
12 2017-01-04 → 2017-12-29 250 +26.7% +22.0% +4.7 pp Arm A
13 2018-01-03 → 2018-12-31 250 +4.6% -9.8% +14.4 pp Arm A
14 2019-01-03 → 2019-12-31 251 +17.8% +21.7% -3.8 pp Arm B
15 2020-01-03 → 2020-12-31 252 +30.1% -8.1% +38.2 pp Arm A
16 2021-01-05 → 2021-12-31 251 +35.2% +42.0% -6.8 pp Arm B
17 2022-01-04 → 2022-12-30 250 -17.0% -13.8% -3.2 pp Arm B
18 2023-01-04 → 2023-12-29 249 +10.0% +20.4% -10.4 pp Arm B
19 2024-01-03 → 2024-12-31 251 +17.7% +23.8% -6.0 pp Arm B
20 2025-01-03 → 2025-12-31 249 +8.4% +30.0% -21.6 pp Arm B

Paired Sharpe of the difference track: 0.01 · block bootstrap (2000 paths, block 10, seed 1234): P(Gross profitability beats Earnings yield) = 48.5%.

Window win-rate. Gross profitability led 10 of 20 windows (50.0%), Earnings yield led 10 , and the mean window gap of +0.05 pp points the same way. Widest single window: 2020 at +38.2 pp.

Table 3. The same comparison split at 2021. Pooling the whole walk into one row hides which side of the split the difference came from.
PeriodWindows Gross profitabilityEarnings yield Mean gapGross profitability led
All windows 20 +12.97% +12.93% +0.05 pp 10/20
Before 2021 15 +13.68% +10.41% +3.27 pp 10/15
2021 onward 5 +10.86% +20.48% -9.62 pp 0/5
All windowsn=20 · Gross profitability led 10+13.0%+12.9%+0.05 ppBefore 2021n=15 · Gross profitability led 10+13.7%+10.4%+3.27 pp2021 onwardn=5 · Gross profitability led 0+10.9%+20.5%-9.62 ppgap
Figure A1, mean window return per period. Gross profitability above, Earnings yield below, with the gap at right. The pooled bar and the post-2021 bar are the same comparison over different periods.

The two eras disagree by 12.89 pp. The pooled figure is therefore not a standing property of either method, it is dominated by the later period. Read the two rows, not the average.

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, Gross profitability vs Earnings yield, walked on the same registered out-of-sample windows. Gross profitability: 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: Factor Composite, quality_weight: 100 → 0; Factor Composite, value_weight: 0 → 100. The contrast under test: whether Gross profitability 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 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 costGross profitabilityEarnings yieldshared
Figure 6. The frozen circuit, every node a primitive, every wire a typed data-flow; the two arms are colour-coded (Gross profitability 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 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

Gross profitability

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.

Earnings yield

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: 100 → 0
  • paramFactor Composite, value_weight: 0 → 100

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-66%+35%+136%in band20062007200820092010201120122013201420152016201720182019202020212022202320242025Arm B18 of 20 inside the 90% band-66%+35%+136%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
Gross profitability 20 35 17 / 20 85.0% ±7.98 90.0% 5011 6.27% ±0.342 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,011 paired out-of-sample days, the gross-profitability book earned a Sharpe of 0.649 against 0.565 for earnings yield, compounding at 11.8 against 11.0 percent a year. The honest index - equal weight, dividends reinvested - compounded at 9.5 percent with a Sharpe of 0.545. Both books beat it; the profitability book beat it while running QUIETER than the index itself: 20.3 percent annualised volatility against the index's 20.7 and the cheapness book's 23.2, with the shallowest worst drawdown of the three (46.0 percent, against 49.0 for cheapness). On this single twenty-year path, profitability was the rare book that added return while subtracting risk.

Between the arms, the verdict is a coin flip stated three ways: ten windows each; a block bootstrap of the paired daily differences (2,000 resampled paths, ten-day blocks) finishing with profitability ahead in 48.5 percent of paths; a difference track whose Sharpe is 0.01. The 0.8-point annual lean toward profitability is noise on this record - these near-disjoint books diverge by ten to twenty points in ordinary years, and by thirty-eight in 2020.

The money arrives in opposite forms. The profitability book collected 1.29 percent a year in cash dividends - BELOW the index's 2.03 - while the cheapness book collected 2.80: the quality premium on this record is paid almost entirely in price, the value premium substantially in cash. Costs are identical and small at this cadence: one annual re-selection, ten basis points on the one-way flow, one dime per hundred dollars per year in each arm, every window.

Window returns quoted in this text are the paired-day ledger of Table 2 - each arm against the other on common trading days; the appendix's per-step cards print each arm's full-window return beside the INDEX, which differs by the unpaired sessions, so the same year can carry both sets of numbers honestly.

The windows sort by regime with almost no exceptions. Profitability won every crisis and every defensive year on the record: 2008 by 10.2 points (down 24.4 while the total-return index fell 39.1), the 2009 and 2010 recoveries by 6.7 and 10.4, 2011 by 9.7, 2015 by 5.0, 2018 by 14.4, and the 2020 window - COVID - by 38.2 points, up 30.1 percent while the cheap book, loaded with the cyclicals a low multiple selects into a shutdown, lost 8.1. Cheapness won the reflations: 2012 and 2013 (the cheap book made 50.8 percent in the 2013 window), 2016 by 19.2 - and then every single window from 2021 through 2025, by 6.8, 3.2, 10.4, 6.0 and 21.6 points, the rate-shock year of 2022 included. Whatever regime began in 2021, it has favoured the cigar butts for five straight windows.

Structurally the two books are the most disjoint pair in this series: a median of ONE shared name of the thirty selected, and in five windows none at all - on ranked pools identical for both arms in every window (348 names in 2006, 504 by 2024). A stock that earns a lot on its assets is almost never cheap on its earnings; the two screens read opposite ends of the same cross-section.

5.2  Interpretation

Novy-Marx's 2013 argument was that profitability is value's mirror: controlling for price, productive firms are undervalued the way cheap firms are, and the two strategies are natural complements precisely because they select against each other. Fama and French's 2015 five-factor model institutionalised the claim with RMW and ranked its premium comparable to value's. Twenty sealed years of large caps, in total returns with costs, deliver exactly that: no rankable difference in outcome, complete difference in everything else. The one-name overlap is the mirror made literal.

What the aggregate hides is that the two premiums are paid in different weather and different currency. Profitability's edge concentrated in every stress year on the record and arrived almost entirely as price appreciation from low-yield compounders; cheapness's edge concentrated in reflations and arrived with nearly three times the dividend stream. A holder did not choose between two returns; they chose between two experiences - and since 2021 the experience has favoured cheap five windows running, a reminder that fifteen years of one personality winning the stress tests guarantees nothing about the next five.

The vs-index result deserves its own sentence, carefully. On this path the profitability book beat the honest benchmark by 2.3 points a year while running less volatile than the benchmark - the only construction in this series that added return and subtracted risk at once. That is the shape Fama-French 2015 claims for the profitability premium, and this record is consistent with it; one path of twenty years cannot certify it, and the five windows since 2021 show the premium takes leave without notice. The practical sentence: the quality screen bought index-plus returns with index-minus turbulence and almost no income; the cheap screen bought the same destination with violence and cash. Twenty years cannot tell you which to prefer - only which ride you would rather be on when the next 2008 or the next 2021 arrives.

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

The arm-versus-arm conclusion is a null: ten windows each, a 48.5 percent bootstrap, a difference-track Sharpe of 0.01 - every directional phrase about the two screens should be read under that ceiling. The vs-index observations (return above, volatility below) describe one twenty-year path and were not pre-registered as claims; the regime pattern - profitability in crises, cheapness in reflations and in all five windows since 2021 - is a description of this record stated after seeing it. Gross profitability here is a single metric, not Fama-French's operating-profitability RMW construction, and no size stratification is attempted; nothing here speaks to small caps, to composite quality screens, or to long-short implementations. Dividends are credited gross with no withholding or reinvestment between rebalances; costs are a flat ten basis points with no impact scaling; capital-gains tax is not modelled. The ranked pool is thinner early (348 of roughly 500 members with usable fundamentals in 2006, 504 listings by 2024), identically in both arms. The engine held twenty-eight to thirty of the thirty selected names per window, with counts disclosed per window.

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. Novy-Marx, R. (2013). The Other Side of Value: The Gross Profitability Premium. Journal of Financial Economics 108(1).
  2. Fama, E. F. and French, K. R. (2015). A Five-Factor Asset Pricing Model. Journal of Financial Economics 116(1).
  3. Fama, E. F. and French, K. R. (2006). Profitability, Investment and Average Returns. Journal of Financial Economics 82(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 349c87784363 1222 2006-01-01 2006-01-03 → 2006-12-29
2 eeba7ebb6af1 1223 2007-01-01 2007-01-03 → 2007-12-31
3 9188388490e4 1224 2008-01-01 2008-01-02 → 2008-12-31
4 40dbb6655097 1225 2009-01-01 2009-01-02 → 2009-12-31
5 0911aaf1d186 1226 2010-01-01 2010-01-04 → 2010-12-31
6 e793d7874461 1227 2011-01-01 2011-01-03 → 2011-12-30
7 b843e0b273e2 1228 2012-01-01 2012-01-03 → 2012-12-31
8 f41088b0ea20 1229 2013-01-01 2013-01-02 → 2013-12-31
9 b4b723e24969 1230 2014-01-01 2014-01-02 → 2014-12-31
10 b5b49539ee3f 1231 2015-01-01 2015-01-02 → 2015-12-31
11 576b77e2cc99 1232 2016-01-01 2016-01-04 → 2016-12-30
12 976d2e2708d6 1233 2017-01-01 2017-01-03 → 2017-12-29
13 756dc4841edc 1234 2018-01-01 2018-01-02 → 2018-12-31
14 b57ceabeb263 1235 2019-01-01 2019-01-02 → 2019-12-31
15 7e5280c34ebb 1236 2020-01-01 2020-01-02 → 2020-12-31
16 8ce77f263e27 1237 2021-01-01 2021-01-04 → 2021-12-31
17 32a4c428a073 1238 2022-01-01 2022-01-03 → 2022-12-30
18 0048f4f92d8a 1239 2023-01-01 2023-01-03 → 2023-12-29
19 44d531eba4bf 1240 2024-01-01 2024-01-02 → 2024-12-31
20 6870ce635bd4 1241 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, Gross profitability vs Earnings yield, walked on the same registered out-of-sample windows. Gross profitability: 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: Factor Composite, quality_weight: 100 → 0; Factor Composite, value_weight: 0 → 100. The contrast under test: whether Gross profitability 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-15 21:08:32 2026-08-16 09:16:04
2 2007-01-012026-08-16 09:16:09 2026-08-16 09:23:50
3 2008-01-012026-08-16 09:23:55 2026-08-16 09:29:15
4 2009-01-012026-08-16 09:29:21 2026-08-16 09:37:41
5 2010-01-012026-08-16 09:37:47 2026-08-16 09:46:07
6 2011-01-012026-08-16 09:46:12 2026-08-16 09:54:55
7 2012-01-012026-08-16 09:55:00 2026-08-16 10:01:01
8 2013-01-012026-08-16 10:01:06 2026-08-16 10:10:27
9 2014-01-012026-08-16 10:10:32 2026-08-16 10:20:16
10 2015-01-012026-08-16 10:20:21 2026-08-16 10:30:02
11 2016-01-012026-08-16 10:30:08 2026-08-16 10:36:48
12 2017-01-012026-08-16 10:36:53 2026-08-16 10:47:14
13 2018-01-012026-08-16 10:47:20 2026-08-16 10:57:41
14 2019-01-012026-08-16 10:57:46 2026-08-16 11:08:07
15 2020-01-012026-08-16 11:08:12 2026-08-16 11:15:33
16 2021-01-012026-08-16 11:15:38 2026-08-16 11:26:19
17 2022-01-012026-08-16 11:26:24 2026-08-16 11:37:05
18 2023-01-012026-08-16 11:37:10 2026-08-16 11:47:31
19 2024-01-012026-08-16 11:47:36 2026-08-16 11:54:37
20 2025-01-012026-08-16 11:54:42 2026-08-16 12:05:23

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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2006-01-01 -8.5716% 13.1397% 40.5411% 14.1659%yes 1.3041% 8 / 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 · turnover 1.0× · cost drag 0.1% · 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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2007-01-01 -3.6386% 18.8417% 47.1171% 2.55%yes 1.3027% 30 / 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 · 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 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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2008-01-01 -15.6454% 9.3991% 39.8966% -22.7203%no 1.5653% 66 / 252

Earnings yield

Portfolio book, rebalanced annual · 1 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 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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2009-01-01 -46.5895% -10.1709% 52.2782% 39.2616%yes 3.1312% 13 / 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 · 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.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

Gross profitability

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
2010-01-01 -44.1996% 0.5722% 82.896% 25.5762%yes 3.3609% 3 / 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 · 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 -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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2011-01-01 -14.833% 34.8882% 115.1343% 0.6773%yes 2.6887% 11 / 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 · 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 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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2012-01-01 -11.3972% 22.401% 66.565% 10.816%yes 2.0037% 5 / 249

Earnings yield

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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2013-01-01 -15.2895% 15.4938% 58.2067% 36.5264%yes 1.8676% 5 / 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 · 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.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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2014-01-01 4.6528% 31.5638% 65.9709% 14.187%yes 1.3422% 13 / 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 · 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
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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2015-01-01 0.2604% 23.2157% 51.9018% -9.4718%no 1.2906% 22 / 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 · 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 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

Gross profitability

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 -18.5428% 2.1749% 28.6037% 2.7206%yes 1.4964% 14 / 251

Earnings yield

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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2017-01-01 -19.0202% 3.2548% 32.2303% 23.6613%yes 1.4321% 7 / 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 · 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 -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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2018-01-01 -13.2673% 7.4681% 33.6722% 3.8074%yes 1.3109% 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 · 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.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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2019-01-01 -9.4272% 15.3559% 47.461% 15.8898%yes 1.4523% 15 / 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 · 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
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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2020-01-01 -9.1499% 19.4298% 54.6926% 33.6122%yes 1.8021% 27 / 252

Earnings yield

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

Gross profitability

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 -12.4114% 30.995% 97.114% 33.6546%yes 2.3159% 2 / 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 · 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
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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2022-01-01 -6.6489% 39.2533% 109.2172% -17.1172%no 2.122% 23 / 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 · 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.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

Gross profitability

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

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2023-01-01 -14.0887% 21.5299% 69.1599% 8.9387%yes 2.1704% 2 / 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 · 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 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

Gross profitability

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 -25.7029% 5.6479% 51.0333% 14.6109%yes 1.9797% 2 / 251

Earnings yield

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

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

Gross profitability

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 -1.6903% 22.5372% 51.1756% 7.5798%yes 1.2679% 20 / 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 · 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.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 c161f435806d · compiled August 16, 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.