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 selection 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 (~09:50 ET, just before the 10:00 entry) 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 V7, selection remains 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
Deterministic premium-flow flags (call/put dollar skew, Vol/OI, active strikes, new positioning, price momentum, plus a divergence bonus) sum to a base score, and a sector-cluster boost can lift it — capped at 10. 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 same-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 one day — 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.
- Live liquidity check. At selection time (~09:50 ET, just before the 10:00 paper entry), the engine re-checks each candidate's live open interest and drops any contract too illiquid to actually trade — the validation cohort only simulates contracts a real trader could realistically enter and exit at fair prices.
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
The validation cohort's bracket rules are fixed within a cohort and versioned across eras — the live V7 configuration is −30/+40/same-day intraday. The bracket isn't a guess: it came out of a sweep across thousands of historical signals.
10:00 ET, day 1
After the open settles, before midday drift. Buy 1 contract at market.
−30% on option premium
Stop-limit on the contract. The intraday V7 envelope tightens the stop to −30% — on a same-day hold there is no overnight gamma whipsaw to ride out.
+40% on option premium
Limit sell. Asymmetric vs. the stop — 4:3 reward/risk in option-premium space. The bracket is a measurement instrument for the validation cohort, not a profitability claim: our own published research shows a fixed bracket applied blindly across the whole pool loses.
Same trading day
V7 “GIGO” — Get In, Get Out. Enter at the open, take profit or stop intraday, and flatten before the close. Nothing carries overnight.
15:45 ET, same day
If neither stop nor target filled, market sell at 15:45 the same day — 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 whole pool's outcomes are aggregated into the public Track Record; per-row data is queryable over the MCP.
- Decision trail — every change to the strategy (V7 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 −30% stop, the +40% target, and the same-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.
The raw ledger and preliminary aggregates are public from day one, always with sample size attached — but until a cohort has 30 closed paper trades we make no marketing claims from them: no advertised win rate, no Sharpe, no expectancy claims.
Want your agent working this methodology?
Browse the pool free on the signals page — or connect Claude, ChatGPT, or your own agent over MCP and let it query the pool, the opportunity surfaces, and the outcome history directly. The methodology on this page ships as playbooks your agent can run.
Paper-trading performance, educational only. Not investment advice. Past performance is not a guarantee of future results.