Monte Carlo Simulation for Financial Planning
By Newtown Analytics · · 9 min read
For finance, fp&a & accounting managers
Monte Carlo simulation finance teams use turns a plan with uncertain inputs into a range of outcomes with probabilities. Instead of asking what profit will be if volume is 10,000 units, it asks: given that volume could be anywhere from 8,000 to 11,500 and price from $112 to $128, what is the distribution of profit, and how likely is a loss? The method draws random values for each uncertain input, calculates the result and repeats thousands of times. It does not remove uncertainty, but it quantifies it in a form that boards and lenders can use. This guide explains the steps, shows a small worked example, covers building one in Excel and explains where Monte Carlo helps and where it misleads. It extends scenario planning for finance teams and sensitivity analysis in financial models, and belongs to budgeting and forecasting.
When Monte Carlo is worth the effort
| Good fit | Poor fit |
|---|---|
| Many uncertain inputs that combine | One dominant uncertainty, easily handled by scenarios |
| Decisions where the probability of a bad outcome matters (covenants, cash runway) | Situations with no basis for estimating ranges |
| Capital projects with uncertain cash flows | Simple budgets where precision is not needed |
| Communicating risk to boards or lenders | Teams without time to maintain the model |
It is a tool for risk, not a forecasting method that produces a better single number.
The steps
- Build a model that calculates the output (profit, cash, NPV) from inputs.
- Identify the uncertain inputs and choose a distribution for each.
- Set the parameters for each distribution from data and judgment.
- Model dependencies between inputs, such as correlation of price and volume.
- Run many trials, each drawing random values and recording the output.
- Analyze the results: mean, median, percentiles, probability of falling below a threshold.
- Act: adjust the plan, set buffers, hedge risks or accept them with open eyes.
Choosing distributions
| Distribution | When to use | Parameters |
|---|---|---|
| Normal | Symmetric variation around an average (for example monthly demand for a stable product) | Mean, standard deviation |
| Triangular | You have a minimum, most likely and maximum from expert judgment | Min, mode, max |
| Uniform | Any value in a range is equally plausible | Min, max |
| Lognormal | Values cannot be negative and skew to the upside (commodity prices, project costs) | Mean, standard deviation of the logarithm |
| Discrete | A few specific outcomes (win or lose a contract) | Values and probabilities |
The triangular distribution is a good start for finance teams because it needs only three judgments: low, most likely and high. Ask the people who know the input and write down their answers.
A small worked example
Use the same product model as in sensitivity analysis: Profit = Units × (Price - Variable cost) - $400,000 fixed costs. The base case is 10,000 units, $120 price and $72 variable cost, giving a profit of $80,000.
Assume ranges: units 8,000 to 11,500, price $112 to $128, variable cost $70 to $77. The table below shows ten trials with illustrative random draws. A real simulation would run thousands of trials; ten are shown only to demonstrate the mechanics.
| Trial | Units | Price | Variable cost | Profit = Units × (Price - Cost) - 400,000 |
|---|---|---|---|---|
| 1 | 9,200 | $118 | $74 | 9,200 × 44 = 404,800 → $4,800 |
| 2 | 10,400 | $121 | $71 | 10,400 × 50 = 520,000 → $120,000 |
| 3 | 8,600 | $116 | $75 | 8,600 × 41 = 352,600 → -$47,400 |
| 4 | 10,900 | $123 | $72 | 10,900 × 51 = 555,900 → $155,900 |
| 5 | 9,700 | $119 | $73 | 9,700 × 46 = 446,200 → $46,200 |
| 6 | 10,100 | $120 | $70 | 10,100 × 50 = 505,000 → $105,000 |
| 7 | 8,900 | $114 | $77 | 8,900 × 37 = 329,300 → -$70,700 |
| 8 | 11,200 | $124 | $72 | 11,200 × 52 = 582,400 → $182,400 |
| 9 | 9,500 | $121 | $74 | 9,500 × 47 = 446,500 → $46,500 |
| 10 | 10,600 | $117 | $71 | 10,600 × 46 = 487,600 → $87,600 |
Reading the results
- Total profit across the ten trials = $630,300, so the mean is $63,030, lower than the $80,000 base case. Uncertainty in several inputs at once does not average out to the base case in a model with skewed ranges (here the ranges for price and cost are not symmetric around the base values).
- Sorted profits: -70,700, -47,400, 4,800, 46,200, 46,500, 87,600, 105,000, 120,000, 155,900, 182,400. The median is (46,500 + 87,600) / 2 = $67,050.
- Probability of a loss: 2 of 10 trials, or 20 percent. With only ten trials this estimate is rough; a real run of 5,000 or more trials would give a stable figure.
- Range: from about -$70,700 to $182,400.
The key output is the probability distribution, not any single trial: the chance of a loss, the 10th and 90th percentiles (a range within which results fall 80 percent of the time) and which inputs drive the spread. A board can then ask: is a one-in-five chance of a loss acceptable, and what would reduce it?
Building it in Excel
Generate random draws
Uniform between a and b: =a+(b-a)*RAND()
Normal (mean m, sd s): =NORM.INV(RAND(), m, s)
Triangular (min a, mode c, max b), with u in a helper cell =RAND():
=IF(u<(c-a)/(b-a),
a+SQRT(u*(b-a)*(c-a)),
b-SQRT((1-u)*(b-a)*(b-c)))
The triangular draw must use a single random number in both branches. Put one RAND() in a helper cell (call it u) next to each input, then use: if u is less than (c-a)/(b-a), the draw is a + SQRT(u*(b-a)(c-a)); otherwise it is b - SQRT((1-u)(b-a)*(b-c)). Calling RAND() separately inside the IF would mix two different random numbers and distort the distribution, so the helper cell matters.
Run thousands of trials
Excel does not natively repeat a model. Two common methods:
- Data Table trick. Put the output in a cell, list trial numbers 1 to 5,000 down a column, and use a one-way Data Table with a blank column input cell. Each recalculation redraws the random numbers, so each row has a different result.
- Macro or add-in. A short macro or a commercial add-in loops the model and stores results.
Press F9 to redraw; fix results by copying and pasting values before analysis so they do not change.
Summarize
=AVERAGE(results)
=MEDIAN(results)
=PERCENTILE.INC(results, 0.1) (P10)
=PERCENTILE.INC(results, 0.9) (P90)
=COUNTIF(results,"<0")/COUNT(results) (probability of loss)
Create a histogram of the results to show the distribution.
How many trials, and how much noise is left
A probability estimated from n trials has a sampling error of roughly the square root of p × (1 - p) / n. For a true loss probability of 20 percent:
| Trials | Standard error | Approximate 95% range around 20% |
|---|---|---|
| 10 | 12.6 points | about -5 to 45 percent (the estimate is nearly useless) |
| 1,000 | 1.3 points | about 17.5 to 22.5 percent |
| 5,000 | 0.57 points | about 18.9 to 21.1 percent |
(Check: 0.2 × 0.8 = 0.16; 0.16 / 10 = 0.016, square root 0.126; 0.16 / 5,000 = 0.000032, square root 0.00566.) This is why the ten-trial table above is a demonstration of mechanics only. For board reporting, run thousands of trials, and round the answer to the nearest five points so the precision matches the evidence.
Using the result to make a decision
Return to the ten trials. Two of them lost money (-$47,400 and -$70,700). Suppose the board will tolerate a loss in at most one year in ten. What would change the picture?
- A fixed-cost reduction of $40,000 shifts every outcome up by $40,000. The two losing trials become -$7,400 and -$30,700, still losses.
- A reduction of $80,000 (or an equivalent mix of cost and margin actions) shifts them to $32,600 and $9,300, and every one of the ten trials is positive.
In a full run some losing trials would remain, but the exercise shows the board the size of action needed to move the probability of loss from roughly one in five to a level it can accept, and it lets management compare that action with its cost. The same logic applies to cash: replace profit with the lowest month-end balance and ask how often it falls below the minimum.
Dependencies matter
Inputs are rarely independent. Price and volume tend to move in opposite directions; input costs and inflation move together. If you draw them independently, you may understate or overstate risk. Options:
- Model correlation with a simple rule, such as making volume depend on price through an elasticity assumption.
- Combine inputs into a driver, such as general market demand, that influences several.
- Run scenario-based Monte Carlo, where each scenario has its own distributions.
Validation
- Check the model without randomness first. With inputs at their base values, it should reproduce the base case.
- Look at the input draws. Do the simulated means and ranges match what you specified?
- Stress with extreme assumptions to confirm the output moves as expected.
- Compare with sensitivity analysis. The inputs that matter in the tornado should be the ones driving variance in the simulation.
- Document everything: the distributions, sources and judgments.
Limits and cautions
| Limit | Implication |
|---|---|
| Garbage in, garbage out | The result is only as good as the ranges you choose |
| False precision | A probability of 17.3 percent sounds exact but rests on judgments |
| Missing risks | The model includes only the risks you thought of |
| Fat tails | Extreme events are more common than a normal distribution suggests |
| Correlation errors | Ignoring dependencies can distort results |
| Communication | Boards may over-trust the numbers |
Present ranges and percentiles, not decimal-place probabilities, and emphasize the decisions the analysis supports.
Uses in finance
| Use | Output |
|---|---|
| Annual plan risk | Probability of missing the profit target |
| Cash runway | Probability of falling below a minimum balance by month |
| Covenant compliance | Probability of breaching a ratio |
| Capital projects | Distribution of NPV and probability NPV is negative. See net present value |
| Pricing | Range of margin outcomes |
| Inventory and supply | Service level vs. inventory cost under demand variability. See demand planning and inventory optimization |
Link to unit economics
The model inputs in this example (price, variable cost per unit, volume) are the elements of unit economics. Accurate ranges for each improve the simulation. See unit economics.
Common mistakes
- Using too few trials.
- Choosing ranges without evidence.
- Ignoring correlation.
- Presenting a single trial as a forecast.
- Over-engineering when scenarios would do.
- Not documenting assumptions.
Related guides
For ways to judge whether your forecasts have been accurate, read how to measure financial forecast accuracy and forecast bias in financial planning.
FAQs
What is a Monte Carlo simulation in finance?
A method that repeatedly draws random values for uncertain inputs, calculates the outcome each time and summarizes the results as a probability distribution.
How many trials do I need?
Typically thousands, often 5,000 or 10,000, until the results stabilize.
Can I run Monte Carlo in Excel?
Yes, using RAND and distribution functions with a Data Table or a macro to repeat trials.
What distributions should I use?
Triangular for expert ranges, normal for symmetric variation, lognormal for skewed positive values and discrete for yes-or-no events.
When is Monte Carlo better than scenarios?
When many uncertain inputs combine and you need probabilities, such as the chance of a covenant breach.
Keep reading
- Complete guide: Budgeting and Forecasting: The Complete Guide for Finance Leaders
- How to Measure Financial Forecast Accuracy
- Forecast Bias in Financial Planning: How to Spot It and Fix It
- Financial Forecasting: Methods, Models, and Best Practices
- Related topic: Unit Economics: The Complete Guide to Profitable Growth
This article is for general information. It is not accounting, tax, legal or investment advice, and examples use illustrative numbers rather than client data. Confirm decisions that carry financial or legal consequences with a qualified professional.