Skip to the ledger
Ayan Jain · Backtest Audit
A public ledger of dead strategies

The Graveyard.

"The graveyard is the most informative dataset I own, and almost nobody keeps one."

155 STRATEGIES · 112 ENTRIES · 2,123 CONFIGS · 12 SURVIVED · 5 RETRACTIONS

More strategies than entries, because fourteen entries are families: one row can hold eleven separate ideas. The ledger reported 112 until the bundles were expanded by hand. And the true configuration count is higher still, because before this ledger existed the discarded variants were never counted at all. Both admissions are the artifact's own thesis applied to itself.

Every verdict with its numbers. Every failure on the record. Every retraction in public.

I · Why publish failures

Everyone publishes their wins. Nobody publishes their denominator.

That asymmetry is survivorship bias applied to research itself, and it is the reason most published backtests cannot be trusted: you are looking at the best row of a table you were never shown. This page is the table.

I run a systematic book on Indian markets and a research process that kills most of what it touches. The kills are not the waste product of that process; they are most of what the process knows. A strategy that survived 143 funerals means something different from a strategy that survived none.

II · If you only read six

Six graves to start with.

Each card links to its row. The other 79 are below, and the ledger search finds anything.

III · The credibility core

Five times the test itself was wrong, and I said so in public.

Kills prove discipline. Retractions prove the discipline points at me too.

G-052 · RETRACTED 2026-07-26 The dump-day short

A +50bps/day intraday short printed t=5.1 and survived a first audit. It used full-day volume inside a 09:45 entry signal: the volume was caused by the outcome it predicted. The point-in-time version loses 15bps/day. Retracted with its entire downstream: pro-forma Sharpes, a 25.5% CAGR three-way book, a leverage plan. It propagated four working sessions before I caught it. That is the honest speed of these errors.

G-053 · RETRACTED 2026-07-26 The pump-long twin

Same look-ahead, opposite sign: claimed +64bps at t=7.4, point-in-time reality -48bps at t=-11.9. A signal that flips from monster to disaster under a timestamp audit was never a signal.

G-014 · RETRACTED 2026-07-28 The Kelly-Jiang mechanism claim

My published explanation for why a paper failed to replicate in India, circuit-band censoring, was itself wrong: censoring is ~4% and the effect was threshold geometry. Retracted the explanation, kept the kill.

G-092 · RETRACTED 2026-07-24 The cost-shifted t-stat

I t-tested a return series with a constant cost subtracted, which inflates |t| mechanically. Raw t was insignificant. Standing rule born: significance on raw returns, profitability on net, never t-test a deterministic constant.

G-103 · RETRACTED 2026-07-25 The double-counted lever

I proposed a new structural improvement that was already live in the book's canonical configuration, and retracted the pro-forma. Read the live config before proposing structure.

If you have never retracted anything,
you have not looked hard enough at your own work.
IV · The ledger

112 rows, grouped by cause of death.

85 rows publish below, in full or in redacted form. 24 sit too close to the live book and are withheld pending leak review: counted here, never hidden, and they publish redacted as review completes. A further 3 are business and go-to-market kills rather than strategy tests, so they are counted but not shown, because nothing in them is usable by anyone reading this. Configs counts preregistered cells actually run. Click any row for its full card; click an id to link straight to that grave. Detailed autopsies are being added over time.

Nothing there

51no-signal

the hypothesis produced nothing once artifacts and controls were applied

idkilledhypothesisclasspreregistered barverdict, with numbersconfigsreceipt

Option-seller "adjustments" (roll untested in) improve VRP shape

killed2026-07-30classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barbeat static on mean AND p5, netverdictmean 10.3 to 0.8 pts/wk, tail WORSE (-481 vs -428)configs run2 runs x 256 cyclesreceiptHUNT_LEDGER K4

Convert-to-fly on breach

killed2026-07-30classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barsameverdictworst week of program (-680 vs -428 static)configs run256receiptK4

Stop-at-2x-credit on weekly strangle

killed2026-07-30classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barsameverdicttail identical to static, mean -1.8; stops fire post-extractionconfigs run256receiptK4

Zero-hero: expiry-day ATM straddle, tiered exits (8x/5x/4x)

killed2026-07-30classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barmean net > 0, t≥2verdictall 6 exitxentry cells negative; tiers hit 3-9% of expiriesconfigs run6 x ~256receiptK5

ATM CE/PE parity gate improves expiry-day entries

killed2026-07-30classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bargated beats ungatedverdictgate deletes 84% of days, adds nothing (subsample noise)configs run2receiptK5 audit

Zero-hero OTM ladder (ATM+1/+2/+4, distance + premium-targeted)

killed2026-07-30classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barany cell mean>0 t≥2verdict18+6 cells all negative, t to -10.7; monotone worse further OTMconfigs run24receiptK6

"Buy cheap gamma" conditioning on expiry afternoons

killed2026-07-30classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barcheap quintile ≥ 0verdictINVERTED: cheapest quintile worst (-131 to -160% of outlay)configs run20receiptK6b

Week-1 expiry long strangles (far-week premium cheap)

killed2026-07-29classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bark1-2 ratio ≠ theoreticalverdictratio 0.6746 vs 0.6745 median-|z| - priced to 4 decimalsconfigs run4receiptK2

F&O-inclusion repricing (+10%/60d, shortability story)

killed2026-07-29classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barsurvive momentum-matched controlverdictt=6.51 raw to control -0.5; 219 events = 39 waves; momentum in costumeconfigs run6receiptK3 + fo_inclusion_test
F&O-inclusion repricing, +10% in 60 days, t=6.5. Died to a momentum-matched control: the event was carrying a factor, not an edge.

200-EMA touch = support (the folklore)

killed2026-07-31classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bartouch beats near-miss control t≥2verdicttouch +0.23% vs control +0.39% fwd10, t -2.5; hold rate 36.7%configs run5receiptema200_test
The most-watched line on retail charts. Touches lose to a near-miss control that holds nothing: the folklore fails its own bar.

The 200 specifically is special vs unwatched lengths

killed2026-07-31classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar200 beats placebo family beyond their spreadverdict150/175/225/250 hold 36.3/36.4/36.3/35.9 vs 36.7 - inside noiseconfigs run5receiptema200_test

Confirmation pairing rescues EMA touches (RSI/volume)

killed2026-07-31classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barany pairing beats plain controlverdictall pairings ≤ +0.50 vs control +0.59 (PIT-500 harmonized: vol combo -0.01)configs run8receiptema200_paired + harmonized

Retail TA battery long entries (RSI<30, MACD cross, BB touch, golden cross, 55d, vol-chase)

killed2026-07-30classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barany |t|≥3 positiveverdictnothing positive clears; significant cells all NEGATIVE (BB -0.70%/21d t-5.1)configs run14receiptta_battery

Indicator confluence (3-4 agreeing = high-probability setup)

killed2026-07-30classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barmonotone improvement in k, top cell t≥2.3verdictV-shaped: k=2 worst cell of program (-0.60%/21d t-5.2); k=3-4 positive but ~once/stock/decade, thin after costsconfigs run16receiptta_confluence

Directional time-of-day edge on NIFTY

killed2026-06-20classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barP(close>open | window) ≠ .5verdictP = .508; nothing tradableconfigs run~10receiptpattern scan

Options-sentiment cross-sectional contrarian L/S

killed2026-07-02classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barsurvive senior-audit noise barverdictSh +0.59 gross, cut as noise at audit (corr-to-mom +0.10)configs run~8receiptoptions_sentiment memory

Participant-wise options positioning signal

killed2026-07-0xclassno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barsurvive auditverdictinitial WIN, cut as noise at senior auditconfigs run~6receiptin_hand_signal memory

Rollover % as signal

killed2026-07-0xclassno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barIC t≥2verdictkilledconfigs run~4receiptin_hand memory

Promoter-stake change (SHP) as signal

killed2026-07-0xclassno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barIC t≥2verdictkilled at F&O-shortable universe (t 1.22)configs run~6receiptin_hand memory

Delivery-conviction short signal

killed2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barsurvive on BORROWABLE universe (SLB re-open TESTED)verdictpaper t3.75 to borrowable non-F&O short-excess +0.1%/yr t0.0 hit48. The t lived in the untradeable illiquid tailconfigs run~10receiptKILL_AUDIT prize test

Promoter-selling short cluster

killed2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barsameverdictborrowable universe short-excess +0.1%/yr t0.0 - same illiquid-tail evaporation. Generalization: SLB unlocks EVENTS, never continuous cross-sectional selectionconfigs run~10receiptsame

Multi-asset CTA sleeve

killed2026-07-0xclassno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered baradds to frontierverdictkilled (thin, redundant)configs run~8receiptdiversifier notes

Book-level vol targeting

killed2026-07-0xclassno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barimproves after diversificationverdictredundant once diversified; killedconfigs run~4receiptdiversifier notes

FX F3/F4/F5 (breadth campaign)

killed2026-07-18classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barprereg barsverdictall three killed at preregistered bars; two adjacent candidates frozen or parked, identities withheldconfigs run~15receiptfx_prop memory

I1 intraday cross-sectional reversion (fade morning move into close)

killed2026-07-25classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barnet ≥ +12bps, t≥3 grossverdictcorr(morning,afternoon) +0.002; net -27bps/dconfigs run~8receiptINTRADAY_HUNT B1

I3 opening-range breakout/reversion

killed2026-07-25classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barsame barsverdictcorr +0.008; deadconfigs run~6receiptsame

PIT trailing-volume rescue of continuation/reversion

killed2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barPIT filters revive edgeverdictcontinuation WORSE with every filter; reversion-long = IS+/OOS- falling-knife lottery (median -63bps, win 38-44%)configs run~12receiptrescue attempt

OFS-day intraday short (scheduled forced-flow)

killed2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barnet > 0 tradeableverdictstock RISES on OFS day intraday (short -65bps t-3.1); anticipated flow is priced at the openconfigs run~6receiptfinal kills

F&O ban-list entry short

killed2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bartradeable 09:45 entryverdict-6bps t-0.7 (drift spent by 09:45, open artifact); stop HURTSconfigs run~6receiptsame

Option scalping - BUYING ATM intraday (mom/rev/burst, 0DTE+weekly)

killed2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barany cell positiveverdictevery cell negative (t -3.6 to -9.5, win 35-42%); bigger burst = worse (buying tops of mean-reverting moves); theta + double-spread + reversion all against buyerconfigs run~24receiptscalp mine

Cross-sectional options-positioning micro panel (OI/PCR/IV/skew/buildup)

killed2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barOOS-replicateverdictNONE replicate (signs flip train/test)configs run~27receiptmicro mine

Directional macro cues (SP500/VIX overnight to NIFTY intraday)

killed2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barPIT tradeable directionverdictpredicts the GAP only (+53% t22 = priced at open, untradeable); open-to-close is noise. 3rd look-ahead caught pre-claimconfigs run~10receiptmacro mine

Bulk-deal net-flow signal

killed2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barorthogonal to owned factorsverdictdecade-STABLE IC -4.62 t-5.7 (both halves!) BUT net-of-reversal t-0.7 = reversal in disguise. Decade-stable and still redundantconfigs run~8receiptbulk mine

Sell calls on insider-flagged "won't rise" names

killed2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barinsider adds to call-selling EVverdictINVERTED: the insider signal adds ~0 to call-selling EV; the edge that exists is tail-shape, not directionconfigs run~18receiptsell_calls_insider

Wrong-signed factor family: quality, accel, lowvol-as-RETURN, breakouts, buy-the-middle, India-continuation-not-reversion

killed≤2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdicteach carried the OPPOSITE sign OOS or in controlsconfigs run~6receiptKILL_AUDIT B1

OOS-collapse family: Follow-FII, Follow-Pro, resmom, most C-series, value_ey

killed≤2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdictpositive IS, dead OOS - the classicconfigs run~8receiptB1 + prereg batches

"Refine the graveyard" itself (the meta-hypothesis)

killed2026-07-26classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdictrefinement rescued NOTHING; every fixable-how was already refined to its next wall at kill time. The audit (re-classify by death reason) found the one dividend, refinement found zeroconfigs runn/areceiptKILL_AUDIT bottom line

H2: expiry-day pin drift via futures

killed2026-07-02classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barhit ≥55%, monotone in GEXverdictnon-monotone noise, hit 48%configs run5receipth2_pin

H3: VRP roll-timing upgrade

killed2026-07-02classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar≥0.1%/cycle improvementverdict<=5bps/cycle, under the barconfigs run10receipth3_rolltime

H4: conditional overnight-gap continuation (gap x GEX)

killed2026-07-02classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barconditioning separatesverdictnegative everywhere that matters; gaps fadeconfigs run6receipth2_pin_h4_gap

H5: open-auction IV-overshoot fade

killed2026-07-02classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered barnet Sharpe ≥1.5verdict"overshoot" is information, not dislocation: hit 33%, Sharpe -2.5 WRONG WAYconfigs run4receipth3_h5

Circuit-lock continuation long (E16)

killed2026-07-23classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdictKILL with sign REVERSED: next-open buying loses, t_raw ≈ -16 (reversal real, the opposite trade is cost-walled)configs run~6receiptE16

IPO lock-in expiry supply dip (E8)

killed2026-07-23classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdict1,189 proxy events: no dip at proxy precisionconfigs run~4receiptE8

Seasonal tilt inside live composite (C1-v2)

killed2026-07-24classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdictfails inside the composite; C1 family closes fullyconfigs run~5receiptC1-v2

MCX EOD momentum TS+XS (C6)

killed2026-07-24classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdictTS +0.3%/yr t0.08, XS -1.0% t-0.36; consistent with 6-name breadth floorconfigs run~4receiptC6

Crash tail-typing flags (options/basis/compression)

killed2026-07-24classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdictALL THREE fail as flags; "far from flag-grade"configs run~9receipttail-typing

Correlation-regime reversion + index lead-lag + flow persistence

killed2026-07-20classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdictclean DOWN moves do NOT revert (sign wrong, era-flips -1.03/+0.43/+0.59); lead-lag killed; flow-persistence deadconfigs run~15receiptPREREG_CORR_REGIME

Long-only reversal suite (T1-T4) + "buy the middle"

killed2026-07-20classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdictALL FOUR killed, the sign is the finding (India continues, doesn't revert); buy-the-middle killed BY THE VOLATILITY CONTROL (was lowvol in costume)configs run~12receiptPREREG_LONGONLY

Stream batch 1: GILT-as-UST-substitute, vol term-structure/skew signals, OR15 debit verticals

killed2026-07-22classno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdictGILT kill (crisis-shape fails +0.48 down vs +0.76 up; hostile audit found daily-corr inflated by smoothing - kill stands); term/skew nothing at 0.8t; OR15 debit = strongest kill of the nightconfigs run~12receiptPREREG_STREAM 1 + audit

Participant-positioning follows (FII/Pro/Client index futures)

killed2026-07-1xclassno-signal · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdictFollow-FII the textbook trap: IS +1.35 to OOS -0.15; Pro OOS -0.9 to -1.4; the one IS+OOS survivor (fade retail) later cut as noise at senior auditconfigs run~15receiptPOSITIONING_HUNT

Early forex H-series (H-EVENT-01-DRIFT, H-HTF-LTF-01 + siblings on the forex M1/M15 DB)

killed2026-05-xxclassno-signal/infra · the hypothesis produced nothing once artifacts and controls were appliedpreregistered bar-verdictpre-swing-ledger era: the 4h drift survivor DIED after the -3h timezone-bug fix; the HTF-LTF v1 kill no longer holds as originally stated (data was mis-timestamped both ways). Era's honest lesson: half the "findings" were the clock. Receipts = memory-era notes + retained backup tables; provenance thinner than later rows, marked as suchconfigs run~15receiptforex_ohlcv memory notes

Broken test

11infra-invalid

the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractions

idkilledhypothesisclasspreregistered barverdict, with numbersconfigsreceipt

Limit-fill generosity rescues zero-hero

killed2026-07-30classinfra-invalid to no-signal · the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractionspreregistered barany fill model positiveverdictclose-fill vs limit-fill BRACKET reality; all cells negative bothconfigs run16receiptK6b

KJ failure via circuit-band censoring (my own mechanism claim)

killed2026-07-28classinfra-invalid · the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractionspreregistered barcensored-Pareto moves the measureverdictRETRACTED publicly: censoring ~4% pooled, threshold geometry artifactconfigs run8receiptkj_audit2-4

Balance-sheet leverage factor on free PIT window

killed2026-06-xxclassinfra-invalid · the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractionspreregistered barpre-2023 PIT existsverdictFY2023 XBRL cliff: free PIT B/S pre-2023 nonexistent to crash-trap factorconfigs run~4receiptbalance_sheet_cliff

I2 overnight-gap fade intraday

killed2026-07-25classinfra-invalid · the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractionspreregistered bartradeable after 09:29verdict+30bps t12.5 raw to lives ENTIRELY open to 09:29 (untradeable); 09:29 entry -11.5bps. Open-window artifactconfigs run~6receiptsame

**Dump-day intraday short (the retraction)** - vol≥3x + drop to short 09:45

killed2026-07-26classinfra-invalid · the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractionspreregistered barPIT-clean at entryverdict"+50bps t5.1 confirmed, corrA -0.19" to hostility audit: signal used FULL-DAY volume (unknowable at 09:45, caused by the outcome). PIT version -15bps t-3.0. RETRACTED with entire downstream: pro-forma Sharpe 1.74 to 2.1, 3-way 25.5% CAGR, leverage k to 3.3-3.5 ALL INVALIDconfigs run~30receiptdump_* scripts; propagated 4 turns before caught
A +50bps/day short at t=5.1 that used the future: full-day volume inside a 09:45 signal. Point-in-time, it loses money. Retracted with its whole downstream.

Pump-long intraday (symmetric)

killed2026-07-26classinfra-invalid · the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractionspreregistered barPITverdictclaimed +64bps t7.4 to PIT -48bps t-11.9configs run~8receiptsame audit

Micro-artifact family: phantom-open E4 fills, cost-shifted-t E2, settle-vs-LTP ITM marks

killed≤2026-07-26classinfra-invalid · the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractionspreregistered bar-verdicttest-construction artifacts caught by entry/mark decompositionconfigs run~5receiptB1

Residual momentum (our construction)

killed2026-07-0xclassinfra-invalid · the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractionspreregistered barOOS survivesverdictkilled; literature (Blitz-Huij-Martens) robust with a DIFFERENT recipe to bounded re-trial filedconfigs run~6receiptGRAVEYARD_LIBRARY D1

F&O ban-list entry/exit drift (E2)

killed2026-07-24classinfra-invalid · the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractionspreregistered bar-verdict**RETRACTED**: scoping bar t-tested a COST-SHIFTED series (constant charge inflates |t| mechanically); raw t -1.5/-1.7 = ns. Spawned the standing rule: significance on RAW, profitability on NET, never t-test a deterministic constantconfigs run~8receiptBATCH5 E2 correction

Gold-ETF stale-NAV arbitrage (E4)

killed2026-07-23classinfra-invalid · the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractionspreregistered bar-verdictkilled AS artifact - the "dislocation" was the stale print itselfconfigs run~4receiptE4

SIP-window calendar effect

killed2026-07-24classinfra-invalid · the test itself was broken (look-ahead, stale marks, artifacts); refiled honestly, and several became public retractionspreregistered bar-verdictt=2.93 was ENTIRELY overlapping sessions 1-3 of month (pooling artifact)configs run~4receiptbatch5

Costs ate it

11cost-wall

the edge is real gross and dead net of honest Indian costs

idkilledhypothesisclasspreregistered barverdict, with numbersconfigsreceipt

Peer's MCX intraday trend+reversion (orthogonal overlay)

killed2026-07-29classcost-wall · the edge is real gross and dead net of honest Indian costspreregistered barnet > 0 after measured costsverdictorthogonality real (-0.46) but 2bp gross vs 8bp cost; -59%/yrconfigs run~12receiptK1

Fixed-param ORB (opening range breakout) India

killed2026-06-03classcost-wall · the edge is real gross and dead net of honest Indian costspreregistered barnet positive any configverdictall configs net-negative (infra validated, both look-ahead gates PASS)configs run~24receiptquant.intraday

VRP harvest futures-hedged

killed2026-06-02classcost-wall · the edge is real gross and dead net of honest Indian costspreregistered barnet after STT > 0verdictfutures STT eats the edge entirelyconfigs run4receiptVRP_FINDINGS

Insider-trades signal

killed2026-07-2xclasscost-wall · the edge is real gross and dead net of honest Indian costspreregistered barSharpe after costs ≥ book barverdictt7.7 IC to Sharpe 0.31 tradable-universeconfigs run~6receiptKILL_AUDIT

Reversal composite

killed2026-07-2xclasscost-wall · the edge is real gross and dead net of honest Indian costspreregistered barnet > 0verdictt13 gross, dead on measured costsconfigs run~10receiptKILL_AUDIT

Intraday pairs (minute z-reversion, HDFCBANK/ICICI etc.)

killed2026-07-26classcost-wall · the edge is real gross and dead net of honest Indian costspreregistered barnet > 0verdictgross +77-162%/decade real; 0.3bps/trip edge vs 40bps cost = ~-1000%/yr of cost drag on traded notional (the bankroll dies in ~5 weeks). Two orders of magnitude underconfigs run~8receiptfinal kills

Systematic intraday reversal composite (15-feature PIT mine)

killed2026-07-26classcost-wall · the edge is real gross and dead net of honest Indian costspreregistered barnet > 0 at any real venueverdictIC OOS +4.83% t13 GENUINELY REAL; net -62(mid)/-15(large)/-4bps(top-cap optimistic). Market efficient exactly to the cost frontierconfigs run~40receiptsystematic mine
A 15-feature reversal composite with OOS IC at t=13, genuinely real, and net-negative at every venue that would fill it. The market is efficient exactly to the cost line.

Any sub-daily horizon harvest (5m to close full sweep)

killed2026-07-26classcost-wall · the edge is real gross and dead net of honest Indian costspreregistered barnet > 0 any horizonverdictnothing clears at sub-10-day holds; what does clear lives at horizons the book already trades, so the sweep bought redundancy, not alphaconfigs run~60receipthorizon sweep, subdaily_fwd

Cost-walled residue: ADR-gap, reversal_5, seasonal-mom (79% turnover), illiquid-tail P2 (dies @100bps), covered-call, long-vol/gamma (theta), OR15 debit verticals

killed≤2026-07-26classcost-wall · the edge is real gross and dead net of honest Indian costspreregistered bar-verdictreal gross, dead at honest round-tripsconfigs run~10receiptB2

Short-term reversal 2-4wk

killed2026-07-0xclasscost-wall · the edge is real gross and dead net of honest Indian costspreregistered barnet > 0verdictkilled; literature's surviving version is DAILY residual (liquidity provision) - likely still cost-dead hereconfigs run~6receiptGL D4

PEAD/SUE illiquid-tail long

killed2026-07-20classcost-wall · the edge is real gross and dead net of honest Indian costspreregistered bar-verdictREPRODUCED-NOT-TRADEABLE: monotone, t=11.65, survives every confound (half is bid-ask bounce, residual real) - and dies on the cost realistic for that liquidity bucketconfigs run~10receiptPREREG_PEAD

One era only

5regime

worked in one era, sign flips or dies outside it; an era portrait, not a law

idkilledhypothesisclasspreregistered barverdict, with numbersconfigsreceipt

Kelly-Jiang tail-risk state transfers to India

killed2026-07-28classregime · worked in one era, sign flips or dies outside it; an era portrait, not a lawpreregistered barpaper's autocorr/vol-corr replicateverdictautocorr ~0 vs 0.9, COVID not top-tail, null all horizons; power verified 0.85 to 0.78configs run~20receiptkj_* 4-audit chain

Promoter-pledge as crisis signal

killed2026-07-0xclassregime · worked in one era, sign flips or dies outside it; an era portrait, not a lawpreregistered barfires in crisis windowsverdictpledge data 2021+ crisis-blind; can't validate where it mattersconfigs run~4receiptbalance_sheet memory

Regime-mirage family: vol-term-structure timer, crash-cue-atlas cells, BAB-highvol

killed≤2026-07-26classregime · worked in one era, sign flips or dies outside it; an era portrait, not a lawpreregistered bar-verdictlooked like signals, were era-portraitsconfigs run~10receiptB1 + PREREG_CRASH_CUE

Index-rebalance add/delete flow (B5-1)

killed2026-07-23classregime · worked in one era, sign flips or dies outside it; an era portrait, not a lawpreregistered bar-verdictevery cell FLIPS SIGN by era; post-2021 arbed awayconfigs run~6receiptB5-1 + FORCED_FLOW

Crash-cue atlas (macro cues predict crashes) + regime-weighted overlay

killed2026-07-21classregime · worked in one era, sign flips or dies outside it; an era portrait, not a lawpreregistered bar-verdictprediction fails on clean methodology (reactive, not predictive); overlay tilt FAILS vs incumbent; halves disagreeconfigs run~20receiptPREREG_CRASH_CUE

Edge given back

6handed-back

the premium or edge is real and the mechanism hands it back (direction risk, crash correlation, theta)

idkilledhypothesisclasspreregistered barverdict, with numbersconfigsreceipt

Roll-tested-out adjustment as risk tool

killed2026-07-30classhanded-back · the premium or edge is real and the mechanism hands it back (direction risk, crash correlation, theta)preregistered barp5 +25% w/ mean cost ≤10%verdicttail -95 vs -203 but mean -32%; 2x costs to negativeconfigs run256 cyclesreceiptK4

Buyable window for naked long ATM weeklies (intraday)

killed2026-06-20classhanded-back · the premium or edge is real and the mechanism hands it back (direction risk, crash correlation, theta)preregistered barany entryxhold cell positive IS&OOSverdictall 78 straddle cells negative; momentum 0 cells positiveconfigs run78receiptnifty_pattern_scan
Every intraday entry-by-hold cell for buying NIFTY ATM premium: negative. All 78 of them.

VRP harvest naked short strangle

killed2026-06-02classhanded-back · the premium or edge is real and the mechanism hands it back (direction risk, crash correlation, theta)preregistered bardirection survivableverdictpremium real (+1.59 vol pts t=4.75) but direction kills unhedgedconfigs run6receiptVRP_FINDINGS

NIFTY weekly/0DTE short straddle (incl intraday sell 09:45 to 15:15)

killed2026-07-26classhanded-back · the premium or edge is real and the mechanism hands it back (direction risk, crash correlation, theta)preregistered barnet > 0 or a timer rescuesverdictbreakeven t1.2 win60% worst -2.1%; best conditioner t1.8 fails 6-way multiple testing. VRP fully priced net of cost at ATMconfigs run~20receiptweekly options mine

Single-stock OTM wing-selling as standalone sleeve

killed2026-07-26classhanded-back · the premium or edge is real and the mechanism hands it back (direction risk, crash correlation, theta)preregistered barsurvives a real crashverdictcalm alpha REAL both sides (puts +8.2, calls +5.8%/yr, beta 0.13-0.19), then the COVID test: -24% notional in ONE month (-96% on margin) wipes ~3yr; predicted-by-strike-math -25%, hit -24.0. Spreads eat the edge; crash-correlated with the rest of the book, so it fails the diversification bar; in-book it was Sharpe-neutral with a worse tailconfigs run~64receiptgrid + cov_crash_test + stop tests + combined_book_puts
Single-stock wing-selling: real calm-market alpha both sides, then one COVID month erases three years. Predicted -25%, realized -24%.

Premium-handed-back family: iron-condor (proven 4 ways), ratio spreads, calendarized-VRP, tail-hedge-via-carry, index-hedge variants

killed≤2026-07-26classhanded-back · the premium or edge is real and the mechanism hands it back (direction risk, crash correlation, theta)preregistered bar-verdictdefined-risk hands the edge back; crash-correlatedconfigs run~15receiptB5

Market said no

1structural-wall

unshortable, illegal, lot-size or capacity walls; the market says no

idkilledhypothesisclasspreregistered barverdict, with numbersconfigsreceipt

USDINR carry/trend sleeve (retail)

killed2026-07-02classstructural-wall · unshortable, illegal, lot-size or capacity walls; the market says nopreregistered barlegally tradableverdictRBI: retail USDINR non-hedging ILLEGAL; offshore-onlyconfigs run~6receiptpareto memory
V · What the ledger says

Read as a distribution, the causes of death are the finding.

60% died as no-signal. 51 of 85 published hypotheses produced nothing once artifacts and controls were applied. That is the base rate this work actually runs at, worth stating plainly because most published research implies the opposite ratio.

13% died because my own test was broken. 11 rows are infra-invalid: look-ahead in the plumbing, stale marks, a statistic computed on a cost-shifted series, a calendar artifact. That is the number I did not expect when I started counting, and it is the strongest argument for keeping the ledger at all, because an error rate you cannot see is an error rate you cannot reduce.

13% were real and unharvestable. 11 rows are cost-wall: genuine gross edge, dead net of honest costs. The most expensive kind of dead end, because they survive every statistical check and fail only where money changes hands.

The rest divide into premium the mechanism hands back (6), era-dependence (5), and one structural wall where the market simply says no.

Recurring failure modes, in the order they have cost me most: a field only knowable after the decision timestamp; a universe screened today and run backwards; costs assumed rather than measured; a statistic computed on a series that was already smoothed; and a result found by search but reported as though it were found by hypothesis.

VI · Exploratory and confirmatory

Not the same kind of evidence.

Of the 85 published rows, 29 carry a stated numeric bar fixed before the test ran. Those are confirmatory: the result either cleared a threshold set in advance or it did not. The remaining 56 were exploratory, run to see what was there, with the verdict recorded afterwards.

Exploratory work is legitimate and necessary, and it is how you find out which questions are worth asking. It is not evidence at the same strength, and treating it as though it were is precisely the error this ledger exists to document. The preregistered bar column is the marker: where it holds a number, the test was confirmatory. Everything appended to the forward file from launch onward is confirmatory by construction, because the bar is committed before the result exists.

VII · Known limitations

Three, stated because a reader would find them anyway.

Rows record what was tested and how it died, not why I believed it would work. The rationale is the most useful field for someone learning to do this, and it is the one the backlog lacks. Autopsies carry it and are being added over time.

The published set is not the complete set. Rows sitting too close to live book construction are withheld, counted and stated. More importantly, configurations discarded before this ledger existed were never recorded at all, so the true denominator is higher than the number shown and is not recoverable.

Configuration counts are deliberately conservative. The census takes the first number in each row's configs field, which undercounts compound entries. The recorded total is a floor rather than an estimate.

VIII · Provenance

Timestamps, stated precisely.

"Preregistered before results" is only as good as its clock, so here is exactly what the clock shows and exactly where it stops short.

Every preregistration file in the research repo was committed as its own commit, before any result was appended to it. There is no case where a bar and its verdict landed together. The gaps, though, are minutes to hours rather than days, for the plain reason that most of these tests take minutes to run: median twelve minutes between the bar going in and the file next being touched. Anyone treating a twelve-minute gap as strong evidence of good faith should not, and I would rather say so than let it be discovered.

What those short follow-up commits actually contain is the part that carries more weight than the gap. They are protocol amendments that declare their own position relative to the output, in the file, at the time. One reads "declared after Phase-1 output, before any rescoring." Another opens with "epistemic status declared before results: this is a same-data follow-up on a result already seen, so directional confirmation here is not independent evidence." Writing down that your own next test will not count as independent evidence, before running it, is a harder discipline than preregistration and it is the one I would point at.

The limitation is real: that repository is private, because the same files contain live book construction, so you cannot check any of this directly. What exists externally are anchors for the flagship rows: an SSRN working paper, dated public posts, and a retraction trail published the same day the errors were found. From launch onward the situation inverts: new preregistrations append to the public forward file before their results exist, and that git history is a clock anyone can audit without taking my word for anything.

Every major kill-family was also cross-checked against the academic literature: 16 families, 7 confirmed by independent published work, 5 scoped as dead-at-my-venue but alive elsewhere, 4 flagged for bounded re-trials, and zero cases of the literature contradicting a component that survived.

12 hypotheses are alive in some form: deployed, paper-gated, or parked as candidates. Their construction does not publish. The ledger is about the dead; the survivors are the book.

IX · Run your own

The method is free.

Write the bar before the test. Count everything you run. Classify the deaths. Park with named re-open conditions instead of deleting. Retract in public when the test itself was wrong. The full method, with the table format to steal: github.com/Finance-broski/graveyard.

Corrections welcome: measured disagreements are the good kind. Open an issue with your numbers and method; rows change when the evidence does, and the git history keeps every prior version. If you want this class of scrutiny on your own backtest: Bias Check, fixed price, written verdict.

The ledger continues.

New preregistrations append to the forward file before their results exist.