Research

The studies, with the files

Every study behind the desk's published claims: the pre-registration where one exists, the written result and the code to rerun it. Read the status of each before you trust it. Not every study was written down before it ran, and this page says which.

Also: manifest.json (the same facts, machine-readable) and SHA256SUMS (a hash for every file). Market data is not included; each study lists what you need to rerun it.

15studies, 90 files
950arms tested in all; 265 without the three large grids. A lower bound for the program
9pre-registered; 4 partly; 2 not pre-registered
0confirmed on new data so far. Both survivors were found in sample; one is in a forward test at 1 of 8 nights

Read this first

What the statuses mean

Pre-registered: the pre-registration file was created before the first result. Partly: a pre-registration exists, but sections were added after some output, arms ran beyond the frozen list, or the hypothesis that passed was already known. Not pre-registered: the test was designed and run in one pass. The notes on each study say which applies.

Many tests, few survivors

With 950 arms, some will pass by chance. The pre-FOMC night was one secondary cell in a family of about 544; the last-half-hour rule survived a screen of about 25 variants. Treat both as leads, not findings, until they hold up on data they were not found on.

Freeze times inside the documents are wrong

In seven pre-registrations, the "frozen at" time written in the document disagrees with the file system, and is usually later than the study's own results. The file system shows the pre-registration was still written first in every case. Only the prop-firm study has a recorded hash. From now on every pre-registration is hashed before the run.

What was removed

Paths are replaced with placeholders such as <data-root>. Five sentences quoting the desk's own running record are marked redacted. No keys, accounts or personal details were in any file. Raw and vendor market data are not included; you need your own CME minute bars to rerun.

Claim to study

The rows of the published ledger and the studies that back each one.

ClaimStudiesPre-registration
13 setups sold to prop tradersThe setups sold to prop tradersPre-registered, hash recorded
Level breakoutsLevel breakouts: why the desk's old picks lost, Opening-range breakouts by volatility regimeNot pre-registered (the multi-year support is)
Opening-range breaksDoes relative volume rescue the opening-range breakout?, Opening-range breakouts by volatility regime, Seven mechanical opening policies on NQPre-registered
Gamma walls, cages and flow directionFading and breaking gamma walls over 730 days, Can the morning predict a day inside the gamma walls?, Does options flow carry NQ direction?, Gamma walls moving at 10:10 as an entry signalPre-registered; the backfill only partly
Being long during the day sessionDay session, gaps, turn of month and release daysPre-registered for this family
Gap continuation in the first 30 minutesDay session, gaps, turn of month and release daysPre-registered for this family
Turn-of-month strengthDay session, gaps, turn of month and release daysPre-registered for this family
Crowd attention as a signalThe overnight drift in three layers, including crowd attentionPre-registered for this arm
Release days are wilderDay session, gaps, turn of month and release days, Macro releases and surprises on NQ, where the pre-FOMC night was foundDescribed after the fact, not tested
The pre-FOMC night on NQMacro releases and surprises on NQ, where the pre-FOMC night was found, The overnight drift in three layers, including crowd attention, Is the overnight drift just event nights?, The pre-FOMC night, graded forwardFound in sample; forward test at 1 of 8 nights
The last half hour, 15:30 to 16:00The last half hour, 15:30 to 16:00Not pre-registered (about 25 variants screened)

The 15 studies

These results are based on simulated or hypothetical performance results that have certain inherent limitations. Unlike the results shown in an actual performance record, these results do not represent actual trading. Also, because these trades have not actually been executed, these results may have under- or over-compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated or hypothetical trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profits or losses similar to these being shown.

The setups sold to prop traders

Pre-registered

Verdict, as the study states it: Tape: 0 of 26 cells VALIDATED. Prop overlays (frozen H-P1): not supported. Prop business test (frozen H-P2): holds. Post-hoc size sensitivity (addendum, not a pre-registered verdict).

Arms tested
28
Pre-registration written
Sep 16, 2026, 17:48 ET
First result
Sep 16, 2026, 17:50 ET
Markets
MNQ and MES (micros), traded off NQ and ES GLBX 1m bars (.v.0 volume roll)
Sample
In-sample 2019-01-01 to 2023-12-31; out-of-sample 2024-01-01 to 2026-09-11 (2018 used only to warm 20-day means)
Costs
$1.50 per micro round turn plus 1 tick slippage each way on market and stop orders; news stop entries +4 ticks; limits fill only 1 tick through
Notes, defects and the original title

Strongest pre-registration in the bundle: PREREG-2026-09-16.md is byte-identical to the source and its sha256 4e921928ecd174744cb1d2970fce62d1c0305015e9308a8c4d2f3aa3242cfe32 matches the recorded .sha256 file ('frozen 2026-09-16 17:48:13 EDT'); prereg created 17:48:11, engine.mjs 17:50:33, first output 17:50:48. Arms = 26 tape cells (13 setups x 2 roots) + the two prop hypotheses H-P1/H-P2. Not counted as arms: 26 seeded coin-flip control streams, and the post-hoc size addendum (520 cells; 4 positive in both halves at list fees, 3 of them coin-flip controls). The site's strategyClaims.ts numbers (all 26 cells' net/t/n/verdict, overlay table, size rows, 520/4/3) match out/*.json exactly. CATALOG.md/SOURCES.md are the public claims being tested (third-party URLs). Run: node --max-old-space-size=12288 engine.mjs; node sim.mjs; SIZES=1,3,5,10,20 node sim.mjs. Trade-level outputs (out/trades-NQ.json, out/trades-ES.json) are not included.

Backtest of claimed 'profitable prop trader' strategies (13 setups x NQ/ES micros) plus a prop-account simulator

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ, ES 2018-2026); CPI/NFP/FOMC release timestamps from the fp-context event archive (<data-root>/fp-context: events/**/*.jsonl with ts_event/ts_published/subclass/region, events/earnings/_weights.json, features/context_daily.jsonl); built from FMP, Fed, BLS/BEA, Federal Register, GDELT, Alpaca and SEC EDGAR feeds; not redistributed and its builder is not included

Level breakouts: why the desk's old picks lost

Not pre-registered

Verdict, as the study states it: The published pick family has no edge — replicated three ways (net of $4 RT + 1 tick each way: -0.217R to -0.091R per trade across five variants).

Arms tested
53
Pre-registration written
none
First result
Sep 15, 2026, 22:26 ET
Markets
CL, NQ, ES, GC, ZN, RTY, YM, 6E (full-size contracts)
Sample
Breakout replication: 2026 year-to-date only (3,971 sessions, about 5,500 trades per variant). Late-session momentum: 702 days 2023-2026. Overnight drift: 2020-2026, about 1,660 nights per root
Costs
$4 round turn plus 1 tick slippage each way (overnight/late-session scripts: NQ $14, ES $29, CL $24, GC $24 per round turn)
Notes, defects and the original title

Post hoc diagnosis, no pre-registration. Arms is a lower bound: 26 cells reported in the write-up (5 breakout variants, 4 target multiples, 1 breakeven-stop variant, 8 late-session-momentum cells, 8 overnight/day cells) plus about 27 conditioner splits printed by study2.mjs and not tabulated. The breakout replication covers 2026 YTD only; the multi-year evidence the write-up cites is the separate pn-001 study (orb-vxn-and-gex-regime) and an external paper. Three passages quoting the desk's live pick record were redacted under the 2026-09-10 disclosure rule. Scripts write a debug file to <out-dir>.

Why the tape-graded record loses: replication of the published level-breakout family, plus late-session momentum and overnight drift checks

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (2020-2026; the breakout scripts read 2026.csv only); QQQ dealer-gamma history <data-root>/fp-data/gex/history/*.json.gz from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE)

Opening-range breakouts by volatility regime

Pre-registered

Verdict, as the study states it: pn-001 ORB by VXN tercile — REFUTED as a system. pn-070/071 GEX regime — H1 PROMISING, accruing; H2 unreadable.

Arms tested
32
Pre-registration written
Aug 22, 2026, 11:53 ET
First result
Aug 22, 2026, 11:57 ET
Markets
NQ, ES (.c.0 continuous)
Sample
pn-001: NQ+ES 1m 2010-2026, quad-witching Fridays excluded, about 10,500 trades; VXN tercile cuts frozen on 2010-2015. pn-070: 2026-07-26 onward, about 20 days per symbol (11-15 classified)
Costs
NQ 0.5 pt / ES 0.25 pt per side (secondary net line)
Notes, defects and the original title

Both preregs were created 22-31 s before the scripts and about 4 minutes before RESULTS; no in-text times. Arms: pn-001 24 cells (2 symbols x 2 OR windows x 3 VXN terciles x 2 exits); pn-070 8 cells (2 symbols x 2 regimes x 2 tests). pn-070 H1 (breakouts on negative-GEX days) is a gamma-regime rule that was left 'PROMISING, accruing' at n=3/8 with a rerun due at about 60 classified days (late Oct 2026); it was never closed.

pn-001 opening-range breakout by VXN tercile (NQ, ES 2010-2026) and pn-070/071 GEX-regime fade vs breakout (2026 forward archive)

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ, ES 2010-2026); FRED VXNCLS.csv (public); QQQ/SPY GEX snapshots <data-root>/fp-data/gex/2026/ from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE) (pn-070 only)

Does relative volume rescue the opening-range breakout?

Pre-registered

Verdict, as the study states it: VERDICT: REFUTED (primary cell t = -0.33, mean -1.11 pt; 0 of 7 instruments replicate).

Arms tested
320
Pre-registration written
Aug 25, 2026, 21:26 ET
First result
Aug 25, 2026, 21:31 ET
Markets
NQ primary; ES, RTY, YM, CL, GC, ZN, 6E replication
Sample
2010-06-07 to 2026-08-25; NQ 4,033 sessions, 3,913 trades (577 in the top RVOL quintile); IS/OOS split at 2020
Costs
NQ 1.0 pt round trip base (amended from 0.5 before any run); sensitivity 0 / 0.5 / 2.0 pt; per-instrument tick-scaled; stop slippage max(2 ticks, 0.25 x excursion)
Notes, defects and the original title

320 cells were pre-counted by the study (8 instruments x 5 RVOL buckets x 2 entries x 4 frictions); 1 cell was confirmatory. Unconditional ORB (all trades) is also reported: +0.744 pt gross, -0.256 pt net (t -0.21). Timestamp defect: the prereg says 'Frozen 19:30 MDT' and its amendment says '19:45 MDT', but the file was created 21:26:52 EDT (19:26 MDT) and last written 21:27:37 EDT, before rvol_orb.py (21:28:24) and the first raw output (21:31:33). The file order supports pre-registration; the in-document times are wrong. The results honestly record that monotonicity criterion 2 was written too loosely and a mid-study bug fix (NQ results bit-identical).

Does relative-volume selection rescue the opening-range breakout on futures?

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (8 roots, 2010-2026)

Seven mechanical opening policies on NQ

Partly pre-registered

Verdict, as the study states it: Part A: all seven policies refuted. Part B geometry grid: Survivors none; Suggestive none.

Arms tested
196
Pre-registration written
Sep 9, 2026, 11:57 ET
First result
Sep 9, 2026, 11:58 ET
Markets
NQ
Sample
NQ 1m GLBX .c.0, 2012-01-03 to 2026-09-04, 3,569 sessions; halves 2012-2018 / 2019-2026
Costs
0.25 pt slippage against the trade on fills; no commission (about $4.5 round turn, noted as about 0.006R)
Notes, defects and the original title

Included because Parts C and D of this prereg define the gamma-wall rules tested in gamma-wall-backfill, and crown_policies.py/open_factors.py are code dependencies of every gamma study. Part A (7 policies) prereg created 11:57:36, before crown_policies.py (11:58:29) and its results (11:58:53). Partial because Parts B-D were appended to the same file later (final write 12:34:38) and the Part B grid results were written at 12:14:16, so the file system cannot show Part B's text predates its results. Arms = 7 (Part A) + 189 (Part B grid: 7 policies x 27 geometries). P6 is a 15-minute opening-range-break control (-0.003 R/trigger, n=3,497). One sentence quoting the live crown-play record was redacted under the disclosure rule. open_factors.py also runs the 2026-09-08 open-factor study, which is not part of this bundle.

Mechanical crown-play policies on NQ (Part A), exit-geometry grid (Part B), and the definitions of the gamma-wall policies (Parts C, D)

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ 2011-2026; open_factors.py builds the data/NQ_1m_et.parquet cache that crown_policies.py requires); FRED VXN

Fading and breaking gamma walls over 730 days

Partly pre-registered

Verdict, as the study states it: P8 long-gamma fade REFUTED; P9 short-gamma break REFUTED; Part D first-touch fade REFUTED; Part D2 (doctrine stop) REFUTED; P10 cage held 68% — descriptive only. The wall-fade line is closed on this sample.

Arms tested
4
Pre-registration written
Sep 9, 2026, 12:55 ET
First result
Sep 9, 2026, 12:57 ET
Markets
NQ, with QQQ (and NDX, agreement only) strike-level gamma exposure
Sample
730 history days 2023-10-10 to 2026-09-08; 693 sessions evaluated (quad-witching excluded); halves 2023-10 to 2025-03 / 2025-03 to 2026-09
Costs
Part C: 1 pt slippage; Part D: limit fill at the wall or the bar's open, whichever is worse; costs not needed for the verdict (gross already negative)
Notes, defects and the original title

The original prereg file (created 12:55:44) predates the data pull (12:56:04 to 12:57:38). Partial because three disclosed changes followed partial output: Amendment 2 (proxy spot fix, written after descriptive policy figures had printed), a walk correction that removed a look-ahead (which had produced 62-64% hit rates), and Part D2 (added after Part D was refuted). Timestamp defect: those sections are stamped 13:05, 13:12 and 13:20, but the prereg file's last write is 13:03:53 and the results file (with D2 results) was created at 12:57:48 and last written 13:06:46. Arms = P8, P9, D, D2 (P10 is descriptive). One sentence giving the live shadow-ledger tally was redacted under the disclosure rule.

Gamma-wall history backfill: wall-fade and wall-break policies on 730 days of reconstructed dealer positioning

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ); QQQ/NDX end-of-day strike gamma exposure and QQQ daily OHLC per date from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE) (pulled with backfill_history.mjs and backfill_ndx_close.mjs into <data-root>/fp-data/gex/history); live 09:10 QQQ snapshots <data-root>/fp-data/gex/2026/QQQ_*T0910.json.gz for the proxy validation (forward archive, not included)

Can the morning predict a day inside the gamma walls?

Pre-registered

Verdict, as the study states it: REFUTED (rule: AUC >= 0.65, top >= 80%, bottom <= 55%); conditional trade rules reported descriptively, no verdict.

Arms tested
3
Pre-registration written
Sep 9, 2026, 13:28 ET
First result
Sep 9, 2026, 13:28 ET
Markets
NQ with QQQ gamma walls
Sample
688 sessions 2023-10-11 to 2026-09-04 (base cage rate 67.9%); walk-forward OOS 2025-2026 (398 sessions)
Costs
0.25 pt slippage; stop max(12, 2 x ATR3 of 5m bars); target 1.5R
Notes, defects and the original title

Near miss recorded honestly: AUC 0.658 and top tercile 82.0% pass, bottom tercile 56.4% fails the 55% bar; width alone gives AUC 0.660. Arms = 1 classifier + 2 conditional rules (C1, C2) that were only to be evaluated if the classifier validated. Timestamp defect: the prereg says 'frozen 2026-09-09 14:20', but the file was created 13:28:11 (same second as cage_classifier.py) and the results file 18 s later, headed 13:28. The file order supports pre-registration; the stated freeze time is wrong.

Cage-day classifier: can pre-09:30 factors predict a close inside the gamma walls, and does that make the walls tradable?

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ); <data-root>/fp-data/gex/history from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE); FRED VXNCLS.csv

Does options flow carry NQ direction?

Pre-registered

Verdict, as the study states it: All three policies refuted (FL1 QQQ 10:10 flow, FL2 market tide 10:10, FL3 prior-day QQQ flow). No factor carries direction.

Arms tested
3
Pre-registration written
Sep 9, 2026, 13:33 ET
First result
Sep 9, 2026, 13:34 ET
Markets
NQ, with QQQ net premium and market-wide tide
Sample
712 sessions 2023-10-10 to 2026-09-04; halves split 2025-03-15
Costs
0.25 pt slippage; stop max(12, 2 x ATR3 of 5m bars); target 1.5R; 60-minute cap
Notes, defects and the original title

The prereg file (13:33:24) predates the first flow data file (13:33:31), consistent with 'frozen before the bulk pull'. Arms = FL1-FL3 (8 descriptive factor/target rows carry no verdict). Timestamp defect: the prereg says 'frozen 2026-09-09 14:45'; the file system and the results header (13:35) show it was written about 70 minutes earlier than stated.

Options-flow direction factors: does net options premium carry NQ direction?

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ); per-minute QQQ net-premium ticks and market tide per date from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE) (backfill_flow.mjs writes <data-root>/fp-data/flow/*.json.gz)

Gamma walls moving at 10:10 as an entry signal

Pre-registered

Verdict, as the study states it: REFUTED as mechanical 10:10 entries; suggestive as a context factor.

Arms tested
3
Pre-registration written
Sep 9, 2026, 13:10 ET
First result
Sep 9, 2026, 13:10 ET
Markets
NQ with QQQ gamma book
Sample
693 sessions 2023-10-11 to 2026-09-04; halves split 2025-03-15
Costs
0.25 pt slippage; stop max(12, 2 x ATR3 of 5m bars); target 1.5R; 60-minute cap
Notes, defects and the original title

All three policies (M1 wall drift, M2 tilt shift, M3 flip cross) were positive in both halves but none cleared one-sided p < 0.0167, so all failed the frozen rule. Timestamp defect: the prereg says 'frozen 2026-09-09 13:55', but it was created 13:10:11 (same second as wall_migration.py) and the results 8 s later, headed 13:10.

Gamma-wall migration at the 10:10 book refresh as an NQ entry signal

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ); <data-root>/fp-data/gex/history from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE)

Day session, gaps, turn of month and release days

Partly pre-registered

Verdict, as the study states it: Twenty-nine arms run against a 27-test pre-registration, zero validated.

Arms tested
29
Pre-registration written
Sep 16, 2026, 09:58 ET
First result
Sep 16, 2026, 10:02 ET
Markets
NQ, ES, YM, RTY, GC, CL, ZN, 6E (full-size)
Sample
2010-2026 per root (RTY from 2017, 6E partial); event-conditioned arms only 2020-01-03 onward (event flags start there, not 2016 as the prereg assumed); splits 2010-2018 / 2019-2026 (price arms), 2016-2021 / 2022-2026 (event arms)
Costs
Round turn (2 ticks + $4): NQ $14, ES $29, YM $14, RTY $14, GC $24, CL $24, ZN $35.25, 6E $16.50
Notes, defects and the original title

Per claim: day session = pre-registered family D1 (8 roots, none pays; 5 of 8 negative); gap continuation = family E (2 arms, both refuted); turn-of-month = family C1 (refuted; flips sign between halves); 'Release days are wilder' ($2,880 vs $2,776 mean absolute NQ move, 2020+) is NOT a pre-registered test: the results label that table 'Computed after the fact and labelled descriptive — no test attached'. The NQ hour profile was pre-declared as descriptive. Partial because: 2 arms beyond the 27 frozen (declared); the prereg file was edited after the results (an 'ANSWERED' banner; no hash of the original body exists); and the release-day range figures are post hoc. Timestamp defect: the prereg says 'Frozen 2026-09-16 10:15 ET', but it was created 09:58:43 and the results JSON was written 10:02:33, so the stated freeze time is after the results.

What the desk can actually publish: a 29-arm strategy suite (overnight, timing, calendar, day session, gap follow-through)

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (8 roots, 2010-2026); the fp-context event archive (<data-root>/fp-context: events/**/*.jsonl with ts_event/ts_published/subclass/region, events/earnings/_weights.json, features/context_daily.jsonl); built from FMP, Fed, BLS/BEA, Federal Register, GDELT, Alpaca and SEC EDGAR feeds; not redistributed and its builder is not included

The overnight drift in three layers, including crowd attention

Partly pre-registered

Verdict, as the study states it: Of 19 arms across three layers, exactly one passes every frozen test: the pre-FOMC night on NQ (N1 — VALIDATED). B1 attention-induced buying: refuted.

Arms tested
57
Pre-registration written
Sep 16, 2026, 06:37 ET
First result
Sep 16, 2026, 06:38 ET
Markets
NQ primary; ES and GC secondary
Sample
Nights 2016-01-05 to 2026-09-11 (NQ 2,581 nights); train 2016-2021 / confirm 2022-2026. The pre-FOMC arm's 53 nights are 2020-2026 only, because the event archive's FOMC rows start in 2020
Costs
Round turn NQ $14, ES $29, GC $24; fills at the 16:00 and 09:30 prints
Notes, defects and the original title

Arms = 19 per root x 3 roots (15 hypotheses Bonferroni-counted on NQ, p < 0.0033). Attention (B1): the narrower attention-arm prereg (created 05:53:05, about 45 min before the run) and B1 here were both written before results; B1 = +$281.58/night, t 1.57, p 0.117, refuted. CAUTION on the placebo: with attention dates shuffled, the same arm returns +$100.11 (t 0.70), about the $98.00 baseline. Shuffling therefore removes the effect, it does not reproduce it; both write-ups describe this backwards. The refutation stands on p = 0.117 and random-night placebo p = 0.188. Pre-FOMC (N1): partial. The prereg itself quotes the answer (+$973 net, n=53, t=3.12) from the event-nights run hours earlier, and N1 re-measures those same 53 nights, which lie inside the 2016-2026 window where the effect was first found (macro-events-fundamentals). It is a re-measurement, not an independent confirmation. 'On a longer sample' in the results is not true for this arm. Timestamp defect: the prereg says 'Frozen 2026-09-16 09:45 ET', but the file was created 06:37:45 and the results 06:38:58.

The overnight drift under three layers (technical, event, behavioural), including the attention arm B1 and the pre-FOMC arm N1

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ, ES, GC 2016-2026); VIX daily <data-root>/fp-data/fmp/vix-daily.json (FMP); the fp-context event archive (<data-root>/fp-context: events/**/*.jsonl with ts_event/ts_published/subclass/region, events/earnings/_weights.json, features/context_daily.jsonl); built from FMP, Fed, BLS/BEA, Federal Register, GDELT, Alpaca and SEC EDGAR feeds; not redistributed and its builder is not included; Wikipedia pageview attention series (fp-context attention/wikipedia, public API)

Is the overnight drift just event nights?

Pre-registered

Verdict, as the study states it: Pre-FOMC (positive control) supported on NQ (n=53, net $972.70, t=3.12) and ES; every other arm inconclusive or suggestive. The overnight drift does not live only in identifiable event nights.

Arms tested
20
Pre-registration written
Sep 15, 2026, 22:42 ET
First result
Sep 15, 2026, 23:26 ET
Markets
NQ, ES, GC (CL side table)
Sample
Nights 2020-01-01 to 2026-09 (NQ 1,642 nights); train 2020-2023 / confirm 2024 onward
Costs
$4 round turn + 1 tick each way: NQ $14, ES $29, GC $24
Notes, defects and the original title

Prereg created 22:42:14, runner 22:54:20, first results 23:26:19 (re-run 05:32 after the news wire was filled; verdicts unchanged). Arms = 7 (NQ) + 7 (ES) + 6 (GC) primary cells. Pre-FOMC was pre-registered as a pipeline POSITIVE CONTROL for an effect already known from the 2026-08-25 study, not as a new hypothesis.

Does the overnight drift concentrate in identifiable event nights beyond pre-FOMC?

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ, ES, GC 2020-2026); the fp-context event archive (<data-root>/fp-context: events/**/*.jsonl with ts_event/ts_published/subclass/region, events/earnings/_weights.json, features/context_daily.jsonl); built from FMP, Fed, BLS/BEA, Federal Register, GDELT, Alpaca and SEC EDGAR feeds; not redistributed and its builder is not included

Macro releases and surprises on NQ, where the pre-FOMC night was found

Pre-registered

Verdict, as the study states it: H1 CONTESTED; H2 REFUTED; H3 Confounded, as predicted; (bonus) pre-FOMC overnight drift: Robust and survives every check — a forward-shadow candidate, not something to size tomorrow.

Arms tested
176
Pre-registration written
Aug 26, 2026, 00:36 ET
First result
Aug 26, 2026, 00:37 ET
Markets
NQ
Sample
NQ 1m 2010-06-07 to 2026-08-25 (4,033 sessions); FMP econ calendar 2016-2026 (909 sessions with a composite surprise); pre-FOMC n=85 FOMC days 2016-2026 after the 2026-08-26 calendar correction
Costs
1.0 pt round trip for the tradability legs; distribution tests gross
Notes, defects and the original title

The pre-FOMC drift was a pre-specified SECONDARY test ('reported, never confirmatory'), measured 18:00 ET prior day to 09:30 ET open: +25.38 bps gross, t +3.61 (corrected), one cell among about 176 in this study and about 544 pre-counted across that day's three studies (the study notes the expected max |t| under the null is about 3.3). Prereg created 00:36:30 EDT, before fundamentals_nq.py (00:37:36) and the first output (00:37:41); its in-text 'Frozen 20:25 MDT' (22:25 EDT) is two hours earlier than the file and cannot be verified. Results carry two dated corrections (2026-08-26: calendar repair; jobless-claims result refuted). Arms = about 176 cells as pre-counted by the study.

Do macro events, surprises and administrations predict NQ? (where the pre-FOMC drift was first found)

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ 2010-2026); FMP economic calendar 2016-2026 JSON (<data-root>/fp-data/fmp/econ-calendar-*.json; FMP subscription)

The pre-FOMC night, graded forward

Pre-registered

Verdict, as the study states it: No verdict yet. Shadow only: promotion requires forward n >= 8 (about 2027-08 at the earliest), forward mean net > 0, forward hit rate >= 55%, pooled t > 3.0, and positive excess over the non-FOMC baseline.

Arms tested
1
Pre-registration written
Aug 26, 2026, 07:20 ET
First result
none yet
Markets
NQ (1 contract)
Sample
Historical seed n=85 FOMC days 2016-01-27 to 2026-07-29 (can never promote the rule); forward observations from 2026-08-26 onward: 1 so far (2026-09-16)
Costs
1.0 index point round trip
Notes, defects and the original title

This is the only genuinely out-of-sample test of the pre-FOMC rule, and it has 1 of the 8 forward observations its own frozen bar requires. The rule graded here enters at 18:00 ET (after the daily halt) and exits 09:30 ET. The forward track file (prefomc-shadow-track.jsonl, per-date entry/exit prices) is not included. The grader (prefomc_shadow.py, created 07:12:11) predates the spec (07:20:57); the spec froze the promotion bar before any forward observation existed.

Pre-FOMC overnight drift: forward shadow-grading spec and grader

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ); FMP economic calendar (FOMC decision dates, 'Interest Rate Decision', country US)

The last half hour, 15:30 to 16:00

Not pre-registered

Verdict, as the study states it: VALIDATED, conditional — ship as a shadow-mode Close Read, not a sized trade.

Arms tested
25
Pre-registration written
none
First result
Jul 27, 2026
Markets
NQ (cross-symbol check on ES, YM, RTY)
Sample
NQ.c.0 1m, 3,948 full RTH sessions 2010-06-07 to 2026-07-24; IS 2010-2019 / OOS 2020-2026; survivor n=540 trades
Costs
1.0 pt round trip on NQ; ES 0.5, YM 2.0, RTY 0.3 pt in the cross-symbol check
Notes, defects and the original title

Post hoc: about 25 hypothesis variants screened (18 in close_study.py), then the survivor put through robustness checks; no pre-registration exists. Survivor: |15:00 to 15:30 move| > 0.30%, follow it to the close: +5.79 bps/trade, t 2.17, bootstrap p 0.016, hit rate 51.5% (not significant). That t is below the t >= 3 bar the later pre-registered studies use. 2023-2026: the base rule is negative on all four index futures (NQ -2.3, ES -4.0, YM -0.9, RTY -0.6 bps, all n.s.); NQ longs +2.5 pt, shorts -8.9 pt. close_deep_dive.py needs pm_paths.parquet, which no script on disk generates. The calendar-study (OPEX, month-end, quarter-end) code was not found.

Close Read feasibility study: the 15:30 to 16:00 ET NQ window

Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ, ES, YM, RTY 2010-2026)

Rerun one

The fastest way to check the desk is to rerun a study on your own data. If your result differs from ours, tell us and we will publish the correction.

Commission a study