SPXPlay Research Methodology
Version 1.2 · Updated July 24, 2026 · VantureCap Research
This page documents how SPXPlay turns historical SPX and option-market records into a masked practice scenario and then into aggregate research. Its purpose is to make the denominator, decision rules, P&L math, regime labels, and limitations inspectable without republishing licensed raw market data.
The current SPX population covers eligible entries from August 25, 2021 through June 4, 2026. It contains one scenario per eligible trading session. Every scenario contains four alternatives on a common expiration: a bull put credit spread, bear call credit spread, bull call debit spread, and bear put debit spread. Standing aside exists in the game at $0 P&L, but is not counted as a trade observation in the research tables.
1. Research question and unit of analysis
The first report asks a descriptive question: when the same deterministic rules select four short-dated verticals on the same eligible SPX session, what do their historical outcome distributions look like?
The primary unit is the scenario day, not an individual quote row. The current population has 1,051 scenario days. Each day supplies four paired trade outcomes, producing 4,204 observations for structure-level summaries. Because the alternatives share the same underlying move and because adjacent market days are serially related, those 4,204 values are not treated as independent samples. We do not publish p-values, confidence intervals, or statistical-significance claims for the current descriptive report.
2. Data inputs
The scenario builder uses four categories of historical input:
- SPX option-spread records: historical strikes, expirations, premiums, maximum profit/loss fields, and settlement labels derived from the project’s licensed option-market source.
- SPX daily OHLC: pre-entry candles for context and entry-through-expiry daily bars for the reveal.
- VIX daily history: the prior-session close and backward-looking change measures used to assign the volatility regime.
- Economic-calendar records: FOMC decision, CPI, and Employment Situation dates from Federal Reserve and U.S. Bureau of Labor Statistics calendars, with a documented backstop for current-year scheduling.
The public research pages are generated from the final SPX trainer bundle rather than from those source files. This guarantees that the aggregate report describes the exact scenario population available in the game. It also creates a clean publication boundary: public pages receive derived counts and statistics, not option-chain rows, historical quote downloads, raw OHLC arrays, or individual scenario dates.
3. Eligibility rules
A trading session enters the SPX population only when all of the following are true:
- The entry falls inside the configured SPX date window and has an underlying level near the stored entry snapshot.
- At least 60 completed SPX sessions precede the entry day, so trend, moving averages, ATR, realized volatility, and the masked chart can be formed without using future candles.
- VIX history is present through the immediately preceding trading session.
- At least one expiration from 0 through 3 calendar DTE contains a valid row for each of the four required vertical types.
- The selected expiration and all hold-period sessions through expiration exist in the underlying history.
- Every selected spread has positive maximum profit and maximum loss, the credit-spread short strike begins out of the money, and listed maximum loss does not exceed $5,000 for one contract.
Requiring all four structures on one common expiration makes within-scenario comparisons coherent, but it also introduces selection bias: days with incomplete, invalid, or one-sided coverage are excluded. The report therefore describes the eligible constructed population, not every SPX session and not every listed spread.
4. Expiration and strike selection
The builder applies the same rule to every eligible day:
- Expiration: among valid 0–3 DTE expirations, choose the one nearest the 1.5-DTE midpoint. When 1 DTE and 2 DTE are equally close, the later expiration is considered first. The first expiration able to price all four structures wins.
- Credit spreads: place the bull put short strike near 1% below entry SPX and the bear call short strike near 1% above it. Then prefer a width near 0.5% of spot.
- Debit spreads: place the purchased long strike nearest at the money and prefer a width near 1% of spot.
- Ties: deterministic strike ordering resolves equal-distance candidates, so a rebuild does not choose randomly.
These anchors are scenario-construction choices, not claims that those strikes are optimal. Different deltas, distances, widths, or expirations would produce a different population of premiums and outcomes.
5. Entry information and leakage controls
The trainer represents entry at approximately 10:00 a.m. Eastern. All features shown before the reveal are intended to be available by that point:
- trend features use completed daily history plus the stored entry level;
- VIX regime and drift use the prior-session close;
- the pre-entry chart contains only sessions before the entry day;
- known calendar events are expressed relative to entry; and
- settlement, hold-period candles, and realized P&L remain in the reveal.
Outcome-derived fields such as settlement and realized P&L are never used to choose among the four selected structures. The aggregate report evaluates every structure, which further avoids selecting only the hindsight winner for display.
6. P&L convention
Every reported trade outcome uses one SPX contract and the 100× index-option multiplier. The stored settlement-at-expiration label determines intrinsic spread value. Entry premium and intrinsic value produce the before-cost result; the builder then subtracts a flat $1.30 package-level commission from each one-contract spread outcome.
Credit spreads have listed maximum profit equal to the collected credit and listed maximum loss equal to spread width less credit, both multiplied by 100. Debit spreads have listed maximum loss equal to the debit paid and listed maximum profit equal to spread width less debit, multiplied by 100. Reported P&L can sit $1.30 below the listed payoff boundary because P&L includes commission while the displayed max-profit/max-loss economics do not.
The study assumes hold to expiration. It does not simulate an early exit, stop, profit target, roll, bid/ask slippage, legging, taxes, margin changes, market impact, or discretionary trade management.
7. Metric definitions
| Metric | Definition |
|---|---|
| Profitable / win | Realized one-contract P&L is greater than $0 after commission. |
| Losing / loss | Realized one-contract P&L is less than $0 after commission. |
| Win rate | Profitable outcomes divided by all outcomes for that structure or subgroup. |
| Mean P&L | Arithmetic average of nominal one-contract dollar outcomes. It is not normalized by margin, maximum loss, or account size. |
| Median P&L | Middle one-contract outcome after sorting the population from lowest to highest. |
| Average losing P&L | Arithmetic average over outcomes below $0 only. |
| 10th / 90th percentile | Linear-interpolated percentile using position (n−1)×q in the sorted observed population. |
| Near/full maximum loss | Realized P&L is less than or equal to negative 90% of that spread’s listed maximum loss. This reporting threshold includes economically near-max outcomes as well as exact max losses. |
No zero-P&L spread outcomes appear in the current population after the $1.30 commission. Standing aside is kept separate because it is a game decision rather than an option-spread observation.
8. Volatility-regime definitions
VIX is observed at the prior close and placed into four mutually exclusive buckets:
| Regime | Prior-close VIX | Current sample |
|---|---|---|
| Calm | below 16 | 310 scenarios |
| Elevated | 16 to below 22 | 462 scenarios |
| Stressed | 22 to below 28 | 189 scenarios |
| Panic | 28 or above | 90 scenarios |
9. Trend-regime definitions
Trend is classified at entry from the five-session return and the 20-session moving average:
- Strong up: five-session return at least +2.0% and entry SPX above SMA20.
- Up: otherwise, five-session return at least +0.75%.
- Strong down: five-session return at most −2.0% and entry SPX below SMA20.
- Down: otherwise, five-session return at most −0.75%.
- Chop: none of the preceding conditions.
SMA50, ATR14, 20-session realized volatility, distance from recent high/low, one- and 20-session returns, and a reversal-risk flag are retained as scenario context, but they do not change the five displayed trend labels above.
10. Daily market-analysis workflow
The public daily SPX market analysis is generated from
the production spx_daily_playbook.py result. It is a separate workflow
from the masked historical-scenario research above. On weekdays, the production
playbook prepares a pre-open brief at 6:15 a.m. and a late-session brief at
12:45 p.m. California time. The public page publishes those editions at 6:35 a.m.
and 12:50 p.m., respectively, and records the exact source timestamp and intended
session date.
The daily brief combines five evidence groups:
- Trend: one-, five-, and 20-session returns; 20- and 50-session moving averages; ATR; realized volatility; and reversal-risk context.
- Volatility: VIX level, regime, recent change, and a one-day implied expected-move estimate.
- Options positioning: an estimated net-gamma regime and, when the snapshot passes validation, a pin, call wall, put wall, gamma-flip estimate, and implied expected move.
- Calendar risk: scheduled macro events from the live calendar workflow, with source and staleness labels preserved on the page.
- Playbook policy: risk stance, relative strategy scores, and conditional play maps. A public play includes a trigger, required confirmation, illustrative structure, invalidation, and scaled-size label.
The directional label is descriptive rather than predictive: strong up/up maps to an upside lean, strong down/down to a downside lean, and chop to a balanced or two-sided read. The initial label never replaces price confirmation. A stated invalidation overrides the lean.
Important levels are assembled from prior-session high, low, and close; the 20- and 50-session moving averages; implied expected-move bounds; and validated positioning levels. They are published as reaction zones, not guaranteed support or resistance. The options-positioning model is an estimate because aggregate dealer inventory is not directly observable and changes through the session.
The publisher transfers only the completed playbook JSON from the inference host to the sync-safe web host, validates its schema and session date, escapes all prose, and renders human-readable HTML. It refuses to let an older source overwrite a newer archive and keeps the last known-good page if the source host is unavailable. The public tree never receives the source JSON, raw OHLC bars, option-chain rows, the full GEX strike surface, credentials, or internal model-policy configuration.
A dated page is updated by the two scheduled editions, then freezes after the late-session publication; prior dates are not rewritten using realized outcomes. Daily-page limitations are stated on every dated brief. In particular, spot may fall back to the prior close when a validated intraday bar is unavailable; event data can be stale; expected move is a distribution estimate; and illustrative strategies omit real-world liquidity, slippage, fees, taxes, assignment, and portfolio constraints.
11. Market-news workflow
The public SPX market-news desk is an AI-assisted, source-linked editorial workflow. It is separate from both the masked historical research and the quantitative daily analysis above. On weekdays, it publishes a pre-market briefing at 6:25 a.m., a midday update at 12:40 p.m., and a closing perspective at 1:20 p.m. California time. Each edition is timestamped, archived, and labeled as AI-assisted and not human-reviewed.
The private research job draws candidate developments from the licensed Alpaca/Benzinga news feed and from official Federal Reserve, Bureau of Labor Statistics, and Securities and Exchange Commission feeds. It also uses allowlisted market-context proxies such as SPY, QQQ, TLT, UUP, and VXX snapshots when available. Those inputs can be delayed, incomplete, corrected after publication, or unavailable; the page links to its supporting sources and never presents the feed as exhaustive.
DeepSeek V4 Flash is the default low-cost language model. The model ranks the developments most relevant to SPX, writes a concise synthesis, and explains the plausible index transmission channel. Article text is explicitly treated as untrusted data rather than executable instructions. A model cannot directly publish a page: its structured response must cite known source IDs and pass required-field, length, category, markup, advice-language, and numeric-claim checks. Unsupported numeric claims and unknown citations reject the edition; the system may retry once with the validation errors.
The research job runs in a private home directory on the always-on web host, outside the public document root. It opportunistically refreshes playbook and economic-calendar context from the market-hours inference host and uses the last cached context when that host is offline. Raw article bodies, prompts, credentials, reasoning traces, private playbook data, and API responses are not copied into the public tree. The renderer escapes all prose and creates the stable latest page, a dated edition archive, structured data, and a two-day Google News sitemap. If research, model, validation, transfer, or rendering fails, the publisher leaves the last known-good edition live instead of exposing a partial result.
The news page provides context for education and research, not a personalized recommendation, real-time quote service, or representation that a cited source endorses SPXPlay’s interpretation. Readers should open the linked primary or publisher source before relying on a development, especially during a fast market.
12. Reproducibility and change control
The first report is generated by a checked-in Python builder that:
- parses the same
game_data.jsbundle loaded by the SPX trainer; - validates the ticker, scenario count, common DTE, and presence of all four vertical structures on every scenario;
- computes charts and tables directly from the bundle rather than pasting values into image files; and
- fails the build when the scenario population changes until the narrative and fixed counts are deliberately reviewed.
A future data extension or methodology change will update the report’s modified date and this version number. Material changes — strike anchors, DTE window, outcome convention, commission, eligibility, or regime thresholds — require a new methodology note rather than a silent rewrite.
13. Data-publication policy
SPXPlay publishes original analysis derived from its historical-data workflow, not the licensed source records themselves. Public research may include aggregate counts, percentages, percentiles, nominal P&L summaries, methodological formulas, and charts generated from those summaries. It does not include downloadable option chains, raw historical premiums, complete OHLC series, row-level settlement files, or mappings from masked scenarios to individual trading dates.
14. Limitations and corrections
The most important limitations are selection effects, simplified execution, hold-to-expiration treatment, dependence among paired and adjacent observations, uneven regime samples, the fixed historical window, and the absence of an out-of-sample test. These are described in context in each report, not assumed away.
Questions or suspected calculation errors can be sent to support@spxplay.com. Please identify the report and metric; we will verify the generator and publish a dated correction if needed.
Playbook Trainer is an educational game built on historical market data. Nothing on this page is investment advice or a recommendation to trade. Options involve substantial risk; defined-risk spreads can lose their full maximum loss. Scenario dates are masked, and prices reflect historical option quotes with simplified fills.