Duration and DV01 for Treasury Bills and Zero-Coupon Bonds
Summary
The document describes how to calculate duration, modified duration, and DV01 for a Treasury bill treated as a discount instrument and for a zero-coupon bond. It states that zero-coupon duration is based on time to maturity, scaled by price, and that modified duration divides duration by one plus yield. DV01 is presented as the price sensitivity corresponding to a one-basis-point change in interest rates.
A Treasury bill example supplies a valuation date, maturity date, day-count basis, price, and discount rate, then applies the stated calculations. The answer also points readers to a Bloomberg help page for the relevant display. The worked example is specific to the quoted instrument and conventions; day-count assumptions, yield conventions, and unit scaling matter when reproducing results elsewhere. The document does not compare alternative conventions or establish that its formulas apply unchanged to coupon-bearing bonds.
Key ideas
- For a zero-coupon instrument, duration is tied to time remaining until maturity, with the stated price scaling.
- Modified duration is calculated by dividing duration by one plus yield.
- DV01 expresses the market-value change associated with a one-basis-point interest-rate move.
- The example uses a specified day-count basis, price, discount rate, and maturity date.
- Conventions and units should be checked when applying the calculations to other instruments.
Tags
Full text
# Modified duration of T-Bill and zero coupon bond
# Modified duration of T-Bill and zero coupon bond
How to calculate the modified duration of T-bill (discount instrument) and europeans bills (zero coupon instrument). I couldn't find how Bloomberg is calculating those values on YA
## Answer by AKdemy (score 2)
https://quant.stackexchange.com/a/79543
{LPHP YA:7:1 805703 } is the direct link to the help page (just copy paste into `IB`).
Duration itself (for zero coupon bonds) is just the maturity itself, scaled by price.
Modified duration is the same, but divided by (1+y). DV01 is the dollar value change in market value given a one basis point change in interest rates. It is calculated as price * Mod duration/100. Looking at a specific example, say `B 0 08/29/24 Govt`, YAS looks like this:
Replicating this in Python code:
```
from datetime import datetime
import pandas as pd
today = datetime(2024,5,29)
maturity = datetime(2024,8,29)
daycount = 360
price = 98.6722847
discount = 5.2525
days = maturity - today
maturity_yrs = days.days/daycount
duration = round(maturity_yrs/price*100,3)
modified_d = round(duration / (1+discount/100),3)
DV01 = round(modified_d*price,2)
pd.DataFrame({"Duration": [duration], "Modified Duration" : [modified_d], "DV01": DV01})
```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.