I am new to QuantLib on Python, but as far as I understand, there are different types of piecewise yield term structures which exist on QuantLib which are bootstrapped on a number of interest rate instruments to create the zero curve.

I refer to the following link: https://quantlib-python-docs.readthedocs.io/en/latest/termstructures.html#piecewise

However, there does not seem to be a formula or a clear documentation for me to understand what exactly is the difference between the different piecewise yield term structures.

The different piecewise yield term structures (interpolation methods) are as follows:

  1. ql.PiecewiseLogLinearDiscount
  2. ql.PiecewiseLogCubicDiscount
  3. ql.PiecewiseLinearZero
  4. ql.PiecewiseCubicZero
  5. ql.PiecewiseLinearForward
  6. ql.PiecewiseSplineCubicDiscount

Can someone please provide me with an explanation and/or formula attached to numbers 1, 5, and 6 please?

I did check the QuantLib Python Cookbook by Goutham Balaraman and Luigi Ballabio, and saw an explanation only for numbers 2, 3, and 4.

Any help will be most welcomed, thanks.


1 Answer 1


When you bootstrap a curve, you get discount factors/zero rates for the maturities of the instruments you supplied. So in practice, you get points, and not a "curve".

After you have built your curve, which is made of nodes (dates and respective discount factors or zero rates), different interpolation methods will give you different results for dates that are NOT curve nodes.

A good reference for different interpolation methods is Methods for Constructing a Yield Curve, by Hagan and West

  • $\begingroup$ Thank you David! $\endgroup$ Commented Aug 11, 2021 at 9:25
  • $\begingroup$ @David Duarte is there a ql implementation of Monotone convex as described in Hagan's paper you cited? $\endgroup$
    – gregV
    Commented Apr 27, 2023 at 21:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.