All the equations provided so far made it easy to calculate the value of financial instruments discussed. Once any of the instruments is purchased, and kept in the books for a period of time, valuing the instruments may not be straight forward. The maturity of the instruments purchased may not fall on the standard tenors quoted by brokers or fair yield provided by BNM. In such a case, educated guesses have to be made to value holdings of financial instruments.

Example 1-3

T-bills maturing on November 6, 2020 was bought on March 6, 2020 at a discount rate of 2.70%. On June 17, 2020 the T-bills levels are as provided in Table 1-4. Generally only information in the first two columns are provided. Values in the other columns are calculated for illustration purposes with the following assumptions:

  1. Convention - Actual/365 Fixed
  2. Rate Type - Discount Rate
  3. Today - June 17, 2020
Readers can use the provided information as an exercise to check the calculation. In addition readers are allowed to change the rate 'Quotes (%)' column can be changed by users.

Table 1-4

Note that the maturity of the T-bills bought does not fall on any maturity of the standard tenor. Diagram 1-6 shows that the T-bills maturity falls between the standard tenor of 3M and 6M. The rate applicable to the tenor is denoted as \(r_{1,2}\) and is currently unknown.

Diagram 1-6

\(r_{1,2}\) can be interpolated from the existing rates and the easiest interpolation method is linear interpolation, a method which will be used throughout the book. Splining is another interpolation method which is often used within a pricing system which will not be covered but provided in the calculator below.

Linear Interpolation

To linearly interpolate a rate that lies between two standard tenors as in the above example, the following formula can be used;

\(r_{1,2} = r_{t_1}+ \dfrac{r_{t_2}-r_{t_1}}{t_2-t_1}(t_{1,2}-t_1)\)

Equation 1-14

\( \begin{align} \textrm{where }r_{1,2} &= \textrm{interpolated rate}\\ t_{1,2} &= \textrm{tenor for the interpolated rate}\\ t_1 &=\textrm{tenor prior to }t_{1,2} \textrm{ with available rate}\\ r_{t_1} &= \textrm{rate applicable to }t_1\\ t_2 &=\textrm{tenor after }t_{1,2} \textrm{ with available rate}\\ r_{t_2} &= \textrm{rate applicable to }t_2 \end{align} \)

We can use Equation 1-14 to solve for valuation rate applicable to the T-bill. The number of days from today to the maturity date of the T-bill is 142 days.

\( \begin{align} r_{1,2}&=2.75\textrm{% } + \dfrac{2.80\textrm{% }- 2.75\textrm{% }}{183\textrm{ days}-92\textrm{ days}} (142\textrm{ days }- 92\textrm{ days})\\ &=2.75\textrm{% } + \dfrac{0.05\textrm{% }}{91\textrm{ days}}(50\textrm{ days})\\ &=2.777473\textrm{% } \end{align} \)


A more commonly used interpolation technique in finance is splining, namely cubic splining. The topic is beyond the scope of this book but a sample explanation is provided in Wikipedia. The ‘zero’, ‘slinear’, ‘quadratic’ and ‘cubic’ method in the following calculator refer to a spline interpolation of zeroth, first, second and third order respectively. The calculator interpolates rate for any point in time between the period in the table. It will will interpolate the rate and the discount factor for the number of days input, instead of interpolating rate and calculates the discount factor, or vice versa. Scipy, a python package is used for the purpose. In particular, it is the 'interp1d' function in scipy's interpolate module. Click here to see the technical reference of the function.