Calculation methodology
Every number this site shows comes from a published model applied to inputs you can see. This page gives you the formulas, names the assumptions, and is honest about the places where the model and the market part company.
Last reviewed against the calculator
The one rule everything follows
No calculation happens in the interface. Every figure on this site is produced by a single set of pure functions that take a position and return a result, with no knowledge of buttons, charts or tables. That separation is not an architectural preference — it is what makes the claims on this page checkable. A formula buried inside a chart component can be asserted about; a formula in an isolated function can be tested against a reference value.
Every displayed number is tagged with where it came from
You entered it, a market feed supplied it, or a model derived it. The badge beside each figure says which. A model-derived premium is never presented as a price anyone quoted, and a theoretical result is never allowed to look like a real trade.
Payoff and breakevens
At expiration, an option is worth its intrinsic value and nothing else. For a call that is max(S − K, 0), and for a put max(K − S, 0), where S is the price of the underlying and K the strike. Profit for one leg is that value, minus what you paid or plus what you received, multiplied by the contract size and the number of contracts.
sign = +1 and a short leg sign = −1. The multiplier is 100 for standard equity options.Because every term is linear in S between strikes, the total payoff is piecewise-linear with kinks only at strike prices. That fact does more work here than any other. It means breakevens do not need a root-finding algorithm and its associated tolerance: the payoff is evaluated at every strike, and wherever the profit changes sign between two adjacent points, the crossing is solved exactly by linear interpolation.
The result is exact to the precision of the arithmetic, not to within some epsilon. A strategy with four breakevens returns four breakevens, and an iron condor’s inner two are as precise as a long call’s single one.
Why some answers say Unlimited
A naked short call has no maximum loss. Not a very large one — none. The stock can keep rising, and the loss rises with it forever. Showing a large finite number in that box would be the single most dangerous thing a calculator could do, because it converts an unbounded risk into one a person can talk themselves into.
So maximum profit and maximum loss are not numbers here. They are a small type with three possible shapes: a finite amount, Unlimited, or Not determinable. The engine works out which by examining the slope of the payoff beyond the outermost strike in each direction. If the slope is zero, the payoff has flattened and the extreme value at the breakpoints is the true maximum. If the slope is non-zero, the payoff keeps going, and the answer is Unlimited.
This works for strategies nobody anticipated
Because the test is on the asymptotic slope rather than a lookup table of known strategies, a custom eight-leg position with an accidental uncovered short gets the same honest answer as a textbook naked call.
Pricing before expiration
Expiration payoff needs no model. Everything before expiration does, because it depends on what the option is worth while time and volatility still have something to contribute.
Black-Scholes-Merton
European-style options, and the default for everything, use Black-Scholes-Merton with a continuous dividend yield.
S spot, K strike, r risk-free rate, q dividend yield, σ volatility, T years to expiration, and N the standard normal cumulative distribution.The normal distribution itself is computed with a high-precision rational approximation rather than a short one, because the tails are exactly where probability estimates get used and exactly where crude approximations fail.
Cox-Ross-Rubinstein binomial
American-style options can be exercised early, which Black-Scholes cannot express. Listed US equity options are American-style, so a binomial tree is available for them. It divides the time to expiration into steps and, at every node, takes the greater of holding the option and exercising it immediately.
For a call on a non-dividend-paying stock, early exercise is never optimal, and the tree converges to the Black-Scholes value. The difference appears on puts and on dividend-paying stocks, which is precisely where it matters.
What neither model knows
Both assume volatility is constant across strikes and constant over time. It is neither. Real option chains show a volatility smile, and volatility moves. Both assume you can trade continuously at a single price, with no spread. You cannot. These are not small caveats, and the accuracy and limitations page sets out what they cost you in practice.
The Greeks
Greeks are computed analytically from the Black-Scholes formulas rather than by nudging an input and re-pricing, which avoids the numerical noise that finite differences introduce. They are then scaled to units a person can act on.
| Greek | Measures | Reported as |
|---|---|---|
| Delta | Change in position value per $1 move in the underlying | Share equivalents. 100 behaves like owning 100 shares. |
| Gamma | Change in delta per $1 move in the underlying | Share equivalents per dollar |
| Theta | Value lost or gained to the passage of time | Dollars per calendar day |
| Vega | Sensitivity to implied volatility | Dollars per 1 percentage point of volatility |
| Rho | Sensitivity to interest rates | Dollars per 1 percentage point of rate |
Two of those units are worth dwelling on. Theta is per calendar day, not per trading day — a weekend costs a long option two days of decay, and reporting per trading day quietly hides that. Vega and rho are per percentage point rather than per unit, because a vega quoted per 1.00 of volatility is a number nobody can use.
Position Greeks are the sum of the leg Greeks, each signed by direction and scaled by quantity and multiplier. Stock contributes 1 delta per share and nothing else.
Implied volatility
Implied volatility is the volatility that makes the model price equal the market price. There is no closed form for it, so it has to be solved for numerically. This site uses Newton-Raphson, which converges quickly, with two guards on it.
- A vega floor. Newton-Raphson divides by vega. Deep in or far out of the money, vega approaches zero and the step size explodes. When vega falls below a threshold, the solver abandons Newton-Raphson.
- Bisection as a fallback. On a bounded interval, bisection cannot diverge. It is slower, and it always lands somewhere sensible.
Convergence is tested on volatility, not on price. A solver that stops when the price is close enough can report a volatility that is materially wrong wherever the price is insensitive to it — which is the exact situation the vega guard already flagged.
Some prices have no implied volatility, and that is the honest answer
A premium below intrinsic value cannot be produced by any volatility. Neither can a price above the underlying for a call. In those cases the solver reports that no solution exists rather than returning a number, and the interface says so.
Probabilities
Probability figures here assume the underlying’s price at expiration follows a lognormal distribution, which is the same assumption Black-Scholes makes. Probability of finishing above a price is:
μ = −σ²/2 under a zero-drift assumption, or μ = r − q − σ²/2 under risk-neutral drift.Probability of profit is that same machinery applied to the profitable regions between breakevens, summed. Probability of touching a price before expiration is a different question with a different answer, computed from the reflection principle, and for a price not yet reached it is roughly twice the probability of finishing beyond it.
Every probability travels with its assumptions
The distribution, the volatility used, and whether drift was included are all returned alongside the number and displayed with it. This is why our figure may differ from your broker’s: not because one is wrong, but because a different drift assumption produces a different number from identical inputs.
Treat all of these as rough. Real returns have fatter tails than a lognormal distribution allows, which means genuine extreme moves are more common than this model implies. A 5% probability from any lognormal model — ours or anyone’s — is not a 5% probability in the world.
Commissions, fees and slippage
Costs are applied where they actually occur rather than smeared across the result. Per contract commissions scale with quantity; per trade commissions apply once to the whole position; exchange and regulatory fees are per contract. All of them are subtracted from profit, which means they shift breakevens too — a detail most calculators skip, and one that matters on a spread trading for fifty cents.
Slippage is modelled as a per-share adjustment to the premium in the direction that hurts you: you pay slightly more when buying and receive slightly less when selling. It defaults to zero, because inventing a slippage figure and presenting the result as an estimate would be worse than leaving it to you.
Rounding and precision
Money is handled in integer micro-units internally and converted for display, so a sequence of additions cannot accumulate the floating-point drift that makes a $0.00 result render as −$0.000000001. Rounding happens once, at the point of display.
No figure that reaches the interface is ever NaN or Infinity. Where a calculation genuinely has no answer, the result carries that as a distinct state with an explanation, rather than a number that happens to be nonsense.
Sources and verification
The formulas above are standard and not original to this site. They come from:
- Black, F. and Scholes, M. (1973), The Pricing of Options and Corporate Liabilities, Journal of Political Economy 81(3).
- Merton, R. C. (1973), Theory of Rational Option Pricing, Bell Journal of Economics and Management Science 4(1) — the dividend yield extension.
- Cox, J., Ross, S. and Rubinstein, M. (1979), Option Pricing: A Simplified Approach, Journal of Financial Economics 7(3) — the binomial model.
- Hull, J. C., Options, Futures, and Other Derivatives — the worked examples used as reference values in the test suite.
The engine is checked against those published worked examples, cross-checked against the open-source py_vollib implementation, and constrained by put-call parity as an internal invariant that must hold for every pair of options the tests generate. Edge cases get their own tests: zero days to expiration, volatility near zero and above 200%, deeply in and out of the money, premiums below intrinsic value, and inputs where the implied volatility solver cannot converge.
None of that makes the numbers right for trading. It makes them right for the model. The difference between those two things is the subject of the accuracy page, and it is worth your time.
Found something here that looks wrong?
That is worth more to this site than a compliment. The formulas above are testable claims, and the test suite that checks them is part of the codebase. Tell us what you found and include the inputs, so it can be reproduced exactly.