Every valuation is the same calculation: list the cash a thing will pay in the future, and pull
each payment back to today. The whole art is in two guesses, and most of what follows is how
much those guesses move the answer.
the estimated valuethe discount rate, the price of waitingthe cash received
A dollar later is worth less than a dollar now
Because a dollar now can earn interest. If money earns r a year, then $100 today becomes
100(1+r) in a year, so $100 due in a year is worth 100/(1+r) today. To bring a payment
n years away back to today, divide by (1+r) once per year:
PV=(1+r)nFV
Table 1. Present value of a future payment at several rates and horizons
Case
Working
Value today
$121 in 2 years at 10%
121 / 1.21
$100.00
the same at 12%
121 / 1.2544
$96.46
$10,000 in 1 year at 10%
10,000 / 1.10
$9,090.91
$10,000 in 2 years at 10%
10,000 / 1.21
$8,264.46
$1 in 50 years at 8%
1 / 46.9
$0.02
A higher discount rate means a lower value today: the second row of Table 1 is the first row with the rate
two points higher, and it shaved 3.5%. The last row, and the first panel of Figure 1, is why distant cash barely matters: fifty
years out at 8%, a dollar is two cents.
Figure 1. Discounting over time, the Gordon price against growth, and a DCF's sensitivity
The discount rate is what the money could earn elsewhere at similar risk: a broad index
fund for a stock, a government bond for something safe. Pick it too low and everything looks
cheap.
A stream of payments
A stock is a stream of dividends. Add up the present value of each (Table 2):
Table 2. Present value of a stream of one-dollar payments at 8%
Stream
Working
Value today
$1 a year for 10 years at 8%
sum of 1 / 1.08ᵏ
$6.71
$1 a year forever at 8%
1 / 0.08
$12.50
The forever case has a one-line answer, D/r, and it is the limit of the ten-year sum as the
years pile up: the payments beyond year ten are worth $5.79 in total, most of it from the first
few of them. If the dividend also grows at a steady rate g, the Gordon growth formula
gives:
P0=r−gD1for r>g
Price equals next year’s dividend divided by the gap between the discount rate and the growth
rate. The gap in the denominator is the whole story (Table 3):
Table 3. Gordon price for several dividend, rate and growth combinations
Next dividend
r
g
Working
Price
$3
10%
5%
3 / 0.05
$60.00
$2
10%
4%
2 / 0.06
$33.33
$2
10%
5%
2 / 0.05
$40.00: one point of growth is +20% of value
$2
10%
8%
2 / 0.02
$100.00
$2
10%
9.5%
2 / 0.005
$400.00
As g creeps towards r the denominator shrinks towards zero and the price explodes; at
g≥r the formula gives nonsense, because a dividend growing as fast as the discount rate
is worth an infinite amount. The second panel of Figure 1 draws the curve. No company grows
faster than the economy forever, so the long-run g is always a few percent, and a model that
needs 8% to justify a price is a model that has already failed.
A discounted cash flow, and where the answer lives
A DCF forecasts a few years of cash flows explicitly, then handles everything after with a
Gordon-style terminal value. A small one: $100 of cash this year, growing 8% a year for five
years, then 3% forever, discounted at 10% (Table 4).
Table 4. A five-year DCF split into explicit years and terminal value
Three quarters of the value is the terminal value, the part that rests on one long-run
growth guess and one discount rate. Change either and the answer moves more than the whole
explicit forecast is worth (Table 5):
Table 5. DCF value by discount rate and long-run growth
Item
g = 0%
2%
3%
5%
r = 8%
$1,750
$2,200
$2,560
$4,000
r = 10%
$1,386
$1,637
$1,816
$2,389
r = 12%
$1,144
$1,299
$1,403
$1,700
The honest range is $1,144 to $4,000 for the same business, depending on two numbers nobody
can verify. That is why a practitioner works with a range and a margin of safety rather than
a point: estimate the value, then only buy well below it.
margin of safety=valuevalue−price
Table 6. Margin of safety worked three ways
Case
Working
Result
Value $62.50, price $50
(62.50 − 50) / 62.50
20% margin, divided by value
Want a 25% margin on a value of $80
80×0.75
buy at $60 or below
Scenarios: 25% chance $40, 50% $60, 25% $90
10 + 30 + 22.5
expected value $62.50
The last row of Table 6 is the expected value of a valuation under several
futures, and it is still one number: one of the three scenarios will happen, not the average.
Book value is accounting, not value
A company’s book value is its assets minus its liabilities on the balance sheet, which
carries assets at cost less depreciation. Assets $500M, liabilities $320M, 30 million shares:
book value $180M, $6 a share. At a price of $9 the price-to-book ratio is 1.5. A ratio above 1
is normal, because a working business is worth more than its parts sold off: the brand, the
customers and the growth are not on the balance sheet. A ratio below 1 can mean a bargain or a
business in trouble; the number alone does not say which. In a forced sale, book value can
overstate what the assets fetch.
Being right about value is not a good trade
The gap between price and value pays only if it closes, and only if you are still there when it
does. A stock can stay mispriced for years; a short position (borrowed shares sold, to be bought back
later) loses without limit while the price keeps rising; a margin call, the broker’s demand for
more cash when a position bought with borrowed money falls, can force a sale at the worst moment. Value tells you what to own. It does not tell
you when the market will agree, and the market is under no obligation to.
Traps
Table 7 is the list of mistakes, with the fix beside each.
Table 7. Traps in valuation and what is true instead
Trap
Truth
A higher discount rate raises the value
It lowers it
Gordon works for any growth rate
Only for g<r, and g is a few percent at most
The explicit forecast is most of a DCF
The terminal value usually is
Margin of safety divides by the price
By the value
A positive expected value means you cannot lose
One scenario happens
Price-to-book below 1 means cheap
Or trouble
The price reveals the true value
The price is where the last trade happened
The code
Every number above, in plain Python with no libraries, so it runs as pasted. Each
function is one formula from above; the print lines reproduce the tables.
def present_value(cash, rate, years): return cash / (1 + rate) ** years # divide by (1 + rate) once per yeardef gordon(next_dividend, rate, growth): assert growth < rate, "the formula only works when growth is below the discount rate" return next_dividend / (rate - growth)def dcf(cash0=100, growth=0.08, rate=0.10, g_term=0.03, years=5): flows = [cash0 * (1 + growth) ** k for k in range(1, years + 1)] # years 1 to 5 explicit = sum(cf / (1 + rate) ** k for k, cf in enumerate(flows, 1)) # their value today terminal = flows[-1] * (1 + g_term) / (rate - g_term) / (1 + rate) ** years # years 6 onward return explicit, terminal, explicit + terminalmargin = lambda value, price: (value - price) / value # divide by the value, not the priceprint(round(present_value(121, 0.10, 2), 2), round(present_value(121, 0.12, 2), 2)) # 100.0 96.46print(round(sum(present_value(1, 0.08, k) for k in range(1, 11)), 2), 1 / 0.08) # 6.71 12.5print(gordon(2, 0.10, 0.05)) # 40.0print([round(x) for x in dcf()]) # [473, 1342, 1816]for r in (0.08, 0.10, 0.12): # the sensitivity table print(r, [round(dcf(rate=r, g_term=g)[2]) for g in (0.0, 0.02, 0.03, 0.05)])print(margin(62.50, 50)) # 0.2
It prints 100.0 and 96.46, then 6.71 and 12.5, then 40.0, then the DCF’s three parts
[473, 1342, 1816], then the sensitivity table row by row, then 0.2. round(x) drops the
decimals, and enumerate(flows, 1) numbers the cash flows from year 1. dcf(rate=r, g_term=g)
changes only those two inputs and keeps the others at their defaults.
Philip J. Romero and Tucker Balch, What Hedge Funds Really Do: An Introduction to Portfolio Management (Business Expert Press, 2014), chapters 5 and 6: present value, intrinsic value as the sum of discounted dividends, book value against market value, and Graham’s margin of safety (chapter 5)
Benjamin Graham, The Intelligent Investor (Harper, revised edition 2006), chapter 20: the margin of safety