Methodology
Where every number in our engine comes from.
Every threshold, every data source, every step — documented and logged. Selection runs an LLM bracket tournament; execution is fixed code. Nothing in the pick path is human-curated, and every candidate is leakage-checked. This page is the audit trail.
Data sources
Three external systems feed every decision the engine makes. None are proprietary; the same data is available to anyone with API access.
End-of-day options chains, volume, open interest, dollar flow, contract metadata across 5,230+ tickers.
Pulled at 23:00 ET nightly by overnight-scanner.
VIX and VIX3M daily close — used for the term-structure regime gate.
Pulled at signal-decision time (07:30 ET) by signal-notifier.
Canonical storage for overnight signals, enriched signals, the forward paper-trading ledger, and signal performance outcomes.
Written by every service in the pipeline; queries reproducible from any timestamp.
The enrichment bar and two safety rails
In V6, selection is now the BULLISH-only gate plus a delta edge-rank to the top ~50 bullish setups. The old moneyness, open-interest, volume, DTE, and V/OI filters were removed on 2026-06-04 — they choked real winners on stale scan-time data. The ~50 bullish setups that clear the enrichment bar below and the two safety rails go into the tournament; the engine does its discriminating there, not with a filter cascade. (Bid/ask spread is no longer shown or gated — this Polygon data tier serves no live options quotes, so there is no real spread to display.)
overnight_score ≥ 4
Applied in enrichment-trigger
Five deterministic premium-flow flags combine into a 0–8 score. The floor was raised from 1 to 4 on 2026-06-05 to drop the proven-weak low-score dregs. It is a floor, not a ceiling — we deliberately do not cap the top, because the tournament does the discriminating from here.
directional UOA > $500K
Applied in enrichment-trigger
Direction-aware unusual options activity. Bullish candidates need call dollar volume above $500K. Below this, flow is too thin to be informative.
BULLISH-only + delta edge-rank to top ~50
Applied in enrichment-trigger
A hard bullish gate (since 2026-06-11): only call setups enter the pool. The surviving bullish names are then delta-edge-ranked to the ~50 strongest setups before the tournament.
no earnings during the 3-day hold
Applied in signal-notifier · safety rail
Exclude any ticker reporting earnings inside the hold window. Holding long single-leg options through an earnings print is a documented loss pattern (De Silva et al. 2026, Review of Finance; Cao & Han 2013, JFE). Fail-closed if the earnings calendar is unreachable.
VIX ≤ VIX3M (no backwardation)
Applied in signal-notifier · safety rail
Term-structure regime gate. When 30-day VIX exceeds 90-day VIX3M, the market is pricing acute near-term stress and directional long-premium trades degrade. Skip the entire day. Fail-closed if either value is missing.
The selection tournament
Once the enriched pool clears the two safety rails — on a busy day that's around 50 bullish candidates — one pick is chosen by a randomized bracket tournament. Not a scoring formula, not a human.
- Three independent brackets. Each one shuffles the ~50-name bullish pool into a fresh random order, then reduces it in batches of ≤10: an LLM (Gemini) reads each batch and advances the top 2, round after round, until one winner remains (≈50 → 10 → 1 per bracket).
- Consensus vote. The three bracket winners are compared. 3/3 agreement → high confidence, 2/3 → medium, 1/3 → low. The consensus ticker is the pick.
- Dead-simple prompt. Each batch call gets one instruction — make money buying a single option and sell it for a profit within three days — plus the daily report and a per-contract JSON. No memory, no rubric, no composite weights.
- Fail-closed. Any error — a timeout, a pick outside the eligible set, an all-leakage day — produces no email and a no-trade day. There is no fallback path; tournament uptime is the only SLO.
Every candidate is leakage-checked before it can enter a bracket: the judge never sees anything that wasn't known at scan time.
The bracket math
Every pick ships with the same execution rules, and they have not changed across strategy versions. The bracket isn't a guess — it came out of a sweep across thousands of historical signals where a −60/+80/3-day envelope was the highest-EV configuration tested.
10:00 ET, day 1
After the open settles, before midday drift. Buy 1 contract at market.
−60% on option premium
GTC stop-limit on the contract. Bracket-sweep research showed −60% beats tighter stops on 3-day holds because gamma whipsaw kills tighter exits.
+80% on option premium
GTC limit sell. Asymmetric vs. the stop — 4:3 reward/risk in option-premium space, which after delta and gamma typically translates to a positive expected value at modest hit rate.
3 trading days
Long enough for the directional flow thesis to play out, short enough to avoid theta decay dominating.
15:50 ET, day 3
If neither stop nor target filled, market sell at 15:50 — before the close-print volatility, after most of the day's move is in.
Reproducibility
The full pipeline is open-architecture. Every artifact is auditable.
- Forward paper-trading ledger — every entry, exit, and outcome lives in BigQuery. The same row is rendered into the public scorecard.
- Decision trail — every change to the strategy (V6 today, and its predecessors back to V3) ships with a dated decision document explaining the rationale and the evidence.
- Trace logging — enrichment, the tournament judge, and overnight-report-generator each write structured trace rows so a downstream auditor can reconstruct any specific morning's reasoning end-to-end, including every bracket round.
What this engine does NOT do
No black-box scoring model.
The selection tournament is an LLM, but it has no learned weights, no rubric, and no memory of past trades — just a simple prompt and a randomized bracket, run three times for consensus. Every candidate is leakage-checked before the model ever sees it.
No model in the execution path.
The tournament picks the ticker; it never sets the price levels. Entry, the −60% stop, the +80% target, and the 3-day exit are fixed code with no model in the loop.
No manual override of the engine.
Whatever wins the tournament is the pick. No "I've got a feeling" veto, no last-minute swap.
No live execution.
Every position is paper-traded against the same data feed using the same bracket. The ledger is a forward simulator, not a brokerage.
No track-record marketing pre-30-trades.
Until V6 has 30 closed paper trades the engine ships methodology only. No win rate, no Sharpe, no expectancy claims.
Want the daily pick delivered?
Browse the haystack on the signals page free, or get the curated single V6 pick delivered to your inbox + private WhatsApp group at 07:30 ET each weekday.
Paper-trading performance, educational only. Not investment advice. Past performance is not a guarantee of future results.