A curve, not a pricing model
Charles Nelson and Andrew Siegel's 1987 paper, Parsimonious Modeling of Yield Curves, fitted US Treasury bill yields from 1981 to 1983 with four parameters. The paper reported that its model explained 96% of the variation in bill yields across maturities. The result was practical: a smooth curve without a parameter for every bond.
Nelson-Siegel is a static parameterisation of continuously compounded zero-coupon yields. It is not an SDE, a short-rate model or a derivative-pricing PDE. That distinction prevents several common mistakes.
Using a decay time , the zero yield at maturity is
Some texts instead write , where . The two conventions give opposite dimensions. Copying a fitted value between them without inversion moves the hump to the wrong maturity.
The fitted curve implies
only when is continuously compounded. Coupon-equivalent, annually compounded and par yields need conversion or direct instrument pricing first.
Level, slope and curvature
The three loadings have useful limiting behaviour:
- the level loading is one;
- the slope loading falls from one to zero;
- the curvature loading starts at zero, rises and returns to zero.
It follows that
So is the short-minus-long yield in this convention. A negative describes an upward-sloping endpoint difference. The sign of controls whether the middle of the curve is lifted or depressed relative to those endpoints.
The curvature loading reaches its maximum at , found numerically from its first-order condition. Therefore its peak sits at
With years, that is about 3.59 years. The occasionally quoted expression is neither 1.79 nor the solution to this loading's peak condition.
Francis Diebold and Canlin Li (2006) popularised the level, slope and curvature labels in Forecasting the Term Structure of Government Bond Yields. The shapes resemble the first three empirical principal components, but they are imposed functions, not PCA eigenvectors estimated from the sample. Our linear algebra guide explains that difference.
Fitting the curve properly
If is fixed, Nelson-Siegel is linear in :
Weighted least squares is appropriate when the weights represent the error model. There is no universal "proper" choice. Equal yield errors, inverse bid-ask variance and duration-scaled price errors answer different questions. If the raw observations are coupon-bond prices, fitting quoted yields as if they were zero yields is not a shortcut. Price each cash flow from the trial discount curve and minimise price residuals.
Estimating makes the problem nonlinear and can be ill-conditioned. A profile search is transparent: choose a grid of positive decay times, solve the linear regression at each point and refine around the best objective value. A coarse grid alone can miss a shallow minimum, while extreme decay times make the loading columns nearly collinear. This is an optimisation problem, not just three lines of regression.
The implementation below handles without dividing by zero and uses least squares rather than explicitly inverting .
import numpy as np def ns_loadings(maturities, decay_time): tau = np.atleast_1d(maturities).astype(float) x = tau / decay_time slope = np.empty_like(x) small = np.abs(x) < 1e-7 slope[small] = 1.0 - x[small] / 2.0 + x[small]**2 / 6.0 slope[~small] = -np.expm1(-x[~small]) / x[~small] curvature = slope - np.exp(-x) return np.column_stack((np.ones_like(x), slope, curvature)) def fit_ns(maturities, zero_yields, decay_time, weights=None): X = ns_loadings(maturities, decay_time) w = np.ones(len(X)) if weights is None else np.asarray(weights) A = X * np.sqrt(w)[:, None] b = np.asarray(zero_yields) * np.sqrt(w) return np.linalg.lstsq(A, b, rcond=None)[0]
For the illustrative decimal yields
at maturities years, equal-weight OLS with gives
The large negative curvature term is what produces the five-year dip. Any fit of these data reporting a much smaller has either used a different decay time or a different weighting scheme.
Svensson and dynamic Nelson-Siegel
Lars Svensson's 1994 IMF working paper added a second curvature loading:
There are six parameters: four coefficients and two decay times. The extra hump improves cross-sectional fit, but and can swap roles or drift into poorly identified regions. Bounds, multiple starting points and parameter continuity checks are normal safeguards.
Institutional usage needs precise wording. The Federal Reserve Board's staff nominal curve uses Svensson from 1980 onwards and Nelson-Siegel for earlier dates with too few securities. It is not the H.15 official statistical release. The ECB's euro-area curves use Nelson-Siegel-Svensson. The Bank of England uses an adjusted Waggoner variable-roughness-penalty spline, not Svensson. "All major central banks use Nelson-Siegel" is too broad.
Diebold-Li makes the factors time-varying. After fixing the decay convention, estimate for each date and forecast the factors with univariate autoregressions, a VAR or a state-space model:
The 2006 paper found especially encouraging performance at longer forecast horizons against several benchmarks. It did not establish that a VAR(1) always beats a random walk at every six-to-12-month horizon, market and sample.
Where Nelson-Siegel helps and fails
Use Nelson-Siegel for a compact descriptive curve, missing-maturity interpolation, scenario factors and forecasting baselines. It is easy to explain to a risk committee: long end, endpoint slope and one medium-term bend. It can also compress a large panel of yields before a statistical model is estimated.
Do not feed par yields into the zero-yield formula and call the output a discount curve. Do not interpret as an observed infinite-maturity rate when the longest bond is 10 years. And do not use a low cross-sectional error as proof that the curve has sensible forwards outside the data range.
Static Nelson-Siegel can define a perfectly coherent set of discount factors for one date. Its deeper limitation is that it supplies no cross-time stochastic dynamics and therefore no no-arbitrage drift restriction for derivative pricing. Negative forwards are not automatically arbitrage in a negative-rate regime. The issue is the missing dynamic pricing structure, not the sign alone.
Christensen, Diebold and Rudebusch (2011) built an affine arbitrage-free Nelson-Siegel class. For direct rates pricing, the curve-fitting Hull-White model or a forward-rate framework is often more natural. For a positive one-factor short rate, the CIR model is the cleaner comparison.
A four-parameter curve is useful because it refuses to chase every mark. The same refusal is why it should not be asked to price every option.
References
- Nelson, C. R. and Siegel, A. F. (1987), Parsimonious Modeling of Yield Curves, Journal of Business 60(4), 473-489.
- Svensson, L. E. O. (1994), Estimating and Interpreting Forward Interest Rates: Sweden 1992-1994, IMF Working Paper 94/114.
- Diebold, F. X. and Li, C. (2006), Forecasting the Term Structure of Government Bond Yields, Journal of Econometrics 130(2), 337-364.
- Christensen, J. H. E., Diebold, F. X. and Rudebusch, G. D. (2011), The Affine Arbitrage-Free Class of Nelson-Siegel Term Structure Models, Journal of Econometrics 164(1), 4-20.
Frequently Asked Questions
Is the Nelson-Siegel formula for zero yields or par yields?
It is normally written for continuously compounded zero-coupon yields. Par yields and coupon-bond yields must be converted or fitted through instrument prices.
What are the units of the decay parameter?
In the convention, is a time. In the convention, is inverse time. Check the exponent before comparing fitted values.
Where does the curvature loading peak?
At approximately under the decay-time convention used here. A two-year decay time places the peak near 3.59 years.
Is Nelson-Siegel arbitrage-free?
The static formula is a curve parameterisation, not a dynamic no-arbitrage model. AFNS adds affine dynamics and pricing restrictions; plain Nelson-Siegel does not.
Does the Bank of England use Svensson?
No. Its published methodology uses an adjusted Waggoner variable-roughness-penalty spline. The ECB and the Federal Reserve Board's staff nominal-curve dataset are documented Svensson users.
When should I use Svensson instead?
Use Svensson when one curvature loading cannot fit the observed cross-section and the data can identify two decay scales. Expect a less stable nonlinear calibration and monitor parameter switching.
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