What exactly is a deposit futures contract?

I have been working with Deposit Futures and the Brazilian One-Day Interbank Deposit Future but I can't get my head around them.

What exactly is delivered and when? What is the contract a right to?

The One-Day Interbank Deposit Futures Contract (aka the DI contract) is a contract on the Brazilian one-day interbank rate. This is the rate at which large banks in Brazil lend and borrow from each other. The contract provides a way to hedge or speculate in short-term Brazilian interest rates.

This contract is financially, rather than physically, settled. That means that nothing is actually delivered. Rather, at the end of each day the holders of the contract have their account at the exchange credited or debited by an amount which reflects the one-day change in the deposit rate. The amount of debit or credit $X_t$ is given by the formula

$$X_t = N\times M\times \left( P_t - P_{t-1}F_t\right)$$

where $N$ is the number of contracts held, $M$ is the point value of the contract (i.e. number of Brazilian Real per contract point), $P_t$ is the price of the contract and $F_t$ is the correction factor, which is given by

$$F_t = \prod_{j=1}^n \left( 1 + \frac{DI_{t-j}}{100}\right)^{1/252}$$

where $DI_t$ is the interbank deposit rate for day $t$, and $n$ is the number of reserve days (aka business days) between the day that the debit/credit is being calculated for, and the last trading day. Typically $n=1$ unless there have been some holidays between today and the previous trading day. Note that weekends do not count as holidays, so $n=1$ between the close on Friday and the close on the following Monday.

Note that the quantities $P_t$ is known as the unit price. This is not actually what is quoted in the market - instead the interest rate $DI_t$ is quoted. The relationship between them is

$$P_t = \frac{100,000}{\left(1 + \frac{DI_t}{100} \right)^{ \frac{N_t}{252} } }$$

where $N_t$ is the number of reserve days to maturity on day $t$ (i.e. it decreases by 1 for each business day that passes). In particular, on the final trading day you have $N_t=0$ and $P_t=100,000$.

As for what the contract is a right to - holding the contract merely gives you the right (or obligation) to the associated cashflows each day. Nothing is transferred between holders of this contract except for cash.

• Is there a payment at maturity apart from this crediting or debiting by an amount which reflects the one-day change in the deposit rate? Jul 20, 2017 at 14:56
• At maturity $t_f$ there is a final cash settlement which looks exactly like the regular debit/credit, except that the final settlement price $P_{t_f}$ is always 100,000 points. Jul 20, 2017 at 15:01
• Ah okay, so if I understand this correctly, the account is debited by $X_{t_f} = N\times M\times \left( P_{t_f} - P_{{t_f}-1}F_{t_f}\right) = N\times M\times \left( 10^5 - P_{{t_f}-1}F_{t_f}\right)$. Jul 20, 2017 at 15:19
• That's correct. Jul 20, 2017 at 15:36

I would add just a small detail to Chris Taylor's excellent explanation: "Typically n=1 unless there have been some holidays between today and the previous trading day.".

You must distinguish between "Bank/Settlement Holidays" (there is no CDI published) and "Exchange Holidays" (the exchange is closed, no trading on DI Futures).

After a Exchange Holiday that is not a Settlement Holiday you could have n=2 (ie two overnight rates must be applied to the previous price).

You can see the need for 2 calendars in QuantLib https://quantlib-python-docs.readthedocs.io/en/latest/dates.html#calendar :

Brazil : [‘Exchange’, ‘Settlement’]

• Unfortunately, Quantlib is happy with just calendar = ql.Brazil(). Maybe a future release will address this.. Oct 26, 2021 at 14:00
• Agreed, it's not obvious that you need one for the Business Days calculation in the DI Future and the other for calculating Fixing and Settlement dates of OTC FX Options. Oct 26, 2021 at 14:24