options.wiki
Listed options - mechanics, payoffs, and conventions

Pricing models

Closed forms, lattices and numerical schemes, with measured convergence and stability arithmetic.

Every value in this section was recomputed from the stated formulas in double precision. The standard normal cumulative distribution is evaluated as N(x) = 0.5*(1 + erf(x/sqrt(2))), which is exact to machine precision; the Abramowitz and Stegun 26.2.17 rational approximation was run alongside it as a cross-check and agrees to within 7.5e-8 over the range -5 to +5, which is its published error bound. The reference scenario is S = 100, r = 0.04, q = 0, sigma = 0.20, T = 0.25 unless an entry states otherwise, and the Black-Scholes-Merton call at K = 100 on those inputs is 4.485236409 - every convergence figure below is an error against that number. Numeric inputs are chosen so the arithmetic is checkable; they are not observations of any market.

Model families and what each one prices

A closed form exists only where the payoff depends on the terminal price alone and exercise is European. Everything else is a numerical problem, and the choice of method is a choice about which error you are willing to measure.

ModelUnderlying process assumedEuropean closed formAmerican exercisePath dependenceError measured as
Black-Scholes-Merton 1973Geometric Brownian motion, constant sigma, continuous dividend yield qYesNoNoNone; exact within the model
Black-76Lognormal forward, constant sigmaYesNoNoNone; exact within the model
Binomial, Cox-Ross-Rubinstein 1979Two-state discrete approximation to the same diffusionConvergesYesOnly through the lattice stateValue error against the closed form
TrinomialThree-state discrete approximationConvergesYesOnly through the lattice stateValue error against the closed form
Bjerksund-Stensland 1993 and 2002Same diffusion, flat exercise boundary approximatedn/aApproximatedNoGap to a converged lattice
Monte CarloSimulated paths under the risk-neutral measureConvergesOnly with a regression or duality methodYesStandard error of the estimate
Finite differenceThe Black-Scholes partial differential equation discretisedConvergesYes, by projecting the payoff each stepOnly with an added state variableTruncation error in space and time

Binomial and trinomial convergence to Black-Scholes-Merton, verified

European call, S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. The closed-form value is 4.485236409. CRR uses u = exp(sigma*sqrt(dt)), d = 1/u, p = (exp((r-q)*dt) - d)/(u - d). The trinomial uses dx = sigma*sqrt(2*dt) with the Kamrad-Ritchken probabilities. Every value below was recomputed; the trinomial column at n steps is numerically identical to the CRR column at 2n steps, to every printed digit.

Steps nCRR uCRR pCRR valueCRR errorTrinomial value at n stepsTrinomial error
11.105170920.525187995.46849110plus 0.983254694.03156245minus 0.45367395
21.073270660.517744054.03156245minus 0.453673954.24592704minus 0.23930937
41.051271100.512523454.24592704minus 0.239309374.36286187minus 0.12237454
81.035987770.508847124.36286187minus 0.122374544.42345524minus 0.06178117
161.025315120.506252934.42345524minus 0.061781174.45421023minus 0.03102617
321.017834840.504420454.45421023minus 0.031026174.46969114minus 0.01554527
641.012578450.503125374.46969114minus 0.015545274.47745595minus 0.00778046
1281.008878010.502209844.47745595minus 0.007780464.48134425minus 0.00389216
2561.006269570.501562554.48134425minus 0.003892164.48328985minus 0.00194656
5121.004429200.501104874.48328985minus 0.001946564.48426301minus 0.00097340
10241.003129890.500781264.48426301minus 0.000973404.48474968minus 0.00048673
20481.002212150.500552434.48474968minus 0.00048673n/an/a

Finite-difference schemes: measured error and the stability boundary

Same call and same closed-form target. The grid is uniform in x = ln(S) with Dirichlet boundaries at plus and minus five standard deviations, M space steps and Nt time steps. The stability quantity is sigma^2 * dt / dx^2. Every value was recomputed; the two explicit rows above the boundary are the actual output, not a description of what would happen.

SchemeMNtsigma^2 dt/dx^2ValueError vs closed form
Explicit2004000.98034.48524380plus 7.40e-06
Explicit40016000.98034.48523847plus 2.06e-06
Explicit2001003.9212minus 2.2e+81Diverged
Explicit2002019.6059minus 7.1e+29Diverged
Implicit2001003.92124.47896828minus 6.27e-03
Implicit2004000.98034.48273241minus 2.50e-03
Implicit40016000.98034.48461107minus 6.25e-04
Crank-Nicolson2001003.92124.48400038minus 1.24e-03
Crank-Nicolson2004000.98034.48398869minus 1.25e-03
Crank-Nicolson40016000.98034.48492481minus 3.12e-04

Monte Carlo estimates and their standard errors, verified

Same call and same closed-form target of 4.485236409. The stratified rows are fully deterministic: draw z_i = Phi-inverse((i - 0.5)/n) for i = 1..n, so any reader reproduces them exactly. The pseudo-random rows depend on the generator and are stated with the seed used, 20260827, and Python's Mersenne Twister via random.gauss. The antithetic rows use the same total number of normal draws arranged as n/2 sign-paired pairs.

MethodDraws nEstimateSample s.d.Standard errorError vs closed form
Stratified midpoint104.32466075n/a, deterministicn/aminus 0.16057566
Stratified midpoint1004.47126008n/a, deterministicn/aminus 0.01397633
Stratified midpoint1,0004.48396632n/a, deterministicn/aminus 0.00127009
Stratified midpoint10,0004.48511797n/a, deterministicn/aminus 0.00011844
Stratified midpoint100,0004.48522517n/a, deterministicn/aminus 0.00001124
Pseudo-random, plain10,0004.4493126.4863070.064863minus 0.035925
Pseudo-random, antithetic10,0004.5505183.3477070.047344plus 0.065282
Pseudo-random, plain100,0004.4862986.5519350.020719plus 0.001062
Pseudo-random, antithetic100,0004.4912303.3634380.015042plus 0.005994
Pseudo-random, plain1,000,0004.4902356.5367790.006537plus 0.004999
Pseudo-random, antithetic1,000,0004.4876533.3544410.004744plus 0.002417

Entries

Black-Scholes-Merton: the six inputs and where each one enters

The closed form takes six inputs and nothing else. Five are observable or contractual and one, sigma, is not. Every quoted implied volatility is the residual of that asymmetry: it is whatever number makes the other five reproduce the observed price.

FieldValue
Formulad1 = [ln(S/K) + (r - q + sigma^2/2)*T] / (sigma*sqrt(T)); d2 = d1 - sigma*sqrt(T)
S, underlying priceEnters only through ln(S/K), so the model is homogeneous of degree one in S and K together
K, strikeContractual. Enters through ln(S/K) and through the discounted term K*exp(-r*T)
T, time to expiration in yearsEnters as sqrt(T) inside the volatility scaling and as T inside the discounting and drift
r, risk-free rateDiscounts the strike and sets the forward drift. Continuously compounded
q, continuous dividend yieldDiscounts the spot to a forward. Setting q = 0 recovers the 1973 Black-Scholes form
sigma, volatilityThe only input with no observable value. Everything called implied volatility is an inversion of this one number
WorkedReference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. d1 = [ln(1) + (0.04 - 0 + 0.02)*0.25] / (0.20*0.5) = 0.015 / 0.1 = 0.150000. d2 = 0.150000 - 0.100000 = 0.050000. N(d1) = 0.559617692, N(d2) = 0.519938810, exp(-r*T) = 0.990049834. Call = 100*0.559617692 - 100*0.990049834*0.519938810 = 55.9617692 - 51.4765328 = 4.485236409
  • Homogeneity in S and K is why a per-unit price computed at S = 1, K = 1 can be multiplied by S to price any at-the-money option of the same tenor. Forward-starting structures are priced entirely on that property.
  • The drift term carries plus sigma-squared-over-two, which is why at-the-money d1 is positive and at-the-money call delta exceeds 0.50 even with zero rates.
  • There is no volatility of volatility, no jump term and no skew anywhere in these six inputs. Everything the market does that the model cannot represent gets pushed into sigma, one strike at a time.
  • The formula is the same at every strike. The reason a single sigma cannot reprice a whole expiration is not a defect in the arithmetic; it is that the process assumption is false and the arithmetic is faithfully reporting that.

Source: Black and Scholes 1973; Merton 1973

Also described at: Wikipedia · Wikidata

Black-Scholes-Merton closed forms with continuous dividend yield

The European call and put values under geometric Brownian motion with a continuous proportional dividend yield q. Both are combinations of two digital-style terms and reduce to the 1973 Black-Scholes form at q = 0.

FieldValue
FormulaC = S*exp(-q*T)*N(d1) - K*exp(-r*T)*N(d2); P = K*exp(-r*T)*N(-d2) - S*exp(-q*T)*N(-d1)
DecompositionC = AssetOrNothing(K) - K*CashOrNothing(K), where AssetOrNothing = S*exp(-q*T)*N(d1) and CashOrNothing = exp(-r*T)*N(d2)
No-arbitrage boundsmax(S*exp(-q*T) - K*exp(-r*T), 0) is at most C, and C is at most S*exp(-q*T)
Monotone in sigmadC/dsigma = Vega is strictly positive, so the inversion for implied volatility has at most one solution
WorkedReference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. Call = 4.485236409, put = 3.490220. Cross-checks that hold at every sigma: C - P = 0.995017 = S*exp(-q*T) - K*exp(-r*T) to eight decimals. The digital decomposition: asset-or-nothing call = 55.961769, cash-or-nothing call = 0.514765, and 55.961769 - 100*0.514765 = 4.485236, recovering the call exactly. Lower bound at these inputs is 0.995017 and the upper bound is 100.000000, so 4.485236 sits inside them
  • The two terms are not the two halves of a probability. N(d2) is the risk-neutral probability of finishing in the money; N(d1) is a delta and a probability under a different measure. Reading either as a real-world chance is the single most common misuse of the formula.
  • Every arbitrage bound above is checkable from a quote screen in one subtraction. A price outside them is a stale or crossed quote, not an opportunity.
  • Put value is not monotone in r. The put term -K*T*exp(-r*T)*N(-d2) is negative, which is why a rate rise cheapens puts and is the mechanism behind interest-driven early exercise.

Source: Black and Scholes 1973; Merton 1973

Also described at: Wikipedia · Wikidata

The assumptions the closed form requires, and what each one being false costs

The derivation requires continuous frictionless hedging in a market with a constant rate, a constant volatility, a lognormal price with no jumps, and no transaction costs or position limits. Each assumption maps to a specific, identifiable pricing error rather than to a general caveat.

FieldValue
Constant sigmaFalse by observation: implied volatility differs across strikes and expirations. Consequence is the surface, and the need for a local- or stochastic-volatility model to reprice it consistently
No jumpsA jump breaks the delta hedge over the gap. Consequence is that a delta-hedged short option loses more than gamma predicts, because the loss is 0.5*Gamma*dS^2 with dS realised all at once
Continuous hedgingDiscrete rehedging leaves a residual whose variance grows with the rehedge interval. Consequence is hedging error that is zero-mean under the model and non-zero in cost once spreads are paid
Constant rMaterial only through rho, which grows roughly linearly in T. Consequence concentrates in long-dated contracts
European exerciseAmerican exercise adds a premium the closed form cannot express. Consequence is that put-call parity becomes an inequality
FrictionlessConsequence is that the model produces one price and the market produces two, and the distance between them is measured in volatility points rather than in cents
WorkedDiscrete-hedging cost of the constant-sigma and continuous-hedging assumptions taken together, at Reference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. A one-point move rehedged once realises 0.5*Gamma*dS^2 = 0.5*0.039448*1 = 0.019724 per share, 1.97 per contract, against daily theta of 0.027257 per share, 2.73 per contract. The position needs 1.18 of movement per day to recover theta, since 0.5*0.039448*1.18^2 = 0.027464
  • The model is used as a quoting convention, not as a belief. A trader who says a strike is at 28 volatility is naming a price in a unit that removes S, K, T and r from the comparison.
  • The assumption that is violated most and matters least is the constant rate. The assumption that is violated least and matters most is the absence of jumps.
  • None of these are reasons to reject the arithmetic. They are the reasons the same arithmetic returns a different sigma at every strike.

Source: Black and Scholes 1973; Merton 1973

Also described at: Wikipedia · Wikidata

Black-76 for options on futures and forwards

The forward-measure version of the same formula. It prices an option on a forward or futures price F directly, with no dividend yield and no spot, and discounts the whole payoff at the risk-free rate.

FieldValue
FormulaC = exp(-r*T)*[F*N(d1) - K*N(d2)]; P = exp(-r*T)*[K*N(-d2) - F*N(-d1)]; d1 = [ln(F/K) + sigma^2*T/2]/(sigma*sqrt(T))
Equivalence to Black-Scholes-MertonSetting F = S*exp((r - q)*T) makes Black-76 and the spot form identical at every strike
ParityC - P = exp(-r*T)*(F - K), with no spot and no dividend term
Delta with respect to Fexp(-r*T)*N(d1), which is smaller than the spot delta by the discount factor
WorkedAt Reference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. the forward is F = 100*exp(0.04*0.25) = 101.005017. Black-76 at K = 100 returns 4.485236409 for the call and 3.490220 for the put, matching the spot-form values to 1e-14. Black-76 parity: C - P = 0.995017 = exp(-0.01)*(101.005017 - 100). Forward-delta is exp(-0.01)*N(0.150000 adjusted for the forward) = 0.554049, and multiplying by dF/dS = exp(0.01) recovers the spot delta 0.559618 exactly. At K = 105 both forms return 2.390877
  • A futures option quoted at a given volatility and an equity option quoted at the same volatility are not the same exposure, because one has forward-delta and the other spot-delta. The difference is the discount factor and it is not negligible on a long-dated contract.
  • Because there is no q, Black-76 is the natural form whenever the carry is already embedded in a traded forward. Trying to back a dividend yield out of a futures price and then use the spot form reintroduces an estimate that Black-76 never needed.
  • The forward-delta is bounded by exp(-r*T), not by 1. A deep in-the-money futures call cannot have a delta of one.

Source: Black 1976

Also described at: Wikipedia · Wikidata

Cox-Ross-Rubinstein binomial parameterisation

A lattice in which the underlying multiplies by u or by d each step, with the risk-neutral probability chosen so that the one-step expected growth equals the carry. The parameterisation is not unique; this is the one that matches the first two moments of the log return.

FieldValue
Formulau = exp(sigma*sqrt(dt)); d = 1/u; p = (exp((r - q)*dt) - d)/(u - d); V = exp(-r*dt)*[p*V_up + (1 - p)*V_down]
Step sizedt = T/n for n steps
Recombining propertyu*d = 1, so the tree has n+1 terminal nodes rather than 2^n
Terminal node j of nS*u^j*d^(n-j) for j = 0..n
WorkedAt Reference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. with n = 4: dt = 0.0625, u = exp(0.20*0.25) = 1.05127110, d = 0.95122942, p = (exp(0.0025) - 0.95122942)/(1.05127110 - 0.95122942) = 0.51252345. Rolling back gives 4.24592704 against the closed form 4.48523641, an error of minus 0.23930937. At n = 1024 the value is 4.48426301, an error of minus 0.00097340, and at n = 2048 it is 4.48474968, error minus 0.00048673 - the error halves as n doubles, which is first-order convergence
  • Error halves when n doubles, so the scheme is first-order in the number of steps. Getting one more correct decimal costs ten times the work, which is why lattices are used for early exercise and almost never for European values that have a closed form.
  • The value oscillates as well as converging: at these inputs n = 1 overshoots by 0.98 and n = 2 undershoots by 0.45. Averaging n and n+1 is a cheap and standard way to kill most of the oscillation.
  • p is a risk-neutral probability, not a forecast. It contains the carry and nothing about the direction anyone expects.

Source: Cox, Ross and Rubinstein 1979

Also described at: Wikipedia · Wikidata

The trinomial lattice and its exact relation to the binomial

A lattice with three branches per step, up, middle and down, with the space step widened to sigma*sqrt(2*dt) so the probabilities remain admissible. Under the standard parameterisation it is not an independent method: it reproduces the binomial value at twice the number of steps, digit for digit.

FieldValue
Formuladx = sigma*sqrt(2*dt); pu = [(exp((r-q)*dt/2) - exp(-sigma*sqrt(dt/2))) / (exp(sigma*sqrt(dt/2)) - exp(-sigma*sqrt(dt/2)))]^2; pd = [(exp(sigma*sqrt(dt/2)) - exp((r-q)*dt/2)) / (exp(sigma*sqrt(dt/2)) - exp(-sigma*sqrt(dt/2)))]^2; pm = 1 - pu - pd
Node count2n+1 terminal nodes for n steps, against n+1 for the binomial
Probabilities at the reference inputs, n = 32pu = 0.25313513, pm = 0.49998046, pd = 0.24688440
Measured identityTrinomial(n) equals CRR(2n) at every n tested from 1 to 512, to all printed digits
WorkedAt Reference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. the trinomial at n = 8 returns 4.42345524 and CRR at n = 16 returns 4.42345524. At n = 32 the trinomial returns 4.46969114 and CRR at n = 64 returns 4.46969114. The pattern held at every n checked. The practical consequence is that the trinomial buys accuracy per time step, not accuracy per unit of work, since 2n+1 nodes per level is roughly the same arithmetic as two binomial levels
  • The middle branch is what makes a trinomial useful in practice: a barrier or a strike can be placed exactly on a node layer, which removes the largest single source of lattice error for path-dependent payoffs.
  • The identity with the binomial at 2n steps is specific to this parameterisation. Other choices of dx break it and are genuinely different schemes.
  • Because pm is close to one half at small dt, most of the probability mass sits on the middle branch and the tree is doing less exploring per step than the node count suggests.

Source: Cox, Ross and Rubinstein 1979; Boyle 1986

Also described at: Wikipedia · Wikidata

The step-size bound that keeps the risk-neutral probability admissible

The CRR probability p is not automatically between zero and one. It exceeds one when the carry over a step is larger than the up-move the volatility allows, which makes the lattice produce arbitrary values rather than a slightly wrong one.

FieldValue
Formula0 is less than p and p is less than 1 requires dt to be less than (sigma/(r - q))^2
Failure modep above 1 gives negative weight to the down node and the rolled-back value is not a discounted expectation of anything
Bound at sigma = 0.20r - q = 0.04 allows dt up to 25 years; r - q = 0.50 allows 0.160000 years, 58.40 days; r - q = 1.00 allows 0.040000 years, 14.60 days
WorkedAt sigma = 0.20 and r - q = 0.50 with T = 0.25: n = 1 gives dt = 0.25 and p = 1.139655, outside the range. n = 2 gives dt = 0.125 and p = 0.937995, admissible. At r - q = 1.00, n = 1, 2 and 4 all give p above one, at 1.892784, 1.423047 and 1.132179 respectively, and only n at 7 or more brings dt below the 0.040000 bound
  • The bound is almost never binding at ordinary equity rates and volatilities, and is routinely binding on a low-volatility name in a high-carry currency or on a heavily shorted stock where the effective carry is large and negative.
  • A lattice that silently returns a value with p outside zero and one is the worst kind of numerical failure: the answer looks like a price. Check p once at construction rather than trusting the value.
  • Widening the tree, as the trinomial does, is one fix. Reducing dt is the other. Both cost work.

Source: Cox, Ross and Rubinstein 1979

Also described at: Wikipedia · Wikidata

American exercise in a binomial lattice

At each node the value is the larger of the discounted continuation value and the immediate exercise value. That single comparison is the entire American feature; nothing else in the roll-back changes.

FieldValue
FormulaV_node = max( exp(-r*dt)*[p*V_up + (1-p)*V_down], Intrinsic(S_node) )
American premiumValue with the comparison minus value without it, at the same n
Convergence of the premiumSlower than the European value, because the exercise boundary is itself resolved only to the lattice grid
WorkedAmerican put at Reference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. European value 3.490220. CRR with the exercise comparison: n = 50 gives 3.56022411, n = 200 gives 3.56895928, n = 1000 gives 3.57125335, n = 4000 gives 3.57167665. The premium therefore converges to about 0.0815 per share, 8.15 per contract, or 2.33 percent of the European value. American call at q = 0 returns 4.48498720 against a European 4.48523641 at n = 4000, a difference of 0.00025 which is lattice error and not an early-exercise premium: with no dividend there is none
  • With q = 0 an American call has no early-exercise premium, so any positive number a lattice reports for one is discretisation error. Reporting it as a premium is a common and avoidable mistake.
  • The American put premium is driven entirely by the interest on the strike proceeds. It grows with r, with T and with how far in the money the strike sits.
  • Because the boundary sits on the lattice, the premium converges more slowly than the value. Doubling n to sharpen an American premium is often necessary where it would be wasteful for a European value.

Source: Cox, Ross and Rubinstein 1979

Also described at: Wikipedia · Wikidata

The early-exercise boundary read off a lattice

The critical underlying price at each date below which an American put is exercised immediately. It is not an input to the lattice; it is recovered by recording, at each time step, the highest node price at which exercise beat continuation.

FieldValue
FormulaS*(t) = max{ S_node at time t : Intrinsic(S_node) is at least the continuation value }
ShapeMonotonically rising in t toward the strike, meeting K exactly at expiration
At expirationS*(T) = K, since continuation value is zero
WorkedAmerican put at Reference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. CRR with n = 1000 steps, dt = 0.000250. Critical price at t = 0.025 is 86.4620; at t = 0.0625 it is 87.0106; at t = 0.125 it is 88.6773; at t = 0.1875 it is 90.9493; at t = 0.225 it is 93.8713; at t = 0.2475 it is 97.5019; at t = 0.24975 it is 99.6843. The boundary rises 13.2 points over the life and covers the last 6 of that in the final three trading days
  • The boundary is steepest at the very end. Most of the early-exercise decision compresses into the final days, which is also when the lattice resolves it worst.
  • A position that sits above the boundary at 87 with the underlying at 100 is nowhere near exercise, and the same position with the underlying at 92 two days before expiry is on it. The distance to the boundary, not the distance to the strike, is the relevant number.
  • For an American call on a dividend-paying underlying the boundary exists only in the interval immediately before an ex-dividend date, and is a single-date test rather than a continuous curve.

Source: Cox, Ross and Rubinstein 1979

Bjerksund-Stensland approximation for an American option

A closed-form approximation that replaces the true curved exercise boundary with a flat trigger level X, chosen from the model inputs, and prices the option as a combination of six power-and-normal terms. It is an approximation with a measurable gap to a converged lattice, not an exact value.

FieldValue
Formulabeta = (0.5 - b/sigma^2) + sqrt((b/sigma^2 - 0.5)^2 + 2*r/sigma^2), with b = r - q; Binf = beta/(beta - 1)*K; B0 = max(K, r/(r - b)*K); X = B0 + (Binf - B0)*(1 - exp(h)), h = -(b*T + 2*sigma*sqrt(T))*B0/(Binf - B0)
Applies toAn American call with b = r - q below r. American puts are priced by the transformation P(S,K,r,b) = C(K,S,r-b,-b)
Degenerate caseAt q = 0 there is no early-exercise premium on a call and the formula returns the European value exactly
Published benchmark reproducedS = 42, K = 40, T = 0.75, r = 0.04, q = 0.08, sigma = 0.35 returns 5.270404, matching the value published for this case to six figures
WorkedAmerican call at S = 100, K = 100, T = 0.25, r = 0.04, sigma = 0.20, q = 0.06 so b = minus 0.02. European value 3.696260. The approximation returns 3.719873. A CRR lattice with the exercise comparison returns 3.739858 at n = 500 and 3.741151 at n = 8000, so the approximation understates the converged lattice by 0.021278, which is 0.57 percent of the value and 47 percent of the early-exercise premium. At q = 0.10 the approximation returns 3.317712 against a lattice value of 3.370388, a gap of 0.052676. At q = 0 it returns 4.485236409, exactly the European value
  • The gap to the lattice grows with the size of the early-exercise premium, which is the case the approximation exists to handle. Quoting it to four decimals implies an accuracy it does not have.
  • The 2002 two-step version splits the boundary into two flat segments and is materially more accurate than the 1993 single-boundary form worked above. If the premium matters, that is the version to use.
  • Its real advantage is that it is a formula, so it differentiates analytically and evaluates in constant time. A lattice cannot do either, which is why the approximation survives despite the error shown here.

Source: Bjerksund and Stensland 1993; Bjerksund and Stensland 2002

Monte Carlo estimator and the standard error of the estimate

Simulate terminal prices under the risk-neutral measure, discount the payoff of each, and average. The estimate is unbiased and its uncertainty is a computable standard error that falls with the square root of the sample size, so a further correct decimal costs one hundred times the paths.

FieldValue
FormulaS_T = S*exp((r - q - sigma^2/2)*T + sigma*sqrt(T)*z); Estimate = (1/n)*sum of exp(-r*T)*Payoff(S_T^i); SE = s_hat/sqrt(n), s_hat the sample standard deviation of the discounted payoffs
Convergence rateSE proportional to n^(-1/2), independent of the payoff and of the number of dimensions
Paths for a target SEn = (s_hat/SE_target)^2
Confidence intervalEstimate plus or minus 1.96*SE for a nominal 95 percent interval, valid by the central limit theorem, not by any property of the option
WorkedEuropean call at Reference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. Plain pseudo-random sampling, seed 20260827: at n = 10,000 the estimate is 4.449312 with sample s.d. 6.486307, so SE = 6.486307/100 = 0.064863 and the true value sits 0.55 standard errors away. At n = 100,000 the estimate is 4.486298 with SE 0.020719. At n = 1,000,000 it is 4.490235 with SE 0.006537. To reach an SE of 0.001 at this sample s.d. requires n = (6.54/0.001)^2, about 42.8 million paths
  • The standard error is a statement about the simulation, not about the option. A tight standard error on a mis-specified process is a precise wrong answer.
  • Sample standard deviation of a call payoff is dominated by the right tail, so it is roughly 1.5 times the option value at the money and far larger for a wing. Budgeting paths from the value rather than from s_hat understates the requirement badly.
  • Never quote a Monte Carlo price without its standard error. A price of 4.45 and a price of 4.49 are the same number when the standard error is 0.065.

Also described at: Wikipedia · Wikidata

Antithetic variates and the measured variance reduction

Pair every normal draw z with its negation and average the two payoffs before averaging across pairs. The estimator stays unbiased, the number of normal draws is unchanged, and the variance falls because the paired payoffs are negatively correlated.

FieldValue
FormulaEstimate = (2/n)*sum over n/2 pairs of 0.5*[Payoff(z_i) + Payoff(-z_i)]
Why it worksVar of the average of two negatively correlated variables is below the variance of either, and the payoff is monotone in z, which guarantees the correlation is negative
Measured effectStandard error ratio 0.7257 and variance ratio 0.2633 at one million draws, so about a 27 percent reduction in standard error for no extra draws
Equivalent path savingA 27 percent standard-error reduction is worth a factor of 1/0.7257^2, about 1.9 times the paths
WorkedSame call and seed 20260827. At 10,000 draws: plain sample s.d. 6.486307 and SE 0.064863; antithetic sample s.d. 3.347707 over 5,000 pairs and SE 0.047344, a ratio of 0.7299. At 100,000 draws the SE ratio is 0.7260. At 1,000,000 draws it is 0.7257 with a variance ratio of 0.2633. The ratio is stable, which is what a variance-reduction technique should look like
  • The reduction is real but modest, and it is not free on a path-dependent payoff, where the antithetic path must be regenerated rather than reused.
  • Antithetic variates help most where the payoff is close to linear in z and least where it is close to a digital, because a digital payoff is nearly uncorrelated with its own reflection.
  • A control variate on the same underlying, using the closed-form European value as the control, usually beats antithetics by a wide margin on a European-style payoff. Antithetics are the cheapest thing to add, not the strongest.

Also described at: Wikipedia · Wikidata

Deterministic stratified sampling, and why a published Monte Carlo figure should use it

Replace pseudo-random draws with the inverse normal evaluated at the midpoints of n equal-probability strata. The result is fully deterministic, so it is reproducible by any reader without agreeing on a random number generator, and it converges far faster than pseudo-random sampling on a one-dimensional payoff.

FieldValue
Formulaz_i = Phi_inverse((i - 0.5)/n) for i = 1..n; Estimate = (1/n)*sum of exp(-r*T)*Payoff(S*exp((r - q - sigma^2/2)*T + sigma*sqrt(T)*z_i))
ReproducibilityNo seed, no generator, no library dependence. The same n gives the same number on any machine
Measured convergenceError falls by roughly a factor of ten per factor of ten in n at these inputs, against a factor of about three for pseudo-random sampling
LimitationThe advantage is a one-dimensional effect. It degrades as the number of independent normal draws per path grows
WorkedEuropean call at Reference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. Stratified midpoint estimates: n = 10 gives 4.32466075, error minus 0.16057566; n = 100 gives 4.47126008, error minus 0.01397633; n = 1,000 gives 4.48396632, error minus 0.00127009; n = 10,000 gives 4.48511797, error minus 0.00011844; n = 100,000 gives 4.48522517, error minus 0.00001124. The pseudo-random estimator at 100,000 draws has a standard error of 0.020719, so the stratified estimate at the same n is about 1,800 times more accurate on this payoff
  • The inverse normal used here is the Acklam rational approximation, verified to within 2.7e-10 by round-tripping N(Phi_inverse(u)) against u across a ten-thousand-point grid.
  • Any Monte Carlo number published as a reference figure and not reproducible without a seed is not a reference figure. Stratification removes the excuse.
  • On a genuinely high-dimensional payoff, a low-discrepancy sequence with a Brownian bridge construction is the equivalent move, and it keeps the reproducibility.

Also described at: Wikipedia · Wikidata

Finite-difference schemes: explicit, implicit and Crank-Nicolson

Discretise the Black-Scholes partial differential equation on a grid in log-price and time and step backwards from the payoff. The three standard schemes differ in where the space derivatives are evaluated in time, and that single choice determines both stability and accuracy order.

FieldValue
FormulaIn x = ln(S): dV/dt + 0.5*sigma^2*d2V/dx2 + (r - q - sigma^2/2)*dV/dx - r*V = 0. Discretised: (I - theta*dt*L)*V_new = (I + (1 - theta)*dt*L)*V_old, with theta = 0 explicit, theta = 1 implicit, theta = 0.5 Crank-Nicolson
Explicit, theta = 0No linear solve. Conditionally stable. Accuracy first order in dt
Implicit, theta = 1One tridiagonal solve per step. Unconditionally stable. Accuracy first order in dt
Crank-Nicolson, theta = 0.5One tridiagonal solve per step. Unconditionally stable. Accuracy second order in dt
American exerciseProject the value onto the payoff after each step, which turns the scheme into a linear complementarity solver
WorkedEuropean call at Reference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. closed form 4.485236409, grid to plus and minus five standard deviations. At M = 400 space steps and Nt = 1600 time steps: explicit 4.48523847, error plus 2.06e-06; implicit 4.48461107, error minus 6.25e-04; Crank-Nicolson 4.48492481, error minus 3.12e-04. At M = 200, Nt = 100 the explicit scheme diverges to minus 2.2e+81 while implicit returns 4.47896828 and Crank-Nicolson 4.48400038. Independent check on a barrier payoff: Crank-Nicolson with an absorbing boundary reproduces the closed-form down-and-out call at H = 90 to within 2.3e-06 at M = Nt = 3200
  • Crank-Nicolson is second order in time but oscillates near a kink in the payoff, which at expiry is exactly at the strike. Two fully implicit steps at the start, the Rannacher smoothing, is the standard fix and costs almost nothing.
  • Grid truncation is a separate error from discretisation. A boundary placed at three standard deviations rather than five will dominate the error no matter how fine the grid.
  • The implicit scheme is the only one of the three that never blows up, which is why it is what you reach for when the inputs are unknown at build time.

Also described at: Wikipedia · Wikidata

The explicit-scheme stability condition, and what violating it actually does

The explicit scheme is stable only while the dimensionless quantity sigma-squared times dt over dx-squared stays at or below one. Above that the scheme does not become inaccurate; it amplifies rounding error geometrically and returns a number with no relation to a price.

FieldValue
FormulaStability requires sigma^2*dt/dx^2 to be at most 1, equivalently dt at most dx^2/sigma^2
Equivalent probability readingThe explicit step is a three-point weighted average; the condition is exactly the condition that all three weights stay non-negative
Consequence of violationError grows by a factor of order the ratio each step, so it is not a small mistake at any grid size
Cost of complianceHalving dx forces dt to fall by four, so total work grows with the cube of the space refinement
WorkedSame call and grid. dx = 0.005050 at M = 200. The bound gives dt at most 0.005050^2/0.04 = 0.000638 years, so Nt must be at least T/0.000638 = 392 steps. Measured: Nt = 400 gives ratio 0.9803 and a value of 4.48524380, error plus 7.40e-06. Nt = 100 gives ratio 3.9212 and a value of minus 2.2e+81. Nt = 20 gives ratio 19.6059 and minus 7.1e+29. The implicit and Crank-Nicolson schemes on the identical grids return 4.47896828 and 4.48400038 at Nt = 100, both usable
  • A divergent explicit run is easy to spot because the answer is absurd. The dangerous case is a ratio slightly above one on a coarse grid, where the answer is merely wrong by a plausible-looking amount.
  • Check the ratio at construction and refuse to run rather than checking the output for reasonableness. The condition is one line of arithmetic and it is a hard boundary, not a guideline.
  • This is the reason the explicit scheme is rare in production despite being the simplest to write: its accuracy is competitive only on grids where the time-step count is already dictated by stability rather than by accuracy.

Put-call parity for American options is an inequality

European parity is an identity because neither side can be exercised early. With American exercise the relationship becomes a two-sided bound, and the width of that band is the combined early-exercise value. Any claim of an arbitrage from an American call-put difference has to clear the band, not the identity.

FieldValue
FormulaS - K is at most C_A - P_A, and C_A - P_A is at most S - K*exp(-r*T), for a non-dividend-paying underlying
Band widthK - K*exp(-r*T) = K*(1 - exp(-r*T)), the interest on the strike over the remaining life
With a dividend yieldThe lower bound becomes S*exp(-q*T) - K and the band widens by the dividend term
European limitC - P equals the upper bound exactly, which is the identity
WorkedAt Reference inputs used throughout this site: S = 100, K = 100, T = 0.25, r = 0.04, q = 0, sigma = 0.20. These are inputs chosen to make the arithmetic checkable, not observations of any market. At those inputs the call is 4.485236 and the put is 3.490220. the band is 100 - 100 = 0.000000 at the bottom and 100 - 100*exp(-0.01) = 0.995017 at the top, so it is 0.995017 wide. A CRR lattice at n = 4000 gives C_A = 4.484987 and P_A = 3.571677, so C_A - P_A = 0.913311, which sits inside the band at 91.8 percent of the way up it. The European difference is 0.995017, exactly the upper bound. The gap between the American difference and the upper bound, 0.081706, is the American put premium computed independently as 0.081457 at n = 4000 - the residual 0.000249 is lattice error on the call
  • The band is narrow at short tenors and low rates and wide at long tenors and high rates. On a one-week contract it is close enough to an identity to use as a data check; on a two-year contract it is not.
  • Observed American call-put differences on listed equity options sit inside this band almost always, and when they do not the explanation is normally borrow cost or an unmodelled dividend rather than a tradable arbitrage.
  • The lower bound is the interesting one. It says the American difference can never fall below immediate intrinsic, which is a statement about the put being exercisable, not about the call.

Also described at: Wikipedia · Wikidata

Reference data. Reviewed 2026-08-27. Machine-readable: /models.json. Corpus manifest: /llms.txt.

Published and maintained by · [email protected]. A reference published by the wallstreet.wiki network. Every figure is stated as a formula and recomputed from it, every convention names the authority that sets it, and corrections are versioned and dated. About this reference.

Reference information only. Not investment advice, not a recommendation, and not a solicitation. Options involve substantial risk of loss. Contract terms, margin requirements, and exchange rules change; confirm against the current OCC and exchange rulebooks and your broker's house requirements before trading.