Skip to content

Carry and Rolldown

One-line definition

The return a bond position earns purely from the passage of time, assuming the yield curve doesn't move at all — carry is the funding- adjusted income, rolldown is the price gain (or loss) from the bond aging into a different point on the curve.

Formula

carry = (running_yield - financing_rate) * horizon_years, running_yield = coupon_income / price

rolldown = -modified_duration * (rolled_yield - current_yield)

total = carry + rolldown

Why PMs care

This is the single most common way a rates PM frames a trade idea before taking any view on where rates are headed: "if nothing happens, what do I earn just for holding this?" It's the baseline every curve trade gets measured against — a steepener or flattener view only makes sense relative to what carry-and-roll alone would deliver.

Worked example

A 5Y bond yielding 4.00% (priced at par), financed at 3.00% repo, held one year: carry = (0.04 - 0.03) * 1 = 1.00%. On a normal upward-sloping curve, rolling from the 5Y point to the 4Y point might reduce the yield by roughly 20bp at a duration of ~4, giving rolldown ≈ 0.80% — a 1.80% total expected return with the curve unchanged.

A cautionary real-world case

carry_and_rolldown applied to this repo's own curve data (reference/fixed_income/curve_construction.md's tenors) tells a different story: between the 4Y and 5Y points, this curve is inverted (4Y yields more than 5Y), and financing at 4.5% exceeds the bond's ~4.0% running yield. Both legs come out negative — tests/test_carry_and_linkers.py::test_carry_and_rolldown_real_curve_example computes the exact figures. This is the real lesson: in an inverted- curve, high-financing-cost environment (like 2022–2023), duration- extension carry trades can lose money even if rates never move at all.

Common mistakes

  • assuming carry-and-roll is always positive — it depends entirely on the curve's current shape and level versus financing cost, not a fixed property of "owning a bond"
  • forgetting rolldown assumes the curve's shape stays fixed, not that rates stay fixed — a parallel shift still lets rolldown happen exactly as calculated; a shape change (steepening/flattening) changes it
  • comparing carry-and-roll across bonds of different duration without normalizing — a longer-duration bond's rolldown is mechanically larger for the same yield-curve slope, which isn't the same as it being a "better" trade

Limitations

This is a linear (duration-only) approximation of rolldown, same caveat as modified_duration itself — see convexity for the second-order correction. financing_rate here is a simplification of whatever a PM's actual repo/funding cost is (see repo and financing), and horizon_years assumes a clean, single holding period rather than continuous rebalancing.

Free resources

  • Carry Roll-Down Explained — Risk Hub — the exact formula and worked example this page's numbers are checked against
  • PIMCO Fixed Income Education Center (already linked in resources/fixed_income.md) — practitioner framing of carry and rolldown in real portfolios