The calculator provide the ability to calculate multiple implied rates from futures contract, taking into account convexity adjustments. The initial setup values are loaded to simplify user interaction. User nevertheless has two input the price and volatility for each futures contract.

Self explanatory. It is defaulted to current system date

The rule for setting the theoretical maturity date of the futures contract. It is defaulted to the the third wednesday of the next quarterly month. Other options are '90-day' and '3-months' for user to use. Changes will only take effect after 'Load Table' is click.

The day count convention used to calculate the discount factor from the implied futures rate.

The day count convention used to as the basis for conversion of implied futures rate to implied forward rate.

This is a button to reload the table after values of the above are changed. Any previously input values will be lost and will have to be reinput.

Once the 'Load Table' is clicked, the empty table will be filled with 20 quarterly futures contract ordered in ascending manner i.e the nearest to expiry will be in the first row. For simplicity, it is assumed that the expiry of the contract falls on the third Wednesday of the next quarterly month.

Some of the fields in the table are described below:

This is the futures contract code and for our purpose is using 'KB' as the base. The third letter in the contract code represent the month and the last for represent the year of its expiry date. For instance KBM2022 means that it is a futures contract expiring on third Wednesday of June 2022.

Expiry date of the futures contract

The theorettical maturity date of the futures contract derived from using the 'Maturity Set As' selected value.

This is a user input fields - the futures price of the contract.

The implied futures rate. This is a calculated field. It is 100 - 'Price'.

The continuous rate equivalent of 'Futures Rate (%)'

Annual volatility of the futures contract. This is a user input field for the purpose of calculating convexity adjustment

The calculated convexity adjustment.

The continuous foward rate after adjusting for convexity adjustment

The implied forward rate from futures price after taking into account convexity adjustement.

The following chart shows the relationship between the implied futures rate and implied forward rate once the futures prices and volatilities have been input. It is worth to note that the convexity adjustment has a positive relationship with time to expiry. Given price and volatility, convexity adjustment is larger (in absolute value) as time to expiry is farther away from the current date. This can be confirm by inputting the same prices and volatilities for each contract month in the above table. The following chart will be automatically updated with every single update on the table.

Additional charts are provided below to illustrate the convexity adjustment relationship with futures prices and volatilities. Convexity adjustment in its continuous rate form is not impacted by the level of futures prices. When the continuos forward rate is calculated and its difference with the implied futures rate is taken as the convexity adjustment, the difference is not a constant and changes with futures prices, although tiny.

The following two charts use the difference between the implied forward rate and implied futures rate as the convexity adjustment. The first chart (on the left) is the convexity adjustment for the implied futures rate for a given volatility. Three volalities are used as indicated by the legend. User can toggle the line chart for each volatility by tapping/clicking the legend. By toggling off two of the charts user can clearly see the steepness on the line chart.

The second chart (on the right) is the convexity adjustment for the implied futures rate for a given price. Three prices are used as indicated by the legend. User can toggle the line chart for each prices by tapping/clicking the legend.

Several issues need to be raised before the results in the above table can be used to create a curve.