Skip to content
All library documents

Consistent Day Counts in Treasury Curve Bootstrapping

Article Quant Q&A · Author: filifunk

Summary

This exchange explains why a bootstrapped zero rate for an 18-month Treasury bond can appear below the bond’s yield to maturity even when the curve slopes upward. The error comes from mixing time conventions: earlier maturities were treated as exactly half a year and one year, while the later bond used its actual year fraction. Those inconsistent periods distort the coupon present values and the resulting zero rate.

The fix is to use actual year fractions consistently for the coupon dates and the final maturity. Alternatively, simplified half-year periods can be used throughout, but that convention is only appropriate under assumptions such as a 30/360 day count and payment dates exactly 180 days apart. The answer identifies a specific calculation inconsistency rather than a general failure of bootstrapping. It does not provide a broader discussion of Treasury curve construction or compare day-count conventions across instruments.

Key ideas

  • Bootstrapping requires consistent time fractions across coupon dates and bond maturities.
  • Mixing rounded periods with actual year fractions can distort discounting and produce counterintuitive zero rates.
  • Use actual date-based year fractions consistently when the applicable convention calls for them.
  • Half-year increments are a simplification that depends on the day-count convention and payment schedule.

Tags

Full text
# Trying to learn to bootstrap with the Treasury Curve and can't seem to get a result that makes sense


# Trying to learn to bootstrap with the Treasury Curve and can't seem to get a result that makes sense












I'm trying to learn to bootstrap and am taking some bonds from the Treasury curve:

https://docs.google.com/spreadsheets/d/1vA7s4ZfFzGfTji_d9cLUid5rqyaugRrI0etCW_3Jb6w/edit?usp=sharing

For some reason the zero rate I'm ending up with for the 1.5 year bond (cell B19) is less than the YTM of that bond (cell F4). This doesn't make sense because it is an upward sloping curve. Am I misunderstanding something about bootstrapping?

## Answer by compilation-error (score 2, accepted)

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

You are mixing up your time fractions. you used 0.5 and 1 for 6M and 1Y respectively, but calculated the 18M rate using actual year fractions (~1.545) instead of 1.5. Hence the lower value.

You should instead calculate the PV of the coupons using the actual year fractions for 6M and 1Y (~.49 and ~.93 resp.) and then use the actual year fraction for 18M OR use 6M = 0.5 consistently (although this is, strictly speaking, incorrect - unless you are using 30/360 day count convention and your payment dates come out to 180 days apart)

you can find a version of your spreadsheet here with edits in orange demonstrating the two approaches.

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.