Skip to content
All library documents

Checking Overnight Compounding in Swap Roll-Down Calculations

Article Quant Q&A · Author: kriku

Summary

The document questions a claim about compounding a constant overnight rate over a three-month period when calculating a spot swap’s roll-down. The questioner interprets the quoted rate as an annualized overnight rate and compounds it daily, finding that the resulting annualized rate remains close to the starting rate. This raises a discrepancy with the much larger figure stated in the book.

The answer reports that the passage was added to the book’s errata, while its author could not determine the original calculation’s intent. It also gives a numerical example using a USD interest rate swap curve: a two-year swap rate is compared with the rate after rolling the curve forward by three months, producing a 16.2 basis point roll-down. That example illustrates curve roll-down measurement, but it does not explain or validate the disputed compounding statement, and the answer treats that statement as an apparent error.

Key ideas

  • Daily compounding of an annualized overnight rate can be checked by converting it to a daily rate and accumulating it over the period.
  • The questioner’s calculation produces a three-month annualized rate close to the stated overnight rate.
  • The answer says the book passage was recorded as an erratum and offers no reconstruction of its intended logic.
  • Swap roll-down can be illustrated by comparing a swap rate on the original curve with its rate on a curve rolled forward in time.

Tags

Full text
# Clarification on compounding logic in Chapter 23 of Pricing and Trading Interest Rate Derivatives by Darbyshire


# Clarification on compounding logic in Chapter 23 of Pricing and Trading Interest Rate Derivatives by Darbyshire












I'm working through Chapter 23 (page 396) of Pricing and Trading Interest Rate Derivatives: A Practical Guide to Swaps by J.H.M. Darbyshire, and I’m having trouble understanding a specific statement regarding roll-down calculation on a spot swap.

The book states: “In the calculation of 0M3M roll-down, we have assumed that 1D rate of 0.70% is constant everyday for 3M period, and when compounded up over the whole 3M period yields a rate of 0.75%.”

I interpreted the 0.70% as an annualized overnight rate, and tried compounding it daily over 91 days (approx. 3 months). Using: Daily rate = 0.0070/365, Effective 3M rate = (1+ 0.0070/365)^91-1, Annualized 3M rate = Effective 3M rate x 365/91, this gives me ~=0.7006%

Would appreciate any clarification or insight — especially if the author happens to see this!

Cheers,

## Answer by Attack68 (score 2)

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

This is added to the errata list at https://github.com/attack68/book_irds3/issues

Sorry, don't really know what was the intention here. Just seems like an error, and I can't even reverse engineer the thinking that lead to it. Should be...

And for what its worth you can replicate this numerically using `rateslib`

```
from rateslib import *

curve = Curve(
    nodes={
        dt(2025, 11, 4): 1.0,
        dt(2025, 11, 5): 1.0,
        dt(2026, 2, 6): 1.0,
        dt(2027, 8, 4): 1.0,
        dt(2027, 11, 9): 1.0,
    },
    calendar="nyc",
    convention="act360",
    id="v",
)

solver = Solver(
    curves=[curve],
    instruments=[
        IRS(dt(2025, 11, 4), "1b", spec="usd_irs", curves=curve),
        IRS(dt(2025, 11, 4), "3m", spec="usd_irs", curves=curve),
        IRS(dt(2025, 11, 4), "21m", spec="usd_irs", curves=curve),
        IRS(dt(2026, 2, 4), "21m", spec="usd_irs", curves=curve),
    ],
    s=[0.70, 0.80, 2.28, 2.45]
)

print(IRS(dt(2025, 11, 4), "2Y",spec="usd_irs", curves=curve).rate())
print(IRS(dt(2025, 11, 4), "2Y",spec="usd_irs", curves=curve.roll("3m")).rate())

##
<Dual: 2.241506, (v0, v1, v2, ...), [51.0, 0.0, -0.6, ...]>
<Dual: 2.079712, (v0, v1, v2, ...), [4670.7, -4670.8, -0.7, ...]>
##
```

The roll down (which is the difference between the two rates) is 16.2bps

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.