Skip to content
All library documents

Yielding Seasoned Treasury Bonds with Accrued Interest and Stub Periods

Article Quant Q&A · Author: Jared

Summary

The document addresses why standard yield calculations can produce implausible results for a seasoned Treasury bond near maturity. Its example is in the final coupon period, where accrued interest must be added to the clean market price to obtain the settlement price. The remaining period is treated using a simple interest convention and a day-count fraction, rather than applying a full regular coupon-period compounding formula. Applying those conventions to the example reconciles the calculated yield with the quoted market yield.

It also discusses whether very seasoned bonds belong in yield curves. The response says treatment depends on the market and purpose; in the US, old issues may be excluded because their liquidity and trading behavior differ from newer securities at similar maturities. For very short maturities, repo rates may be more appropriate for financing analysis. These are market-practice observations rather than universal rules, and the result depends on correct settlement dates, accrued interest, coupon schedules, and conventions.

Key ideas

  • A bond near a coupon date requires accrued interest to be included when converting clean price to settlement price.
  • The final coupon period may use simple interest with a fractional-period day count instead of regular-period compounding.
  • Seasoned bonds can be excluded from fair-value curves when their liquidity and trading behavior differ from newer issues.
  • Curve construction choices depend on the intended use and local market conventions.
  • Repo rates can be more suitable than Treasury yields for some very short-term financing comparisons.

Tags

Full text
# YTM of "very-seasoned" bond issues


# YTM of "very-seasoned" bond issues












There is a liquidity premium between on-the-run treasury issues and off-the-run issues with similar characteristics. This is why when building a yield curve, typically on-the-run issues are used to compute this curve as a representation of the risk-free rate.

It seems to be common academic and practitioner practice to remove these "special" securities (for obvious issues) when building the curve. However, when doing relative value analysis between these bonds, these off-the-runs are used exclusively.

Typically there are still discrepancies between very seasoned issues.

- How are these issues (eg an original 30 year bond with less than 2 years to maturity and very high coupon) incorporated into yield curve calculations?

- How can I meaningfully get a YTM for this example maturity?

For example, today's closest maturity original 30-year bond is:

`912810EB0 - Nov15'18 9.0 - BID 101.14000 ASK 101.30600 Mark Yield 1.994%`

(edit: this yield is provided by the brokerage, but does seem reasonable so their "bond math" did not blow up like mine did).

I have tried my own bond math and some calculators available here: http://www.quantwolf.com/calculators/bondyieldcalc.html

```
def bond_ytm(bond):

    price = float(bond['END OF DAY'])
    par = 100.
    T = bond['T']
    t = pd.to_datetime(bond['date'])

    if bond['SECURITY TYPE'] == 'MARKET BASED FRN':
        freq = 4
    else:
        freq = 2

    coupon = float(bond['RATE'].strip('%'))/freq
    coupon_dates = get_coupon_dates(bond, afterDate=t)

    # zero-coupon
    if len(coupon_dates) == 0:
        return (par/price)**(1/T) - 1.0

    dt = dates_to_relative(coupon_dates, anchor=t)

    def Px(Rate):
        return price - (((par + coupon) / (1 + Rate/freq)**(T)) + ((coupon/Rate) * sum([(1 / (1+Rate/freq)**(time*freq)) for time in dt]) ))

    ytm_func = lambda y: coupon*sum([1/(1+y/freq)**(time) for time in dt]) + 1/(1+y/freq)**(freq*T)
    guess = coupon/par
    return optimize.newton(Px, 0.03, maxiter=500)
```

Both of these are giving me results that are nonsense (like a 25% YTM).

How can I get some meaningful results for these very seasoned issues?

## Answer by Helin (score 7, accepted)

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

> There is a liquidity premium between on-the-run treasury issues and off-the-run issues with similar characteristics. This is why when building a yield curve, typically on-the-run issues are used to compute this curve as a representation of the risk-free rate.

Depends on what you're using the curve for. In practice, it is far more prevalent to use only OFF-the-run issues to construct fair value yield curves and compute analytics.

> How are these issues (eg an original 30 year bond with less than 2 years to maturity and very high coupon) incorporated into yield curve calculations?

The treatment differs country to country, depending on market conditions. In the US, these highly seasoned securities are typically excluded completely, because they're illiquid, trade differently from more recent issues with comparable maturities, and generally do not provide much information regarding "fair value." A typical rule of thumb is to remove seasoned securities that have rolled out of their original maturity buckets. For example, 30-year bonds with less than 10 years to maturity can be excluded. Even better, at this tenor (<1 year), don't use Treasury rates at all! Use repo rates, since they're the proper financing rates anyways.

> How can I meaningfully get a YTM for this example maturity?

Because this bond is in its last coupon period, the simple interest convention is used. The accrued interest is: $$ AI = \frac{\text{9/11/2018} - \text{5/15/2018}}{\text{11/15/2018} - \text{5/15/2018}}\times \frac{9}{2} = 2.910326087. $$

Therefore, the price-yield formula is $$ 101.223 + 2.910326087 = \frac{104.5}{1 + \frac{y}{2} \cdot \text{DCF}},$$ where the day count fraction DCF is $$ DCF = \frac{\text{11/15/2018} - \text{9/11/2018}}{\text{11/15/2018} - \text{5/15/2018}} = 0.35326087.$$ Solving for $y$ gives 1.994% precisely.

## Answer by Mike Kipnis (score 0)

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

I am getting a reasonable yield for that issue.

Go to the following website:

https://www.opencminc.com (this is my website)

- Switch to Bond Panel under Calculators section

- Type in 912810EB0 inside ISIN filter in the “Existing Securities” grid on the left side of the calculator panel and press Enter

- Click on the selected security to see its term structure, price, yield, cashflows, etc. This bond will be priced from yield curve in the market data section which is above Calculators panel.

Hope this helps. Thanks

## Answer by Magic is in the chain (score 0)

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

1.994% yield would correspond to mid(ish) clean price of 101.223. Adding accrued interest of about 2.9103 to the clean price gives a settlement price of 104.1333. Feeding this price into the calculators you have been using should give you the yield of about 2%.

PS: some US bonds calculators use simple compounding when pricing during the last coupon period.

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.