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

Post-Earnings Drift, Decomposed: 81 Walks, a Predictability Spread That Was Market Exposure, and a Screen That Picks Better Announcements and a Worse Book

Universe · S&P 500 (point-in-time constituents)
Method · Single hypothesis
Step size · 1 year per forward window
Out-of-sample span · 2006-01-03 → 2025-12-31
Compiled · September 06, 2026
Search family · the earnings-cohort grid, one pre-registered design: nine cohorts of the point-in-time S&P 500 (three earnings-predictability terciles crossed with three gross-profitability terciles) at four holding rungs in two book shapes, 72 cells, plus the nine long-short cells at 42 days rerun with their market exposure hedged, 81 sealed studies in all, every one reported (N = 81, every member reported)
Abstract

Nine cohorts are cut at every anchor from the point-in-time S&P 500, three terciles of earnings predictability crossed with three of gross profitability, and each walks twenty sealed one-year windows from 2006 to 2025 at four holding periods in two book shapes: a long-short book that buys qualifying beats and shorts qualifying misses, and a long-only pair, every announcement of the cohort against the top quintile of surprise. 72 registered walk-forwards, plus nine sealed reruns of the 42-day long-short cells with the market exposure charged daily.

The long-short spread between predictable and erratic earners was market exposure. Unhedged at 42 days the steady, strong book made +6.6 percent a year net and the erratic, weak book -3.0, +9.6 ±4.2 points apart on the same windows, the steady side ahead in 15 of 20. The steady book ran 38 percent net long and the erratic book 31 percent net short, in a market that returned +12.4 a year on these windows. Charged that exposure times the index return every day, the pair made +2.4 and +2.3, +0.1 ±3.9 apart, ahead in 8 of 20; 7 of the nine hedged books stayed positive, and the hedged rows read steady +0.9, middle +1.4, erratic +1.9. The short leg lost in all nine cohorts unhedged, 4.0 points a year in the steady corner and 8.4 in the erratic one.

The surprise screen picks better announcements and a worse book. Inside each cohort the top-quintile book trails the every-announcement book by 2.0 points a year, in 30 of 36 cells. Per dollar deployed the screened entries earn more, +14.6 a year across the grid against +9.9; the screened book holds 75 percent of its capital idle on an average day against 43, and idle cash earns nothing in this engine. Crediting the idle gap at the era's bill rate, about 1.5 percent, returns 0.5 of the 2.0 points.

Owned outright, the every-announcement books of the steady cohorts returned +10.5 percent a year at 42 days against +8.4 for the erratic cohorts, +4.1 ±2.6 apart in the corners. At that rung the book holds about 95 percent of the cohort with a lag, so this is a return spread between the cohorts as populations. The comparison that would separate the announcement's own contribution, each cohort's announcement book against the same cohort held outright over the same windows, is not in this family and is the declared open check. The best every-announcement book matched the index on the mean of windows and beat it compounded; no top-quintile book kept up with the index on either basis.

Bhushan (1994), Mendenhall (2004) and Chordia and co-authors (2009) put the drift where arbitrage is hard; Cao and Narayanamoorthy (2012) put it where the surprise is informative. On this grid the question they share, which population drifts, does not survive the hedge at 42 days; what survives is where the return of the trade came from. Every window was sealed before it was scored, the 27 refused by the fifteen-name floor are printed, and the search family of 81 is declared on every page.

What is bought, and when. The company reports, the number becomes public, the position opens at that session's close and is held for exactly the rung, then closed. The three books differ only in which announcements enter: the long-short book takes qualifying beats long and qualifying misses short, arm A takes the top-quintile beats, arm B takes every announcement of the cohort.
What is bought, and when. The company reports, the number becomes public, the position opens at that session's close and is held for exactly the rung, then closed. The three books differ only in which announcements enter: the long-short book takes qualifying beats long and qualifying misses short, arm A takes the top-quintile beats, arm B takes every announcement of the cohort.
The whole grid in one exhibit: mean annual return in every cell, the long-short book on the left and the every-announcement long book on the right, rows ordered steady to erratic and strong to weak. The steady rows rise with the holding period in the long-short book and the erratic rows fade or reverse by 42 days; Table 5 attributes the reversal to the short leg and the hedged reruns attribute the spread to net exposure. The S&P 500 total return over the same windows averaged +12.4 a year and compounded to 7.80x.
The whole grid in one exhibit: mean annual return in every cell, the long-short book on the left and the every-announcement long book on the right, rows ordered steady to erratic and strong to weak. The steady rows rise with the holding period in the long-short book and the erratic rows fade or reverse by 42 days; Table 5 attributes the reversal to the short leg and the hedged reruns attribute the spread to net exposure. The S&P 500 total return over the same windows averaged +12.4 a year and compounded to 7.80x.
Author’s note

What the data refused. The fundamentals lane scores a name only from filings whose SEC acceptance date has passed, and it could score 487 of the 497 surprise-eligible names at the first anchor. Across all eighty quarterly anchors fourteen names were surprise-eligible and never scorable, AM, CR, DLX, G, GP, INFO, ONE, RDDT, RLGY, TUP, UCL, VC, VRTS and WOR, most of them recycled or short-lived tickers with no statement history under the symbol; they were refused rather than filled, and so were the names whose earnings history was shorter than four quarters at an anchor. Everything the grid prints stands on names that carried both scores on the day.

What changed between drafts. The first cut quoted the index's Sharpe as the mean of its twenty per-window Sharpes, 1.02, against pooled book Sharpes; every Sharpe here is pooled, the index's 0.63 included. The second cut put the steady corner's unhedged long-short return in the title; the nine hedged reruns took 64 percent of it away. The third cut put the long-only ordering in the title; the deployed-capital columns and the absence of a cohort-held benchmark moved it to the body as a population spread. A table in the third cut printed the daily hedge charge beside the two books, and the three columns did not subtract because the charge compounds with the book's path; Table 5 now prints the difference itself.

On the registration record and the appendix. Each cell's sealed hypothesis is the engine's standard reading of the circuit at registration, the same sentence for every window of every cell; the question the paper asks, which population carries the return and where the return came from, is declared in the family record on every page, not in the per-window sentence. The walk driver seals the next window's hypothesis in the same second it logs the previous run, so several run and seal timestamps tie at second resolution; the sequence is run, then seal, and the per-step records carry it. The deflation in Appendix A is the platform's standard treatment of the host cell's own pooled Sharpe against the declared family; it says whether that one cell's Sharpe clears the search penalty, and the paper's claims are differences between sealed cells, which the deflation does not address.

Follow-up to the sector drift study

This is the second earnings-drift paper on this site. The first walked 220 sealed studies: eleven sector books at five holding periods under two anchors, the announcement and the quarter end. It found the drift alive in Technology and Industrials, reversed in Utilities, a short leg that died at the index level, and a surprise screen that added nothing to a book entered on time. It left one question open: whether those sector results were about the industry label or about the companies inside it, and it named a beta-neutral rerun as the check it had not run.

This paper takes both up. It cuts the same index by the company's own earnings history instead of its sector, and it runs the hedge. The first paper, with its frozen tables, its 220 cells and the register of every attempt: Post-earnings announcement drift 2006-2025: 220 registered sector walks, two entry anchors, long-short +2.2% a year at the announcement, -0.5% at formation.

1  Methodology

What is bought, and when. The company reports. The number becomes public, after the bell counting as the next session. The position opens at that session's close and is held for exactly 5, 10, 21 or 42 trading days, then closed. One open position per name, each at a tenth of book equity, equal split past ten. Three books do this on the same announcements of the same cohort: the long-short book buys every qualifying beat and shorts every qualifying miss; arm A buys only the top-quintile beats; arm B buys every announcement with no screen at all. The first figure draws the three.

Every result in this paper comes from one rule set, the one the first paper registered for its announcement wave, run on nine populations instead of eleven sectors. Nothing about the entry, the holding, the costs or the floors changes between cells. What changes is which names are eligible.

The populations. At each window's anchor the point-in-time S&P 500 membership is scored on two properties, both knowable at that close. Earnings predictability is the standard deviation of the name's own last eight forecast errors (actual EPS minus consensus, at least four required) divided by its mean absolute estimate over the same quarters, so a two-dollar earner and a twenty-cent earner sit on one scale. This is the denominator of the SUE measure itself, read as a property of the company. Gross profitability is Novy-Marx's gross profit over total assets, taken from the platform's point-in-time fundamentals lane, which admits a filing only once its SEC acceptance date has passed. Each score is cut into nearest-rank terciles on the cross-section present at that anchor, and the cohort is one cell of the three-by-three split. A name missing either score is refused rather than filled. The cohort is fixed for the window; the announcements it makes over the following year are the events.

The surprise. SUE is actual EPS minus consensus over the spread of the name's own last eight forecast errors, at least four required, capped at ten either side, the same measure the first paper registered.

The bar. The long-short book buys a beat whose SUE sits at or above the 80th nearest-rank percentile of the whole index's trailing year of surprises and shorts a miss at or below the 20th, with the sign required to agree with the side and a zero surprise never entering. The thresholds come from the whole index, not the cohort, so the bar is identical in every cell and a cohort that clears it less often simply trades less. The long-only pair registers arm A, the same top-quintile rule without the shorts, against arm B, every announcement in the cohort. Costs are liquidity-tiered spreads by 63-day dollar volume, 1.5, 3 or 6 basis points one way at entry and at exit; shorts pay fifty basis points of borrow; dividends credit from the payment record. A window whose cohort has fewer than fifteen distinct announcing names, or in which no announcement clears the bar, is excluded and printed as excluded.

The yardstick. Every long-only cell is compared with the S&P 500 total return over the same sealed window, computed on the engine's own convention from SPY closes with cash distributions credited on their ex-dates, paired window by window, twenty windows.

The walk. Nine cohorts by four rungs by two book shapes is 72 registered studies in the grid, 81 with the hedged reruns, each walked through twenty sealed one-year windows anchored every January from 2006 to 2025: 1,440 windows in the grid, 1,620 with the reruns. The prospectus of each step is sealed before its window runs, and the family of 72 is declared on every page, so the deflation statistics answer to the whole search. The point-in-time index, the earnings table with its known-from dates and the liquidity tiers are the first paper's frozen tables; the fundamentals are the platform's own lane. Two defects were found in rehearsal and fixed before registration: the run summary dropped the cohort record, and the prospectus did not yet count the cohort book as a forward test. The walk itself ran without a failure.

What this design can and cannot say. It measures where the announcement reaction lives across two firm properties on one fixed rule. It does not tune the rule, does not vary the surprise measure, and does not pool across cohorts; a reader who wants the pooled index answer has the first paper.

2  Results

2.1  Headline

One cell of the 81: steady earnings, strong profitability, 42 days, long-short. Charged its 38 percent net exposure the book made +2.4 a year; the erratic, weak corner, hedged, made +2.3.

Pooled Sharpe (annualised)
0.57
5012 OOS bars
Search accounting
N = 81
declared family · every member reported
Stitched total return
+244.7%
S&P 500 rides the explorer below
Every book this study produced, one chart per entry rule. Growth of 1, net of costs, stitched across the sealed windows the same way Figure 1 below draws this page's own cell. Pick the book, the holding period and the sectors.
The long-short book taken apart at 42 days, one group of bars per cohort: the long leg (arm A, the same entries without the shorts), the short leg (the long-short book minus arm A on the same windows), and the long-short book with its market exposure charged, from the nine sealed reruns. The short leg is negative in all nine cohorts; hedged, the steady and erratic corners are level.
Figure 1. The long-short book taken apart at 42 days, one group of bars per cohort: the long leg (arm A, the same entries without the shorts), the short leg (the long-short book minus arm A on the same windows), and the long-short book with its market exposure charged, from the nine sealed reruns. The short leg is negative in all nine cohorts; hedged, the steady and erratic corners are level.
The selection edge inside each cohort: the top-quintile long book minus the every-announcement long book, points a year. Red means holding everything beat the screened book. The screen costs the book return in every steady cohort and adds a point or two only in the erratic row at the short rungs; per dollar deployed the screened entries earn more (Tables 2 and 3).
Figure 2. The selection edge inside each cohort: the top-quintile long book minus the every-announcement long book, points a year. Red means holding everything beat the screened book. The screen costs the book return in every steady cohort and adds a point or two only in the erratic row at the short rungs; per dollar deployed the screened entries earn more (Tables 2 and 3).

Table 1. Mean annual return net of costs per cell with its standard error across the windows and, in parentheses, the share of positive windows; then the compounded growth of one dollar across the stitched windows at 42 days, the line the explorer draws (the index grew to 7.80x over the same span), and the pooled daily Sharpe. Every qualifying beat is bought and every qualifying miss shorted at the close of the first session the number is known, held for the rung, one open position per name at a tenth of book equity. Thresholds are the whole index's trailing-year SUE quintiles, so every cohort faces the same bar. The book floats its legs: Table 5 prints each cohort's net exposure and the same book with that exposure charged.

Predictability and profitability5d10d21d42dGrowth of 1, 42dPooled Sharpe, 42dWindows
steady and strong+2.1 ±1.1 (60%)+3.9 ±1.3 (75%)+4.8 ±1.5 (75%)+6.6 ±1.6 (75%)3.45x0.5720
steady and middle+2.1 ±0.8 (80%)+2.8 ±0.9 (80%)+2.2 ±1.4 (70%)+3.2 ±2.4 (70%)1.68x0.2920
steady and weak-0.0 ±0.6 (47%)+0.4 ±1.0 (47%)+4.2 ±1.3 (74%)+3.6 ±2.8 (63%)1.75x0.3619
middle and strong+3.0 ±1.1 (70%)+2.5 ±1.4 (60%)+2.9 ±1.6 (55%)+3.3 ±1.7 (65%)1.81x0.3420
middle and middle-0.1 ±0.8 (60%)+1.4 ±1.2 (60%)+2.5 ±2.0 (60%)+1.2 ±1.7 (55%)1.21x0.1420
middle and weak+2.1 ±1.3 (60%)+3.1 ±1.5 (70%)+6.3 ±2.5 (75%)+5.4 ±2.9 (60%)2.48x0.4020
erratic and strong+1.5 ±1.0 (61%)+2.4 ±1.3 (67%)+3.2 ±1.6 (72%)+2.2 ±1.8 (67%)1.42x0.2318
erratic and middle+1.4 ±0.9 (60%)+2.2 ±1.4 (55%)+0.7 ±1.5 (50%)-1.8 ±2.0 (45%)0.65x-0.1120
erratic and weak+0.9 ±1.8 (60%)+2.1 ±2.6 (45%)+1.4 ±2.4 (40%)-3.0 ±3.8 (45%)0.42x-0.1420

Table 2. No surprise screen: each name in the cohort is bought at the close of the first session its number is known and held for the rung. Mean, standard error and share of positive windows per cell; then three bases at 42 days, none of them alone: the mean of window returns (the index averaged +12.4 a year on the same twenty windows), compounded growth over 2006 to 2025 against the index's 7.80x, and the pooled daily Sharpe against the index's 0.63. Idle cash is the book's average undeployed share, which earns nothing in this engine; the deployed column is the cell's mean return divided by its deployed share. The benchmark this family recorded is the index; each cohort held outright over the same windows was not recorded, and Section 4 says what that leaves open.

Predictability and profitability5d10d21d42dGrowth of 1, 42d (index 7.80x)On deployed capital, 42dIdle cash, 42dPooled Sharpe, 42d (index 0.63)Windows
steady and strong+5.3 ±1.9 (70%)+9.1 ±2.1 (85%)+12.4 ±2.8 (90%)+12.5 ±3.5 (80%)8.76x+13.25%0.6820
steady and middle+4.0 ±1.7 (70%)+4.3 ±1.5 (70%)+6.5 ±2.0 (70%)+10.0 ±2.5 (75%)6.07x+11.010%0.5820
steady and weak+2.7 ±1.4 (74%)+6.3 ±2.2 (79%)+6.3 ±2.6 (79%)+8.9 ±3.2 (68%)4.33x+10.515%0.4919
middle and strong+2.3 ±1.6 (60%)+4.4 ±2.0 (75%)+9.7 ±2.5 (70%)+12.2 ±3.6 (75%)8.32x+13.06%0.6520
middle and middle+2.9 ±1.6 (65%)+4.2 ±1.9 (60%)+7.5 ±2.1 (80%)+7.6 ±2.6 (70%)3.89x+8.38%0.4520
middle and weak+2.9 ±1.8 (70%)+3.9 ±2.2 (60%)+6.4 ±3.0 (60%)+8.2 ±3.9 (65%)3.73x+9.211%0.4020
erratic and strong+1.9 ±1.5 (67%)+1.5 ±2.0 (56%)+1.1 ±3.0 (61%)+5.0 ±3.4 (72%)1.98x+5.712%0.2818
erratic and middle+0.9 ±2.1 (45%)+1.4 ±2.4 (45%)+4.9 ±2.4 (65%)+11.5 ±4.7 (75%)6.58x+13.313%0.5420
erratic and weak+1.1 ±2.5 (55%)-0.4 ±2.8 (50%)+5.4 ±3.4 (60%)+8.5 ±4.1 (60%)3.85x+9.29%0.3920

Table 3. Only announcements at or above the index-wide 80th percentile of SUE enter, held for the rung; the same entries as the long leg of Table 1, on the same bases. Every cell trails the index on the mean of windows, by 8.7 points a year on average, and no cell outgrows it compounded. The idle share is high because the screen admits few names per cohort; the deployed column is what those names returned.

Predictability and profitability5d10d21d42dGrowth of 1, 42d (index 7.80x)On deployed capital, 42dIdle cash, 42dPooled Sharpe, 42d (index 0.63)Windows
steady and strong+2.2 ±0.8 (65%)+4.7 ±1.3 (85%)+6.7 ±1.3 (85%)+10.6 ±2.9 (80%)6.54x+12.918%0.6220
steady and middle+1.7 ±1.0 (65%)+3.2 ±1.1 (70%)+4.2 ±1.4 (70%)+6.7 ±2.2 (75%)3.35x+9.126%0.4520
steady and weak+0.7 ±0.6 (68%)+2.4 ±1.0 (68%)+5.7 ±1.6 (79%)+6.0 ±2.6 (74%)2.73x+12.853%0.5319
middle and strong+2.7 ±0.8 (80%)+3.5 ±1.0 (90%)+5.2 ±1.3 (75%)+8.1 ±2.3 (80%)4.37x+14.042%0.5920
middle and middle+0.6 ±0.8 (65%)+2.1 ±1.3 (65%)+4.0 ±1.8 (75%)+4.9 ±2.1 (70%)2.40x+8.844%0.3720
middle and weak+2.1 ±0.7 (80%)+3.0 ±1.0 (65%)+6.2 ±1.5 (85%)+7.1 ±2.0 (85%)3.71x+16.256%0.6020
erratic and strong+1.1 ±0.6 (67%)+2.1 ±0.9 (61%)+2.3 ±0.9 (72%)+2.9 ±1.4 (67%)1.62x+11.575%0.3618
erratic and middle+0.5 ±0.5 (70%)+1.6 ±0.7 (75%)+1.5 ±1.1 (65%)+2.4 ±1.6 (65%)1.54x+9.173%0.2920
erratic and weak+1.4 ±0.7 (75%)+2.3 ±1.2 (75%)+4.2 ±2.3 (65%)+5.4 ±3.8 (70%)2.32x+12.155%0.3720

Table 4. Arm A minus arm B, points a year, with the standard error of the difference across windows and the share of windows in which the screened book led. The screen costs the book return in 30 of 36 cells, 2.0 points a year on average; per dollar deployed the screened entries earn more (Tables 2 and 3, deployed columns).

Predictability and profitability5d10d21d42d
steady and strong-3.1 ±1.6 (30%)-4.5 ±1.7 (25%)-5.7 ±2.0 (20%)-1.9 ±1.4 (35%)
steady and middle-2.3 ±1.0 (25%)-1.0 ±1.0 (40%)-2.4 ±1.5 (30%)-3.3 ±1.7 (50%)
steady and weak-2.0 ±1.1 (37%)-3.9 ±1.6 (21%)-0.6 ±1.9 (47%)-2.9 ±2.5 (32%)
middle and strong+0.4 ±1.5 (50%)-0.9 ±2.3 (40%)-4.5 ±2.2 (25%)-4.1 ±2.2 (35%)
middle and middle-2.3 ±1.2 (35%)-2.1 ±1.7 (45%)-3.5 ±1.7 (30%)-2.7 ±1.7 (35%)
middle and weak-0.8 ±1.6 (45%)-0.9 ±2.0 (55%)-0.2 ±2.5 (55%)-1.1 ±3.0 (50%)
erratic and strong-0.8 ±1.6 (44%)+0.6 ±2.1 (56%)+1.1 ±3.2 (50%)-2.1 ±3.4 (39%)
erratic and middle-0.4 ±2.0 (55%)+0.2 ±2.4 (45%)-3.3 ±2.1 (30%)-9.1 ±3.8 (25%)
erratic and weak+0.3 ±2.4 (45%)+2.7 ±2.6 (55%)-1.1 ±2.4 (45%)-3.0 ±2.6 (35%)

Table 5. Arm A is the long-short book's long leg by construction: the same entries, the same sizing, no shorts. The long-short return minus arm A on the same windows is therefore the short leg's contribution, to the approximation that the two legs are struck on the same equity. Net exposure is the book's average long minus short weight. The hedged column is a separate sealed rerun of the same cell in which the book is charged that exposure times the S&P 500 total return every day; the difference column is hedged minus unhedged, window by window on the windows both books walked, with its standard error. The daily charge compounds with the book's own path, so the difference is not the sum of the daily charges; the difference is what the table subtracts. Names is the cohort's size at a typical anchor.

CohortLong-shortLong leg (arm A)Short legWindows short leg lostNet exposureHedged long-shortHedged minus unhedgedNamesEntries
steady and strong+6.6+10.6-4.015 of 20+38%+2.4 ±1.5 (60%)-4.2 ±1.757100
steady and middle+3.2+6.7-3.513 of 20+35%-0.5 ±2.2 (45%)-3.7 ±1.65186
steady and weak+3.6+6.0-2.416 of 19+13%+0.7 ±2.6 (63%)-2.9 ±1.12951
middle and strong+3.3+8.1-4.813 of 20+9%+1.6 ±1.4 (60%)-1.7 ±1.14973
middle and middle+1.2+4.9-3.714 of 20+7%-1.6 ±1.4 (45%)-2.8 ±1.24668
middle and weak+5.4+7.1-1.711 of 20-7%+4.2 ±2.7 (55%)-1.1 ±1.24060
erratic and strong+2.2+2.9-0.711 of 18-10%+3.5 ±1.6 (67%)+1.2 ±1.12938
erratic and middle-1.8+2.4-4.212 of 20-24%+0.1 ±2.0 (50%)+1.9 ±1.43648
erratic and weak-3.0+5.4-8.416 of 20-31%+2.3 ±3.5 (60%)+5.3 ±1.169100

Table 6. Steady and strong minus erratic and weak on the same sealed windows, points a year: the mean difference, its standard error across windows, the count of windows in which the steady corner led, and the one-sided sign test on that count (the chance of at least that many under a fair coin). Four books, four rungs; the hedged book was rerun at 42 days only.

Book5d10d21d42d
Long-short+1.1 ±1.6 (11 of 20, p 0.41)+1.8 ±2.5 (13 of 20, p 0.13)+3.4 ±2.8 (14 of 20, p 0.06)+9.6 ±4.2 (15 of 20, p 0.02)
Long-short, market hedgednot runnot runnot run+0.1 ±3.9 (8 of 20, p 0.87)
Top-quintile long (A)+0.7 ±0.9 (12 of 20, p 0.25)+2.4 ±1.4 (13 of 20, p 0.13)+2.5 ±2.4 (14 of 20, p 0.06)+5.1 ±3.9 (14 of 20, p 0.06)
Every announcement, long (B)+4.2 ±2.0 (13 of 20, p 0.13)+9.5 ±2.5 (17 of 20, p 0.00)+7.0 ±3.2 (17 of 20, p 0.00)+4.1 ±2.6 (14 of 20, p 0.06)

Table 7. Mean annual return across every cell in a row or column of the split, all four rungs pooled, percent a year net. Pooling across rungs is what makes the rows read cleanly; at 42 days alone three of nine every-announcement cells break the order (Section 4).

SliceLong-shortTop-quintile long (A)Every announcement (B)
Steady earnings+3.0+4.6+7.4
Middle+2.8+4.1+6.0
Erratic earnings+1.1+2.3+3.6
Strong profitability+3.2+4.4+6.6
Middle+1.5+2.8+5.5
Weak profitability+2.2+3.9+5.0

Table 8. Everything the family ran, counted: 9 cohorts by 4 rungs by 2 book shapes, one anchor, 72 cells, plus the nine long-short cells at 42 days rerun with the market hedge; the long-only study reports two arms, which is how 81 registered studies score 117 books. The explorer above draws the 108 books of the grid; the nine hedged reruns are in Table 5. The frozen inputs are the first paper's announcement-dated EPS with consensus and its quarterly dollar volume, plus the platform's point-in-time fundamentals, admitted only after each filing's SEC acceptance date. The family of 81 is declared on every page; an excluded window is a recorded outcome.

FactCount
Registered walk-forward studies81 (72 grid cells and 9 hedged rerun
Scored books (the long-only study re117
Sealed one-year windows1,620
Walked to a frozen run report1,593
Refused by the fifteen-name floor27
Long-short entries, unhedged and hed49,433 and 12,344
Every-announcement book entries126,380
Top-quintile book entries26,272
Index comparisons, paired windows20
Unit tests on the cohort nodes and t6 (20 in the module)
Defects fixed in rehearsal2
Walk failures in ~9 engine hours0

2.2  Per-step results

Table 9. One row per step, raw out-of-sample results. A short window can pair a negative return with a positive annualised Sharpe: at high daily volatility the arithmetic mean of daily returns sits above the compounded window return, and the Sharpe reads the former. Volatility drag, printed rather than smoothed.
#StepOut-of-sample window Sharpe
1 Earnings cohort · steady/strong · 42d · LS · step 1 2006-01-03 → 2006-12-29 0.52
2 Earnings cohort · steady/strong · 42d · LS · step 2 2007-01-03 → 2007-12-31 1.92
3 Earnings cohort · steady/strong · 42d · LS · step 3 2008-01-02 → 2008-12-31 0.05
4 Earnings cohort · steady/strong · 42d · LS · step 4 2009-01-02 → 2009-12-31 1.59
5 Earnings cohort · steady/strong · 42d · LS · step 5 2010-01-04 → 2010-12-31 1.38
6 Earnings cohort · steady/strong · 42d · LS · step 6 2011-01-03 → 2011-12-30 -0.04
7 Earnings cohort · steady/strong · 42d · LS · step 7 2012-01-03 → 2012-12-31 0.28
8 Earnings cohort · steady/strong · 42d · LS · step 8 2013-01-02 → 2013-12-31 2.05
9 Earnings cohort · steady/strong · 42d · LS · step 9 2014-01-02 → 2014-12-31 1.01
10 Earnings cohort · steady/strong · 42d · LS · step 10 2015-01-02 → 2015-12-31 0.04
11 Earnings cohort · steady/strong · 42d · LS · step 11 2016-01-04 → 2016-12-30 -0.31
12 Earnings cohort · steady/strong · 42d · LS · step 12 2017-01-03 → 2017-12-29 1.60
13 Earnings cohort · steady/strong · 42d · LS · step 13 2018-01-02 → 2018-12-31 0.17
14 Earnings cohort · steady/strong · 42d · LS · step 14 2019-01-02 → 2019-12-31 0.84
15 Earnings cohort · steady/strong · 42d · LS · step 15 2020-01-02 → 2020-12-31 0.45
16 Earnings cohort · steady/strong · 42d · LS · step 16 2021-01-04 → 2021-12-31 1.52
17 Earnings cohort · steady/strong · 42d · LS · step 17 2022-01-03 → 2022-12-30 -0.15
18 Earnings cohort · steady/strong · 42d · LS · step 18 2023-01-03 → 2023-12-29 0.76
19 Earnings cohort · steady/strong · 42d · LS · step 19 2024-01-02 → 2024-12-31 0.53
20 Earnings cohort · steady/strong · 42d · LS · step 20 2025-01-02 → 2025-12-31 0.45
Out-of-sample equity: normalised growth (1.00x = break even)0.76x1.01x1.25xbars into the window →
Figure 3. 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.

2.3  Search accounting

This paper's search is a declared family: the earnings-cohort grid, one pre-registered design: nine cohorts of the point-in-time S&P 500 (three earnings-predictability terciles crossed with three gross-profitability terciles) at four holding rungs in two book shapes, 72 cells, plus the nine long-short cells at 42 days rerun with their market exposure hedged, 81 sealed studies in all, every one reported, counted at N = 81 evaluated books. Every member is either a registered walk with its own sealed hypothesis and frozen record, or a derived average computed from those frozen records; every member is reported, in the family matrix table and the robustness figure, and none was selected away. The count is declared by the author rather than derived from one project's ledger, because the members are sibling registered studies; the declaration names them and is frozen in this artifact. A conservative deflated-Sharpe adjustment for this N appears once, in Appendix A. What the source strategy's author searched before publishing is not knowable from here and is not counted. The registered per-step record below still guarantees each window's hypothesis was hashed and registered before that window was scored.

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

The sentence below is the registration record, generated when the circuit was sealed and printed verbatim; the authored description of the design is Section 1.

S&P 500, evaluated, and run out-of-sample from the anchor: anything the design estimates from history, where it estimates at all, 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, is expected to generate positive risk-adjusted returns over the forward test window.

The frozen circuit, data flows left to rightuniverse: click for detailsuniversecustom cohort book: click for detailscustom cohort bookcustom cohort event backtest: click for detailscustom cohort event backtestportfolio forward autopsy: click for detailsportfolio forward autopsy
Figure 4. The frozen circuit, every node a primitive, every wire a typed data-flow. 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.
Custom Cohort Book, Splits the point-in-time index at the anchor into terciles of earnings predictability (the spread of a name's own last eight forecast errors over its mean estimate) crossed with terciles of gross profitability from the point-in-time factor lane, and keeps one cell; a name missing either score is refused.
Custom Cohort Event Backtest, The announcement book on whichever names are wired in: each enters at the close of the first session its number is known and holds exactly the rung, qualified against the whole index's trailing-year SUE quintiles so every cohort faces the same bar; a window with fewer than fifteen announcing names is excluded.
Portfolio Forward Autopsy, The post-mortem, where the forward test’s return actually came from.

The objective and the search

UniverseS&P 500 index constituents.
Validation & out-of-sampleannouncement forward test (each name entered at the close of the first session its number is known, held 42 trading days, long short book, one-year window from the anchor).
Other componentsForward-test autopsy: Portfolio Forward Autopsy; Study: Cohort announcement book, Cohort book (predictability x quality).

Cost elements are wired into the circuit, the realised drag is reported per step in Appendix B.

Show the mathematics, 4 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  Custom Cohort Book

Splits the point-in-time index at the anchor into terciles of earnings predictability (the spread of a name's own last eight forecast errors over its mean estimate) crossed with terciles of gross profitability from the point-in-time factor lane, and keeps one cell; a name missing either score is refused.

3.3  Custom Cohort Event Backtest

The announcement book on whichever names are wired in: each enters at the close of the first session its number is known and holds exactly the rung, qualified against the whole index's trailing-year SUE quintiles so every cohort faces the same bar; a window with fewer than fifteen announcing names is excluded.

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

4.1  Findings

The long-short grid is Table 1, and its rows are the first thing a reader meets: the steady row averages +3.0 a year net across its twelve cells, the middle row +2.8, the erratic row +1.1. The steady, strong corner climbs with the holding period, +2.1 at five days, +3.9 at ten, +4.8 at a month and +6.6 (±1.6) at two, positive in 15 of twenty windows at 42 days; the erratic, weak corner peaks at ten days at +2.1 and reverses to -3.0 (±3.8) at two months. On the same twenty windows the steady corner leads by +1.1, +1.8, +3.4 and +9.6 points at the four rungs, ahead in 11, 13, 14 and 15 of twenty; at 42 days the sign test puts the count at p = 0.02 (Table 6). Compounded across the stitched windows the steady, strong cell grows one dollar to 3.45x and the erratic, weak cell to 0.42x, against 7.80x for the index.

Arm A of the long-only pair is the long-short book's long leg by construction, the same entries at the same sizing without the shorts, so the long-short return minus arm A on the same windows is the short leg. At 42 days it loses in all nine cohorts: 4.0 points a year in the steady, strong corner, 8.4 in the erratic, weak corner, where the long leg alone returns +5.4 (Table 5, Figure 3). Shorting misses lost money in every population and lost most where earnings were least predictable, because clearing an index-wide bar from an erratic earner takes a wide miss, and wide misses move on the day and recover.

Nine more sealed studies rerun the 42-day long-short cells with a daily hedge: the book is charged its net exposure times the S&P 500 total return, debited on a net-long day in a rising market and credited on a net-short one. Table 5 prints the unhedged and hedged books on the same windows and their difference. The steady, strong book ran 38 percent net long; the hedge took 4.2 points a year (±1.7), leaving +2.4 (±1.5), positive in 12 of 20 windows. The erratic, weak book ran 31 percent net short; the hedge gave it 5.3 points, taking it from -3.0 to +2.3. The corner gap of +9.6 ±4.2 becomes +0.1 ±3.9, the steady side ahead in 8 of 20, and the hedged rows read steady +0.9, middle +1.4, erratic +1.9, with 7 of the nine hedged books positive and no ordering by predictability left. The 42-day spread between predictable and erratic earners in the long-short book was net exposure, 64 percent of the steady corner's return; what the hedge leaves is a small announcement premium in most cohorts, a point or two a year, that costs of 0.5 points already eat into.

Inside each cohort the top-quintile book trails the every-announcement book by 2.0 points a year on average, in 30 of 36 cells; in the steady, strong cohort at 21 days the gap is 5.7 (Table 4). The screen is not picking worse announcements. Per dollar deployed the screened entries earn more, +14.6 a year across the grid against +9.9 for the unscreened book (the grid means over the grid deployed shares), and at 42 days +12.9 against +13.2 in the steady, strong cohort. What the screen does is leave the book idle: a top-quintile bar on the whole index admits few names per cohort, so the screened book holds 75 percent of its capital in cash on an average day against 43 for the unscreened one, and idle cash earns nothing in this engine. Crediting the idle gap at the era's bill rate, about 1.5 percent a year, returns 0.5 of the 2.0 points; at today's rates it would return most of them. The exceptions sit in the erratic row at the short rungs, where the screen adds a point or two to the book as well.

The long books are reported on three bases because they do not agree, and against the index, which is the benchmark this family recorded (Tables 2 and 3). Every announcement of the steady, strong cohort held 42 days made +12.5 a year (±3.5) against +12.4 for the index on the same windows, ahead in 9 of twenty; compounded it grew one dollar to 8.76x against 7.80x; its pooled daily Sharpe was 0.68 against the index's 0.63. Across the 36 every-announcement cells 1 finished ahead of the index on the mean of windows and 3 compounded higher; the top-quintile book trails on both in every cell, with 82 percent of its capital deployed in the steady, strong cohort at 42 days and +12.9 earned on it. On row means the every-announcement book orders by predictability at 42 days, steady +10.5, middle +9.4, erratic +8.4, and on deployed capital +11.7, +10.2, +9.5; three of the nine cells break the pattern at that rung, the erratic and middle cell at +11.5 above steady and middle at +10.0 and steady and weak at +8.9. That ordering is a return spread between the cohorts as populations. At 42 days the book holds about 95 percent of the cohort with a lag, so what it measures is mostly the cohort. The comparison that would isolate the announcement, each cohort's book against the same cohort held outright over the same windows, is not in this family and is not claimed.

Predictability is measured on the same eight-quarter error history the SUE denominator uses, so with an index-wide bar a steady name enters on a small dollar surprise and an erratic name only on a large one; steady versus erratic is partly small versus large absolute surprise. Table 5 shows it in the entry counts: the steady, strong cohort made 100 long-short entries a window and the erratic, strong cohort 38. Arm B applies no surprise screen and is immune to the objection; its rows order the same way on pooled means, +7.4 against +3.6 (Table 7), and what that ordering is made of is the question the previous paragraph leaves open.

Profitability is the secondary axis. Across the long-short book the strong column averages +3.2, the weak +2.2 and the middle +1.5: not monotonic, and in the screened long book the middle tercile is again the weakest. Hedged, the middle column is the one negative column (-0.7 against +2.5 and +2.5). Profitability sharpens the steady row in the long books and ranks nothing on its own.

The cohorts are unequal because the two properties are correlated: steady earners are more often profitable and erratic earners more often weak, so the agreeing corners hold 57 and 69 names at a typical anchor and the disagreeing corners 29 and 29 (Table 5). The fifteen-name floor refused 27 windows in all, every one in the two small corners, and every one is printed. Beats dominate the steady cohorts and misses the erratic ones, which is where the net exposure in Table 5 comes from: 5 of the nine long-short books ran net long on average. Costs drag the long-short book 0.5 points a year on average.

4.2  Interpretation

The result is a decomposition, and it is not the one either literature asked for. Bhushan and Mendenhall put the drift where arbitrage is hard, Cao and Narayanamoorthy where the surprise is informative, and the unhedged long-short grid seemed to answer for the second: the steady corner kept going for two months and the erratic corner reversed. Nine sealed reruns with the market exposure charged take that answer away. The steady corner was net long and the erratic corner net short in a market that returned +12.4 a year, and once the exposure is charged the two corners sit +0.1 ±3.9 apart. What the announcement trade paid, hedged, is a point or two a year in most cohorts, before the question of which population earned it can be asked.

What a practitioner takes from it. A long-short drift book confined to predictable earners is not a predictability spread; sized to the hedged number it is a small premium that costs of 0.5 points a year already eat into, and the short leg lost in every cohort. The surprise screen belongs on the entry and not on the book: it raises the return per dollar deployed from +9.9 to +14.6 across the grid and lowers the book's return by 2.0 points because the capital it does not deploy earns nothing here; a book that keeps its idle capital in bills recovers 0.5 of those points in this era and most of them at today's rates. Long only, the announcement anchor bought little beyond the index: the best every-announcement book matched it on the mean of windows and beat it compounded, and the rest trailed on both bases.

Where it leaves the first paper. The sector grid said Technology and Industrials carried the announcement drift and Utilities reversed. Read through this grid, part of that was composition, sectors full of steady, profitable earners against a sector of regulated, low-surprise names, and part of it was the same net exposure this paper charges; the sector paper did not run the hedge, and its long-short cells should be read with this one's Table 5 beside them.

Where the ordering stands. The every-announcement books of the steady cohorts returned more than those of the erratic cohorts at every rung on pooled means, and three of nine cells break it at 42 days. At that rung the book holds most of the cohort with a lag, so the ordering is a return spread between predictable, profitable large caps and erratic, weak ones over 2006 to 2025, with an announcement label. Whether the announcement adds anything to owning the cohort is the comparison this family did not record, each cohort's book against the same cohort held outright on the same windows, and it is the check the next registration carries.

What a reader can check: every one of the 81 cells is a page on this platform with its sealed prospectus, its per-window reports, its exclusions printed, and the family of 81 in the footer. This page is the steady, strong long-short cell at 42 days. The first paper, its frozen tables and its 220 cells are at https://quanterlab.com/research/post-earnings-drift-by-sector-walked-220-times-under-two-anchors-dead-at-the-for.

This study is one member of a declared search family: the same design walked at several sealed settings across sibling registered projects, every member either a registered walk with its own frozen record or a derived average of those records, and every member reported. The family size is declared by the author and named in the lineage; it is the search-accounting count for this paper. What was searched before the source strategy was published is not knowable from here and is not counted.

4.3  Limitations

One era: 2006 through 2025, one bull-heavy market regime in which the index returned +12.4 a year on these windows and compounded to 7.80x, twenty windows per cell, and the standard errors in the tables are across those twenty windows. The two small corners, steady and weak and erratic and strong, hold about 29 names at a typical anchor and lose one or two windows each to the fifteen-name floor; every exclusion is printed. Daily closes only: entry is the close of the first session the announcement is known, so the overnight gap and the first day's reaction are excluded by construction, which understates what faster execution captures. Costs are tiered spreads without market impact, fair for large-cap books of this size and untested at scale; borrow is a flat fifty basis points. One surprise measure, one predictability measure and one profitability measure by design; other definitions were not run and are not claimed. The consensus history is one vendor's record.

The long books have no cohort-held benchmark in this family: the recorded benchmark is the index, and at 42 days the every-announcement book holds about 95 percent of the cohort with a lag, so its ordering across cohorts is a spread between the cohorts as populations and the announcement's own contribution is not separated. The long-short book floats its legs; the leg decomposition in Table 5 assumes the two legs are struck on the same equity, which holds to the sizing rule's approximation. The hedge charges net dollar exposure against the index, not an estimated beta per name, so a book of high-beta names keeps some market in it after the charge; it was run at the 42-day rung only. Idle cash earns nothing in this engine, which understates every long book against an investor who parks cash in bills, by about 0.5 points a year on the idle gap between the two long books in this era.

Where the story stops: the grid is measured, and nothing here has been deployed.

References

QuanterLab reference architecture
  1. Bailey, D. H., & López de Prado, M. (2014). The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting, and Non-Normality. Journal of Portfolio Management, 40(5), 94–107. doi:10.3905/jpm.2014.40.5.094
  2. 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.
  3. 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
  4. 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. Ball, R., & Brown, P. (1968). An empirical evaluation of accounting income numbers. Journal of Accounting Research, 6(2), 159-178. (First documentation of drift in the direction of the earnings news after the announcement.)
  2. Bernard, V. L., & Thomas, J. K. (1989). Post-earnings-announcement drift: delayed price response or risk premium? Journal of Accounting Research, 27, 1-36. (The drift concentrated in the weeks after the announcement.)
  3. Bhushan, R. (1994). An informational efficiency perspective on the post-earnings announcement drift. Journal of Accounting and Economics, 18(1), 45-65. (The drift larger where the cost of trading against it is higher.)
  4. Mendenhall, R. R. (2004). Arbitrage risk and post-earnings-announcement drift. Journal of Business, 77(4), 875-894. (The drift concentrated where idiosyncratic risk deters arbitrage.)
  5. Zhang, X. F. (2006). Information uncertainty and stock returns. Journal of Finance, 61(1), 105-137. (Greater uncertainty, larger drift after news.)
  6. Chordia, T., Goyal, A., Sadka, G., Sadka, R., & Shivakumar, L. (2009). Liquidity and the post-earnings-announcement drift. Financial Analysts Journal, 65(4), 18-32. (The drift concentrated in illiquid names once trading costs are charged.)
  7. Cao, S. S., & Narayanamoorthy, G. S. (2012). Earnings volatility, post-earnings announcement drift, and trading frictions. Journal of Accounting Research, 50(1), 41-74. (Lower earnings volatility, more informative surprises, larger drift.)
  8. Novy-Marx, R. (2013). The other side of value: the gross profitability premium. Journal of Financial Economics, 108(1), 1-28. (Gross profit over assets as the quality measure.)
  9. Martineau, C. (2021). Rest in peace post-earnings announcement drift. Critical Finance Review (SSRN 3111607). (Drift in large caps shrank toward zero on standard designs.)
  10. QuanterLab (2026). Post-earnings drift by sector, walked 220 times under two anchors. https://quanterlab.com/research/post-earnings-drift-by-sector-walked-220-times-under-two-anchors-dead-at-the-for (The first paper in this series: the anchor result and the frozen tables this grid reuses.)

Appendix A  Reproducibility in QuanterLab

Conservative upper-bound adjustment. Deflating the pooled Sharpe of 0.57 for the declared family count of N = 81 gives a 54% probability that the result is genuinely positive rather than the best of N noisy draws (Bailey & López de Prado, 2014), the strategy does not clear the multiple-testing correction on its own pooled Sharpe. Registered candidates are heavily correlated (near-identical variants), so this deflation is an upper bound on the multiple-testing penalty, not a precise correction; the raw count in §2.3 is the primary artifact.

Each step is backed by a frozen run report. The study is re-derivable from the ledger below.

#CommitReportAnchorOOS window
1 429fd07697e2 6717 2006-01-01 2006-01-03 → 2006-12-29
2 50a4537db003 6719 2007-01-01 2007-01-03 → 2007-12-31
3 15785ba4488f 6721 2008-01-01 2008-01-02 → 2008-12-31
4 34ff9fcac864 6723 2009-01-01 2009-01-02 → 2009-12-31
5 28737c02f151 6725 2010-01-01 2010-01-04 → 2010-12-31
6 802b39b92bd4 6727 2011-01-01 2011-01-03 → 2011-12-30
7 bf92dce807e2 6729 2012-01-01 2012-01-03 → 2012-12-31
8 d3bea5f20df9 6731 2013-01-01 2013-01-02 → 2013-12-31
9 aa897172a12b 6733 2014-01-01 2014-01-02 → 2014-12-31
10 896ca1fc5e03 6735 2015-01-01 2015-01-02 → 2015-12-31
11 243d47e5aa7e 6737 2016-01-01 2016-01-04 → 2016-12-30
12 abdd75b77d8e 6739 2017-01-01 2017-01-03 → 2017-12-29
13 b22357a7f4e0 6741 2018-01-01 2018-01-02 → 2018-12-31
14 6e71b788a1d2 6743 2019-01-01 2019-01-02 → 2019-12-31
15 ff1fbd92a969 6745 2020-01-01 2020-01-02 → 2020-12-31
16 44eacd07249c 6747 2021-01-01 2021-01-04 → 2021-12-31
17 17c89e26cf87 6749 2022-01-01 2022-01-03 → 2022-12-30
18 4a7c74e9ab1e 6751 2023-01-01 2023-01-03 → 2023-12-29
19 b68f819c450c 6753 2024-01-01 2024-01-02 → 2024-12-31
20 cd2a10c81c52 6755 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.

“S&P 500, evaluated, and run out-of-sample from the anchor: anything the design estimates from history, where it estimates at all, 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, is expected to generate positive risk-adjusted returns over the forward test window.”

The same hypothesis was registered independently at every step, hashed before each step's out-of-sample window was scored:

Table 10. 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-09-05 16:31:25 2026-09-05 16:31:40
2 2007-01-012026-09-05 16:31:40 2026-09-05 16:31:55
3 2008-01-012026-09-05 16:31:56 2026-09-05 16:32:11
4 2009-01-012026-09-05 16:32:11 2026-09-05 16:32:26
5 2010-01-012026-09-05 16:32:26 2026-09-05 16:32:41
6 2011-01-012026-09-05 16:32:41 2026-09-05 16:32:56
7 2012-01-012026-09-05 16:32:56 2026-09-05 16:33:11
8 2013-01-012026-09-05 16:33:11 2026-09-05 16:33:26
9 2014-01-012026-09-05 16:33:26 2026-09-05 16:33:41
10 2015-01-012026-09-05 16:33:41 2026-09-05 16:33:56
11 2016-01-012026-09-05 16:33:56 2026-09-05 16:34:11
12 2017-01-012026-09-05 16:34:11 2026-09-05 16:34:27
13 2018-01-012026-09-05 16:34:27 2026-09-05 16:34:42
14 2019-01-012026-09-05 16:34:42 2026-09-05 16:34:57
15 2020-01-012026-09-05 16:34:57 2026-09-05 16:35:12
16 2021-01-012026-09-05 16:35:12 2026-09-05 16:35:27
17 2022-01-012026-09-05 16:35:27 2026-09-05 16:35:42
18 2023-01-012026-09-05 16:35:42 2026-09-05 16:35:57
19 2024-01-012026-09-05 16:35:57 2026-09-05 16:36:12
20 2025-01-012026-09-05 16:36:12 2026-09-05 16:36:27

Appendix B  Per-step diagnostics

Realized in the projection tables below is the risk engine scoring its own forecast: the buy-and-hold return of the segment that followed each rebalance, on the same gross basis the cone was projected on. It is deliberately not the charged, calendar-window total return the study’s tables print, so the two will not reconcile line by line; the cone and its outcome share one basis, which is what a calibration test requires. Each row names its segment’s span so a boundary session is visible.

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.

Open the full per-step grid (20 steps: every rebalance, capital routing and sizing, per window)

Step 1 · 2006-01-03 → 2006-12-29

Portfolio book, rebalanced event · 37 names held · selection: announcement · 34.6% in cash · cost drag 0.5% · 1 name dropped at load (38 selected, 37 held across the window), weights renormalised onto the rest

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

Portfolio book, rebalanced event · 40 names held · selection: announcement · 28.0% in cash · cost drag 0.53% · 1 name dropped at load (41 selected, 40 held across the window), weights renormalised onto the rest

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

Portfolio book, rebalanced event · 39 names held · selection: announcement · 22.5% in cash · cost drag 0.56% · 1 name dropped at load (40 selected, 39 held across the window), weights renormalised onto the rest

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

Portfolio book, rebalanced event · 40 names held · selection: announcement · 21.4% in cash · cost drag 0.52% · 1 name dropped at load (41 selected, 40 held across the window), weights renormalised onto the rest

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

Portfolio book, rebalanced event · 45 names held · selection: announcement · 16.3% in cash · cost drag 0.68%

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

Portfolio book, rebalanced event · 50 names held · selection: announcement · 10.1% in cash · cost drag 0.72%

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

Portfolio book, rebalanced event · 47 names held · selection: announcement · 20.7% in cash · cost drag 0.59% · 1 name dropped at load (48 selected, 47 held across the window), weights renormalised onto the rest

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

Portfolio book, rebalanced event · 56 names held · selection: announcement · 16.3% in cash · cost drag 0.75%

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

Portfolio book, rebalanced event · 47 names held · selection: announcement · 18.6% in cash · cost drag 0.7%

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

Portfolio book, rebalanced event · 51 names held · selection: announcement · 18.3% in cash · cost drag 0.64% · 1 name dropped at load (52 selected, 51 held across the window), weights renormalised onto the rest

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

Portfolio book, rebalanced event · 55 names held · selection: announcement · 17.0% in cash · cost drag 0.65% · 1 name dropped at load (56 selected, 55 held across the window), weights renormalised onto the rest

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

Portfolio book, rebalanced event · 51 names held · selection: announcement · 17.1% in cash · cost drag 0.63%

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

Portfolio book, rebalanced event · 58 names held · selection: announcement · 11.8% in cash · cost drag 0.54%

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

Portfolio book, rebalanced event · 44 names held · selection: announcement · 17.6% in cash · cost drag 0.48%

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

Portfolio book, rebalanced event · 60 names held · selection: announcement · 10.1% in cash · cost drag 0.6%

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

Portfolio book, rebalanced event · 41 names held · selection: announcement · 31.0% in cash · cost drag 0.36%

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

Portfolio book, rebalanced event · 55 names held · selection: announcement · 15.1% in cash · cost drag 0.59%

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

Portfolio book, rebalanced event · 47 names held · selection: announcement · 12.2% in cash · cost drag 0.46%

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

Portfolio book, rebalanced event · 61 names held · selection: announcement · 12.5% in cash · cost drag 0.46%

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

Portfolio book, rebalanced event · 61 names held · selection: announcement · 10.0% in cash · cost drag 0.46%

QuanterLab · Study 52d50a0855ae · compiled September 06, 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.