How to estimate the probability a stock reaches a price by a date
The phrase covers two different events. One is the chance the stock is beyond the price on the date. The other is the chance it trades at that price at any point before then. Option prices imply a number for each, once you pick a model. This page walks through the standard lognormal estimate, shows where delta and the roughly 2× touch rule fit, and works a numeric example you can recompute.
Implied volatility is the input
An option price can be turned back into a volatility. Implied volatility is the annualized standard deviation of the log of the stock price that, inside a pricing model, reproduces the option market price. It is the number that lines the model up with the traded price. It is not a poll of where the price will be.
Quotes are annualized. An implied volatility of 20% means the model uses 0.20 as the standard deviation of the log return over one year. Over a shorter window the typical move scales with the square root of time. A quarter of a year has square root 0.5, so a 20% volatility is a 10% standard deviation of the log return over those three months.
One option produces one volatility. The next strike can imply a different one. That pattern is the skew, and it matters when the target sits far from the spot. For a first estimate, use the implied volatility of the option that expires on the date you care about, with a strike near the target. Historical volatility, the standard deviation of past returns, is a different input. This page does not use it.
The lognormal model
The usual model says the price on the date is lognormal: the logarithm of the price is a normal random variable. The center is set so the average price matches the forward, and the width is the implied volatility times the square root of time. The forward is the price today, grown at the interest rate and reduced by dividends. When the interest rate and the dividend yield are both zero, the forward equals the spot.
| S | Stock price today |
|---|---|
| F | Forward price of the stock on the date |
| K | Target price, or the strike |
| σ | Implied volatility, annualized, as a decimal |
| T | Time to the date, in years |
| r | Continuous risk-free interest rate |
| q | Continuous dividend yield |
| N | Cumulative distribution function of a standard normal |
The risk-neutral probability of finishing strictly above a target K uses the forward form of d2. N is a cumulative normal table, or a spreadsheet function such as NORM.S.DIST.
d2 = [ln(F / K) − σ²T / 2] / (σ √T) P(finish above K) = N(d2) P(finish below K) = N(−d2)
Because F = S · e(r − q)T, the same d2 can be written from the spot:
d2 = [ln(S / K) + (r − q − σ² / 2) T] / (σ √T)
In this continuous model a single exact price has probability zero, so finishing above K and finishing at or below K add to one. N(0) is 50%. A negative d2 means the target is above the median of this distribution, so the chance of finishing above it is under one half. The median sits slightly below the forward.
These are risk-neutral probabilities. They are the weights that reproduce option prices. They are not the frequencies you would count by replaying history. The price of insurance is already inside the option price, so a high downside probability here can reflect that payment rather than a count of past declines.
To compute a finishing probability:
- Write down the target and the date. Convert the wait into a year fraction T.
- Take the forward for that date, or use the spot if you are deliberately setting rates and dividends to zero.
- Take implied volatility for that expiry, near that strike, and write it as a decimal.
- Compute d2, then read N(d2) for finishing above or N(−d2) for finishing below.
Day count moves the result a little. Actual/365 and a 252-day trading year are both in use. The worked example below sets T = 0.25 exactly, so the square root is 0.5. US equity options are American, and dividends are paid on dates rather than as a smooth yield, so a forward read off the chain is already an approximation. The calculator treats put-call parity the same way.
Touching a price, and the roughly 2× rule
Reaches often means something else: the stock trades at the target at least once before the date, even if it is no longer there at the close. That is a touching probability, also called a first-passage or barrier probability. It is not N(d2).
For a driftless Brownian motion the reflection principle gives an exact result. The chance of touching an upper level is twice the chance of finishing above it, and the same factor of two holds for a lower level. Every path that finishes beyond the level has touched it, and in the driftless case each of those paths is matched by one that touched and came back.
A lognormal stock is not quite driftless. The log price has drift r − q − σ²/2. With no interest and no dividend that drift is −σ²/2, a small downward pull on the log, while the average of the price itself stays at the price today. The factor is then only about two. The worked example is 2.05 on the upside and 1.95 on the downside. The shortcut can drift further from two as the horizon lengthens, because the drift term has more time to matter. Quote the formula when you need the number the model actually implies, and keep twice the finishing probability as the rule of thumb.
Let ν = r − q − σ²/2, b = ln(H/S) for an upper target H, and a = ln(S/L) for a lower target L. The continuous-monitoring probabilities are:
P(touch H) = N((−b + νT) / (σ√T)) + exp(2νb / σ²) · N((−b − νT) / (σ√T)) P(touch L) = N((−a − νT) / (σ√T)) + exp(−2νa / σ²) · N((−a + νT) / (σ√T))
When r and q are both zero, the upside formula shortens. With d1 = d2 + σ√T, and both computed at the target H:
P(touch H) = N(d2) + (S / H) · N(d1) P(touch L) = N(−d2) + (S / L) · N(−d1)
Use that short form only when the interest rate and the dividend yield are zero. It was derived with the spot in that case. Do not swap the forward in for the spot. If rates or dividends are not zero, use the general expression above, or the factor-of-two rule of thumb.
Two gaps sit between this number and a daily chart. The formula watches the path continuously, so it counts an intraday print that a daily close would miss. And the path is continuous: the model has no overnight gap. A stock can jump through a level. The formula is the probability inside this continuous model, not a count of historical touches.
Delta is a rough proxy
Traders sometimes read a 16-delta call as about a 16% chance of expiring in the money. In the Black-Scholes model the probability of finishing above the strike is N(d2). The call delta is a different object: with dividend yield q it is e−qT N(d1). With no dividend, the call delta equals N(d1).
d1 is σ√T above d2. When volatility and time are both small, the two nearly agree, which is why the proxy circulates. At 20% volatility and three months, σ√T is 0.10. In the example, delta reads 18.3% while the probability of finishing above the target is 15.8%.
Doubling delta is a rougher shortcut for the touch probability than doubling N(d2). Delta answers a hedging question: how the option price moves when the stock moves. It only resembles a probability.
A worked example
Suppose the stock is at $100, implied volatility near the target is 20%, and the date is a quarter of a year away. The upper target is $110 and the lower target is $90. The interest rate and the dividend yield are both zero, so the forward equals the spot and each step can be checked by hand. These inputs are a teaching example. They are not a quote for any ticker.
| Question | Probability |
|---|---|
| Finishes above $110 | 15.8% |
| Finishes at or below $110 | 84.2% |
| Touches $110 at some point before the date | 32.4% |
| Twice the chance of finishing above $110 | 31.6% |
| Call delta N(d1), the proxy | 18.3% |
| Finishes below $90 | 15.8% |
| Touches $90 at some point before the date | 30.8% |
| Twice the chance of finishing below $90 | 31.6% |
Step 1. Scale time. The square root of 0.25 is 0.5. The standard deviation of the log return over the window is 0.20 × 0.5 = 0.10.
Step 2. Compute d2 at $110. ln(100/110) rounded to six decimals is -0.095310. The variance adjustment σ²T/2 equals 0.005. Subtract to get -0.095310 − 0.005 = -0.100310, then divide by 0.10. That is -1.00310, which rounds to d2 = -1.0031. Looking up the unrounded value, N(d2) = 15.8%. The chance of finishing at or below $110 is 84.2%.
Step 3. Delta. d1 = d2 + σ√T = -0.9031. With no dividend, the call delta is N(d1) = 18.3%.
Step 4. Touching $110, using the zero-rate shortcut. N(d2) + (100/110) × N(d1) comes out to 32.4%. Using the one-decimal figures, 15.8% + (100/110) × 18.3% also rounds to 32.4%. Twice the finishing probability is 31.6%. The model ratio is 2.05, against a rule of thumb of 2.
The downside target is the same idea. ln(100/90) rounded to six decimals is 0.105361. Subtract 0.005 and divide by 0.10 to get d2 = 1.0036, and d1 = 1.1036. The probability of finishing below $90 is N(−d2) = 15.8%. The touch formula N(−d2) + (100/90) × N(−d1) equals 30.8%. N(−d1) is 13.5%, and 15.8% + (100/90) × 13.5% rounds to 30.8%. Twice the finishing probability is 31.6%, and the model ratio is 1.95.
Where a single volatility goes wrong
Fat tails
A normal curve for the log price has thin tails. Equity prices put more mass on very large moves than a constant-volatility lognormal does, especially over a few days. Far from the spot, a probability read from at-the-money volatility is the model tail, not the tail the wing options are charging for. Those wing prices are the correction, when the quotes are real.
Earnings and other jumps
Implied volatility over a window is an average. If most of the expected move is an earnings announcement, a trial result, or a deal decision on one day, the constant-vol model still spreads that uncertainty across every day. It will not tell you the chance of touching a level before the announcement versus on the announcement. Around a known event the price on the expiry can have two humps. A single lognormal has one hump by construction.
Implied-volatility skew
Equity skew is a higher implied volatility at low strikes than at high strikes. The probability of finishing below a downside price, computed from at-the-money volatility, will not match the probability implied by the put struck there. A flat-vol calculation ignores that difference. Using the implied volatility of the strike you actually care about is the minimum fix. Reading the whole chain is the better one.
If every strike is quoted at the same volatility, the chain-implied probability of finishing above K lines up with N(d2). Once the smile bends, it does not. The shape people then want is the risk-neutral density, which is the Breeden–Litzenberger result: the discounted second derivative of the call price with respect to strike.
Read the finishing probability off the option chain
The calculator plots that density for a listed US stock or ETF and one expiry. Switch the chart to the cumulative curve and you can read the probability of finishing at or below a price, which is the chain answer to the finishing question, skew included. It does not apply the touch formula on this page. A high value there is still the price of insurance in the options market, not a forecast and not a recommendation.
The desk is free to use. Methodology and limits on the calculator page covers the smile fit, American exercise, and the confidence flag for wide markets.
Common questions
How do you estimate the probability a stock reaches a price by a date?
First decide which event you mean. The probability the price finishes above the target, in the lognormal model, is N(d2): the standard normal distribution function at d2 = [ln(F/K) − (σ²T)/2] / (σ√T). F is the forward price, K is the target, σ is implied volatility, and T is the time in years. The probability the price touches the target at any time before the date is a barrier probability. For a driftless path it is exactly twice the chance of finishing beyond the level, and for a stock it is only roughly twice. Both figures are risk-neutral calculations, not a forecast.
What is the difference between finishing beyond a strike and touching it?
Finishing beyond a strike means the price at the expiration date is past the strike. Touching it means the price traded at the strike at least once before that date, even if it later finished back on the other side. Every continuous path that finishes beyond the strike has touched it, and other paths touch and come back, so the touch probability is higher. In a driftless model the touch probability is exactly twice the finishing probability. That factor of two is the source of the roughly 2x rule.
Is delta the probability an option expires in the money?
No. Delta is a hedge ratio. In the Black-Scholes model with no dividend yield, a European call delta equals N(d1), while the risk-neutral probability of expiring above the strike equals N(d2). d1 sits above d2 by σ√T. Delta is a rough proxy when that gap is small, and a poor one for long-dated or high-volatility options. Doubling delta is a cruder stand-in for the touch probability than doubling N(d2).
What does an options implied probability calculator use?
Implied volatility is the volatility that makes a pricing model match the market price of an option. A one-volatility calculator plugs that number into the lognormal model and returns N(d2), or sometimes a touch probability. A calculator that reads the whole option chain, including the one on this site, recovers the risk-neutral distribution from prices across strikes. That distribution can reflect skew and more than one peak. Neither number is a real-world forecast or a recommendation.
Why do fat tails, earnings, and implied-volatility skew matter?
A lognormal with one volatility has thin tails, spreads variance evenly across the window, and uses the same volatility at every strike. Equity prices jump more than that curve expects, an earnings announcement concentrates uncertainty on one day, and equity skew quotes low strikes at a higher implied volatility than high strikes. Each of those moves the probability relative to the flat-volatility estimate. The listed option chain is the check on all three.
Is this financial advice?
No. This page is educational only. It explains a model. It is not financial advice, not a prediction of where a stock will trade, and not a claim about returns.