Skip to content
All library documents

Floating-Rate Bond Gearings, Spreads, and Discount Curves

Article Quant Q&A · Author: Lisa Ann

Summary

This note explains how to interpret the gearing, spread, curve, and index inputs when valuing a floating-rate bond with RQuantLib. Gearing multiplies the reference-rate fixing, while spread is added to it. For a bond paying EURIBOR 3M plus 140 basis points, the example uses a gearing of 1 and a spread of 0.014 in decimal rate units. The index represents the relevant reference-rate index, such as Euribor3M, and is associated with a curve used to project its future fixings.

The discount curve is a separate input and may be built from a swap curve adjusted for credit risk. The response cautions that a CDS spread may not transfer directly: its compounding convention can differ from the convention required to spread the swap curve, so conversion may be necessary. The explanation is conceptual rather than a complete RQuantLib implementation, and it notes uncertainty about how R exposes the underlying QuantLib index classes. It does not establish that a quoted issuer CDS spread is an exact bond valuation adjustment.

Key ideas

  • Gearing scales the reference index fixing, while spread is added to the fixing.
  • A bond paying EURIBOR 3M plus 140 basis points has gearing 1 and decimal spread 0.014.
  • The index is used to represent and project the bond’s reference rate.
  • The discount curve determines how future bond cash flows are discounted.
  • CDS spreads may require compounding conversion before they are applied to a swap curve.

Tags

Full text
# Definition of gearings, spreads and curve in RQuantLib's Floating Rate Bond function


# Definition of gearings, spreads and curve in RQuantLib's Floating Rate Bond function












Consider the `RQuantLib` package function `FloatingRateBond()`.

This takes as inputs `gearings` and `spreads`, whose correct definition is unknown to me.

Let I have a floating rate bond, e.g. the BACRED Float 06/18/20 (whose ISIN code is IT0004921646): this bond pays annually EURIBOR 3M + $140$ bps.

What `gearings` and `spreads` of this bond are supposed to be?

Since this issuer has a 7Yr credit spread of about 230 bps (and I can interpolate its CDS curve to have every tenor), I would like to know if the `curve` argument should be replaced with the yield curve made up by EUR deposit/IRS curve + credit spread curve.

I guess the `index` argument, conversely, is the spot swap curve and the forward rates are computed from it.

P.S.: yes, I admit it, I'm reading the `QuantLib` documentation but I'm not understanding anything about this class.

## Answer by Luigi Ballabio (score 10, accepted)

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

I'm familiar with the library, but not with the way it is exported to R. Anyway:

`gearings` are optional multipliers of the LIBOR fixing (some bonds might pay, for instance, 0.8 times the LIBOR) and `spreads` are the added spreads. In your case, the gearing is 1 and the spread is 0.0140 (that is, 140 bps; rates and spread must be expressed in decimal form).

`curve` is the curve you want to use for discounting. Using the swap curve plus a spread is a possibility. However, note that the CDS spread might not be an exact proxy for the spread to be applied. At the very least, the CDS spread is a quarterly rate simply compounded, whereas (depending on what classes are exported) you might need a continuously compounded rate in order to spread the swap curve. You'll have to perform the conversion first.

In the library, the `index` argument would be an instance of an index class such as Euribor3M, whose constructor in turn would take the swap curve. I don't know how that's managed in RQuantLib.

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.