Strasmore Research
Deep Dives Matt ConnorBy Matt Connor

Binomial vs Black-Scholes: Where Prices Differ

Binomial vs Black-Scholes prices: the two models agree on European options and split on American ones. See how wide the early exercise gap gets and why.

Binomial vs Black-Scholes prices land on the same answer for a European option and part company on an American one. Black-Scholes is one formula that values an option as if it will be held to expiry. A binomial tree walks backward through time and tests at every node whether exercising on the spot beats holding on, and that extra test is where the two prices separate.

What each model actually does

Black-Scholes takes five inputs: the stock price, the strike, the time left, the risk-free rate, and the volatility. It returns one number, on the assumption the option can be exercised only on the expiry date. That is the European style. Our guide to American and European options covers which listed contracts fall on which side.

The Cox-Ross-Rubinstein tree, the standard binomial build, replaces the formula with arithmetic you could do on paper. Chop the option's life into equal steps of length dt years. In each step the stock multiplies by u = exp(sigma * sqrt(dt)) or divides by the same factor, and each move carries a risk-neutral probability p = (exp(r * dt) - d) / (u - d). Write the payoff at every terminal node, then roll backward one step at a time, discounting as you go. Neither model needs special software: the formula wants the error function from any scientific calculator, and the tree wants nothing but multiplication.

For an American option, one line changes. At every node the value becomes the larger of the rolled-back number and the payoff from exercising right there. The formula has nowhere to put that comparison.

Binomial vs Black-Scholes on a European option

Take a deliberately round set of inputs: a stock at $100, a strike of $100, one year to expiry, 25% annual volatility, a 4% risk-free rate, no dividend. These are made-up parameters chosen for clean arithmetic, not a quote on anything real. Black-Scholes values the European call at $11.84 and the European put at $7.92. Run the tree at its coarsest settings, where every number is small enough to check by hand.

  • One step: the tree prices the call at $14.15, about $2.31 above the formula.
  • Two steps: $10.71, about $1.12 below it.

Both are wrong, in opposite directions, and both are the same error shrinking. Each doubling of the step count roughly halves it, and the sign flips depending on whether the strike lands on a terminal node or between two of them. By a few hundred steps the gap is well under a penny on a $100 stock, smaller than the increment the contract quotes in. On European options there is no disagreement to argue about, only a step count.

QueryBinomial call vs Black-Scholes as the tree gains steps (S=100, K=100, 1 year, 25% vol, 4% rate)
The exact SQL behind every number
WITH
    100.0 AS spot,
    100.0 AS strike,
    1.0 AS years,
    0.25 AS sigma,
    0.04 AS rate,
    years / steps AS dt,
    exp(sigma * sqrt(dt)) AS up,
    1 / up AS down,
    (exp(rate * dt) - down) / (up - down) AS prob,
    (log(spot / strike) + (rate + (sigma * sigma) / 2) * years) / (sigma * sqrt(years)) AS d1,
    d1 - sigma * sqrt(years) AS d2,
    (spot * 0.5 * (1 + erf(d1 / sqrt(2))))
        - (strike * exp(-rate * years) * 0.5 * (1 + erf(d2 / sqrt(2)))) AS bs_call,
    exp(-rate * years) * arraySum(
        j -> exp(lgamma(steps + 1) - lgamma(j + 1) - lgamma(steps - j + 1))
             * pow(prob, j)
             * pow(1 - prob, steps - j)
             * greatest((spot * pow(up, j) * pow(down, steps - j)) - strike, 0),
        range(steps + 1)
    ) AS tree_call
SELECT
    concat(toString(steps), if(steps = 1, ' step', ' steps')) AS tree_steps,
    round(tree_call, 2) AS binomial_call,
    round(bs_call, 2) AS black_scholes_call,
    round(tree_call - bs_call, 3) AS gap_to_formula
FROM
(
    SELECT arrayJoin([1, 2, 5, 10, 25, 50, 100, 250, 500]) AS steps
)
ORDER BY steps ASC
Run this yourself

Why the tree keeps a premium on an American put

Keep those inputs and move the stock down. At $60 against a $100 strike, Black-Scholes values the European put at $36.30. Intrinsic value, the strike minus the stock, is $40.00. The formula prices the option below what exercising it would pay.

For a European put that is correct: the holder cannot exercise, and $40 delivered in a year is worth less than $40 today. An American put holder can collect the $40 this afternoon, and an American put can never be worth less than its intrinsic value. The tree enforces that floor at every node. The closed form has no way to express it.

  • Stock at $80, strike $100: the formula prints $19.03 against $20.00 of intrinsic value, a shortfall of $0.97.
  • Stock at $60, strike $100: $36.30 against $40.00, a shortfall of $3.70.

The gap at $60 is roughly a tenth of the price Black-Scholes prints. A deep in the money American put marked off a European formula is marked that much too low. The same mechanic sits behind early assignment on a short option: the counterparty exercises at the point where holding stops paying.

QueryEuropean put price against intrinsic value as the stock falls (K=100, 1 year, 25% vol, 4% rate)
The exact SQL behind every number
WITH
    100.0 AS strike,
    1.0 AS years,
    0.25 AS sigma,
    0.04 AS rate,
    (log(spot / strike) + (rate + (sigma * sigma) / 2) * years) / (sigma * sqrt(years)) AS d1,
    d1 - sigma * sqrt(years) AS d2,
    (strike * exp(-rate * years) * 0.5 * (1 + erf(-d2 / sqrt(2))))
        - (spot * 0.5 * (1 + erf(-d1 / sqrt(2)))) AS bs_put,
    greatest(strike - spot, 0) AS intrinsic
SELECT
    concat('$', toString(toUInt16(spot)), ' stock') AS stock_level,
    round(bs_put, 2) AS european_put,
    round(intrinsic, 2) AS intrinsic_value,
    round(intrinsic - bs_put, 2) AS intrinsic_above_model
FROM
(
    SELECT arrayJoin([100.0, 90.0, 80.0, 70.0, 60.0]) AS spot
)
ORDER BY spot DESC
Run this yourself

How much does the gap widen as rates rise?

Exercising a deep in the money put converts the option into strike-price cash today rather than strike-price cash at expiry. The prize is the interest on the strike over the remaining life. In the deep limit, where the remaining optionality is worth almost nothing, the early exercise premium approaches K * (1 - exp(-r * T)), the present-value discount on the strike itself. For a $100 strike with one year to run, that limit is:

  • A 0% rate: $0.00
  • 2%: $1.98
  • 4%: $3.92
  • 6%: $5.82
  • 8%: $7.69

At a zero rate on a stock paying no dividend, the two models agree on an American put exactly. Nothing is gained by taking the cash early, the exercise test never fires anywhere in the tree, and the American price collapses onto the European one. Every dollar of the gap above is interest on the strike, and that is the entire economic content of American put early exercise.

Depth works the same way. The deeper the put sits, the less the remaining optionality is worth, and the more of that interest a holder banks without giving anything up. At the money the exercise test almost never fires, and the two prices sit close together.

QueryInterest on a $100 strike over one year: the deep put early exercise premium limit
The exact SQL behind every number
WITH
    100.0 AS strike,
    1.0 AS years
SELECT
    concat(toString(toUInt8(round(rate * 100))), '% rate') AS risk_free_rate,
    round(strike * (1 - exp(-rate * years)), 2) AS interest_on_the_strike
FROM
(
    SELECT arrayJoin([0.0, 0.02, 0.04, 0.06, 0.08]) AS rate
)
ORDER BY rate ASC
Run this yourself

What about a call with a dividend before expiry?

On a stock paying no dividend, an American call is never worth exercising early, and the tree returns the Black-Scholes price to within its step-size error. Exercising would mean paying the strike sooner than necessary and throwing away time value, with nothing on the other side of the ledger.

A cash dividend puts something there. A holder who exercises the instant before the ex-dividend date owns the stock in time to collect the payment, and against that pays the strike early and gives up whatever time value the option still carries. The interest half of the trade is exact. Early exercise is worth examining only when the dividend exceeds K * (1 - exp(-r * t)), where t is the time from the ex-date to expiry. At a $100 strike and a 4% rate, that hurdle runs:

  • One week left after the ex-date: $0.08
  • One month: $0.33
  • Three months: $1.00
  • Six months: $1.98
  • One year: $3.92

A quarterly dividend of $0.25 clears the one-week hurdle and fails the one-month one, which is why early call exercise clusters in the last days before an ex-date late in a contract's life. Clearing the interest hurdle is necessary and not sufficient: the dividend also has to beat the time value being surrendered, which confines the practice to deep in the money calls whose time value has already drained. The tree tests those nodes and carries the premium. Black-Scholes, which values the call off the stock price minus the present value of the dividend, cannot.

QueryThe interest hurdle a dividend must clear, $100 strike at a 4% rate
The exact SQL behind every number
WITH
    100.0 AS strike,
    0.04 AS rate
SELECT
    term.1 AS remaining_life,
    round(strike * (1 - exp(-rate * term.2)), 2) AS interest_hurdle
FROM
(
    SELECT arrayJoin([
        ('One week', 7 / 365),
        ('One month', 1 / 12),
        ('Three months', 0.25),
        ('Six months', 0.5),
        ('One year', 1.0)
    ]) AS term
)
ORDER BY term.2 ASC
Run this yourself

Why your broker's greeks may not match a Black-Scholes calculator

Nearly every listed single-name equity option in the US is American style. Brokers and market makers price them with trees or other methods that handle early exercise, and the delta and theta on your screen come out of that model. A Black-Scholes calculator fed the same quote returns different greeks, with the difference concentrated in the two places above: deep in the money puts, and calls carrying a dividend before expiry. The implied volatility printed beside those greeks is solved out of the same American model, and it will not match a European solve on the same price. See how implied volatility is calculated for the solving step, and how option closing marks are set for what happens when model output meets an official end-of-day price.

Both models share one assumption worth naming: a single constant volatility for the whole life of the option. Market prices across strikes do not obey it, which is the subject of the volatility smile. Adding tree steps fixes the early exercise problem and leaves the constant-volatility problem where it was.

FAQ

Do binomial and Black-Scholes give the same option price?

For a European option, yes, once the tree has enough steps. The binomial price oscillates above and below the formula at low step counts and settles onto it as steps increase. For an American option the two differ, and the tree is the one carrying the early exercise value.

Why is an American put worth more than a European put?

An American put can be exercised on any day, which lets the holder hold the strike in cash immediately rather than at expiry. The extra value is the interest on that cash over the remaining life. It grows with the interest rate and with how deep in the money the put sits, and it vanishes at a zero rate.

How many steps does a binomial tree need?

Enough that the remaining error is smaller than the increment the option trades in. For a one-year option on a $100 stock, a one-step tree misses by dollars, while a few hundred steps bring the error under a penny. Commercial pricing systems commonly run several hundred to a few thousand steps.

When is an American option worth exercising early?

A put becomes a candidate when it is deep in the money and rates are positive, since the interest on the strike outweighs the small remaining time value. A call becomes a candidate only ahead of a dividend, when the payment beats the interest saved by paying the strike later plus the time value given up. This is educational context rather than guidance on any position.


Every figure here comes from the two models run on the same made-up inputs, so each one can be rebuilt with a calculator. To put model prices next to live option quotes, ask for them in plain English on the Strasmore terminal.