Cash flow matching strategy is used to build a bond portfolio wherein the cash flows of the bond portfolio exactly match a stream of liabilities. The most simple way to build such portfolio is to buy a zerocoupon bond for each liability and maturity. However, this may not happen always as most of the bonds that are available are not zerocoupon bonds. Hence, cash flow matching strategy adopts an iterative process. That means, at each step, a bond is chosen with a maturity that matches with the last liability and an amount of principal equal to the amount of the last liability is invested in this bond. Coupon payments are made on this bond in order to reduce other (remaining) elements of liability stream. This process will continue for the next last liability, going backward in time until all liabilities have been matched by payments on the securities chosen for the portfolio. For example, let us consider a company, which has the following liabilities:
Table 1
Time

1

2

3

4

5

6

Liability

L_{1}

L_{2}

L_{3}

L_{4}

L_{5}

L_{6}

Now, let us create a dedicated cash flow matching portfolio.
Initially, select a bond 'A' with the following features:
Invest some amount in Bond A in such a way that the cash flow paid at the end of maturity period (6 years). In other words (P_{A }+_{ }C_{A}) must be equal to L_{6}. For the sake of simplicity, let us assume
that a perfect match is possible, i.e.,
P_{A }+_{ }C_{A }= L_{6}._{ }
The following table shows the liabilities that face out:
Table 2
Time

1

2

3

4

5

6

Liability
Cash inflows

L_{1 }
C_{A}

L_{2 }
C_{A}

L_{3 }
C_{A}

L_{4 }
C_{A}

L_{5 }
C_{A}

L_{6 }
P_{A}  C_{A}

Remaining liabilities

L_{1}  C_{A}

L_{2}  C_{A}

L_{3}  C_{A}

L_{4}  C_{A}

L_{5}  C_{A}

0

Now, select another bond 'B' having the features we discussed above.
When we invest in this bond, the cash flow paid at the end of 5 years (P_{B }+ C_{B}) will be equal to
L_{5 } C_{A. }If we consider perfect matching is possible then,
P_{B }+ C_{B }+ C_{A } = L_{5. }
Now, the liability cash flows that are to be matched for the remaining period (4 years) will be as follows:
Table 3
Time

1

2

3

4

5

6

Liability
Cash inflows

L_{1 }
C_{A} + C_{B}

L_{2 }
C_{A} + C_{B}

L_{3 }
C_{A} + C_{B}

L_{4 }
C_{A} + C_{B}

L_{5 }
P_{B} + C_{A} + C_{B}

L_{6 }
P_{A} +C_{A}

Remaining liabilities

L_{1}  C_{A}  C_{B}

L_{2}  C_{A}  C_{B}

L_{3}  C_{A}  C_{B}

L_{4}  C_{A}  C_{B}

0

0

The same process must be continued with years 4, 3, 2 and 1.
Linear programming techniques can be applied to build a leastcost flow matching portfolio from an acceptable universe of bonds.
However, cash flow matching suffers from major drawbacks as follows:

Difficulties in perfect date matching make funds available (in general) even before the exact target date.

Exact amountmatching is not possible because of rounding in the bond quantities traded.

Finally, cash flow matching strategy has to be a rather conservative strategy that will result in an opportunity cost.