Floating-Rate Bond Gearings, Spreads, and Discount Curves
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.