Pricing Reopened Treasury Notes with Street and Treasury Conventions
Summary
The document explains why a Python bond-pricing result for a reopened U.S. Treasury note may differ from a vendor quote. The key issue is the applicable market convention for accrued interest and the adjusted accrual period. The answer recommends using a fixed-rate bond model with the effective date set to the start of the coupon period, rather than treating the reopening date as the bond’s effective date.
A worked example compares two convention specifications in Rateslib for the same coupon, yield, settlement date, and maturity. The US Street convention matches the quoted clean price, while the Treasury-specific convention produces a slightly different result. The example shows that library support alone does not ensure a matching price: the convention selected must reflect the quote being reproduced. It is a single example, not a general guide to all Treasury pricing details, and it does not examine alternative packages, settlement rules, or how to validate conventions across other instruments.
Key ideas
- Bond prices can differ when libraries apply different market conventions.
- For the example, the US Street convention reproduces the vendor quote.
- The bond’s effective date is set to the beginning of its coupon period.
- A matching output in one example does not establish the right convention for every Treasury instrument.
Tags
Full text
# How to calculate yield -> price conversion for when issue treasury note instruments?
# How to calculate yield -> price conversion for when issue treasury note instruments?
Thanks for peeking. I've tried scouring all of the web for an answer but keep coming up short. Which python package can help convert bond yield to price conversion using the below information? Bloomberg/Tradeweb is showing a converted price to 101.7517925, but every python package shows something slightly different because it's not incorporating the adjusted "interested accrues" date for this re-opening treasury note.
Vendors offer this package for 10k per month as it's a specialized financial software that takes into account all nuances of treasury bond pricing, but I can't afford that! Any sources would be helpful!
Cusip: 912810UB2 rade Date: 07/15/2024 Settle Date: 07/31/2024 YTM (BBG Street Convention): 4.49 Issue Date: 07/31/2024 Interest Accrued: 05/15/2024 1st Coupon Date: 11/15/2024 Maturity Date: 05/15/2044 Semi Annual Coupon 4.625
## Answer by Attack68 (score 1)
https://quant.stackexchange.com/a/80649
Rateslib and Quantlib both do this.
```
from rateslib import * # Python 3.12, Rateslib 1.4.0
bond = FixedRateBond(
effective=dt(2024, 5, 15),
termination=dt(2044, 5, 15),
spec="us_gb", # <- Street convention for US Treasuries.
fixed_rate=4.625
)
bond.price(ytm=4.49, settlement=dt(2024, 7, 31))
# 101.75179247635955
bond = FixedRateBond(
effective=dt(2024, 5, 15),
termination=dt(2044, 5, 15),
spec="us_gb_tsy", # <- Treasury convention for US Treasuries.
fixed_rate=4.625
)
bond.price(ytm=4.49, settlement=dt(2024, 7, 31))
# 101.74563944560269
```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.