Skip to content
All library documents

Calculating Implied Repo for a Treasury Futures Cheapest-to-Deliver Bond

Article Quant Q&A · Author: Long_Only_VIX_Investor

Summary

The document examines how to calculate the implied repo rate for a Treasury futures contract using its cheapest-to-deliver bond. The question applies a financing return formula to the futures invoice value and the bond purchase price, including accrued interest, and reports a result that differs from the rate attributed to a CME table. The accepted response adjusts the cash-flow calculation for accrued interest at delivery and settlement and uses an 80-day interval between settlement and final delivery. It obtains a rate near 1.79% from the stated inputs.

A second response reports the same calculation using a pricing library, offering corroboration of that result. However, the thread does not reconcile the calculation with the question’s cited CME figure of 1.42%; the accepted answer suggests the table or its inputs may be wrong if CME uses the same methodology. Dates, day counts, and accrued-interest conventions matter, and the displayed figures are rounded, so the example should not be taken as a definitive explanation of CME’s published value.

Key ideas

  • Implied repo compares the futures invoice value with the financed purchase cost of the deliverable bond.
  • Accrued interest at settlement and delivery affects the calculation.
  • The answer uses 80 days from settlement to final delivery in its example.
  • The calculated rate is near 1.79%, but the cited CME figure is not reconciled.
  • The example depends on the stated inputs, dates, and accrued-interest conventions.

Tags

Full text
# Ten Year Note Futures Implied Repo Rate calculation from CME Understanding Treasury Futures Document


# Ten Year Note Futures Implied Repo Rate calculation from CME Understanding Treasury Futures Document












I am trying to determine how CME calculated their Implied Repo Rates in table 3 on the penultimate page of the Understanding Treasury Futures Document:

https://www.cmegroup.com/education/files/understanding-treasury-futures.pdf

The quotes for the ten year note contract are presented from October 10, 2017, with futures price 125.265625. For simplicity, let's stick with the CTD, which has 2.375% coupon, August 15, 2017 maturity, a clean cash price of $101.2266, and treasury conversion factor of 0.8072.

Following the The Treasury Bond Basis by Burghardt et. al., I use the following formula (there are no interim coupons, so I use this simpler expression)

$ \left( \frac{\mathrm{Invoice Price}}{\mathrm{Purchase Price}} -1 \right) \times \left(\frac{360}{n}\right)$,

where $n$ is the number of days until delivery, and the Invoice and Purchase Price include accrued interest: $\mathrm{Invoice Price} = \mathrm{FuturesPrice}\cdot\mathrm{CF} + \mathrm{AI}_d$, $\mathrm{PurchasePrice}=\mathrm{CleanPrice}+\mathrm{AI}_s$, and $\mathrm{AI}_d$ and $\mathrm{AI}_s$ correspond to accrued interest at delivery date and settlement date respectively.

I calculate the accrued interest at settlement to be $\mathrm{AI}_s=\\\$0.367867$ per $\\\$100$ face value for the ten year notes. I use the number of days between October 11 2017 (settlement) until the last delivery date (December 29 2017) for $n$. This gives an accrued interest at delivery of $\mathrm{AI}_d=\\\$0.877717$.

Putting this all together, I get the following:

$ \mathrm{IRR} = \left( \frac{\mathrm{125.265625\cdot 0.8072+0.877717}}{\mathrm{101.2266+0.367867}} -1 \right) \times \left(\frac{360}{79}\right)=1.783695\%$,

which is quite far off from CME's listed value of 1.42%. Where have I gone wrong? I tried doing the calculation for a range of delivery dates, looping from November 25 to December 29. I saw a rate of 1.423% on November 26, but this date makes no sense, because the earliest delivery date would be the first day of the delivery month (December in this case.)

## Answer by oronimbus (score 5, accepted)

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

Inclined to say that if CME uses the same methodology as Burghardt, then the IRR is wrong (assuming all the inputs are correct in that table, which they seem). Using Bloomberg this is what we get:

The value is quite close to what you're calculating. In any case, the calculation is:

$$r = \frac{(125+8.5/32)\times0.8072+0.877717-0.3561413-101.2266}{(101.2266+0.361413)\times(80/360)}$$

which gives the $1.79$ from the table (above values are rounded but you get the idea).

Note that there are 80 days between settlement date 10/10/2017 and (last) delivery date 29/12/2017.

## Answer by Attack68 (score 4)

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

I get the same as @oronimbus using my own pricing library github.com/attack68/rateslib.

```
from rateslib import *

ust = FixedRateBond(
    effective=dt(2017, 8, 15),
    termination=dt(2024, 8, 15),
    fixed_rate=2.375,
    spec="ust",
)
usbf = BondFuture(
    coupon=6.0,
    delivery=(dt(2017, 12, 1), dt(2017, 12, 29)),
    basket=[ust],
    calc_mode="ust_long",
)
usbf.dlv(
    future_price=125.2656, 
    prices=[101.2266], 
    repo_rate=1.499, 
    settlement=dt(2017, 10, 10)
)
```

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.