Pretty much all discussions and examples I have seen discussing carry and roll down for fix-flt interest rate swaps are ones where the forward date coincides with the coupon dates on both legs.

It seems to me it is not particularly obvious what numbers for carry and rolldown a swap-trader would like to see when for example having an 8M forward period for a swap with quarterly freq on float leg and annual freq on the fixed leg. The example highlights two separate issues 1) a leg has an accrued coupon and 2) the forward date is beyond the fixed period on the float leg. (The second point requires implied forwards on the float leg and for that we either have the realized forward assumption (carry) or unchanged curve (rolldown)).

Comments are appreciated. Thanks.
P.S. I am assuming spot starting swaps with npv=0.


1 Answer 1


Swaps are derivatives not securities, and they do not have intrinsic cost-of-carry, in a pricing sense. They do not involve an outlay of cash to purchase so do not require funding.

Another way to consider this is if you transact a single period IRS at mid-market, and the market evolves exactly as initially forecast with no variation, then no amount of money will ever exchange hands.

A cleared swap is collateralised, so even if the swap is not a single period and has interim cashflows, these would be immediately posted back to the asset holder, so the swap is self-funded. Again if the market evolved exactly as forecast by the end no party would have gained or lost any money.

Uncollateralised swaps have an embedded cost-of-carry as the difference between the funding rate and the collateral rate, but this is generally referred to as one of the components of XVA, namely FVA (funding valuation adjustment), it is not usually called cost-of-carry.

(They may also be exogenous costs-of-carry in a business sense like regulatory capital, initial margin, clearing fees, accountancy fees etc, but these are not directly related to pricing mechanics in a traditional sense, and may also be included withing another type of XVA)

Roll-down is a metric used to assert the value gain/loss on an instrument if the curve transitions under a specific market movement scenario. That scenario is that "after a period of the time the curve will appear exactly the same as it does today".

In this instance the underlying instrument remains the same and the mechanism is to revalue the instrument using a transformed curve. Consider a curve and an irs:

from rateslib import *

curve = Curve(
        dt(2023, 8, 2): 1.0,  # <- Assumes today is 2nd Aug '23 for NPV.
        dt(2023, 9, 2): 0.998,
        dt(2023, 12, 2): 0.99,
        dt(2024, 3, 2): 0.98,
        dt(2024, 6, 2): 0.97,
        dt(2025, 6, 2): 0.93,

irs = IRS(
    effective=dt(2023, 5, 15),
    termination=dt(2024, 5, 15),
    notional=-100e6,  # <-  Received Fixed in 100m USD
    leg2_fixings=defaults.fixings.sofr,  # <- Historic fixings until 1st Aug '23
    fixed_rate=3.0262739134324823,  # <- This is MID-MARKET: NPV is zero
assert abs(irs.npv()) < 1e-9

Now we apply the curve transformation and revalue the instrument. This gives a roll amount for 3 months.

rolled_curve = curve.roll("3m")
curve.plot("1b", comparators=[rolled_curve], labels=["original", "3m roll"])

enter image description here

Calculate the new metrics of the irs using the rolled curve:


This amount of NPV gained under the assumption of roll down, 427,859 USD, can be expressed in basis points, although there are subjective ways one might determine this calculation. The dollar amount is definitive for the roll-down calculation of this IRS. It is approximated by suggesting the fixed rate of the trade has shifted from 3.0262 to 2.6005 (-42.57bps) under an analytic fixed rate delta of -10,023 USD = 426,679 USD (+ change, which is discounting / gamma).

  • $\begingroup$ Yes, I am aware that IRS does not have a cost-of-carry in the traditional sense since there is nothing to fund. Nevertheless it seems carry is a concept that is used also in the swap world (one example is the book by Howard Corb(1)), ... some traders want to see some number quantifying the difference between the fixedrate and the fltrate up to some point in time. For example the way Howard Corb (and others) define carry: "Spot Price of swap = PV of carry + Fwd price of residual swap". Usually expressed in basispoints running by dividing with the pv01 of the fwd swap. $\endgroup$
    – Magnyz
    Commented Sep 16, 2023 at 10:13
  • $\begingroup$ When looking at the carry and rolldown in bps on a coupon date (for both legs) the results convey a intuitive result but when looking at a "broken" fwd date where the legs are not in sync in terms of the accruals the results are not so intuitive anymore. I am thinking it is possible to adjust for the effects of the broken fwd date, in order to not have any restrictions on what fwd date to see useful results for. It is a bit hard to explain clearly but hopefully it makes sense what I am talking about. $\endgroup$
    – Magnyz
    Commented Sep 16, 2023 at 10:14
  • $\begingroup$ In your python example you have frequency Quart and Month with a 3m roll so it avoids the above (if I am interpreting your code correctly). What would it look like if you have frequency Ann and Quart and do 1m rolls? $\endgroup$
    – Magnyz
    Commented Sep 16, 2023 at 10:14
  • $\begingroup$ (1) "Interest rate swaps and other derivatives" is the book I am referring to. $\endgroup$
    – Magnyz
    Commented Sep 16, 2023 at 10:15
  • $\begingroup$ @attack68, is there an easy analytical formula to derive the rolled curve (orange) from the discount factors of the original curve (blue)? $\endgroup$
    – SI7
    Commented Jun 6 at 5:35

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.