It only took 3 years to upgrade the revolutionary Black-Scholes-Merton (BSM) model of 1973 [2] so that it could handle commodities.

But why did it need upgrading for commodities?

The BSM Model

To answer this, let us first remind ourselves of the main assumptions of the BSM model that revolutionised the pricing of options on equities:

  1. there exists a risk-free interest rate,
  2. the underlying asset (e.g. an equity) follows a geometric Brownian motion,
  3. the underlying asset does not pay a dividend,
  4. it is possible to borrow and lend any amount of money (even fractional) at the risk-free rate,
  5. it is possible to buy or sell any amount of the underlying (even fractional),
  6. there are no arbitrage opportunities,
  7. all the transactions above do not incur any fees or costs (i.e. frictionless market).

Within assumption #2 of geometric Brownian motion lies further assumptions that:

  • The drift and volatility are constant and non-random.

And this is where the problems begin…

The Problem With Assuming

You see, by assuming that your underlying asset follows a geometric Brownian motion you are also assuming that the logarithm of the asset value follows a regular Brownian motion with drift.

How do we know that the price of derivatives follows such assumptions?

Well, they don’t – not exactly…

They just sort-of appear like they do, and, of course, every so-often they don’t at all! (c.f. for a list of 50 instances where they didn’t!)

So what we can say is that the price of a derivative, call it S, follows (approximately, under usual market conditions and assumptions) a geometric Brownian motion with constant drift and volatility. Writing this sentence down in symbols looks like this:

\displaystyle \Delta S = \mu S dt + \sigma S dW

which says that a small change in the price of a derivative is equal to some random process (the \sigma S dW bit) plus some drift (the \mu S dt bit).

If you graph this equation for different levels of drift and volatility over time you get something that looks like this:

Figure 1 – simulations of geometric Brownian motion. Source:

That graph looks pretty convincing, right? In fact, statistically speaking, you’d have a hard time convincing yourself that it wasn’t realistic; which is why this model has been so good at approximating the real price of a derivative for the past 47 years.

OK, so this assumption allows us to model the evolution of the underlying asset price. What about the price of the derivative?

If we assume that drift and volatility are constant (recall this is the assumption we inherit when we assume a geometric Brownian motion) then the only other variables that could possibly drive the value of a derivative is the underlying asset price S and/or time itself t. Why? Because there just aren’t any other variables in the BSM model, we’ve fixed all of them.

Thus, we need to know how the value of a derivative V evolves as a function of just S and t. Sounds doable.

But our assumptions have forced us to consider another function V(S,t). A function of the underlying asset price S and time t, this is the the function that holds the price of the derivative.

Ito’s Lemma

So how do we get from

\displaystyle \Delta S = \mu S dt + \sigma S dW


\displaystyle \Delta V(S,t) = ?

We won’t get in to the details in this blog but what we do is make another assumption on V(S,t) that it be at least twice differentiable and has a Taylor series expansion of which we can take the first two terms. Then we substitute all of that in to the differential equation, collect like terms, and assume that any instance of dt^2 and dtdW in the expansion goes to zero faster than dW^2, so we can just replace it with dt (which we can do thanks to quadratic variance arguments of a Wiener process which I’ve outlined in a previous blog post), and we get

\displaystyle \Delta V = \left( V_t + \mu V_S + \frac{1}{2} \sigma^2 V_{SS} \right) dt + \sigma V_S dW_t

where V_S denotes the partial derivative of V with respect to S, V_t denotes the partial derivative of V with respect to t, and V_{SS} is the second-order partial derivative with respect to S. This process is known as applying Ito’s Lemma.

Removing Randomness

This (Ito’s Lemma) equation still has a lot of randomness in it, note that dW_t term. Is there a way we can kill off this randomness so that our derivative price is completely deterministic?

A bold endeavour. Let’s see how it is done…

Imagine I give you a portfolio, with value \Pi, consisting of being short 1 unit of this derivative -V and long some fraction \frac{x}{y} of the underlying asset. The value of this portfolio of two positions at time t is simply the sum of the two values:

\displaystyle \Pi = -V+\frac{x}{y}S

Now we discretize time, allowing the value of this portfolio to evolve to the future time t + \Delta t, and substituting the equations for \Delta S and \Delta V (which we found above) and we get an expression for the the change in portfolio value:

\displaystyle \Delta \Pi = \left( -V_t - \frac{1}{2}\sigma^2 V^2 V_{SS} \right)\Delta t

and the dW_t term has vanished!

If the uncertainty has been eliminated then the portfolio must be risk-free.

If the portfolio is risk-free it must generate returns equal to the risk-free interest rate (otherwise arbitrage opportunities would exist).

The risk-free interest rate over the period from t to t+\Delta t is r, hence

\displaystyle r\Pi\Delta t = \Delta \Pi

We know what r, \Pi and \Delta\Pi are, so we substitute those in:

\displaystyle \left( -V_t - \frac{1}{2}\sigma^2 S^2 V_{SS} \right)\Delta t = r\left( -V + SV_S \right) \Delta t

Simplifying by collecting terms and equating one side to be zero we get the celebrated Black-Scholes partial differential equation (PDE):

\displaystyle V_t + \frac{1}{2}\sigma^2 S^2 V_{SS} + rS V_S - rV = 0

This PDE can be solved analytically assuming a bunch of boundary conditions:

  • When the underlying asset price is 0, the value of the derivative is 0,
  • The value of the derivative approaches the value of the underlying asset as the value of the asset approaches infinity (which also happens when the volatility of the underlying asset approaches infinity)
  • The value of the derivative equals \max(S-K,0), where K is the derivative’s strike price, at maturity when t = T, i.e. the functional form of the value is known at maturity.

The solution of the Black-Scholes PDE is achieved by noting that it is a Cauchy-Euler equation which can be transformed in to a diffusion equation via the change of some variables. Under these changes the PDE actually reduces to a well-known form:

\displaystyle u_{\tau} = \frac{1}{2}\sigma^2 u_{xx}

where \tau := T-t and x = \ln(S/K) + (r - 0.5 \sigma^2)\tau.

Due to the change of the elapsed-time variable t to the time-to-maturity variable \tau, it must be noted that the terminal condition V(S,T) = \max(S-K,0) becomes an initial condition.

The next steps are quite convoluted (pun intended), and outside the scope of this blog post. For the interested reader, follow pages 33 to 40 of Robert Buchanan’s slides here for more information, or stackexchange here. But in the end we end up with the solution

\displaystyle u(x,\tau) = K e^{x+\frac{1}{2}\sigma^2\tau} \mathcal{N}(d_1) - K\mathcal{N}(d_2)

where \mathcal{N} is the standard normal cumulative distribution function and

\displaystyle d_1 := \frac{1}{\sigma\sqrt{\tau}}\left( \left( x + \frac{1}{2}\sigma^2\tau \right) + \frac{1}{2}\sigma^2\tau \right)

The form of this solution as essentially \mathcal{N}(d_1) - \mathcal{N}(d_2) derives from the fact that this is just the integral

\displaystyle \int_{d_1}^{d_2} e^{x^2}dx

I might think about creating a separate blog post dedicated to this solution. If I do, I will link it here.

Relaxing Assumptions

Right, well. That was a lot! But now that we have all of the technical stuff out of the way we have earned ourselves a breather, so let us relax some of the many assumptions of Blacks, Scholes and Merton and see what happens…

In 1976, Fischer Black (1938-1995) did just this! You see, there was a disconnect between the value of options on commodities as traders saw them, and as risk management saw them. The idea at the time was that that somehow, the price of the underlying commodity wasn’t playing by all the rules as requested by Black, Scholes and Merton. So Fischer Black found a way around the problem:

He published a paper that modelled the futures prices, instead of the spot prices of commodities, that appeared to be immune to the non-randomness…

For futures under the BSM framework, margin calls essentially kill off any drift, which means we need to model them slightly differently.

Intuitively, futures should have zero drift (a.k.a. they’re driftless) because entering in to a futures contract is always going to cost you nothing up front, and nothing doesn’t drift! Futures contracts are then continuously marked-to-market requiring payments equal to margin calls; and it’s these margin calls that essentially kill off any drift.

One way to view the Black-76 formula is as the Black-Scholes model with a continuous dividend yield equal to the risk-free interest rate.

Take a look at one of the eight assumptions of the BSM model, that is: “the underlying asset is log-normally distributed“. Now consider the spot price (the immediate price) an agricultural product, or an energy product, which is clearly not random. Agriculturals will typically rise prior to harvest season and fall immediately following the harvest. The same with energy products such as natural gas; they’re  more expensive in winter and less so in summer (at least in the Northern Hemisphere). Therefore there is an element of predictability for these things.

Predictability violates the Black-Scholes-Merton model!

This non-randomness of spot commodities actually invalidates the use of the Black-Scholes-Merton model because they will refuse to follow Brownian motion, and hence, they violate one of those core assumptions.

So, instead of modelling spot prices, Fischer Black modelled futures prices. In other words: the underlying in Black-76 is a futures price instead of a spot price.

Futures instead of Spot

OK, so what did this do?

Well, first of all, spot equals futures at expiry. So no difference there; at that boundary there is literally no difference between the two.

We can eliminate another degree of freedom by observing that the spot price of a futures contract is always zero. This causes the value of any long position in the futures contract to vanish.

So, in light of this, let’s begin with the futures price F between time t and delivery (not maturity!) T_d. Since we are calculating future prices we must be in the forward-looking, risk-neutral probability measure \mathbb{Q}, and our past history of information on these prices is captured within the filtration \mathcal{F}_t. Thus, from the fundamentals, we know that the price of something equals its expected value under the appropriate probability measure, and we can write this down as math as:

\displaystyle F(t;T_d) = \mathbb{E}_t^{\mathbb{Q}}\left[S_T | \mathcal{F}_t\right]

where S is the underlying spot commodity price that the futures contract is written on.

The Quest for a Suitable Numeraire

Problem Fischer Black faced now is: what is the suitable numeraire?

He found that if there exists a suitable bond in the marketplace with just the right maturity date and interest rate then using it as a numeraire (and Girsanov’s theorem) allows us to write the above equation as

\displaystyle F(t;T_d) = \mathbb{E}_t^{\mathbb{Q}}\left[S_T | \mathcal{F}_t\right] = B_T \mathbb{E}_t^{\mathbb{Q}}\left[\frac{S_T}{B_T}|\mathcal{F}_t\right]

Ugh, this looks more complicated.

Well, it isn’t. The fraction S_T / B_T inside the expectation is crucially important, as this has now become a martingale! And, as we saw in our discussion on these martingales, under the BSM framework, this simplifies radically to just:

\displaystyle F(t;T_d) = e^{r(T-t)} S_t

which says that the price, at time t, of a futures contract F(t;T_d), written on a commodity with spot price S, is simply just the discounted commodity spot price.

What does the long holder of a (European) call option see?

Well, at maturity of the option T, they would receive the long position in the futures contract plus the payoff of the option:

\displaystyle X = \max\left(F(T,T_d) - K,0\right)

where K is the strike. Since the spot price of a futures contract is always zero we only have to worry about this X part.

But we know what F(T,T_d) is now!

Substituting that in to the formula for the payoff, and we get:

\displaystyle X = \max\left(e^{r(T_d - T)} S_T - K, 0 \right)

Problem here is that to proceed under the BSM model we need the exercise price to be all by itself in the formula, and we have that pesky factor of e^{r(T_d - T)} in there. So we just divide it out:

\displaystyle X = e^{r(T_d - T)}\max\left(S_T - e^{-r(T_d - T)}K,0 \right)

Now S_T is all alone, and this is now in standard Black-Scholes-Merton form, and thus we know instantly what the expression is for a call option:

\displaystyle c_{\textup{fut}} = e^{r(T_d - T)} \left(s\Phi(d_1) - e^{-r(T-t)}e^{-r(T_d - T)}K\Phi(d_2) \right)

But setting s = e^{-r(T_d - T)}F(t;T_d) and dividing it out, we get

\displaystyle c_{\textup{fut}} = e^{-t(T-t)}\left(F(t;T_d)\Phi(d_1) - K\Phi(d_2) \right)

So, before settlement, then, we go back to basics and look at the basic call c and put p prices:

\displaystyle c = e^{-rt}\left(f\Phi(d_1) - x\Phi(d_2)\right)

\displaystyle p = e^{-rt}\left(x\Phi(-d_2) - f\Phi(-d_1)\right)

where the replacement of spot with futures is also replaced in the auxillary parameters:

\displaystyle d_1 := \frac{\ln(f/x) + \frac{1}{2}\sigma^2t}{\sigma\sqrt{t}}

\displaystyle d_2 := d_1 - \sigma\sqrt{t}

and, as usual, \Phi denotes the standard normal cumulative distribution, and \sigma is the implied volatility of the underlying forward price.

And just from this, we can even calculate fairly typical examples like this one from the London Metal Exchange website: Worked Example from


There is nothing stopping us from replacing the underlying asset in the Black-Scholes-Merton (BSM) model with a futures asset. In the words of Fischer Black himself:

…the futures price is the price at which we can agree to buy or sell an asset at a given time in the future without putting up any money now.


[1] Black, F. “The pricing of commodity contracts“, Journal of Financial Economics 3, ppg 167-179 (1976)

[2] Black, F. & Scholes, M. “The pricing of Options and Corporate Liabilities“, Journal of Political Economy 81, ppg 637-654 (1973)

[3] Merton, R. C. “Theory of rational option pricing“, The Bell Journal of Economics and Management Science, 4(1), ppg 141-183 (1973)

[4] Margrabe, W. “The value of an option to exchange one asset for another“, Journal of Finance 33(1), ppg 177-186 (1978)

[5] Garman, M. K. & Kohlhagen, S. W. “Foreign currency option values“, Journal of International Money and Finance 2(3), ppg 231-237 (1983)