Reader question: If we decide how every point on a forward-rate curve can fluctuate, are we free to choose its average drift as well?
The Heath–Jarrow–Morton framework gives a striking answer: under no-arbitrage pricing, once the forward-rate volatility structure is specified, the drift is constrained. It cannot be chosen independently.
This article owns the forward-curve no-arbitrage problem: initial forward curve + volatility structure + factor representation → an arbitrage-consistent drift restriction and a simulation engine for future forward-rate curves.
It does not own short-rate calibration, yield-curve interpolation, or swaption smile fitting. Those are separate pages in the Bukit Timah Tutor finance-and-banking-algorithms lane. The purpose here is to show how an entire curve can be stochastic without allowing internally inconsistent bond prices.
This is public mathematical education about stochastic interest-rate models. It is not financial advice or a trading recommendation.
Start from the forward curve, not the short rate
Let P(t,T) be the time-t price of a zero-coupon bond paying one unit at maturity T.
The instantaneous forward rate f(t,T) is connected to the bond price by:
P(t,T) = exp[−∫tT f(t,u)du].
Equivalently:
f(t,T) = −∂ ln P(t,T) / ∂T.
The short rate is the forward rate at the near end of the curve:
r(t) = f(t,t).
Short-rate models begin with one state variable and derive the curve. HJM reverses the viewpoint: it treats the forward curve itself as the primary stochastic object.
The generic HJM dynamics
Suppose the forward rate for maturity T evolves as:
df(t,T) = α(t,T)dt + Σk=1d σk(t,T)dWk(t).
Here:
- α(t,T) is the drift of the forward rate;
- σk(t,T) is the loading of maturity T on factor k;
- d is the number of Brownian factors;
- Wk are Brownian motions under the risk-neutral measure.
At first glance, the drift and volatility look like separate modelling choices. HJM’s central result says they are not.
The no-arbitrage drift restriction
Under the risk-neutral measure, absence of arbitrage imposes:
α(t,T) = Σk=1d σk(t,T) ∫tT σk(t,u)du.
The exact expression can be written in equivalent vector notation. The essential mechanism is:
choose volatility → drift follows.
This is not a forecasting statement. It is a pricing-consistency condition under a martingale measure.
Why the drift restriction exists
Bond prices at different maturities cannot evolve independently because they are all integrals of the same forward curve. If the forward-rate drift were chosen arbitrarily, the resulting discounted bond-price processes could fail the martingale condition required by risk-neutral no-arbitrage pricing.
HJM therefore links every local forward-rate volatility to a maturity integral of the entire volatility structure between t and T.
The curve is a coupled system.
A one-factor constant-volatility example
Suppose one factor drives all maturities and:
σ(t,T) = σ
is constant.
Then:
α(t,T) = σ ∫tT σ du = σ²(T−t).
If σ = 1% per √year and T−t = 5 years:
α = 0.01² × 5 = 0.0005.
That is 0.05 percentage points, or 5 basis points per year in the drift term under this simplified setup.
The example is intentionally simple. Real implementations usually use maturity-dependent factor loadings rather than one constant volatility.
Factor reduction turns an infinite curve into a manageable algorithm
An instantaneous forward curve contains many maturities. A direct simulation could assign a separate shock to every grid point, but that becomes expensive and unstable.
Empirical yield-curve changes often exhibit a small number of dominant directions, commonly associated with level, slope and curvature effects. A factor algorithm can therefore represent:
σ(t,T) = Σk=1d βk(T) vk(t)
or another low-dimensional structure.
Principal-component analysis is one way to estimate dominant directions from historical curve changes. The HJM engine can then use those factor shapes as a volatility basis, subject to the distinction between historical estimation and risk-neutral calibration.
See yield-curve PCA algorithms for the matrix mechanics.
Historical volatility and risk-neutral volatility are not automatically the same
Historical data describe realized curve movements under the physical measure. Derivative prices reflect risk-neutral valuation and market risk premia.
Historical PCA can suggest factor shapes, but simply inserting historical standard deviations into a pricing model does not guarantee consistency with option prices.
A practical workflow may use historical analysis for structural guidance and market option prices for risk-neutral calibration.
Simulation requires two grids
An HJM implementation normally discretizes both:
- calendar time t, as the simulation moves forward;
- maturity T, as the curve is represented across future payment dates.
For each simulation step:
- read the current forward curve;
- evaluate factor volatilities at all maturities;
- integrate volatility from current time to each maturity;
- compute the HJM drift restriction;
- draw correlated factor shocks;
- update every forward-rate node;
- reconstruct discount factors or product cash flows;
- repeat.
The numerical scheme must be tested because discretizing a theoretically arbitrage-free continuous model can reintroduce practical inconsistency.
The maturity dimension moves as time moves
If we store rates by calendar maturity, a five-year maturity today becomes a four-year maturity one year later. This moving boundary can complicate array indexing.
The Musiela parametrization replaces maturity date T with time-to-maturity:
x = T − t.
The state can then be written as g(t,x) = f(t,t+x). The whole curve shifts toward expiry as time advances.
This is mathematically elegant but introduces a transport term in the stochastic partial differential equation. It solves one bookkeeping problem by making the dynamics more explicit.
Inputs and outputs
A production-shaped HJM engine can require:
- initial discount or forward curve;
- maturity grid;
- simulation time grid;
- number of factors;
- factor-volatility functions;
- factor-correlation structure;
- market option calibration targets where used;
- interpolation and integration rules;
- random-number generator and seed policy;
- Monte Carlo path count;
- variance-reduction method;
- discounting and collateral conventions.
Outputs can include:
- simulated forward curves;
- simulated discount factors;
- pathwise short rates;
- model prices of rate-dependent claims;
- factor exposures;
- calibration residuals;
- drift-consistency residuals;
- Monte Carlo standard errors;
- grid-convergence diagnostics.
Evidence polarity
Evidence for confidence includes exact reconstruction of the initial curve, correct numerical enforcement of the drift restriction, stable prices as grids are refined, Monte Carlo errors shrinking approximately with more paths, option-price residuals that are acceptably small and pattern-free, and agreement with closed-form or short-rate special cases where those exist.
Evidence against confidence includes discounted bond prices showing systematic drift under the pricing measure, materially different prices after modest grid refinement, factor covariance that fails positive-semidefinite checks, unexplained arbitrage across reconstructed discount factors, or calibration that fits one region of the volatility surface while failing badly elsewhere.
Counterexample: arbitrary drift creates an inconsistent model
Suppose a modeller estimates both drift and volatility independently from historical data and then uses them directly for pricing.
Even if each estimate looks statistically reasonable, the pair may violate the HJM no-arbitrage restriction. The resulting model can assign bond and derivative prices that are internally inconsistent.
The falsifier is mechanical: compute the drift implied by the chosen volatility and compare it with the drift actually used.
Counterexample: an arbitrage-free model can still be empirically poor
No-arbitrage is a consistency condition, not a guarantee of realism.
A volatility structure can satisfy the HJM drift restriction perfectly yet generate unrealistic curve shapes, tails or correlations.
A model can therefore pass mathematical no-arbitrage tests and fail market-calibration or out-of-sample tests.
Counterexample: one factor can hide curve-shape risk
A single factor can force all forward-rate shocks to lie on one direction. Real markets exhibit multiple curve movements.
If hedging errors concentrate in steepeners, flatteners or curvature trades, the one-factor specification is being falsified by the products it is meant to represent.
Counterexample: Gaussian factor choices can produce negative forwards
Additive Gaussian HJM specifications can generate negative forward rates. Negative rates themselves are not logically impossible, but the model may still create implausible tails or violate product-specific assumptions.
Lognormal or shifted formulations can change positivity behaviour, but they introduce their own calibration and stability issues.
Counterexample: coarse grids can create numerical arbitrage
The continuous-time formula assumes integrals over maturity. A coarse maturity grid approximates those integrals. If the grid is too coarse or interpolation is inconsistent, reconstructed bond prices can fail monotonicity or generate spurious forward-rate jumps.
Grid convergence is therefore part of model validation, not merely performance tuning.
Failure diagnostics
- Drift-identity test: recompute α from σ and compare node by node with the implemented drift.
- Discount-factor reconstruction: integrate simulated forwards and confirm positive, internally consistent bond prices where the model specification implies them.
- Martingale test: test discounted bond-price averages across Monte Carlo paths under the pricing measure.
- Factor-covariance test: verify the correlation matrix is valid and numerically stable.
- Grid-convergence test: refine both time and maturity meshes.
- Monte Carlo convergence: increase paths and verify standard errors shrink.
- Special-case benchmark: compare against Ho–Lee or Hull–White structures where the volatility choice produces an equivalent finite-dimensional case.
- Out-of-sample option test: price instruments excluded from calibration.
- Stress-path review: inspect extreme simulated curves for implausible oscillations or explosions.
- Hedge-error test: backtest model sensitivities against realized market moves where appropriate.
Why Hull–White appears inside HJM
Certain deterministic volatility structures in HJM admit finite-dimensional Markov representations. The one-factor Hull–White model can be viewed as one such special structure.
This gives a useful conceptual bridge:
Hull–White starts with a short-rate state; HJM starts with a forward-curve law. Under the right volatility structure, the two descriptions can represent the same arbitrage-free economics.
See Hull–White calibration algorithms for the short-rate implementation.
Alternatives and extensions
Short-rate models such as Hull–White or CIR compress the state into one or a few Markov variables.
LIBOR Market Models model a finite set of forward rates rather than an instantaneous continuum and are closely related to the HJM no-arbitrage logic.
Multi-factor HJM adds additional independent curve-shape shocks.
Stochastic-volatility HJM lets the volatility state evolve randomly.
Jump HJM models add discontinuous shocks when Brownian motion is insufficient for tail behaviour.
How this connects to the surrounding knowledge estate
HJM starts from a curve, so curve construction and representation matter. Nelson–Siegel–Svensson algorithms provide one curve-fitting language. Kalman-filter yield-curve algorithms show a state-space alternative. Correlation-matrix repair matters when factor covariance is estimated from imperfect data. Monte Carlo pricing supplies the simulation machinery. Swaption calibration connects to Black-76 and Bachelier swaption algorithms.
What would falsify confidence?
Confidence should be withdrawn if the coded drift does not equal the HJM-implied drift; if discounted bond prices fail martingale diagnostics beyond Monte Carlo error; if factor structures are unstable or invalid; if numerical refinements materially change prices; if the model produces persistent arbitrage or implausible curves; or if the chosen factor and volatility structure cannot reproduce the option and hedge behaviour required by the use case.
Verification and update triggers
Preserve the initial curve, factor model, volatility functions, calibration instruments, covariance estimate, random-number configuration, integration scheme, time grid, maturity grid and Monte Carlo diagnostics. Revalidate after material benchmark or curve-construction changes, volatility-regime shifts, factor-structure changes, correlation breakdowns, solver or random-number-library upgrades, persistent hedge errors or repeated out-of-sample calibration failure.
Primary and high-quality references
- David Heath, Robert Jarrow and Andrew Morton, Bond Pricing and the Term Structure of Interest Rates: A New Methodology for Contingent Claims Valuation, Econometrica, 1992.
- David Heath, Robert Jarrow and Andrew Morton, Bond Pricing and the Term Structure of Interest Rates: A Discrete Time Approximation, Journal of Financial and Quantitative Analysis.
- Tomas Björk, Heath–Jarrow–Morton Approach, Wiley reference overview covering the drift condition, Musiela parametrization and finite-dimensional representations.
- Tomas Björk and Lars Svensson, On the Existence of Finite-Dimensional Realizations for Nonlinear Forward Rate Models, Mathematical Finance, 2001.
- Federal Reserve Board and OCC, SR 11-7 — Guidance on Model Risk Management, for validation, monitoring and model limitations.
Educational boundary: HJM is a framework for internally consistent interest-rate modelling. A mathematically arbitrage-free model is not automatically a good forecast and is not a recommendation to transact in any financial instrument.

