Calculating DV01 for Treasury Futures with CTD switch risk

With rates rising, certain contracts, such as the USZ3, are prone to frequent CTD switches with sometimes large differences in the DV01 of an underlying CTD. Does anyone know of any resources for calculating the DVO1 for a treasury future that is prone to CTD change risk or alternatively any off the shelf solutions that can handle this? Bloomberg seems to have nothing. Thanks!

• You can try this: rateslib.readthedocs.io/en/stable/api/…, needs some set up though. Interested in any feedback.
– Attack68
Sep 28, 2023 at 20:55
• Thanks you! Will definitely let you know if I'm able to get enough into it to provide some worthwhile feedback Sep 29, 2023 at 15:40

You are trying to calculate the so-called "option-adjusted DV01" (OA DV01). The nice thing about OA DV01 is that it's a smooth function of yield shifts. I'm going to be lazy here and simply post a figure from an ancient report titled "The Salomon Brothers Delivery Option Model" (Mark Koenigsberg, 1991):

As you can see, when yield level changes, the CTD's DV01 can of course jump around, but the model-based OA DV01 transitions smoothly.

If you don't want to calculate these numbers yourself, you can get them very easily from a lot of sell-side banks. At JP Morgan, for example, you’d search for “U.S. Treasury Future Basis Reference Sheet” and the numbers you are looking for are printed under “OA BPV.” At Barclays, you’d search for “CBOT Futures Multi-factor Analysis Report” and the numbers are printed next to “\$ PV01.” Morgan Stanley also has "US Bond Futures Daily Report" and the label is simply "DV01." As a shameless plug, my current company also provides these numbers on the Augur Labs Infinity platform.

If you want to create a simple model to calculate this yourself, it’s actually not that difficult. Here's a highly stylized example:

1. Imagine there are only two bonds that can be delivered into the contract.
2. One of the bonds is the current CTD. Start by creating 1000 yield scenarios as of the delivery date for it (more scenarios would be better, but 1000 is a good starting point). For simplicity, you can assume that yield changes are normally distributed; the yield on the delivery date may have a mean corresponding to the current forward yield and a volatility inferred from bond futures options. Based on these yields, you can easily calculate the converted forward price for the current CTD at each yield level.
3. For the other bond, let’s assume that the yield curve can only move in a parallel fashion, so now you have 1000 forwards yields for the other bond too, and you can again compute the converted forward prices.
4. For each yield level, you’d compare the two bonds and see whose converted forward price is lower. That tells you who the CTD is for each yield level and you also know what the theoretical futures price should be at that yield level (simply the minimum converted forward price).
5. Now it should be straightforward to summarize the delivery probability of each bond from step 4, as well as the futures model price (the probability-weighted futures price).
6. To compute the OA DV01, you can simply perturb the initial yields by say 10 bps and see how much the probability-weighted futures price changes. Alternatively, you can calculate the probability-weighted DV01 (the former is preferred when we introduce more features into the model).

The simple model above ignores a lot of subtleties, which is only casually reviewed here:

1. In Step 2, you can either use the CTD as the reference bond or an on-the-run bond as reference. I personally prefer the latter approach.
2. In Step 2, you should also include a convexity adjustment to ensure that the probability-weighted forward price for each bond matches the current forward price, so that there's no arbitrage opportunity.
3. In Step 3, instead of assuming parallel shifts of the yield curve, you can shift the other bonds using their historical yield betas to the reference bond.
4. The model also ignores the a) timing option, b) the end of month option, and c) the wild card options. a) is not super valuable, but b) and c) can be meaningful. These are difficult to handle and I'd recommend consulting specialized readings. Instead of this kind of simplistic grids, a term structure model might be more suitable.
5. This model is a single-factor model. The advantage is simplicity – you can literally create this model in Excel with a 2-dimensional grid (deliverables on one axis and yield levels on the other). Ideally, you’d use at least a two-factor model to more accurately capture relative yield movements. For a real-world example that implements this kind of two-factor model using a grid, search for "The Lehman Brothers Multifactor Futures Model" (Phil Weissman & Ralph Axel, 1997).
• Great post, thank you! Do you know whether the ancient report you cited is still available or accessible somewhere? If not, do you have an alternative source to read about OA DV01 calculation?
– SI7
Oct 1, 2023 at 19:17