User Tools

Site Tools


tbill_yield_methodology

This is an old revision of the document!


dummy

Example: 912797JA6 is a tbill with a maturity of 28 days. It was sold for $99.5905 on 2023-12-21. What is the yield?

Ans: For tbills of not more than half-year maturity, the yield is calculated as

i = ((100 - P)/P) * (y/r)

where y is 366, r is the days to maturity.

In [25]:
def tbill_yield(P, r):
    y = 366
    i = ((100 - P) / P) * (y/r)
    i = round(i*100, 3)
    return(i)

In [26]:
tbill_yield(99.5905, 28)
Out[26]:
5.375

so the yield is 5.375%

Ref:

Example 2: On https://www.treasurydirect.gov/auctions/announcements-data-results/ showed

Security Term CUSIP Issue Date Maturity Date High Rate Investment Rate
4-Week 912797JB4 01/02/2024 01/30/2024 5.325% 5.436%

It was bought on 12/28/2023, settlement date = 1/2/2024 for a price of 99.585833. The yield on it is

In [1]: 
from tbill_yield import tbill_yield
tbill_yield(99.585833, 28)
Out[1]: 
5.436

The 5.436 matches with the Investment Rate in the table.

So 'Issue Date' in the table is the settlement date.

Example 3: On https://www.treasurydirect.gov/auctions/announcements-data-results/ showed

Security Term CUSIP Issue Date Maturity Date High Rate Investment Rate
4-Week 912797JC2 01/09/2024 02/06/2024 5.290% 5.400%

It was bought on 01/04/2024, settlement date = 1/9/2024 for a price of 99.588556. The yield on it is

In [1]:
from tbill_yield import tbill_yield
tbill_yield(99.588556, 28)
Out[1]:
5.4

The precision in the price matters. If you only have 4 significant digits after the decimal, the result will not match with the 'Investment Rate'

In [4]:
tbill_yield(99.5885, 28)
Out[4]:
5.401

Conclusion: Price should have 6 significant digits after the decimal.

tbill_yield_methodology.1704471961.txt.gz · Last modified: 2024/01/05 16:26 by raju