Methodology

How the expected move is calculated

Every figure on this site is derived from listed option prices with the formulas below. Nothing is a forecast; the site reports what the options market is pricing and shows the working.

1. Expected move is one standard deviation

The expected move is the one-standard-deviation range of the stock price at expiry, as implied by at-the-money option prices. Under a lognormal model that means roughly a 68% chance of closing inside the range and a 32% chance of closing outside. The same definition is used on every row, so a 4-day range and a 30-day range are directly comparable.

Under 8 days to expiry: the weighted straddle

Very short-dated option prices are more reliable than very short-dated implied volatility numbers, so the calculator prices the range directly from the at-the-money straddle.

expected move = (weighted ATM straddle price / stock price) × 1.2533

Every call-put pair with a strike within 2% of the last price is priced at a spread-aware mid (bid/ask mid weighted against the last trade, with stale last trades down-weighted), then the straddles are averaged with weights of volume + 0.3 × open interest taken as the smaller of the two legs, so an illiquid leg cannot dominate. The 1.2533 factor is √(π/2): for a normally distributed move, the price of the ATM straddle is σ√T × √(2/π) ≈ 0.7979 σ√T, so dividing by 0.7979 recovers one standard deviation.

8 days and beyond: implied volatility

expected move = average ATM implied volatility × √(days to expiry / 365)

The implied volatility is the average of the at-the-money call and put, taken from the chain. Days to expiry are fractional, counted to the 4:00 pm ET close on the expiry date.

2. Upper and lower bounds

The bounds are the last price plus and minus the expected move in dollars, then tilted by skew. When out-of-the-money puts carry more implied volatility than at-the-money options (the normal state for equities), the lower bound is widened and the upper bound tightened by the same fraction, capped at 20%. Skew is measured as the ratio of average OTM put IV to average ATM IV, minus one, halved.

3. Probability of staying inside

The probability that the stock closes between the bounds is computed under a lognormal distribution with drift equal to the risk-free rate and the chain's implied volatility. By construction it sits near 68%; it moves when skew makes the range asymmetric. The confidence band reported in the API re-evaluates the probability at implied volatility plus and minus 1.96 times a 10% relative uncertainty scaled by √T.

4. Max pain

max pain = argmin over strikes K of Σ OIcall,i × max(K − Ki, 0) + Σ OIput,i × max(Ki − K, 0)

For each candidate settlement price, the intrinsic value that would be paid to every call and put holder is summed using open interest; the strike with the smallest total is max pain. Contracts with fewer than 10 open interest are ignored and an expiry needs at least three strikes and 100 total open interest before a value is shown. Call and put legs are identified from the OCC option symbol's type character, never from the ticker text.

5. Put/call ratio, support and resistance

The put/call ratio blends volume and open interest for the expiry. Support and resistance are the strikes carrying the heaviest put and call open interest respectively, weighted by distance from the current price; when both land on the same strike the page shows it as a pin.

6. Risk-free rate

The risk-free rate feeds the lognormal drift and the Greeks. It is read from the Federal Reserve's FRED database as the Treasury constant-maturity yield closest to the expiry tenor (1-month, 3-month, 6-month, 1-year or 2-year series), cached for the trading day. If FRED is unavailable the 13-week T-bill index (^IRX), 5-year (^FVX) or 10-year (^TNX) yield is used as published, without scaling. If no source answers, the calculation reports an error rather than assuming a number.

7. Data source and freshness

8. Options flow score and setup labels

The options flow score combines open-interest changes, volume-to-open-interest ratios, dealer gamma and vanna exposure estimates, IV skew and term structure, and premium paid relative to realised volatility into a number between -1 and +1. The setup label summarises implied-volatility, momentum and breakout conditions. Both are descriptive summaries of the chain and have not been validated as predictive signals; the expected move, max pain and put/call ratio are the primary outputs.

Worked example

AAPL last price 319.70 on a Friday close. The 4-day expiry's most liquid at-the-money straddle at the 320 strike costs 4.00. Weighted across the 315 to 325 strikes the straddle is 4.00, so the raw ratio is 4.00 / 319.70 = 1.25%. Multiplying by 1.2533 gives an expected move of 1.57%, or about $5.02, and a range of 314.68 to 324.72 before skew. With mild put skew the published range tilts to 313.68 to 323.71. Max pain from open interest for that expiry is 315.

Limitations

Questions or corrections: open an issue on the project's GitHub or use the contact address in the footer.