If you go to savingsbond.gov, choose the date 2023-07-17 and look at the CUSIP 91282CBM2, you'll see that it has a rate of 0.125%, a maturity of 2024-02-14, and a sell price of 97.03125. It's a 3 year note that pays a coupon semi-annually.
That price matches what I see in in my brokerage's interface and I'd like to compute (or estimate) that price myself in a Google sheet. I think I need to use some combination of the PRICE() and/or YIELD() functions and knowledge of the yield curve as of 2023-07-17, but I'm not quite sure how to do it.
To continue the example, I have:
- Settlement: 2023-07-17
- Maturity: 2024-02-14
- Rate: 0.00125
- Price: 97.03125
- Redemption: 100
- Frequency: 2 (semi-annual coupon)
- Day count convention: 1 (Actual/Actual)
Plugging those values into the YIELD function produces 0.054. Taking those same values and the 0.054 yield just calculated and plugging them into PRICE() gets me back to 97.03125.
My question is: can I use knowledge of the current yield curve to estimate that 0.054 number? I imagine that bond traders have a way to calculate the fair price of a bond given the current interest rate environment.