Where we start
Analyst sessions 1 to 3 gave you a base: owner earnings per share from the filings, normalised across a cycle, with a view on how much the business must reinvest to grow. A discounted cash flow turns that base into one number by answering a single question: what is a stream of future cash worth in money today? Why a dollar next year is worth less than a dollar now is the price of time, taught in Economics: money, inflation and interest ↗. Here we use it, year by year, and watch where the value comes from.
★ What you walk out with tonight. A twelve-line Python dcf() that returns the value, the part from years 1 to 10 and the part from beyond year 10; the P&G table you can check by hand on a calculator, 5.25 shrinking to 4.82 in year 1 and 8.14 shrinking to 3.44 in year 10; three values for three discount rates, 113.24, 95.16 and 81.95; and the habit of printing the terminal share, 57.0 percent here, next to every value you ever quote.
Two stages
5 min liveNobody can forecast a business year by year forever, so a two-stage model splits the future in two. Stage one is a run of years you are willing to sketch explicitly: here ten years of owner earnings growing at 5 percent from a base of 5.00. Stage two is everything after, summarised as cash growing at a slow, steady 2.5 percent for ever. Every year's cash is then divided down to today at the discount rate, 9 percent, and the pieces are added.
LiveHow each year is discounted3 min▶
Grow the base one year at a time: 5.00 x 1.05 = 5.25 in year 1, 5.25 x 1.05 = 5.51 in year 2, and so on to 8.14 in year 10. Then ask what each year's cash is worth today. Year 1's cash arrives one year from now, so divide it by 1.09 once: 5.25 / 1.09 = 4.82. Year 2's arrives two years out, so divide by 1.09 twice: 5.51 / 1.092 = 4.64. Year 10's is divided by 1.09 ten times, which is 2.37, so 8.14 shrinks to 3.44.
The right-hand column adds to 40.93: everything the explicit decade is worth today. Notice the shape. The cash column rises, the present-value column falls, because the discount rate is larger than the growth rate. A business growing faster than its discount rate for a decade would show a rising right-hand column, and that should make you suspicious of the growth rate before it makes you excited about the value.
Self-studyWhy 5 percent and 9 percent are choices, not facts3 min▶
Nothing in P&G's filings says 5 percent. Its owner earnings per share rose from a five-year mean of 3.84 at the start of its run to 5.90 at the end, about 3.1 percent a year over 14 years, in nominal dollars. So 5 percent is above P&G's own record: it is a round default the bench uses for every filer, so that the companies can be compared on the same sliders. The 9 percent is a judgment about the return you require for waiting and for risk, which is Part 2.
The honest way to write a DCF is to put the choices first, in a sentence: "base 5.00, ten-year mean owner earnings, all-capex approximation; 5 percent for ten years, then 2.5 percent; 9 percent discount rate". Anyone who disagrees with a choice can see it and change it. A value presented without its sentence is a number with its assumptions hidden.
Procter & Gamble's base, from the filings. The 5.00 is the mean of P&G's last ten fiscal years of owner earnings per share, net income plus D&A minus all capital spending, divided by diluted shares, from its 10-K facts through fiscal 2026. Over the same ten years P&G's capital spending ran at 1.19 times its D&A, and its ten-year owner earnings totalled 127.2 billion against 132.6 billion of net income: one of the four filers where the all-capex approximation sits below profit. The base inherits every label from Analyst session 1.
The discount rate is a judgment
5 min liveThe discount rate does two jobs at once. It charges for time, because money tied up for ten years could have earned something safe in the meantime. And it charges for risk, because the cash in the table is a forecast, not a promise. No filing reports it and no formula hands it down from above. Move it one point and P&G's value moves by more than a sixth.
LiveTime, risk, and the row of the grid3 min▶
Read the rate as the return you demand for handing over money today against a stream of cash you cannot be sure of. A safer, steadier stream earns a lower rate; a cyclical, indebted or poorly understood one earns a higher rate. That is a judgment about the business and about you, and two careful people can land a point apart.
One point is not a rounding error. Holding growth at 5 percent and the terminal at 2.5 percent, P&G is worth 113.24 at 8 percent, 95.16 at 9 percent and 81.95 at 10 percent. The swing is lopsided because discounting compounds: every year's divisor changes, and the terminal value's divisor changes most of all, since it sits ten years out and also depends on the gap between the rate and terminal growth. Analyst session 6 sets this row beside the growth and terminal levers and asks which one moves the answer most.
Self-studyCAPM and betas: not covered2 min▶
Textbook finance derives a discount rate from a model of market returns, usually the capital asset pricing model, where a riskfree rate is topped up by a company's measured sensitivity to the market (its beta) times an equity risk premium. That derivation is not covered here. It needs market prices to estimate the beta, these pages use no market prices, and the derivation does not remove the judgment: it relocates it into the choice of premium and the period the beta is measured over.
If you want the full machinery, Aswath Damodaran publishes his cost-of-capital lectures, datasets and spreadsheets free at pages.stern.nyu.edu/~adamodar ↗. For every exercise here, the rate is a stated choice, the range in Analyst session 6 brackets it by a point either way, and the sentence you write with the value says which rate you used.
Two analysts, one set of P&G filings. Give two analysts the same ten years of 10-K facts, the same 5.00 base and the same growth path. One judges P&G a steady consumer business and uses 8 percent; the other wants a cushion and uses 10. They report 113.24 and 81.95 a share, and neither has made an arithmetic mistake. The disagreement is real, it is about one input, and the only way a reader can see it is if both print the rate beside the value.
The terminal value
5 min liveStage two compresses forever into one number. If cash grows at a steady rate g for ever and you discount it at r, the whole stream is worth next year's cash divided by (r - g) at the point it starts. That is the Gordon growth formula, and it is standard finance. It is also where most of P&G's value lives.
LiveGordon growth, step by step3 min▶
Year 10's owner earnings are 8.14. Year 11's, the first year of stage two, are 2.5 percent higher. Divide year 11's cash by the gap between the discount rate and terminal growth, 0.09 - 0.025 = 0.065, and you get the value at the end of year 10 of everything that follows: 128.39. That value sits ten years in the future, so it is divided by 1.09 ten times, like year 10's cash, giving 54.24 today.
Add the two stages: 40.93 + 54.24. On a calculator that is 95.17; the model prints 95.16. Neither is wrong. Each part is rounded to cents before you add them; the model adds the unrounded parts and rounds once. Say so whenever you show the split, because a reader who adds your parts and gets a different total stops trusting the rest.
The terminal share, 54.24 of 95.16, is 57.0 percent, and at these defaults it is the same for every base, because the base scales both parts equally. Print it beside every value. A DCF where most of the answer comes from beyond the forecast is a statement about the long run more than about the next decade.
Self-studyWhat happens as g approaches r3 min▶
The divisor in the Gordon formula is r - g. At 9 and 2.5 percent it is 0.065. Raise terminal growth to 3.5 percent and P&G's value rises to 105.65; lower it to 1.5 percent and it falls to 87.47. Keep raising it and the divisor heads toward zero while the terminal value heads toward infinity. At g equal to r the formula divides by zero, and above it the sum of the stream does not converge at all: each later year is worth as much or more today than the one before.
The intrinsic value bench in Analyst session 10 has a break button that sets terminal growth equal to the discount rate. It does not print an enormous number; it prints no value, and the reason. A model that returned a figure there would be lying.
Damodaran's terminal value lecture gives the economic reason for the cap, not just the arithmetic one: a stable growth rate cannot exceed the growth rate of the economy, though it can be lower, because a company growing faster than its economy for ever would eventually become the economy. He uses the riskfree rate as a simple proxy for nominal economic growth, which keeps terminal growth below the discount rate whenever the discount rate carries any premium for risk.
Vaguely right. In the 1986 letter's appendix on owner earnings, Buffett admits his maintenance-capex term must be a guess and still prefers it to a false precision: "I would rather be vaguely right than precisely wrong." A terminal value is the same kind of figure. Printing P&G at 95.16 with two decimals and no terminal share is precise; printing 95.16 with "57.0 percent of it from beyond year 10, at 2.5 percent terminal growth" is closer to right.
Build the DCF function
★ 22 min · everyone buildsPython 3, standard library only, no data fetch tonight: the base is one number. We use P&G's ten-year mean owner earnings per share unrounded, 4.998525, which displays as 5.00 everywhere else on the page. Using the rounded 5.00 would print 95.19 instead of 95.16, which is itself a small lesson in carrying full precision until the last step. The outputs printed below are what this code printed when run.
Step 1 · Write the function. It returns three things: the value, what years 1 to n are worth today, and what everything beyond year n is worth today. The guard comes first, because a terminal growth at or above the discount rate has no value to return.
Step 2 · Print the hand table. Before trusting the function, reproduce Part 1's table outside it and compare line by line with your calculator.
Step 3 · Run it on P&G at the defaults. Print the value, the split, and the terminal share together, always.
Step 4 · Loop over the discount rate. One point either side of the default. This is the row of the grid in Part 2, and the seed of the sensitivity grid in Analyst session 6.
Step 5 · Break it on purpose. Set terminal growth equal to the discount rate and confirm the function refuses, rather than returning a huge number. Then write one sentence on why refusing is the correct behaviour.
Keep the sentence with the value. Wherever 95.16 travels, it travels as "P&G, base 5.00 ten-year mean owner earnings (all-capex approximation), 5 percent for 10 years then 2.5 percent, at 9 percent; 57.0 percent from beyond year 10". Strip the sentence off and it becomes a price target in somebody else's deck, which it is not.
Before Analyst session 5
30 min- Do years 1 to 3 on paper for P&G, without the code, and check them against the table. Then do year 10 and explain to someone else why its present value is the smallest of the ten.
- Run
dcf()on another base from your Analyst session 2 work, for any of the four filers, at the defaults. Confirm the terminal share is still 57.0 percent, and write one line on why it does not depend on the base. - Change the growth years from 10 to 5 and to 15 for P&G. You should get 87.76 and 101.31. Write which way the terminal share moves and why.
- Write the sentence for your own valuation: base and its label, growth path, discount rate and why you chose it, terminal growth and why it sits below economic growth, and the terminal share.
Three questions
Clear all three and Analyst session 4 gets stamped in your passport.
1 · P&G's year 3 owner earnings are 5.79 a share. At a 9 percent discount rate, what are they worth today?
Each year of waiting divides by 1.09 again: 5.79 / 1.093 = 4.47. Dividing once treats year 3's cash as if it arrived next year; subtracting a flat 9 percent each year is not how compounding works.
2 · At P&G's defaults, the discount rate one point either side gives 81.95 to 113.24; growth two points either side gives 81.84 to 110.71; terminal growth one point either side gives 87.47 to 105.65. What does that say?
The rate's one-point range is 31.29 wide; growth's two-point range is 28.87; terminal growth's one-point range is 18.18. The rate touches every year's divisor and the terminal divisor at once. Analyst session 6 runs the full grid.
3 · Why must terminal growth stay below the discount rate, and in practice well below it?
The arithmetic cap is r - g greater than zero. The economic cap is tighter: a company cannot outgrow its economy for ever. Both are why the bench's break button prints no value rather than a large one.
What this session teaches, and where it came from
Every fact on this page, and its verification tier, is recorded in the course's source map.
Analyst session 4 cheat sheet · pin this
You can now turn a base into a value and say which choices built it. Analyst session 5 runs the machine backwards: type a test price, and solve for the growth that price already assumes. On P&G's 95.16, a test price of twice the value, 190.33, implies 14.17 percent a year for ten years, a figure you can hold up against the 3.1 percent P&G's owner earnings actually managed.