What is the formula for the forward price of a bond (assuming there are coupons in the interim period, and that the deal is collateralised)

Please also prove it with an arbitrage cashflow scenario analysis!

I suppose it is like fwd = spot - pv coupons) × (1+ repo × T ), I am not certain at what rate to pv the coupons.


2 Answers 2


Amazingly, there are several different methods for computing bond forward price – the underlying ideas are the same (forward price = spot price - carry), but the computational details differ a bit based on market convention.

Let's start with the basics. Assume between now ($t_0$) and the forward settlement date $t_2$, the bond makes a coupon payment at time $t_1$. Now consider the following series of trades:

  • Today, a trader buys a bond at a price of $P + AI_0$ (spot clean price + spot accrued interest).
  • To fund the purchase, the trader enters into a $t_1$-year term repo agreement at a repo rate of $r$. More specifically, he/she sells the repo by borrowing $P + AI_0$ and delivering the bond as collateral.
  • At time $t_1$ (coupon payment date), the repo balance is $(P + AI_0)(1 + rt_1)$ and the trader receives a coupon payment of $c / 2$ for being the owner of the bond.
  • The trader re-enters into another repo agreement that spans from $t_1$ to $t_2$ on a principal of $(P + AI_0)(1 + rt_1) - c/2$. This new loan, combined with the coupon payment of $c/2$, allows the trader to retire the old repo loan without putting up any additional capital.
  • Finally, at time $t_2$, the trader gets back the bond and repays the repo loan along with interest from $t_1$ to $t_2$: $$ \left((P + AI_0)(1 + rt_1) - \frac{c}{2}\right) \bigl(1 + r(t_2-t_1)\bigr) . $$

These trades are economically no different from buying the bond forward at time $t_2$. Therefore, the forward clean price for settlement at $t_2$ must be $$ F(t_2) = (P + AI_0)(1 + rt_1)\bigl(1 + r(t_2-t_1)\bigr) - \frac{c}{2}\bigl(1 + r(t_2-t_1)\bigr) - AI_{t_2}. $$

The method above is known as the Compounded Method. In the US Treasury market (and most international bond markets), a small approximation is made. Recall for small $rt$, we have $$ (1 + rt_1)(1+r(t_2-t_1))\approx 1 + r(t_1+t_2-t_1) = 1 + rt_2, $$ we therefore have the Proceeds Method: $$ F(t_2) = (P + AI_0)(1 + rt_2) - \frac{c}{2}\bigl(1 + r(t_2-t_1)\bigr) - AI_{t_2}. $$

The Proceeds Method is for all intents and purposes the standard/default way of pricing bond forwards. There's also the "Simple" and "Scientific" methods, but these are rarely used.

  • 1
    $\begingroup$ its interesting that theres no ois rate used in your approach. i guess because you assume there is a decent liquid market for repoing this bond for the periods needed.... $\endgroup$
    – Randor
    Commented Sep 9, 2016 at 20:19
  • 2
    $\begingroup$ It's customary to finance Treasuries in the repo market. Some on-the-run issues, when in short supply, have been financed at -3% over the past few years, while OIS doesn't go near that level. $\endgroup$
    – Helin
    Commented Sep 9, 2016 at 20:22
  • 1
    $\begingroup$ what about for some less liquid , riskier issuer bonds? $\endgroup$
    – Randor
    Commented Sep 9, 2016 at 20:23
  • 1
    $\begingroup$ You should use whatever funding rate you and the dealer agree on. On maturity, $F = P$, where P is hopefully par. $\endgroup$
    – Helin
    Commented Sep 9, 2016 at 21:31
  • 1
    $\begingroup$ @helin a little light on the accrued interest at time t2 would be nice. Everthing else is fully explained, so it's only fair that accrued interest gets the same treatment :) $\endgroup$
    – Yuca
    Commented May 2, 2019 at 15:01

Some financial terms to begin with:

  1. Dirty Price: It is equal to the sum of clean price and the accrued interest since last coupon payment. Say you hold a semi-annual bond (Purchased on 1st January and received a coupon on 1st July). Now if you price this bond on 1st September, then its price will also include the interest that has accrued since the last coupon date (1st July) to the present date (1st September, Spot). Though as a buyer, I will get the coupon payment on the next coupon date only but the seller prices the bond in a way that includes the accrued interest for the last 60 days as well. That's why it is called dirty price.

  2. Selling Repo: It is essentially borrowing from the counterparty with an agreement that you will repay at some future period.

Now coming to the derivation part:

  • Borrow money at the repo rate (r)
  • Buy bond on the spot date (S(0) is the Spot price)
  • Sell the bond on the forward date (F(t2) is the Forward price)


Left hand side (LHS):
Dirty Price at spot date (outflow) + financing cost from spot date to forward date (outflow) - coupon payments between spot date and forward date (inflow) - reinvestment of coupon received until forward date (inflow)

Right hand side (RHS):
= forward price (F(t2)) + accrued interest at forward date (If)

Note: Dirty price at spot includes the accrued interest from the last coupon date (before spot date) to the spot date (Is) while the dirty price at forward (RHS above equation) includes interest accrued from the spot date to the coupon date (If)

  • d = days between spot and forward
  • t1 = Upcoming coupon date (After spot)
  • t2 = Forward date
  • dt1 = days between spot and the upcoming coupon date
  • dt2 = days between the next coupon date and forward

Proceeds Method:


  • Price at spot: S(0) + Is (Outflow)
  • Financing Cost (Simple Interest) from the spot date to the forward date: (S(0) + Is) * ((dt1 + dt2)* r/360) (Outflow)
  • Coupon received is reinvested (simple interest) from the coupon date to the forward date: C * (1 + (dt2*r)/360) (Inflow)


  • Accrued interest at forward date: (If)

  • Forward Price: F(t2)

Equating both the sides:

(S(0) + Is) + (S(0) + Is) * ((dt1 + dt2)* r/360) - C * (1 + (dt2*r)/360) = If + F(t2)


(S(0) + Is) * (1 + ((dt1 + dt2)* r/360) - C * (1 + (dt2*r)/360) = If + F(t2)


F(t2) = (S(0) + Is) (1 + ((dt1 + dt2)* r/360) - C * (1 + (dt2*r)/360) - If

Friends, don't forget to upvote if this helped.


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.