SPXPlay Research Methodology
Version 1.4 · Updated August 1, 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:10 p.m. California time. Each edition is timestamped, archived, and labeled as AI-assisted.
No model publishes anything here directly. A draft becomes a page only
after it cites source identifiers the pipeline already holds and clears
required-field, length, category, markup, advice-language, and
numeric-claim validation against the source text; any failure leaves the
previous verified edition in place rather than publishing a weaker one.
Those checks are what the desk offers in place of a human editor, and we
would rather state the boundary than blur it: the editions are assembled
from a licensed feed, not reported. They are published for readers
following the desk and carry noindex, so they are not offered
to search engines as original coverage of the events they summarize.
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.
The pre-market edition may also include a U.S. Google Trends search-interest monitor. Trending queries first pass deterministic stock, index, earnings, volatility, calls, puts, SPX-relevance, and current-catalyst filters. A query is eligible only when its explanation can cite the licensed or official article set, and the public section appears only when three to five topics clear validation. Approximate search activity is directional: it does not establish total search volume, investor intent, sentiment, or a market fact. Google Trends identifies possible reader demand but never serves as factual support for the explanation.
An optional social-signal pass uses the official X API against a fixed allowlist of political leaders, technology leaders, and major technology organizations. It applies deterministic market-topic and engagement filters before the editorial model sees a candidate. The public page carries a short VantureCap summary, author, time, topic, potential SPX transmission channel, and a link to the original post; it does not republish the raw post. Social statements are not independently verified, cannot support the lead or ranked drivers by themselves, and the entire section is omitted when X is unavailable or no post clears the relevance gate.
VantureCap Research uses a configured language model to rank the developments most relevant to SPX, write a concise synthesis, and explain the plausible index transmission channel. Article, social-post, and search-query text are explicitly treated as untrusted data rather than executable instructions. A model cannot directly publish a page: its structured response must cite known source or post IDs and pass required-field, length, category, markup, advice-language, and numeric-claim checks. Unsupported numeric claims and unknown citations reject the required news draft; an invalid optional social or search-interest selection is dropped.
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. Weekly market-research workflow
The public weekly market-research report is a separate market-hours workflow owned by the inference host. It runs Monday at 10:05 a.m. California time with one Tuesday catch-up. The stable hub links to immutable dated reports and exposes an RSS feed and dedicated sitemap.
The evidence layer reads three verified lanes: the newest point-in-time Venn 3.1
market-intelligence snapshot, the complete canonical training/v4
history of matured directional_market_path_v3 underlying outcomes, and
the newest retained validated SPXPlay market-news digest. It verifies immutable
AES-256 and SHA-256 receipts for Venn objects and revalidates the news schema,
citations, timing, and public-field allowlist.
The configured language model receives only a compact structured evidence packet, never raw articles, private event payloads, prompts from another workflow, credentials, synthetic option-trade labels, option P&L, or raw market bars. Every narrative card must cite one to four allowlisted evidence IDs. Digit-bearing, uncited, setup-like, instruction-like, reader-action, or signal-following prose is rejected.
The public report keeps current Venn observations, verified source-linked reporting context, and descriptive matured-history patterns in separate sections. Historical outcomes do not establish future probabilities, and the report publishes no setups, future conditions, confirmations, invalidations, price targets, or trade alerts.
The job runs outside the public tree and atomically replaces its private digest only after full validation. The public renderer accepts that normalized schema, escapes prose, requires evidence-bound model lineage, and refuses older weeks. Raw article bodies, prompts, credentials, provider responses, model metadata, and private playbook records are not rendered. Any source, model, validation, rendering, or archive failure leaves the last known-good public hub and latest summary in place. Completed editions are staged to the same private, retained, versioned content archive through its put-only uploader.
13. 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.
14. 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.
15. 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.