20 min

A dollar later: present value

A dollar later is worth less than a dollar now because the dollar now could be earning interest; present value makes that discount computable, and it is the machinery joining price and yield in everything that follows.

Where you are. You can turn a bond into an array of dated payments. You cannot yet say what that array is worth, and the reason is a question this course has dodged twice already: module 1 handed you a T-bill discount formula and told you to take it as given, promising a derivation here. This lesson pays that debt. It is the shortest lesson in the module and the one everything after it stands on.

Which would you rather have

A hundred now, or a hundred in a year?

Everyone answers immediately, and almost nobody can say why in a way that survives a follow-up. It is not inflation; assume prices are flat. It is not distrust; assume the payment is certain. Take those away and the answer does not change, so neither can be the reason.

The reason is that the hundred now can be put to work. Park it at four percent, in any of the places module 1’s treasurer parked cash, and in a year you have a hundred and four. So a hundred in a year is not worth a hundred today. It is worth whatever amount, invested today, grows into exactly a hundred: about ninety-six and a bit.

That is the whole idea. The rest is arithmetic.

The idea in one paragraph

Money has a time dimension, and comparing amounts at different dates is meaningless until they are moved to the same date. Compounding moves an amount forward: a sum invested at a rate grows by that rate each period. Present value moves an amount backwards through exactly the same relationship: a payment due in the future is worth the sum that, invested now at that rate, would grow into it. Discounting is not a fee anybody charges and not a haircut for risk; it is the interest the money is not earning while you wait for it. Because it is a pure function of amount, rate and time, any schedule of future payments - a bond’s array, a loan’s repayments, a company’s forecast profits - can be collapsed into a single number stated in today’s money, and that number is what everything in finance calls a price.

Backwards is the same relationship as forwards

Compounding forward is familiar: a hundred at five percent for three years becomes a hundred times one-point-oh-five cubed, about a hundred and fifteen and three quarters.

Present value simply solves the same equation for the other unknown. Divide instead of multiply, and the payment moves back to today. Do both in sequence and you must land exactly where you started, which is the first thing the exercise asserts: discounting undoes compounding, to the last decimal.

Two properties fall straight out, and both are worth holding on to. At a zero rate, later and now are worth the same, because nothing is forgone by waiting. And the further away a payment is, the less it is worth today, at an accelerating rate, because the compounding works against it for longer.

image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 0 5 10 15 20 25 30 years until the dollar arrives 0.0 0.2 0.4 0.6 0.8 1.0 what it is worth today 2% 5% 9% the discount is the interest the money could have earned
What one future dollar is worth today at three different rates: the value falls with distance, and falls faster the higher the rate

Paying module 1’s debt

Module 1’s treasurer priced a ninety-one day T-bill by dividing the face value by one plus the yield times ninety-one over three-sixty, and the lesson admitted plainly that the formula was being taken on faith.

Look at it now. It is a present value. The bill pays one payment, its face, at one date. The price is that payment discounted back to today at the prevailing rate. The only difference from the general form is convention: the money market quotes simple interest over a year defined as three hundred and sixty days rather than compounding annually, because at horizons under a year the difference is small and the arithmetic is easier to do in your head on a trading floor.

The exercise proves the loop closes: discount the face at the money-market convention, then grow the resulting price back at the same convention, and you arrive at exactly a hundred.

Check yourself

1. Strip out inflation and default risk entirely. Why is a payment in a year still worth less than the same payment today?

Because today’s money can be invested and the future money cannot. The discount is the return forgone while waiting, which exists even with stable prices and a certain payer. Inflation and risk are separate reasons to discount further; they are not the reason discounting exists.

2. At a zero rate, what is the present value of a hundred due in ten years, and why?

Exactly a hundred. Nothing is forgone by waiting when money earns nothing, so a payment’s date stops mattering and amounts at different dates become directly comparable. This is why prices of long-dated bonds behave so strangely when rates approach zero.

3. Two analysts value the same certain cash flows and disagree. Given the arithmetic is identical, what are they actually disagreeing about?

The discount rate. Present value is a pure function of amounts, dates and that rate, so with the amounts and dates agreed, every difference in the answer comes from it. Disagreements about value are almost always disagreements about the rate, dressed up as disagreements about the business.

4. Module 1’s T-bill formula divides by one plus the rate times days over 360, rather than compounding. Why is that acceptable there but not for a five-year bond?

Because over a few months, simple interest and compounding differ by very little, and the money market’s convention favours arithmetic that is quick and unambiguous. Over five years the difference compounds into something material, so longer instruments are discounted period by period, which is what the next lesson does.

Do this

Build the machinery, prove it inverts, and re-derive the formula module 1 asked you to accept.

python3 code/present_value.py

The starter leaves you pv, the inverse of the fv it provides. The assertions check that discounting undoes compounding to within a billionth, that a zero rate leaves value unchanged, that distance reduces value, and that the T-bill price re-derived here matches module 1’s formula exactly and grows back to its face at maturity. Success prints the derivation chain and the line:

the discount is not a fee: it is what the money could have earned in the meantime, and every price in this module is built from it

The completed version is in solutions/present_value.py.

What you can now do. You can move any payment between dates and compare amounts honestly, which means you can price the bond schedule from the last lesson: discount every payment in the array and add them up. The next lesson does exactly that, and then does the harder and more useful thing, which is running it backwards to recover the rate a quoted price implies.

What you can now do

You can discount any future payment to what it is worth today, and derive module 1's T-bill price rather than taking it on faith.