RESEARCH NOTE / v0.1 / 14 NOVEMBER 2026
What the numbers mean.
The payoff lab is a transparent arithmetic tool for illustrative options positions at expiry. Its premiums are invented examples. It contains no historical option quotations, performance estimates or connection to a trading account.
The calculation
For each leg: signed quantity × (expiry intrinsic value − premium paid) × contract multiplier − absolute quantity × entry fee. A positive quantity is long; a negative quantity is short. Call intrinsic value is max(settlement − strike, 0). Put intrinsic value is max(strike − settlement, 0). All dollar results are USD.
The example iron condor collects 6 points × $100 = $600 gross credit. Four opening fees of $1.25 reduce this to $595. Its 20-point wings give a $1,405 worst expiry loss. Break-evens are 5,934.05 and 6,065.95. These are arithmetic results, not evidence of executable prices.
Exact extrema, selectable view
Break-evens and maximum profit/loss are calculated from the piecewise-linear payoff across non-negative settlement prices, including strike vertices and the upper tail. Zoom changes only the displayed range; it does not change the extrema. Unbounded upper-tail gains or losses are labelled explicitly.
Dataset dictionary
| Field | Meaning |
|---|---|
| example_id | Illustrative portfolio identifier |
| option_type | PUT or CALL |
| quantity | Signed contract quantity; positive long, negative short |
| strike | Underlying price units |
| premium_points | Opening option premium in points |
| multiplier_usd | USD per option point per contract |
| entry_fee_per_contract_usd | One-time opening fee per contract |
| data_basis | Synthetic example; not observed market data |
Time and price scenarios
The dashed curve uses European Black-Scholes on a non-dividend-paying spot underlying. Annual IV and annual continuously compounded rate are explicit inputs. Time is calendar minutes divided by 365 x 24 x 60 (ACT/365). It is a generic teaching model, not an ES futures-option valuation. The timer reduces remaining time at the chosen playback speed and pauses when the tab is hidden. Changing price or time changes modelled P/L. The expiry profile changes only when positions, premiums or fees change.
Opening premiums are editable examples, so initial model P/L need not be zero. Constant IV, no skew and no dividends are simplifying assumptions. This does not predict returns or guarantee executable marks.
What is excluded
No intraday management, observed IV or skew changes, probabilities, future trades, slippage, assignment, exercise fees, taxes, financing, margin, settlement fees or futures delivery are modelled. Moving the settlement selector answers an expiry scenario, not what a position would be worth if the underlying moved there now.
A multiplier alone does not specify a product. SPXW index options and ES futures options have different contract and settlement conventions. This generic explorer cannot model physical delivery or account-level consequences.
Using the resources
Download example-scenario.json and portfolio_lab.py to the same folder, then run python portfolio_lab.py. It creates expiry and time/price CSVs. The browser can also export the currently displayed payoff range and an SVG chart. The browser CSV includes exact visible strikes and break-evens as well as regular samples.
These original example resources may be used and adapted with attribution to Chris Abela. They carry no market-data redistribution rights. No investment recommendation or fitness for trading is implied.