Skip to content
All library documents

Why Coupon and Price Data Matter for Yield Curve Fitting

Article Quant Q&A · Author: Anne2504

Summary

The document asks whether sovereign yield-to-maturity observations can be fitted directly to a yield curve, such as a Nelson–Siegel curve, using QuantLib or another open-source library. The response cautions that yield observations alone can produce unreliable curves unless the bonds are par bonds.

The reason is the coupon effect: for bonds with the same maturity in an upward-sloping market, a higher coupon can correspond to a lower yield. The suggested approach is to use each bond’s coupon and maturity alongside its market price, or convert its yield into a price, and fit the curve from those instrument details. The note offers a conceptual caveat rather than implementation instructions or empirical comparisons, and does not identify specific software that directly fits yields.

Key ideas

  • Yield-to-maturity points alone may not provide reliable inputs for fitting a yield curve.
  • The coupon effect can cause bonds with the same maturity to have different yields.
  • The response recommends using bond coupon rates, maturities, and prices when fitting a curve.
  • Yield quotes can be converted to prices when price data are needed.

Tags

Full text
# Constructing yield curve directly from yield-to-maturity data


# Constructing yield curve directly from yield-to-maturity data












I'm trying to use Bloomberg yield-to-maturity data for sets of sovereign bonds of different maturities to fit to a yield curve. I looked into using the QuantLib library (the FittedBondCurve functionality) but it seems to only take coupon & price data as input, to first bootstrap the bonds before calculating the zero rate yield curve.

Is there a way in Quantlib (or any other opensource code that I haven't yet found) to fit the curve (probably to Nelson Siegel) directly from yield-to-maturity data points? I'm using C++.

Thanks in advance.

## Answer by Helin (score 5)

https://quant.stackexchange.com/a/27982

Unless all of your yields are par yields (yield of bonds trading at par), you'll get very unreliable results if you fit your curve using yields alone. This is because yields can be distorted by the coupon effect – given two bonds maturing on the same day and assuming the yield curve is upward sloping, a higher coupon bond will always have lower yield.

What you should do is to get the actual bonds (hence their coupon rates and maturity dates) and their prices (or yields, which can be easily converted into prices), and go from there.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.