Monte Carlo Simulation — Four Corners Case

A master's-level walkthrough of the Four Corners financial-planning case in R, in 43 slides. It builds the deterministic compounding engine, treats Goal Seek as root-finding, sets up the two input distributions (uniform salary growth and normal portfolio growth), builds the Monte Carlo engine, and reads out the risk with P(success), expected shortfall, and VaR and CVaR, before extending to the 25-year horizon and a reusable template. Every decision is justified: why the half-year earnings convention is used, why the simulation mean lands below the deterministic $772,722, and why running more iterations does not raise the 1% success rate. The deck includes four traps, four checks, and five figures rendered from the actual model.

Subject: Business Analytics · 75 slides · applied lesson

Open the interactive version of this deck · Homework for this lesson

What this lesson covers

The lesson, slide by slide

1. Four Corners: Will Tom Reach $1,000,000?

Title

Business Analytics · Monte Carlo Case Study

A deterministic projection says $772,722. A simulation says Tom's odds of hitting $1M are about 1%. Today we build both engines in R and learn exactly why those two numbers disagree.

2. What you will be able to do

Objectives

This case is the gap between a single forecast and a distribution of futures. By the end you can:

3. Who is Tom Gifford?

Concept

Four Corners' HR asked Tom to build a financial-planning model — and to test it on himself first. Every number in this deck traces back to this one profile.

QuantitySymbolValueWhy it matters
Current ageage₀40Sets the clock; Tom plans 20 more working years
Current salaryS₀$85,000Contributions are a % of salary, so this scales everything
Current portfolioP₀$50,000The seed the compounding acts on
Contribution rateinv6%Fraction of salary invested each year
Salary growthg_sal5% / yrRaises future contributions
Portfolio growthg_port10% / yrThe return the market is assumed to deliver
Goal—$1,000,000The target at age 60

4. Fill in: Symbol for Who is Tom Gifford?

Comparison

Comparison matrix

From Who is Tom Gifford?: refill the Symbol column from what you know. The rest of the table is as it appeared.

QuantitySymbolValueWhy it matters
Current ageage₀40Sets the clock; Tom plans 20 more working years
Current salaryS₀$85,000Contributions are a % of salary, so this scales everything
Current portfolioP₀$50,000The seed the compounding acts on
Contribution rateinv6%Fraction of salary invested each year
Salary growthg_sal5% / yrRaises future contributions
Portfolio growthg_port10% / yrThe return the market is assumed to deliver
Goal—$1,000,000The target at age 60

5. The five tasks, three ideas

Concept

The managerial report asks five questions, but they collapse into three analytical moves you'll build in order:

Project
A deterministic engine + Goal Seek (Tasks 1).
Randomize
Two distributions → a Monte Carlo model (Task 2).
Decide
Risk metrics, recommendations, 25-yr horizon, template (Tasks 3–5).

6. Which is which: The five tasks, three ideas

Matching

Match the pairs

From The five tasks, three ideas — match each one to what it actually does. The descriptions have been shuffled.

  • c1. Project
  • c2. Randomize
  • c3. Decide
  • b1. A deterministic engine + Goal Seek (Tasks 1).
  • b2. Two distributions → a Monte Carlo model (Task 2).
  • b3. Risk metrics, recommendations, 25-yr horizon, template (Tasks 3–5).

Why: Project, Randomize, Decide are easy to tell apart while they are sitting next to their descriptions and much harder afterwards, which is what this checks.

7. Part 1 — The Deterministic Engine

Section

Tasks 1a

8. Tom's worksheet: five known rows

Concept

Start concrete. Tom's Excel sheet projects five years and lands on $116,321 at age 45. These exact numbers are our ground truth — the R model must reproduce them before we trust it on year 20.

YearBeginningSalaryNew invest.EarningsEnding
1$50,000$85,000$5,100$5,255$60,355
2$60,355$89,250$5,355$6,303$72,013
3$72,013$93,713$5,623$7,482$85,118
4$85,118$98,398$5,904$8,807$99,829
5$99,829$103,318$6,199$10,293$116,321

Notice salary stays at $85,000 in year 1 and only grows afterward — a small convention that we must copy exactly, or every later row drifts.

9. Watch it run: Tom's worksheet: five known rows

Pattern

Step through it

Step through Tom's worksheet: five known rows one row at a time. What is driving the change, and what would the row after the last one be?

  1. Step 1: Year is 1
  2. Step 2: Year is 2
  3. Step 3: Year is 3
  4. Step 4: Year is 4
  5. Step 5: Year is 5

10. What's actually happening each year

Intuition

Each year the portfolio does three things in sequence: it takes in a new contribution, it earns a return on what it holds, and it carries the new total into next year. The salary creeps up, so next year's contribution is a little bigger.

Because money grows on money, the early years feel slow and the late years explode. That curvature is the entire reason a $50,000 seed can become hundreds of thousands — and the reason the last five years matter far more than the first.

11. The recursion, in four lines

Concept

Every row of the worksheet is the same four formulas. Subscript t is the year; Pₜ is the ending balance.

\[ I_t = \text{inv} \times S_t \]

\[ E_t = \left(P_{t-1} + \tfrac{1}{2} I_t\right)\times g_{\text{port}} \]

\[ P_t = P_{t-1} + I_t + E_t \]

\[ S_{t+1} = S_t \times (1 + g_{\text{sal}}) \]

The only subtle line is earnings: the contribution is multiplied by ½ before it earns. That 0.5 is the heart of the next two slides.

12. Break it if you can: The recursion, in four lines

Counterexample

Discussion prompt

Every row of the worksheet is the same four formulas. Subscript t is the year; Pₜ is the ending balance.

That is stated as though it always holds. Do one of two things: produce a case where it fails, or say precisely what rules such a case out. "It just does" is not on the menu.

Hint: Hunt at the extremes first — zero, one, negative, empty, equal. If every extreme survives, the reason they survive is the proof.

Answer:

The only subtle line is earnings: the contribution is multiplied by ½ before it earns. That 0.5 is the heart of the next two slides.

13. What has to happen first: Year 1 by hand — and the ½ convention

Ranking

Put in order

Put the moves of Year 1 by hand — and the ½ convention into the order they have to happen.

  1. New investment: 6% × $85,000 = $5,100
  2. Earnings: ($50,000 + ½ × $5,100) × 10% = $52,550 × 10% = $5,255
  3. Ending balance: $50,000 + $5,100 + $5,255 = $60,355

Why: These are the moves of the worked example in the order it makes them, and each one is set up by the one before it. Contribution is the rate times this year's salary; salary is still $85,000 in year 1.

14. Year 1 by hand — and the ½ convention

Worked example

Tom assumes contributions arrive evenly through the year, not in one lump on January 1. So on average each dollar is invested for only half the year and earns half the return.

New investment: 6% × $85,000 = $5,100

Why: Contribution is the rate times this year's salary; salary is still $85,000 in year 1.

Earnings: ($50,000 + ½ × $5,100) × 10% = $52,550 × 10% = $5,255

Why: The full starting balance earns all year, but only half the new $5,100 is exposed — hence the ½.

Ending balance: $50,000 + $5,100 + $5,255 = $60,355

Why: Carry in the principal, the contribution, and the earnings. This matches Tom's row 1 to the dollar.

PieceFormulaValue
New investment0.06 × 85,000$5,100
Earnings(50,000 + 2,550) × 0.10$5,255
Ending balance50,000 + 5,100 + 5,255$60,355

15. What each one costs: Year 1 by hand — and the ½ convention

Trade off

Comparison matrix

From Year 1 by hand — and the ½ convention: every row here is a choice with a cost. Fill the Value column, then say which row you would actually pick and what you give up for it.

PieceFormulaValue
New investment0.06 × 85,000$5,100
Earnings(50,000 + 2,550) × 0.10$5,255
Ending balance50,000 + 5,100 + 5,255$60,355

16. The engine as R code

Worked example

One loop carries bal and sal forward. The if (t < years) guard is what keeps salary flat in year 1 — it grows after the row is recorded.

project_path <- function(inv, g_sal, g_port, years,
                         P0 = 50000, S0 = 85000) {
  bal <- P0; sal <- S0
  out <- numeric(years)
  for (t in seq_len(years)) {
    new_inv  <- inv * sal
    earnings <- (bal + 0.5 * new_inv) * g_port
    bal      <- bal + new_inv + earnings
    out[t]   <- bal
    if (t < years) sal <- sal * (1 + g_sal)
  }
  out
}

Line 6 is the ½ convention; line 9 is the year-1 salary freeze. Read them as the two formulas you just did by hand.

Running it on Tom's inputs reproduces the worksheet, then keeps going to year 20:

YearEnding balance (R)Source
5$116,321matches Excel row 5
10$235,090model
15$432,700model
20$772,722matches the case checkpoint

17. Something is wrong here: charging the new contribution a full year of growth

Anomaly

Predict first

A student writes this, and it looks reasonable:

Treat the whole new $5,100 as if it sat in the market all year.

It is wrong. Say what breaks — and say it before you turn the page.

Correct: Assumes every contributed dollar earns a full 12 months — but Tom said they trickle in evenly.

Expose only half the new contribution to this year's return.

Why: Assumes every contributed dollar earns a full 12 months — but Tom said they trickle in evenly.

18. Trap: charging the new contribution a full year of growth

Trap

The trap

Treat the whole new $5,100 as if it sat in the market all year.

Earnings = ($50,000 + $5,100) × 10% = $5,510

Why: Assumes every contributed dollar earns a full 12 months — but Tom said they trickle in evenly.

Ending = $50,000 + $5,100 + $5,510 = $60,610

Why: Off by $255 in year 1 — and that error compounds every year, missing the $772,722 checkpoint.

The fix

Expose only half the new contribution to this year's return.

Earnings = ($50,000 + ½ × $5,100) × 10% = $5,255

Why: Even arrivals ⇒ average dollar invested half the year ⇒ the ½ on the new money only.

Ending = $50,000 + $5,100 + $5,255 = $60,355

Why: Matches the worksheet, so the model stays calibrated all the way to year 20.

19. Rebuild the recipe: The deterministic recipe

Ranking

Put in order

These are the steps of The deterministic recipe, scrambled. Put them back in order before the next slide shows you.

  1. Seed bal = P0, sal = S0.
  2. Contribution = inv × sal.
  3. Earnings = (bal + ½ × contribution) × g_port.
  4. Ending balance = bal + contribution + earnings; record it.
  5. Grow salary by g_sal only if another year follows; repeat.

Why: This is the order the recipe itself gives. Recalling the sequence without the slide in front of you is the difference between recognising the method and being able to run it — most of what goes wrong in practice is a step done out of turn.

20. The deterministic recipe

Pattern

Any single projection — Tom's or any employee's — is the same five steps:

  1. Seed bal = P0, sal = S0.
  2. Contribution = inv × sal.
  3. Earnings = (bal + ½ × contribution) × g_port.
  4. Ending balance = bal + contribution + earnings; record it.
  5. Grow salary by g_sal only if another year follows; repeat.

21. Goal Seek as Root-Finding

Section

Task 1b

22. The question Goal Seek answers

Concept

At 6% Tom lands on $772,722 — short of $1M. Task 1b: what contribution rate hits exactly $1,000,000 in 20 years? In Excel this is Goal Seek; in R it's uniroot. Both solve the same equation.

\[ f(r) = \text{final\_balance}(r,\, 20) - 1{,}000{,}000 = 0 \]

We can't isolate r with algebra — it's buried inside a 20-step loop. So we search for the r that drives f(r) to zero.

23. By analogy: The question Goal Seek answers

Analogy

Discussion prompt

Explain The question Goal Seek answers by analogy to something with no Business Analytics in it at all — a queue, a recipe, a map, a bank balance, whatever fits. Then say where your analogy breaks.

Hint: An analogy that never breaks is not an analogy, it is the same idea wearing a hat. Find the seam — that is the part that is actually new.

Answer:

At 6% Tom lands on $772,722 — short of $1M. Task 1b: what contribution rate hits exactly $1,000,000 in 20 years? In Excel this is Goal Seek; in R it's uniroot. Both solve the same equation.

24. Why a search, not a formula

Intuition

Think of r as a dial. Turn it up and the final balance rises smoothly and monotonically — more contribution always means more money at the end. That smoothness is exactly what a root-finder needs.

The solver tries a low rate (too little) and a high rate (too much), then keeps halving the gap until the final balance sits on $1M. No calculus, just disciplined trial and error — which is all Goal Seek is, too.

25. uniroot finds 9.13%

Worked example

Wrap the engine in a function of r only, subtract the goal, and hand it to uniroot with a bracketing interval [0, 1].

final_value <- function(r, years)
  tail(project_path(r, 0.05, 0.10, years), 1)

solve_rate <- function(years, goal = 1e6) {
  f <- function(r) final_value(r, years) - goal
  uniroot(f, interval = c(0, 1))$root
}

solve_rate(20)   #> 0.0912517  (9.13%)

uniroot requires f to have opposite signs at the two ends — f(0) is negative (no contributions ⇒ far under $1M) and f(1) is hugely positive — guaranteeing a root between them.

Contribution rate20-yr balanceVerdict
6.00% (Tom's plan)$772,722short of goal
9.13% (solved)$1,000,000exactly the goal
12.00%$1,123,000over the goal

26. Rule out three: Check: reading the deterministic model

Elimination

Eliminate the wrong options

Year 1 ended at $60,355. Year-2 salary grows to $89,250 (= 85,000 × 1.05). Using the ½-year earnings convention at 10% growth and a 6% contribution, what is the year-2 ENDING balance?

3 of these 4 are wrong. Strike them one at a time, and say what rules each one out before you strike the next. The survivor is the answer.

  • A. $72,013
  • B. $72,281
  • C. $71,746
  • D. $65,710

Survives elimination: A

Why: Contribution = 6% × 89,250 = $5,355. Earnings = (60,355 + ½ × 5,355) × 10% = 63,032.5 × 10% = $6,303. Ending = 60,355 + 5,355 + 6,303 = $72,013 — matching Tom's row 2.

27. Check: reading the deterministic model

Check

Use the recursion from the worked example. Compute year 2's ending balance by hand before you tap.

Check your understanding

Year 1 ended at $60,355. Year-2 salary grows to $89,250 (= 85,000 × 1.05). Using the ½-year earnings convention at 10% growth and a 6% contribution, what is the year-2 ENDING balance?

  • A. $72,013 (correct)
  • B. $72,281
  • C. $71,746
  • D. $65,710

Answer: A

Why: Contribution = 6% × 89,250 = $5,355. Earnings = (60,355 + ½ × 5,355) × 10% = 63,032.5 × 10% = $6,303. Ending = 60,355 + 5,355 + 6,303 = $72,013 — matching Tom's row 2.

Why B tempts people
Charged the full $5,355 a whole year of growth: (60,355 + 5,355) × 10% = $6,571, giving $72,281. That ignores the ½-year convention.
Why C tempts people
Forgot to grow salary — reused $85,000, so contribution = $5,100 and earnings = $6,290, giving $71,746. Salary must rise 5% before year 2.
Why D tempts people
Added the contribution but dropped the earnings term: 60,355 + 5,355 = $65,710. The year's $6,303 of growth is missing.

28. Part 2 — Why One Number Lies

Section

From point estimate to distribution

29. Kate's two criticisms

Concept

Tom's boss, Kate, accepted the math but rejected the assumptions: nobody gets a flat 5% raise every year, and no portfolio returns exactly 10% every year. Real life varies.

So the team replaced the two constants with probability distributions. That single change is what turns a spreadsheet into a simulation — and what makes the $772,722 a fiction nobody will actually live.

30. Teach it back: Kate's two criticisms

Explain it

Discussion prompt

Explain Kate's two criticisms to a student a year behind you. No notation, no jargon they have not met — and it still has to be true.

Hint: If your explanation needs a symbol they have never seen, you are describing the notation rather than the idea.

Answer:

Tom's boss, Kate, accepted the math but rejected the assumptions: nobody gets a flat 5% raise every year, and no portfolio returns exactly 10% every year. Real life varies.

31. Picture it first: Input 1 — salary growth ~ Uniform(0%, 5%)

Picture it

Figure (svg): A flat rectangle from 0% to 5% on a horizontal axis, marking the mean at 2.5%, illustrating a uniform distribution

Flat band 0–5%. Its average is 2.5%, not 5%.

Discussion prompt

Read the picture before the words. What is this showing, and what is the one thing it is built to make obvious? Commit to an answer, then read on.

Hint: Name the parts, then say what changes between them — and if nothing changes, say what is being held still.

Answer:

Each year's raise is drawn from a Uniform distribution between 0% and 5% — every value in that band equally likely. Some years a raise, some years a freeze.

32. Input 1 — salary growth ~ Uniform(0%, 5%)

Concept

Each year's raise is drawn from a Uniform distribution between 0% and 5% — every value in that band equally likely. Some years a raise, some years a freeze.

Figure (svg): A flat rectangle from 0% to 5% on a horizontal axis, marking the mean at 2.5%, illustrating a uniform distribution

Flat band 0–5%. Its average is 2.5%, not 5%.

Read the mean off the picture: the center of 0–5% is 2.5%. The simulation's typical raise is half the deterministic 5% — a fact that quietly lowers every future contribution.

33. Input 2 — portfolio growth ~ Normal(10%, 5%)

Concept

Bell curve of annual portfolio growth centered at 10% with standard deviation 5%; a marker shows roughly 2% of years fall below 0%
Normal(10%, 5%): mean 10%, but a real left tail.

The accountants modeled annual return as Normal with mean 10% and standard deviation 5%. Unlike salary growth, the mean here really is 10% — the simulation keeps the deterministic center.

But the bell has tails. About 2% of years are negative (below 0%), and roughly 1 year in 6 is below 5%. Good years and bad years both happen — and the order they happen in changes the ending balance.

34. Where does each piece belong: Monte Carlo Simulation — Four Corners Case

Sorting

Sort into buckets

These are the pieces of Monte Carlo Simulation — Four Corners Case, out of order. Put each one back under the part of the lesson it belongs to.

Part 1 — The Deterministic Engine
Tom's worksheet: five known rows; What's actually happening each year; The recursion, in four lines
Goal Seek as Root-Finding
The question Goal Seek answers; Why a search, not a formula; uniroot finds 9.13%
Part 2 — Why One Number Lies
Kate's two criticisms; Input 1 — salary growth ~ Uniform(0%, 5%); Input 2 — portfolio growth ~ Normal(10%, 5%)
s1
Part 1 — The Deterministic Engine is where Monte Carlo Simulation — Four Corners Case puts Tom's worksheet: five known rows, What's actually happening each year, The recursion, in four lines. Knowing which part of the lesson a problem belongs to is most of knowing which method to reach for.
s2
Goal Seek as Root-Finding is where Monte Carlo Simulation — Four Corners Case puts The question Goal Seek answers, Why a search, not a formula, uniroot finds 9.13%. Knowing which part of the lesson a problem belongs to is most of knowing which method to reach for.
s3
Part 2 — Why One Number Lies is where Monte Carlo Simulation — Four Corners Case puts Kate's two criticisms, Input 1 — salary growth ~ Uniform(0%, 5%), Input 2 — portfolio growth ~ Normal(10%, 5%). Knowing which part of the lesson a problem belongs to is most of knowing which method to reach for.

35. Something is wrong here: feeding the simulation a 5% salary growth

Anomaly

Predict first

A student writes this, and it looks reasonable:

Carry the deterministic 5% raise straight into the random model.

It is wrong. Say what breaks — and say it before you turn the page.

Correct: Confuses the deterministic assumption with the random one — and silently inflates every contribution.

Draw from the stated distribution: Uniform(0%, 5%).

Why: Confuses the deterministic assumption with the random one — and silently inflates every contribution.

36. Trap: feeding the simulation a 5% salary growth

Trap

The trap

Carry the deterministic 5% raise straight into the random model.

Draw salary growth at a constant 5% (or center the Uniform at 5%)

Why: Confuses the deterministic assumption with the random one — and silently inflates every contribution.

Simulated mean wealth comes out near the deterministic $772k

Why: The model now disagrees with its own stated assumption (Uniform 0–5%) and overstates Tom's odds.

The fix

Draw from the stated distribution: Uniform(0%, 5%).

Each year's raise ~ Uniform(0, 0.05), averaging 2.5%

Why: Matches Kate and Tom's agreed assumption; contributions grow at half the deterministic pace.

Simulated mean wealth drops to ≈ $700k

Why: Lower average raises ⇒ smaller contributions ⇒ a center below the deterministic path. This is honest.

37. Break it on purpose: feeding the simulation a 5% salary growth

Break the constraint

Discussion prompt

The rule this trap just fixed:

Matches Kate and Tom's agreed assumption; contributions grow at half the deterministic pace.

Now break it on purpose. Build a case that violates it and follow the consequences until something visibly fails. Where does the failure first show up — and would you have noticed it if you had not been looking?

Hint: The dangerous rules are the ones whose violation still produces an answer. If yours fails loudly, try to find one that fails quietly.

Answer:

Confuses the deterministic assumption with the random one — and silently inflates every contribution.

38. The average of the outcomes ≠ the outcome of the averages

Intuition

Here is the conceptual spine of the whole case. Plugging the average rates into one run gives $772,722. But averaging the results of thousands of random runs gives something lower — about $700k, with a median near $690k.

Two forces push it down. First, the random salary growth averages 2.5%, not 5%, so contributions are smaller. Second, multiplicative random returns suffer volatility drag: a +10% then −10% leaves you below where you started. A single best-guess path can't see either effect.

So the deterministic number isn't wrong — it's the answer to a different, easier question. The simulation answers the real one: what range of futures should Tom actually plan for?

39. Part 3 — The Monte Carlo Engine

Section

Task 2

40. What Monte Carlo actually does

Concept

We can't compute Tom's distribution with a formula, so we act it out: run his 20-year plan thousands of times, each run drawing fresh random raises and returns, and collect all the ending balances.

Monte Carlo simulation — Estimating the distribution of an uncertain outcome by generating many random scenarios from the input distributions and tabulating the results. Answers come as histograms and probabilities, not single values.

10,000 simulated Toms walk into the future. Counting how many reach $1M is the probability of success.

41. The simulation engine, line by line

Worked example

It's the deterministic loop with two changes: the rates are now random draws, and we run n Toms at once as vectors (fast, and idiomatic R).

simulate_mc <- function(n = 10000, years = 20, inv = 0.06) {
  g_sal  <- matrix(runif(n*years, 0, 0.05),  nrow = n)
  g_port <- matrix(rnorm(n*years, 0.10, 0.05), nrow = n)
  bal <- rep(50000, n); sal <- rep(85000, n)
  for (t in seq_len(years)) {
    new_inv  <- inv * sal
    earnings <- (bal + 0.5*new_inv) * g_port[, t]
    bal      <- bal + new_inv + earnings
    if (t < years) sal <- sal * (1 + g_sal[, t])
  }
  bal
}

Lines 2–3 pre-draw every random rate up front; line 7 applies that year's column of returns to all 10,000 Toms simultaneously.

One simulated Tom's path might look like this — notice year 8's negative return:

YearRaise drawnReturn drawnEnding balance
11.8%+12.4%$61,180
53.1%+7.0%$112,900
80.4%−2.6%$150,200
202.9%+9.1%$681,400

42. Fill in: Ending balance for The simulation engine, line by line

Comparison

Comparison matrix

From The simulation engine, line by line: refill the Ending balance column from what you know. The rest of the table is as it appeared.

YearRaise drawnReturn drawnEnding balance
11.8%+12.4%$61,180
53.1%+7.0%$112,900
80.4%−2.6%$150,200
202.9%+9.1%$681,400

43. Why 10,000 runs (and not 50, or 10 million)

Concept

A simulated probability is itself an estimate, and its noise shrinks like 1 / √n. More runs buy a steadier number — with diminishing returns.

Iterations nStd. error of a ~50% probabilityPractical read
100≈ 5.0%too jittery to trust a decision
1,000≈ 1.6%rough shape visible
10,000≈ 0.5%stable to a half-point — the sweet spot
1,000,000≈ 0.05%more precision than the assumptions deserve

10,000 pins the success rate to within about half a percentage point — finer than our 5%-standard-deviation guess about the market could ever justify. That's why the case uses it.

44. Something is wrong here: "only 1%? run more iterations to get a better number"

Anomaly

Predict first

A student writes this, and it looks reasonable:

Treat a disappointing probability as a sample-size problem.

It is wrong. Say what breaks — and say it before you turn the page.

Correct: Assumes more runs change the answer, as if 1% were just bad luck in the draw.

Separate the estimate's precision from the underlying probability.

Why: Assumes more runs change the answer, as if 1% were just bad luck in the draw.

45. Trap: "only 1%? run more iterations to get a better number"

Trap

The trap

Treat a disappointing probability as a sample-size problem.

Re-run with 1,000,000 iterations expecting the success rate to climb

Why: Assumes more runs change the answer, as if 1% were just bad luck in the draw.

Still ≈ 1%, now with tighter error bars

Why: More iterations reduce the noise in the estimate; they cannot move the truth the assumptions imply.

The fix

Separate the estimate's precision from the underlying probability.

Use enough iterations (10k) to make the estimate stable, then trust it

Why: The 1% is what Tom's assumptions actually imply — the model is telling the truth.

To raise the probability, change an INPUT — contribution, horizon, or risk

Why: Only the levers in the model move the outcome. That insight drives every Part-4 recommendation.

46. Rebuild the recipe: The simulation recipe

Ranking

Put in order

These are the steps of The simulation recipe, scrambled. Put them back in order before the next slide shows you.

  1. Name the uncertain inputs and pick a distribution for each (Uniform raises, Normal returns).
  2. Draw one random scenario for all inputs across all years.
  3. Run the deterministic engine on that scenario to get one outcome.
  4. Repeat thousands of times, storing every outcome.
  5. Summarize the collected outcomes — probabilities, averages, and tail risk.

Why: This is the order the recipe itself gives. Recalling the sequence without the slide in front of you is the difference between recognising the method and being able to run it — most of what goes wrong in practice is a step done out of turn.

47. The simulation recipe

Pattern

Every Monte Carlo model in this course follows the same five moves:

  1. Name the uncertain inputs and pick a distribution for each (Uniform raises, Normal returns).
  2. Draw one random scenario for all inputs across all years.
  3. Run the deterministic engine on that scenario to get one outcome.
  4. Repeat thousands of times, storing every outcome.
  5. Summarize the collected outcomes — probabilities, averages, and tail risk.

48. Where does it stop working: The simulation recipe

Edge cases

Discussion prompt

The simulation recipe works on the cases you have just seen. Push it to the edge: what is the most degenerate input it still handles — empty, zero, one item, everything equal — and what is the first case where it stops being true? Name the case, not just "it breaks".

Hint: Try the smallest legal input, then the largest, then the one where two things collide. Methods are specified at their edges; the middle takes care of itself.

Answer:

Every Monte Carlo model in this course follows the same five moves:

49. Part 4 — Reading the Output

Section

Risk metrics & figures

50. The distribution of Tom's future

Concept

Histogram of 120,000 simulated 20-year ending balances; median near $690k, deterministic $773k marked, the $1M goal far in the right tail with only about 1% beyond it
The median (amber) sits below the deterministic line (green); $1M is deep in the right tail.

This is the payoff of the whole build: not one number, but the shape of Tom's possible futures. Most outcomes cluster between $500k and $900k.

Three reference lines tell the story: the median ≈ $690k, the deterministic $773k (already higher than the median), and the $1M goal way out in the thin right tail. Only about 1% of simulated Toms get there.

51. Answer it before you see the options: Check: why so low?

Prediction

Predict first

The deterministic worksheet says $772,722, and the simulation uses the SAME 10% average portfolio growth. Why does the simulation give Tom only about a 1% chance of reaching $1M, with a median (~$690k) BELOW the deterministic figure?

Answer it in your own words, now, with nothing to choose from. The options are on the next slide — and picking the right one off a list is an easier skill than producing it.

Correct: Random raises average 2.5% (Uniform 0–5%), not 5%, so contributions are smaller; multiplicative random returns drag the median below the average-rate path; and the $773k path was already under $1M anyway.

Why: Two forces lower the center — the average raise is 2.5% not 5% (smaller contributions), and volatility drag pulls the median of multiplicative growth below the mean-rate path. And the deterministic $773k was always short of $1M, so reaching the goal is a tail event, not the norm.

52. Check: why so low?

Check

This is the question the whole case is built to answer. Reason it through before tapping.

Check your understanding

The deterministic worksheet says $772,722, and the simulation uses the SAME 10% average portfolio growth. Why does the simulation give Tom only about a 1% chance of reaching $1M, with a median (~$690k) BELOW the deterministic figure?

  • A. Random raises average 2.5% (Uniform 0–5%), not 5%, so contributions are smaller; multiplicative random returns drag the median below the average-rate path; and the $773k path was already under $1M anyway. (correct)
  • B. The simulated portfolio growth has a lower mean than 10% once it's made random.
  • C. 10,000 iterations is too few; with enough runs the probability would rise toward the deterministic result.
  • D. The $772,722 figure is a spreadsheet error; with 10% growth Tom should clear $1M deterministically.

Answer: A

Why: Two forces lower the center — the average raise is 2.5% not 5% (smaller contributions), and volatility drag pulls the median of multiplicative growth below the mean-rate path. And the deterministic $773k was always short of $1M, so reaching the goal is a tail event, not the norm.

Why B tempts people
The portfolio return is Normal(10%, 5%) — its mean is exactly 10% by construction. The center didn't move from the return assumption; it moved from the salary mean (2.5%) and volatility drag.
Why C tempts people
More iterations shrink the estimate's noise (~1/√n); they don't change the true probability the assumptions imply. 1% is the honest answer, not a sampling artifact.
Why D tempts people
$772,722 is correct — it was verified against the case to the dollar. Because it's already below $1M, even the no-risk path misses the goal.

53. The same story as a cumulative curve

Concept

Empirical cumulative distribution of 20-year terminal wealth, with a marker showing about 99% of paths fall below the $1M goal line
Read up from $1M: ~99% of paths are below it.

An empirical CDF answers "what fraction of outcomes fall below any value?" Find $1M on the x-axis, read straight up to the curve: about 99% of simulated futures are below it.

The CDF is often easier for a boss than a histogram: every "P(at least X)" question is one glance. P(reach $1M) ≈ 1%; P(at least $500k) ≈ 97%.

54. Teach it back: The same story as a cumulative curve

Explain it

Discussion prompt

Explain The same story as a cumulative curve to a student a year behind you. No notation, no jargon they have not met — and it still has to be true.

Hint: If your explanation needs a symbol they have never seen, you are describing the notation rather than the idea.

Answer:

The CDF is often easier for a boss than a histogram: every "P(at least X)" question is one glance. P(reach $1M) ≈ 1%; P(at least $500k) ≈ 97%.

55. Uncertainty grows with the horizon

Concept

Fan chart of simulated portfolio value by year; a narrow band early that widens steadily, the median path tracking just under the deterministic path, the $1M goal line above the 95th percentile at year 20
The fan widens every year — late uncertainty dwarfs early uncertainty.

The fan chart plots percentile bands year by year. Early on, all paths agree; the band is a thread. By year 20 it's a wide cone — each random year compounds onto the last.

Two things to notice: the median path runs just under the deterministic line all the way, and the $1M goal sits above even the 95th percentile at year 20. Tom doesn't have a small shortfall — the goal is outside almost the entire fan.

56. By analogy: Uncertainty grows with the horizon

Analogy

Discussion prompt

Explain Uncertainty grows with the horizon by analogy to something with no Business Analytics in it at all — a queue, a recipe, a map, a bank balance, whatever fits. Then say where your analogy breaks.

Hint: An analogy that never breaks is not an analogy, it is the same idea wearing a hat. Find the seam — that is the part that is actually new.

Answer:

The fan chart plots percentile bands year by year. Early on, all paths agree; the band is a thread. By year 20 it's a wide cone — each random year compounds onto the last.

57. Four numbers a manager actually wants

Concept

A histogram is persuasive, but Kate wants scalars she can compare across employees. Four standard risk read-outs, computed straight from the 10,000 ending balances:

MetricWhat it answersTom, 20-yr
P(success)Share of paths ≥ $1M≈ 1%
Expected shortfallAverage gap below $1M when short≈ $305,000
VaR (5%)The 5th-percentile wealth — a bad-case floor≈ $526,000
CVaR (5%)Average wealth across the worst 5% of paths≈ $492,000

VaR marks the edge of the bad tail; CVaR looks past the edge and averages how bad the worst cases actually are. CVaR ≤ VaR for a wealth distribution — it's the more conservative, more informative number.

58. What each one costs: Four numbers a manager actually wants

Trade off

Comparison matrix

From Four numbers a manager actually wants: every row here is a choice with a cost. Fill the What it answers column, then say which row you would actually pick and what you give up for it.

MetricWhat it answersTom, 20-yr
P(success)Share of paths ≥ $1M≈ 1%
Expected shortfallAverage gap below $1M when short≈ $305,000
VaR (5%)The 5th-percentile wealth — a bad-case floor≈ $526,000
CVaR (5%)Average wealth across the worst 5% of paths≈ $492,000

59. Something is wrong here: misreading VaR and CVaR

Anomaly

Predict first

A student writes this, and it looks reasonable:

Read CVaR as a probability, or as a guaranteed floor.

It is wrong. Say what breaks — and say it before you turn the page.

Correct: That conflates CVaR with VaR. The 5% cutoff is the VaR ($526k); CVaR is a dollar average of the tail, not a probability.

Keep the two roles distinct: VaR is a cutoff, CVaR is a tail average.

Why: That conflates CVaR with VaR. The 5% cutoff is the VaR ($526k); CVaR is a dollar average of the tail, not a probability.

60. Trap: misreading VaR and CVaR

Trap

The trap

Read CVaR as a probability, or as a guaranteed floor.

"CVaR 5% = $492k means a 5% chance of ending below $492k"

Why: That conflates CVaR with VaR. The 5% cutoff is the VaR ($526k); CVaR is a dollar average of the tail, not a probability.

"…so Tom is guaranteed at least $492k"

Why: CVaR is the average of the worst 5% — individual disaster paths finish well below it. It guarantees nothing.

The fix

Keep the two roles distinct: VaR is a cutoff, CVaR is a tail average.

VaR 5% = $526k: 5% of paths end at or below this

Why: VaR answers the probability/threshold question — the edge of the bad 5%.

CVaR 5% = $492k: the mean of those worst 5% of paths

Why: CVaR answers "if it goes bad, how bad on average?" — lower than VaR, and below it lie even worse cases.

61. Which of these survive contact with Monte Carlo Simulation — Four Corners Case?

Two truths and a lie

Sort into buckets

Some of these hold up and some are the exact mistakes this lesson is built to prevent. Sort them.

Holds up
Four Corners' HR asked Tom to build a financial-planning model — and to test it on himself first. Every number in this deck traces back to this one profile.; The managerial report asks five questions, but they collapse into three analytical moves you'll build in order:; Every row of the worksheet is the same four formulas. Subscript t is the year; Pₜ is the ending balance.
Breaks
Treat the whole new $5,100 as if it sat in the market all year.; Carry the deterministic 5% raise straight into the random model.
sound
These are stated as this lesson states them — each one survives the edge cases Monte Carlo Simulation — Four Corners Case puts it through.
flawed
Each of these is lifted from a trap in this deck: reasonable-sounding, and wrong in a way that only shows up once you rely on it.

62. Answer it before you see the options: Check: what CVaR adds

Prediction

Predict first

Which statement correctly describes the 5% CVaR of $492,000?

Answer it in your own words, now, with nothing to choose from. The options are on the next slide — and picking the right one off a list is an easier skill than producing it.

Correct: It is the average ending wealth across the worst 5% of simulated paths — a measure of how bad the tail is on average, beyond just its edge.

Why: CVaR (expected shortfall) averages the outcomes in the worst 5% tail. VaR only marks the tail's edge ($526k at the 5th percentile); CVaR summarizes the severity of everything beyond that edge, which is why it's $492k < $526k.

63. Check: what CVaR adds

Check

20-year sim: VaR(5%) ≈ $526k, CVaR(5%) ≈ $492k. What does CVaR tell Tom that VaR does not?

Check your understanding

Which statement correctly describes the 5% CVaR of $492,000?

  • A. It is the average ending wealth across the worst 5% of simulated paths — a measure of how bad the tail is on average, beyond just its edge. (correct)
  • B. It is the probability that Tom's portfolio ends below $526,000.
  • C. It is larger than the VaR, giving an optimistic upper bound on losses.
  • D. It guarantees Tom will finish with at least $492,000.

Answer: A

Why: CVaR (expected shortfall) averages the outcomes in the worst 5% tail. VaR only marks the tail's edge ($526k at the 5th percentile); CVaR summarizes the severity of everything beyond that edge, which is why it's $492k < $526k.

Why B tempts people
That probability is fixed at 5% by the definition of the 5% VaR ($526k). CVaR is a dollar average of the tail, not a probability.
Why C tempts people
For a wealth (left-tail) distribution CVaR is LESS than VaR, because it averages outcomes even worse than the cutoff. It's the more conservative number, not an optimistic bound.
Why D tempts people
CVaR is the mean of the worst 5% — individual paths in that tail finish below $492k. An average guarantees no floor.

64. Part 5 — Decisions & Generalization

Section

Tasks 3–5

65. Task 3 — recommendations for Tom (and his peers)

Concept

At 6% for 20 years, $1M is a ~1% event. The model also shows the levers — so the advice is concrete, not "save more, good luck":

66. Break it if you can: Task 3 — recommendations for Tom (and his peers)

Counterexample

Discussion prompt

At 6% for 20 years, $1M is a ~1% event. The model also shows the levers — so the advice is concrete, not "save more, good luck":

That is stated as though it always holds. Do one of two things: produce a case where it fails, or say precisely what rules such a case out. "It just does" is not on the menu.

Hint: Hunt at the extremes first — zero, one, negative, empty, equal. If every extreme survives, the reason they survive is the proof.

67. What has to happen first: Task 4 — what 25 years buys

Ranking

Put in order

Put the moves of Task 4 — what 25 years buys into the order they have to happen.

  1. Deterministic 25-yr balance jumps to ≈ $1,339,000
  2. Simulated P(success) climbs from ≈ 1% to ≈ 79%
  3. Required contribution rate falls from 9.13% to ≈ 3.45%

Why: These are the moves of the worked example in the order it makes them, and each one is set up by the one before it. Compounding is exponential: the last five years act on the largest balance, so they add the most dollars of the whole plan.

68. Task 4 — what 25 years buys

Worked example

Two overlaid histograms of terminal wealth: the 20-year distribution centered near $700k mostly short of $1M, and the 25-year distribution shifted right past the $1M line; success rates 20yr about 1% versus 25yr about 79%
Five more years slides the whole distribution past $1M.

Your turn first: before reading the numbers, predict — does five more years (25% more time at 6%) raise the success rate by roughly 25%, or by a lot more?

Deterministic 25-yr balance jumps to ≈ $1,339,000

Why: Compounding is exponential: the last five years act on the largest balance, so they add the most dollars of the whole plan.

Simulated P(success) climbs from ≈ 1% to ≈ 79%

Why: The center crosses $1M and late years let bad early draws recover — far more than a linear 25% bump.

Required contribution rate falls from 9.13% to ≈ 3.45%

Why: With 25 years, even a modest 3.45% deterministically hits $1M — time substitutes for contribution.

69. Work backwards from the answer: Task 4 — what 25 years buys

Reverse engineer

Discussion prompt

Work backwards. The example finished here:

Required contribution rate falls from 9.13% to ≈ 3.45%

What was it asked to do, and what must it have been given? Reconstruct the problem from its answer.

Hint: Every quantity in the result had to enter somewhere. Account for each one.

Answer:

Your turn first: before reading the numbers, predict — does five more years (25% more time at 6%) raise the success rate by roughly 25%, or by a lot more?

70. Rule out three: Check: the power of five years

Elimination

Eliminate the wrong options

Working 25 years instead of 20 (still 6%) raises simulated P($1M) from ~1% to ~79% and the deterministic value to ~$1.34M. What best explains why five extra years is so disproportionately powerful?

3 of these 4 are wrong. Strike them one at a time, and say what rules each one out before you strike the next. The survivor is the answer.

  • A. Growth is multiplicative, so the final years compound on the largest balance, and the extra years also let bad early draws recover — both the center and the success rate jump.
  • B. Five years is 25% more time, so the portfolio grows about 25% more — roughly proportional.
  • C. The extra years shrink the standard deviation of returns, so the risk essentially disappears.
  • D. It only works because the required contribution rate drops to 3.45%, which is what produces the 79%.

Survives elimination: A

Why: Compounding is exponential: the last years operate on the biggest balance and contribute the most dollars, and more years give the portfolio time to recover from poor early returns. So the whole distribution slides past $1M — far beyond a linear 25% gain.

71. Check: the power of five years

Check

Same 6% contribution, 20 → 25 years sends P(success) from ~1% to ~79%. Why is that so much more than "25% more time"?

Check your understanding

Working 25 years instead of 20 (still 6%) raises simulated P($1M) from ~1% to ~79% and the deterministic value to ~$1.34M. What best explains why five extra years is so disproportionately powerful?

  • A. Growth is multiplicative, so the final years compound on the largest balance, and the extra years also let bad early draws recover — both the center and the success rate jump. (correct)
  • B. Five years is 25% more time, so the portfolio grows about 25% more — roughly proportional.
  • C. The extra years shrink the standard deviation of returns, so the risk essentially disappears.
  • D. It only works because the required contribution rate drops to 3.45%, which is what produces the 79%.

Answer: A

Why: Compounding is exponential: the last years operate on the biggest balance and contribute the most dollars, and more years give the portfolio time to recover from poor early returns. So the whole distribution slides past $1M — far beyond a linear 25% gain.

Why B tempts people
That assumes linear growth. Compounding is exponential, so the deterministic balance rises from $773k to $1.34M (~73%), not 25%, and the success rate leaps far more.
Why C tempts people
More years add more random draws, so the dispersion of terminal wealth actually grows. The success rate rises because the center moves past $1M, not because risk vanishes.
Why D tempts people
The 3.45% is the deterministic rate to exactly hit $1M; the 79% figure is computed at the ORIGINAL 6%. The horizon itself does the work.

72. Task 5 — one model, every employee

Concept

Nothing in the engine is specific to Tom. Swap the inputs and the same code plans for anyone — that's the deliverable HR actually wanted.

Per-employee inputTom's valueBecomes a function argument
Age / horizon40 / 20 yrsyears
Salary$85,000S0
Current portfolio$50,000P0
Contribution rate6%inv
Risk profile (return mean/sd)10% / 5%g_port mean, sd
Goal$1,000,000goal

Because project_path and simulate_mc already take these as arguments, the template is done — feed a new row of HR data and re-run. A conservative employee just gets a lower return mean and smaller sd; the recommendations follow automatically.

73. Fill in: Tom's value for Task 5 — one model, every employee

Comparison

Comparison matrix

From Task 5 — one model, every employee: refill the Tom's value column from what you know. The rest of the table is as it appeared.

Per-employee inputTom's valueBecomes a function argument
Age / horizon40 / 20 yrsyears
Salary$85,000S0
Current portfolio$50,000P0
Contribution rate6%inv
Risk profile (return mean/sd)10% / 5%g_port mean, sd
Goal$1,000,000goal

74. Connect it up: Monte Carlo Simulation — Four Corners Case

Connect it up

Draw it

One page, no notation unless you need it: draw how these connect — Part 1 — The Deterministic Engine · Goal Seek as Root-Finding · Part 2 — Why One Number Lies · Part 3 — The Monte Carlo Engine · Part 4 — Reading the Output · Part 5 — Decisions & Generalization. Put an arrow wherever one of them is what makes another possible, and label the arrow with why.

75. What you can do now

Recap

IdeaThe one-line takeaway
Deterministic vs. simulationA point estimate hides the distribution you'll actually live
½-year earningsEven contributions earn half a year — calibrates the model
Goal Seek = unirootSearch for the rate; no closed form needed
Uniform 0–5%Mean raise is 2.5%, not 5% — quietly lowers the center
Volatility dragMedian of random multiplicative growth < mean-rate path
VaR vs CVaREdge of the tail vs. average severity beyond the edge
HorizonFive more years is the strongest lever — exponential, not linear

Bring this to a session and we'll run your own R script live — wire in your numbers, add the escalation glide-path, and turn the figures into a clean managerial report.

Sources

  1. Case Problem 1: Four Corners (Finance) — managerial report tasks 1–5 — Anderson, Sweeney, Williams et al., Statistics for Business & Economics (case set).
  2. four_corners_analysis.R — deterministic recursion, uniroot Goal Seek, Monte Carlo engine, risk metrics — T. Gifford (course submission); recursion and metrics reproduced and verified by the author.
  3. Model re-implemented and every figure recomputed in Python (NumPy/Matplotlib); deterministic 20-yr = $772,722 confirmed to the dollar against the case. — Author verification run, 2026-06-19.
  4. R Documentation — uniroot (one-dimensional root finding)
  5. Rockafellar & Uryasev, Optimization of Conditional Value-at-Risk — Journal of Risk, 2(3), 2000 — VaR vs CVaR definitions used on the terminal-wealth distribution.

Want this taught 1-on-1? Alexander tutors Business Analytics — $55/session, free consultation.

Book on Wyzant · Text (657) 465-8108