How optionsgrid works
Every number on the calculator comes from a model with stated assumptions. This page spells them out so you can decide how far to trust each one. optionsgrid is an educational modelling tool, not investment advice; options involve risk, including the loss of the entire amount invested.
What the grid shows
Rows are underlying prices, columns are dates, and each cell is the position’s profit or loss in dollars if the stock is at that price at that moment. A cell values every unexpired leg with the model below, adds the intrinsic value of any leg that has expired, and subtracts what the position cost to open.
- Price rows form a ladder centred on the current price, spaced by the strike spacing for that price level, and reaching about two standard deviations each way at the last date (using the position’s reference volatility). Settings can replace the automatic range with your own.
- Date columns start with now, then one column per calendar day for the first sixty days and a thinner spacing beyond, with every expiry inserted as its own column at its exact moment. Settings can force daily columns.
- Value modes: dollars of profit or loss, percent of the entry cost, percent of the maximum risk, or the position’s value per share. Cell colours are anchored at zero and symmetric; the scale is clipped at the 98th percentile so a few extreme cells do not wash out the rest.
Prices and the model
European legs are priced with Black-Scholes-Merton using a continuous interest rate and dividend yield. American legs use the Bjerksund-Stensland (2002) two-boundary approximation, which stays within a few tenths of a percent of a fine binomial tree across normal inputs; the implementation reproduces the paper’s published tables. Where that formula is known to break down (low volatility with strongly negative carry) a binomial tree takes over, blended so prices stay continuous. A call on a stock that pays no dividend is never exercised early, so it is priced as European. Puts are priced through the standard put-call transformation.
Each leg carries exactly one of a price or an implied volatility. Type the price from your broker and the volatility is solved from it (Corrado-Miller start, Newton steps, Brent as the fallback); type a volatility and the price is solved from that. Muted numbers are the solved ones. Legs created from a strategy start with a placeholder volatility of 30%, and the model prices badge stays up until every leg has a typed price or volatility.
Dates and times
- All dates are New York dates. Contracts expire at the 16:00 close, or 13:00 on an early close; AM-settled index contracts (SPX and NDX third-Friday monthlies) settle at the 09:30 open. An expiry that lands on a weekend or holiday moves to the prior trading day, as the exchanges do.
- The trading calendar follows the NYSE rules: New Year’s Day, Martin Luther King Jr. Day, Presidents’ Day, Good Friday, Memorial Day, Juneteenth, Independence Day, Labor Day, Thanksgiving and Christmas, with the usual weekend observance; early closes on July 3, the day after Thanksgiving and December 24 when they fall on a weekday.
- Grid columns are valued at the market open of their date by default; Settings can switch to the close. Time to expiry is the actual time between the as-of moment and the expiry moment, in a 365-day year, with daylight-saving changes handled by the platform’s own timezone data.
- The as-of moment is part of the position. Press Now before sharing a link so it opens with current days to expiry.
Entry, risk and return
- Entry is the net cash to open: quantity × multiplier × price for every leg, a debit when you pay and a credit when you receive. Commissions are not included.
- Max risk and max return come from the payoff at the nearest expiry, analysed exactly: it is linear between strikes, so the extremes sit at a strike or run off to infinity, which is reported as unbounded. When legs expire on different dates, legs that are still alive at the first expiry are valued with the model at that moment, and the tile says nearest expiry.
- In window notes appear when the worst or best cell anywhere in the grid is beyond the expiry extremes, which happens before expiry on calendars and diagonals.
- Breakevens are the prices where profit at expiry crosses zero.
- Return on risk is max return divided by max risk. The annualized figure is linear (the number most calculators print); the compounded version is in the tile’s hover text.
Probability of profit
The underlying at the analysis expiry is assumed lognormal, with volatility equal to the vega-weighted implied volatility of the legs at that expiry and a drift of r − q (the risk-neutral drift; Settings can set it to zero). Probability of profit is the chance that profit at expiry is above zero; expected value is the average profit at expiry under the same distribution, not discounted. When the payoff is piecewise-linear the answer is exact in closed form; otherwise it is integrated numerically between the kinks.
Treat these as model figures. Real markets have fatter tails and skew, and a probability built from implied volatility reflects what options are priced at, not a forecast.
What-ifs
The IV change slider scales every leg’s volatility: +10% turns 30% into 33%, and −100% removes all volatility. Volatility is sticky to the strike, so a leg keeps its own volatility as the price moves across the grid. Per-expiry shifts, earnings events and sticky-delta volatility are planned and not yet available.
Links and sharing
The link is the position. Everything you see is encoded in the address, nothing is stored anywhere, and a link is the only copy. Short positions use a readable query string, long ones a compressed fragment; both decode in any future version of the app, and a token the app cannot read is reported rather than silently dropped.
leg [+|-]<qty><c|p><strike>:<expiry>[@price][~iv%][=entry][x<multiplier>][e|a] stock [+|-]<qty>s@<basis> ?v=1&u=SPY&s=580&l=-1p560:[email protected]&l=+1p550:[email protected]
Copy as markdown gives a one-line summary, a small sample of the grid as a table and the link, sized for a forum post. CSV is the full grid in dollars with the position in commented header rows. JSON is the position, scenario and view in canonical form. Chart PNG renders the payoff chart in your browser.
Keyboard shortcuts
| Key | Action |
|---|---|
| n | Add an option leg |
| Delete | Remove the selected leg |
| t | Jump to the strategy search |
| [ ] | Step the selected leg’s strike down or up |
| { } | Step the selected leg’s expiry to the previous or next listed date |
| + − | Flip the selected leg between buy and sell (outside a text field) |
| g c b | Show the grid, the chart, or both |
| m | Next value mode: dollars, % of max risk, % of entry, value per share |
| Arrows | Move around the grid once a cell has focus |
| Enter | Pin the focused cell; Esc clears the pin |
| ← → | Move the chart’s hover line between dates |
| Ctrl/Cmd+L | Copy the link to this exact view |
What the model leaves out
- No market data. Prices and the current stock price are typed in from your broker.
- No commissions, fees, margin, interest on credit, or early assignment risk.
- Dividends are a continuous yield, not discrete payments on known dates.
- Volatility is a single number per leg. Skew and term structure enter only through the prices you type.
- The American approximation is within a few tenths of a percent of a tree; the tree is used only where the approximation fails.
- Probabilities and expected values are model outputs, not forecasts.
Privacy
There are no accounts, no cookies and no analytics. Pricing runs in your browser; no position is ever sent to a server. The only thing kept on your device is the theme preference. The source is public under the MIT license.
Ready to try it? Pick a strategy.