In 1976 Robert Merton changed one Black-Scholes assumption: the stock could jump. His paper, Option Pricing When Underlying Stock Returns Are Discontinuous, produced a model that remains unusually transparent. Condition on the number of jumps and the option price becomes a sum of Black-Scholes prices.
The transparency comes with a cost. Jump risk cannot generally be hedged with the stock and bond, so the market is incomplete. A risk-neutral jump law must be specified or calibrated; no-arbitrage alone does not identify it.
The Black-Scholes model, volatility smile and Heston model provide useful points of comparison.
Risk-neutral dynamics
Let be a Poisson process with intensity per year. At each jump the stock is multiplied by an independent random variable , with
Under a chosen risk-neutral measure,
is the value immediately before a jump. The compensator is essential:
Here has units per square root year, , and have units per year, and , and are dimensionless.
Merton argued that firm-specific jump risk could be diversified, leaving its physical jump law unchanged for pricing. That assumption is not compelling for index crashes or common macro shocks. Modern calibration treats , and below as risk-neutral parameters, which need not match estimates from historical returns.
Conditional distribution
Given ,
The final two terms are Gaussian. Conditional log variance is , so define
One direct implementation can use the actual jump-count probabilities and a shifted conditional spot. The commonly quoted Merton series rewrites the same expectation as
where
The weights are a pricing rearrangement. They are not the probabilities of observing jumps under the original risk-neutral process; those use .
The rearrangement can be understood without memorising it. Conditional on jumps, the terminal stock contains the factor . A call's stock term weights a scenario by its terminal stock, not just by its probability. For lognormal jumps,
Multiplying the original Poisson mass by this factor gives
The remaining exponential factor is absorbed into the effective Black-Scholes carry, and normalising the weights produces . This is an algebraic change of measure inside the payoff calculation, not a change in the model's observed jump count. Deriving the series this way is a useful defence against accidentally combining weights with an unadjusted conditional drift.
Put-call parity remains
Tails and smile
Let . For the continuously compounded return, the compound-Poisson contribution has cumulants for orders . In particular,
Standardised skew scales roughly as and excess kurtosis as . This is why a finite-activity jump model is particularly effective at creating steep short-dated smiles. Negative usually produces downside skew, although the exact skew depends on the third raw jump moment, not on alone.
Recomputed option price
Take , , , , , , , and . Then
The first four series weights are , , and . By contrast, the actual probabilities of zero and one jumps are and .
Summing the series gives a call value of . Put-call parity gives for the put. The corresponding Black-Scholes put with volatility costs , so this parameter set raises the put price by , not a token few per cent.
The partial sums also validate truncation. Terms through produce and leave series mass . Adding gives ; through the value is with only mass left. A tolerance should be applied to a price-error bound rather than blindly to the last term. The omitted Poisson mass times is a simple conservative bound for omitted call value.
Stable Python series
The recurrence for Poisson weights avoids factorial overflow and makes the truncation error observable.
import numpy as np from scipy.stats import norm def bs_call(S, K, T, r, q, vol): if T == 0: return max(S - K, 0.0) if vol == 0: return np.exp(-r*T) * max(S*np.exp((r - q)*T) - K, 0.0) root_t = np.sqrt(T) d1 = (np.log(S / K) + (r - q + 0.5*vol**2)*T) / (vol*root_t) return S*np.exp(-q*T)*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d1-vol*root_t) def merton_call(S, K, T, r, q, vol, lam, mu_j, delta, tol=1e-12): if T == 0: return max(S - K, 0.0) kappa = np.exp(mu_j + 0.5*delta**2) - 1 lam_p = lam * (1 + kappa) weight, mass, price = np.exp(-lam_p*T), 0.0, 0.0 for n in range(1000): vol_n = np.sqrt(vol**2 + n*delta**2/T) r_n = r - lam*kappa + n*(mu_j + 0.5*delta**2)/T price += weight * bs_call(S, K, T, r_n, q, vol_n) mass += weight if 1 - mass < tol: return price weight *= lam_p*T / (n + 1) raise RuntimeError("Poisson series did not converge")
Obtain the put through parity rather than coding a second series. Test the limits and against Black-Scholes, verify parity and increase the truncation point until the price stops moving.
Calibration is less tidy than pricing. Diffusion variance, jump frequency and jump-size variance can substitute for one another over a limited strike range. Multiple maturities help, but a constant-parameter model still struggles to fit an entire equity surface. Weight errors by liquid bid-ask spreads or vegas and inspect parameter stability across dates. A tight fit with wildly moving and is not a stable risk model.
Delta and gamma can be summed from the component Black-Scholes values because the weights do not depend on spot. Sensitivities to jump parameters require differentiating weights, and as well. Calling every such sensitivity “vega” hides material terms.
Calibration decisions and diagnostics
Each parameter controls more than one visible feature. Increasing raises the chance of jumps, but the drift compensator changes at the same time. Increasing fattens both tails and changes . Making more negative usually steepens downside skew, yet it also raises the compensating continuous drift when . The diffusion volatility can absorb central smile curvature that might otherwise be assigned to frequent small jumps. These interactions explain why unconstrained calibrations often produce economically different parameter sets with similar vanilla prices.
A practical calibration should use several maturities and enough strikes to expose both central curvature and tails. Even then, impose bounds that reflect the intended interpretation. If is tiny for every quoted expiry, jump-size parameters are weakly identified. If is very large while is very small, the model is approximating extra diffusion and the jump decomposition may not be meaningful. Profile the objective by fixing one jump parameter over a grid and reoptimising the others. A flat profile is more informative than a small reported optimiser standard error.
Residuals need financial units. Equal weighting in dollars gives expensive in-the-money options disproportionate influence. Equal weighting in implied volatility can overemphasise options with negligible vega. Common choices are inverse bid-ask variance in price space or vega-normalised price errors, followed by reporting both price and volatility residuals. Do not calibrate to stale deep in-the-money calls when their corresponding out-of-the-money puts are more liquid.
The following numerical checks catch most implementation failures:
- verify directly by Gaussian integration or simulation;
- confirm with the analytic moment and Monte Carlo;
- compare actual Poisson probabilities with simulated jump counts, never with weights;
- recover Black-Scholes as and when ;
- check put-call parity across strikes and maturities;
- compare the series with characteristic-function quadrature or an FFT implementation;
- halve the series tolerance and require prices and Greeks to remain stable.
Monte Carlo deserves a separate drift test. Simulate
with . A frequent coding error applies both the exponential jump and an additional additive adjustment. Another uses rather than at a jump in a time-stepping implementation. Exact terminal simulation avoids both discretisation and jump-timing error for European payoffs.
For practitioner use, decide whether jumps represent rare news, market-wide crashes or merely a flexible return density. That choice determines plausible intensity bounds, whether historical evidence is relevant and which risks should be stressed. A risk-neutral calibration may price vanillas well while implying jump frequencies unlike realised data. That is not automatically an error, because jump risk carries a premium, but it should be explicit in model governance and scenario design.
Where Merton falls short
Finite jump activity means short intervals usually contain no jump at all. That is a useful model of discrete news but a poor description of markets where many small jumps contribute to variation. Constant jump parameters also imply independent increments and no volatility clustering.
The model's incomplete-market assumption is more fundamental. Different choices of risk-neutral jump intensity and size law can be consistent with the same physical process. Calibration chooses one from option prices; the drift correction does not remove that choice.
Dupire local volatility can fit today's complete vanilla surface, while Heston adds persistent stochastic variance. Bates' 1996 specification combines Heston variance with price jumps when both effects matter.
Frequently Asked Questions
What is the Merton jump diffusion model?
It is geometric Brownian motion plus lognormal price jumps arriving through a Poisson process, with a compensating drift that preserves the risk-neutral forward price.
Why is the drift reduced by lambda times kappa?
Jumps contribute expected proportional return . Subtracting it from the continuous drift leaves total expected growth at under the pricing measure.
Are the adjusted lambda-prime weights jump probabilities?
No. The actual count is Poisson with mean . The weights with arise after rearranging the conditional option values into standard Black-Scholes terms.
Does Merton's model uniquely price jump risk?
No. Jumps make the stock-and-bond market incomplete. Merton imposed a diversifiability assumption; in practice, risk-neutral jump parameters are calibrated to traded options.
How many model parameters are calibrated?
There are four beyond deterministic market inputs: diffusion volatility , jump intensity , mean log jump and log-jump volatility .
What is the canonical citation?
Merton's 1976 Journal of Financial Economics paper, pages 125 to 144, is the original source. The series is elegant. Identifying jump risk is the hard part.
Skip the £25k programme - try the alternative
Master's programmes are slow and expensive. Quantt is a self-paced alternative. Start free with a real lesson and interview practice, then unlock 50+ courses and your personalised plan.
Free to start · No credit card required