How Option Pricing Works: The Black-Scholes Formula Explained

You don't need to guess where a stock is headed to price a bet on it. Here's the replication trick behind the Black-Scholes formula, from a plain payoff diagram to the closed-form price.

By Petrus Sheya

July 28, 2026 · 7 min read

If you could pay 5todayfortheright,nottheobligation,tobuyastockat5 today for the right, not the obligation, to buy a stock at 100 three months from now, how much should that right actually cost?

That's it. That's the entire question behind one of the most famous formulas in finance. Not "will the stock go up," nobody knows that. Just: what is a fair price for a bet whose outcome depends on the future?

The surprising answer, discovered by Fischer Black, Myron Scholes, and Robert Merton in the early 1970s, is that you don't need to know the odds at all. You need something else entirely, and once you see what it is, the formula stops looking like magic.


What exactly are we pricing?

An option is a contract. A call option gives you the right to buy a stock at a fixed price, called the strike price KK, at some future date. A put option gives you the right to sell at that fixed price instead.

Say the strike is 100.Ifthestockendsupat100. If the stock ends up at 130, your call is worth 30,yougettobuyat30, you get to buy at 100 and the stock is worth 130.Ifthestockendsupat130. If the stock ends up at 80, your call is worth exactly 0.Youjustdontuseit.Nobodyforcesyoutobuya0. You just don't use it. Nobody forces you to buy a 80 stock for $100.

We write the call's payoff as:

payoff=max(STK,0)\text{payoff} = \max(S_T - K, 0)

where STS_T is the stock's price at expiry. A put flips the direction, it pays off when the stock falls below the strike.

Drag the strike and notice the kink never moves off the strike price, the payoff is flat on one side and a straight climb on the other.

S at expirypayoffK = 100spot = 100
Payoff at spot$0
Breakeven$100

Drag the strike above and watch the kink slide with it. Notice the shape never changes, flat below the strike, a straight 45-degree climb above it. That flat-then-climbing shape is the entire object we're trying to put a price tag on.


Why can't we just average the payoff?

Here's the naive idea. The stock might go up, might go down. So why not estimate the probability of each outcome, multiply by the payoff, and average?

Because that requires knowing the real probability the stock goes up, and that number doesn't exist in any usable form. It depends on how the whole market feels about risk, how much extra return investors demand for holding something uncertain, and that risk appetite is different for every single person holding the stock.

So the naive average is stuck before it even starts. We need a way to price the bet that doesn't require knowing anyone's opinion about the future.


The stock's future is random, but how random?

Before we get to the clever trick, we need one honest model of how a stock actually wanders. The standard choice is called geometric Brownian motion. In plain terms, the stock takes a huge number of tiny random steps, each one a small percentage move up or down, and those percentage moves compound.

The size of those random steps is called volatility, written σ\sigma. A calm stock has a small σ\sigma, its price wanders in a tight band. A wild stock has a large σ\sigma, and three months from now it could be almost anywhere.

Turn up volatility and watch the paths fan out. The Monte Carlo price is just the average discounted payoff across every path, this is what a real trading desk would double check the formula against.

K = 100
P(finish above K)55%
Avg payoff$13.47
Discounted (≈ price)$13.07

Push volatility up and watch the fan of possible futures widen. Notice the fraction of paths finishing above the strike changes, and so does the average payoff across all of them. Discount that average back to today's dollars using the risk-free rate rr... and you've just computed an option price using nothing but simulation. No formula needed, just brute-force averaging over enough random futures.

That's a real pricing method, actually used as a sanity check on trading desks. But it's slow, and it still leaves one question unanswered: which probability should the random walk actually use?


The trick: you don't need the odds, you need a replica

Here's the idea that unlocks everything. Forget trying to guess the probability the stock goes up. Ask a completely different question instead: could you build a portfolio, out of just the stock and cash, that pays off exactly the same as the option, no matter what the stock does?

If you can, then the option and that portfolio are identical bets wearing different clothes. And two identical bets must cost the same. If the option were priced higher, you'd sell the option and buy the cheaper replica, pocketing the difference for free, forever, with zero risk. If it were priced lower, you'd do the reverse. Either way, that's free money sitting on the table, and markets don't leave free money sitting around for long. This is called no-arbitrage pricing.

So the whole problem collapses into one engineering question: how many shares of the stock do you need to hold, at any given moment, to replicate the option?

That number has a name, delta, written Δ\Delta. It's just the slope of the option's price curve, how much the option's value moves for a $1 move in the stock.

Drag the dot along the option's price curve. The tangent line's slope is delta, the number of shares that replicate the option at that exact price, and it changes every time the stock moves.

K = 100
Option value C$9.15
Delta = N(d1)0.570
Shares to hold0.57

Drag the dot along the curve. Notice the tangent line's steepness changes as you move, near the strike it's changing fast, far from it the curve flattens out. That changing slope is the whole reason hedging an option isn't a one-time trade, you have to keep rebalancing your shares as the stock moves, buying a bit more when delta rises and selling when it falls. That continuous rebalancing is what "replicating" the option actually means in practice.


Turning the trick into a formula

Black, Scholes, and Merton did the hard part for you. They worked out exactly how much stock and cash you need at every instant to keep that replica perfectly matched to the option, and solved the resulting equation in closed form.

The result needs two intermediate quantities first, usually called d1d_1 and d2d_2:

d1=ln(S/K)+(r+σ2/2)TσT,d2=d1σTd_1 = \frac{\ln(S/K) + (r + \sigma^2/2)T}{\sigma\sqrt{T}}, \qquad d_2 = d_1 - \sigma\sqrt{T}

Don't worry about memorizing that, just notice what's inside it: today's stock price SS, the strike KK, the risk-free rate rr, volatility σ\sigma, and time to expiry TT. Every input is something you can actually observe or look up, none of it requires guessing where the stock is headed.

Feed d1d_1 and d2d_2 into the standard normal cumulative distribution function N()N(\cdot), the same bell-curve function from any statistics class, and you get the call price:

C=SN(d1)KerTN(d2)C = S \, N(d_1) - K e^{-rT} N(d_2)

N(d1)N(d_1) turns out to be exactly the delta from the last section, the hedge ratio. N(d2)N(d_2) is, loosely, the probability the option finishes in the money under the risk-neutral pricing world. The whole formula is really just: what you'd pay for a share weighted by that hedge, minus the discounted strike weighted by that probability.

Slide volatility and watch every term in the formula move together. More uncertainty about the future always makes the option worth more, never less.

σ
d10.124
d2-0.025
N(d1) / N(d2)0.549 / 0.490
Call / Put$6.29 / $5.55

Slide volatility up and watch d1d_1, d2d_2, and every downstream number shift together. Notice the price only ever goes up as σ\sigma increases, more uncertainty always makes the option more valuable, because the payoff is one-sided. A wilder stock can't hurt you if you were never obligated to buy, it can only help. That's the one intuition worth keeping even if you forget every symbol in the formula.


Putting the whole idea together

Here's the full chain of reasoning, now that every piece has a name:

  1. An option's payoff is a simple, known shape, flat on one side of the strike, a straight climb on the other.
  2. Pricing it by averaging over guessed probabilities fails, because nobody's probability is the right one.
  3. But you can replicate the option's payoff using only the stock and cash, continuously adjusting how many shares you hold as the stock moves.
  4. Since the replica and the option must cost the same, or arbitrage exists, the replication cost is the price.
  5. Black-Scholes solves for that cost in closed form, and the hedge ratio inside it, N(d1)N(d_1), is exactly the delta you'd need to actually build the replica.

Nothing in that chain requires knowing whether the stock goes up or down. That's the entire trick: replace a guess about the future with a guarantee about today.


The short version

An option's payoff is a simple kinked shape. You can't price it by guessing probabilities because no single probability is agreed upon by the market. Instead, Black-Scholes prices it by asking what it would cost to build an identical payoff out of stock and cash, rebalanced continuously as the stock price moves, a strategy called delta hedging. Because two portfolios with identical payoffs must cost the same, that replication cost is the only price that avoids handing someone free money. The formula's inputs, spot price, strike, volatility, rate, and time, feed into two numbers d1d_1 and d2d_2, which the normal distribution turns into a hedge ratio and a probability, and those combine into the price itself.

That's the whole mechanism. Build the copy, price the copy, and the option has to match it.


All visualizations are interactive React components running entirely in your browser. The simulated stock paths, the Black-Scholes formula, and the normal distribution approximation are all computed with plain JavaScript, no libraries beyond React.