# Computing treasury note/bond prices from yield

I wanted to make sure my calculation of the US treasury note/bond price is correct. Since T-notes and bonds pay coupons twice a year, let

$$\begin{eqnarray} F &=& \rm{face\_value} = 100 \\ y &=& \frac{ \rm{yield} }{ 2 } \\ c &=& \frac{ \rm{coupon\_rate} }{ 2 } \\ n &=& 2 \cdot \rm{maturity\_years} \\ a &=& \frac{ \rm{days\_interest\_accrues} }{ \rm{num\_days\_in\_coupon\_period} } \end{eqnarray}$$

In my understanding, the invoice price of a T-node/bond is given by

$$\begin{eqnarray} \rm{invoice\_price} &=& F \left[ \sum_{k = 1}^n \frac{c}{(1 + y)^{k - a}} + \frac{1}{(1+y)^{n - a}} \right] \\ &=& F (1 + y)^a \left\{ \frac{c}{y} \left[ 1 - \frac{1}{(1 + y)^n} \right] + \frac{1}{(1 + y)^n} \right\} \end{eqnarray}$$

that the accrued interest is given by

$$\begin{equation} \rm{accrued\_interest} = Fca \end{equation}$$

and that the quoted price is given by

$$\begin{equation} \rm{quoted\_price} = \rm{invoice\_price} - \rm{accrued\_interest} \end{equation}$$

However, take the following examples.

1. Term and Type of Security      20-Year Bond
CUSIP Number                   912810TS7
Series                         Bonds of May 2043
Interest Rate                  3-7/8%
High Yield                     3.954%
Allotted at High               34.77%
Price                          98.913642
Accrued Interest per $1,000$1.68478
Median Yield                   3.875%
Low Yield                      2.880%
Issue Date                     May 31, 2023
Maturity Date                  May 15, 2043
Original Issue Date            May 31, 2023
Dated Date                     May 15, 2023


We have

yield = 0.03954
coupon_rate = 0.03875
maturity_years = 20
days_interest_accrues = '2023-05-31' - '2023-05-15' = 16
days_in_coupon_period = '2023-11-15' - '2023-05-15' = 184


where I have assumed the next coupon payment is on Nov 15, 2023. Plugging these into the formulae above gives an invoice price of 99.08361940342022, an accrued interest of 0.16847826086956522, and a quoted price of 98.91514114255065. The accrued interest matches that listed on the auction results. I would assume that the "price" on the auction results refers to the invoice price, which my calculation, however, cannot reproduce. It is not the quoted price either.

2. Examples on TreasuryDirect's "Understanding Pricing and Interest Rates" page:

Type of security   Time to maturity   High yield at auction   Interest rate set at auction   Price
Bond               20 year            1.850%                  1.750%                         98.336995
Note               7 year             1.461%                  1.375%                         99.429922


Assuming that the number of days interest accrues is assumed to be 0 in these examples, my calculation cannot reproduce these prices either.

Could someone shed light on what is going on?

The answer to this is the calculation mode of the bond. The street convention is to use your formula as you have stated, which uses a compounded interest formula for the first period. But the Federal documents, such as: https://www.ecfr.gov/current/title-31/subtitle-B/chapter-II/subchapter-A/part-356/appendix-Appendix%20B%20to%20Part%20356 demonstrate that official calculations use a simple interest formula.

Therefore $$\frac{1}{(1+y)^a}$$ is replaced by $$\frac{1}{1+ay}$$

The following demonstrates the difference,

# PYTHON

from rateslib import *

ust = FixedRateBond(
effective=dt(2023, 5, 15),
maturity=dt(2043, 5, 15),
fixed_rate=3.875,
spec="ust"
)
ust.accrued(dt(2023, 5, 31))
# 0.16847826
ust.price(ytm=3.954, settlement=dt(2023, 5, 31))
# 98.91514114           /* Matches your calculated value */

ust = FixedRateBond(
effective=dt(2023, 5, 15),
maturity=dt(2043, 5, 15),
fixed_rate=3.875,
spec="ust",
calc_mode="ust_31bii",
)
ust.accrued(dt(2023, 5, 31))
# 0.16847826
ust.price(ytm=3.954, settlement=dt(2023, 5, 31))
# 98.91364174           /* Matches US Treasury Auction Results */


• Sometime called the Treasury Method, I believe. (As opposed to the Street Method that everyone else uses). Oct 7 at 11:23

There is a typo in your invoice price formula.

It should be $$\dfrac{F}{(1+y)^{-a}}$$, not $$\dfrac{F}{(1+y)^{a}}$$.

It may explain some of the differences when you consider an accrued different from zero.

• In my calculation I did use $\frac{F}{(1 + y)^{-a}}$. The equation in my post, however, contained the typo you pointed out. Just corrected. Thanks for the catch! Oct 9 at 7:25