Skip to content
All library documents

Modeling Fixed-Amount Bond Coupons in QuantLib

Article Quant Q&A · Author: Ahmed EL YOUSEFI

Summary

The note explains how to represent a bond whose payment at each coupon date is a fixed cash amount, regardless of the payment frequency. In QuantLib’s standard fixed-coupon bond setup, specify the coupon frequency as payments per year and set the annual coupon amount to that frequency multiplied by the desired cash payment. The resulting coupon at each date is the target amount.

The approach relies on QuantLib treating ordinary fixed coupons as not day-counted. The answer distinguishes this convention from floating-rate instruments and some less common fixed-coupon bonds, where coupon amounts do depend on day-count fractions. It also cautions that QuantLib may not support every unusual payment frequency, giving examples of some frequencies that may be rejected. The note offers a general modeling rule, but does not show code or discuss bond valuation, principal repayment, or handling unsupported schedules.

Key ideas

  • Set the bond’s coupon frequency to the number of payments per year.
  • Scale the annual coupon rate by that frequency to obtain a fixed cash amount per payment.
  • The method assumes a standard fixed-coupon bond convention without day-count scaling.
  • Unusual payment frequencies may not be accepted by QuantLib.

Tags

Full text
# Quantlib : bonds with fixed cashflows


# Quantlib : bonds with fixed cashflows












Using QuantLib, I want to model bonds with fixed cashflows. Specifically, at each payment date, the cashflow is a constant amount $ A_0 $. I can model this manually (especially with an annual frequency), but I am looking for a general approach that works for any frequency (e.g., semi-annual, quarterly, etc.). How can I achieve this?

## Answer by Dimitri Vulis (score 1)

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

Related: Basic fixed rate bond pricing issue in Quantlib

Coupons are usually not daycounted on fixed-coupon bonds, but are daycounted on floaters, swap legs, loans, loan participation notes, and a few fixed-coupon bonds (e.g. mexican MBONOs). QL isn't very good at supporting exotic conventions, just assumes that fixed coupons are not daycounted, which is what you need here.

If you tell QL that the bond's frequency is $f$ times per year, and the annual coupon is $f\times A_0$, then each payment will be $A_0$. I've seen bonds paying every 4 months, which are exceedingly rare, I don't think QL accepts $f=3$ or $6$ or $24$.

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.