Skip to content

Present value of a cash-flow schedule

After this lesson, you should be able to:

  • interpret present value from the same perspective as its cash flows;
  • discount each dated deterministic amount;
  • add discounted amounts without mixing payment dates.

Use the local present-value-payment-index k\explain{present-value-payment-index}{k} to select one row and the local number-of-future-payments n\explain{number-of-future-payments}{n} to count the included future rows. At row k\explain{present-value-payment-index}{k}, write the signed-cash-flow as CFk\explain{signed-cash-flow}{CF_{\explain{present-value-payment-index}{k}}}, its payment-time as tk\explain{payment-time}{t_{\explain{present-value-payment-index}{k}}}, and the matching discount-factor as D(0,tk)\explain{discount-factor}{D}(0,\explain{payment-time}{t_{\explain{present-value-payment-index}{k}}}). Write the schedule’s present-value at valuation-time 00 as PV0\explain{present-value}{PV_0}.

The present value of the deterministic schedule is the sum of the discounted cash flows:

PV0=∑k=1nCFkD(0,tk)\explain{present-value}{PV_0}=\sum_{\explain{present-value-payment-index}{k}=1}^{\explain{number-of-future-payments}{n}}\explain{signed-cash-flow}{CF_{\explain{present-value-payment-index}{k}}}\explain{discount-factor}{D}(0,\explain{payment-time}{t_{\explain{present-value-payment-index}{k}}})

The index k\explain{present-value-payment-index}{k} and the count n\explain{number-of-future-payments}{n} are defined only in this lesson. The other symbols are shared across the course.

Two schedules are compatible when they use the same valuation time, perspective, currency, and discount factors. Let A∥B\mathrm{A}\mathbin{\|}\mathrm{B} be the schedule that contains every row of both schedules A\mathrm{A} and B\mathrm{B}. For two compatible schedules, the present value is additive:

PV0(A∥B)=PV0(A)+PV0(B)\explain{present-value}{PV_0}(\mathrm{A}\mathbin{\|}\mathrm{B})=\explain{present-value}{PV_0}(\mathrm{A})+\explain{present-value}{PV_0}(\mathrm{B})

Example 1.5.1 Present values of dated cash flows

Link to Example 1.5.1: Present values of dated cash flows

One payment

A deterministic receipt of USD 1,000 is paid after two years, and D(0,2)=0.9070294785\explain{discount-factor}{D}(0,2)=0.9070294785. The present value of the receipt is:

PV0=1000×0.9070294785=USD 907.0294785≈USD 907.03\explain{present-value}{PV_0} =1000\times0.9070294785 =\text{USD }907.0294785 \approx\text{USD }907.03

The present value is in USD at valuation-time, from the holder’s perspective.

Mixed signed cash flows

Suppose the holder receives USD 100 at t1\explain{payment-time}{t}_1, pays USD 40 at t2\explain{payment-time}{t}_2, and receives USD 300 at t3\explain{payment-time}{t}_3. The discount factors are 0.97, 0.93, and 0.88.

Payment index k\explain{present-value-payment-index}{k}Cash flow CFk\explain{signed-cash-flow}{CF_{\explain{present-value-payment-index}{k}}}, USDDiscount factor D(0,tk)\explain{discount-factor}{D}(0,\explain{payment-time}{t_{\explain{present-value-payment-index}{k}}})Discounted cash flow CFkD(0,tk)\explain{signed-cash-flow}{CF_{\explain{present-value-payment-index}{k}}}\explain{discount-factor}{D}(0,\explain{payment-time}{t_{\explain{present-value-payment-index}{k}}}), USD
1+1000.97+97.00
2-400.93-37.20
3+3000.88+264.00

The present value is the sum of the discounted cash flows:

PV0=97.00−37.20+264.00=USD 323.80\explain{present-value}{PV_0}=97.00-37.20+264.00=\text{USD }323.80

Discounting does not change the sign of a cash flow. Reversing the perspective would change the sign of the present value.

Additivity

Combining two schedules keeps every row, including duplicate payments. For compatible schedules, a property test of the domain code checks (1.5.2). The compatibility conditions are necessary: present values in different currencies, or at different valuation dates, cannot be added without another model.

The lab below is a calculator for the one-payment case. It calculates the discount-factor from one discounting-lab-rate with annual compounding. It then multiplies one discounting-lab-cash-flow by the discount factor to give the present-value at valuation-time 00. The lab formulas use the same symbols as the text above.

Try discounting a future payment

Present value: $907.03
Discount factor: 0.907029
D(0,t)=(1+y)−t=(1+0.0500)−2  =  0.907029\explain{discount-factor}{D(0,t)} = (1 + \explain{discounting-lab-rate}{y})^{-\explain{payment-time}{t}} = (1 + \htmlData{lab-slot=rate}{0.0500} )^{- \htmlData{lab-slot=years}{2} } \;=\; \htmlData{lab-slot=factor}{0.907029}
PV0=C⋅D(0,t)=1,000.00×0.907029  =  907.03\explain{present-value}{PV_0} = \explain{discounting-lab-cash-flow}{C} \cdot \explain{discount-factor}{D(0,t)} = \htmlData{lab-slot=payment}{1{,}000.00} \times \htmlData{lab-slot=factor}{0.907029} \;=\; \htmlData{lab-slot=present}{907.03}
Value today across the whole 0–30 year range at the current rate. The dot is your selected payment; the dashed line is its undiscounted amount.

The future payment is unchanged. Increasing the rate or waiting longer lowers its value today because the discount factor becomes smaller.

Assumptions and a text alternative

This toy model uses a deterministic payment, a whole number of years, and annual compounding. It has no curve, calendar, uncertainty, credit, tax, or funding.

Value today at the current rate (5%)
Time to paymentValue today
0 years$1,000.00
5 years$783.53
10 years$613.91
15 years$481.02
20 years$376.89
25 years$295.30
30 years$231.38

The tested domain code does the lab’s calculation. The lab converts its percentage input to a decimal before the calculation.

These items separate interpretation from calculation and include an unfamiliar multi-payment case. Each question stays collapsed until you open it; answers and explanations appear once you check.

Knowledge check 1.5.1 Present value

Link to Knowledge check 1.5.1: Present value

This lesson covers deterministic present value only. It omits curves, calendars, uncertainty, credit, recovery, liquidity, tax, and funding.

The rule (1.5.1) follows Tuckman & Serrat[1]; Hull states the same principle[2]. The lesson stays draft pending human confirmation of the printed locators.

  1. Tuckman & Serrat, Fixed Income Securities: Tools for Today's Markets (4th ed., 2022). §1.2, price as the sum of each cash flow times its discount factor (eqs. 1.1-1.3); full price equals present value (eq. 1.5). draft ↩
  2. Hull, Options, Futures, and Other Derivatives (8th ed., 2012). Ch. 4, “Bond Pricing”. draft ↩
Notation used on this page (13)
CCDiscounting lab cash flowdraft

The one dated amount the discounting lab discounts. It is page-local to the lab's one-payment model; the lesson's schedule notation writes an indexed amount instead.

PV0=C⋅D(0,t)PV_0 = \explain{discounting-lab-cash-flow}{C} \cdot D(0,t)

Units: stated currency at payment time

yyDiscounting lab ratedraft

The one annual rate the discounting lab compounds to build each discount factor. It is page-local to the lab's toy model; elsewhere this lesson takes every discount factor as given rather than deriving it from a rate.

D(0,t)=(1+y)−tD(0,t) = (1 + \explain{discounting-lab-rate}{y})^{-t}

Units: decimal rate per year

nnNumber of future paymentsdraft

The final index in the finite present-value sum. It counts included future rows and does not itself specify maturity in years.

n∈N\explain{number-of-future-payments}{n} \in \mathbb{N}
kkPresent value payment indexdraft

Selects one dated cash flow in the finite schedule. This lesson-local index keeps sequence bookkeeping separate from the associated time measured in years.

k∈{1,…,n}\explain{present-value-payment-index}{k} \in \{1,\ldots,n\}
A(0,t)A(0,t)Accumulation factordraft

Grows one current unit over a stated future horizon under the selected rate model.

Units: dimensionless currency-units per current currency-unit

mmCompounding frequencydraft

Number of equal compounding periods per year under the stated rate convention, a positive integer fixed by the model convention.

Units: compounding periods per year

D(0,t)D(0,t)Discount factordraft

Converts one deterministic future unit into value at valuation time.

Units: current currency-units per future currency-unit

j(m)j^{(m)}Nominal annual ratedraft

Annualized rate quote that must be paired with its compounding frequency.

Units: decimal rate per year

tkt_kPayment timedraft

Time from the valuation date to one scheduled cash-flow event; a time coordinate, not a calendar date or payment index.

Units: years from the valuation date

rmr_mPeriodic ratedraft

Rate applied once in each compounding period under the stated convention, derived from the stated nominal annual quote in this model.

Units: decimal per compounding period

PV0PV_0Present valuedraft

Combines dated signed cash flows into one value at valuation time, using the same holder perspective as the signed cash flows.

Units: stated currency at the valuation time

CFkCF_kSigned cash flowdraft

Amount received or paid at one event from the stated holder perspective; positive means received and negative means paid by that holder.

Units: stated currency units

00Valuation timedraft

Common origin from which later model times and present values are measured.

Units: years from the valuation date