Monte Carlo Simulation: How It Works | Vose Software

Monte Carlo Simulation

a Simple Guide Last updated August 2026

What is Monte Carlo simulation?

Monte Carlo simulation (also known as the Monte Carlo method) is a technique that recalculates a model thousands of times, each time drawing random values for its uncertain inputs from probability distributions, to build up the full probability distribution of each outcome. Instead of one single-point answer, the decision-maker sees the whole range of possible results and how likely each is — and can select the decision that best balances benefit against risk.

A typical result of a Monte Carlo simulation is a histogram of the simulated outcomes, like the following:

probability distribution histogram plot example

The horizontal axis shows the possible amount of profit a venture may make, and the vertical axis states how likely those values are. In this example, the histogram shows that the most likely profit is a little under zero, with a possible loss of up to $1M or so, but a potential gain of $5-6M, or even higher (though with a very small probability).

ModelRisk logo

ModelRisk

Adding risk and uncertainty to your Excel model

ModelRisk is the world’s most innovative and comprehensive risk analysis add-in for Excel using Monte Carlo simulation. Use ModelRisk to describe uncertainty in your budget, financial model, sales forecast, or any other area you use Excel for.

How does a Monte Carlo simulation work?

To perform a Monte Carlo simulation, you must first have a mathematical model, like a spreadsheet. The model will have one of more results of interest (called outputs) - like profit, NPV, cashflow, cost, sales volume, etc. The model will depend on a number of quantitative assumptions (called inputs) - like market size, macroeconomic factors, production capacity, etc. Then for given values of these inputs, the model determines the value of the outputs through a series of equations. For a concrete case, our free NPV probability analysis example model is exactly this structure: a 10-year cashflow with distributions on its uncertain inputs.

The greatest weakness of such models is that we are almost always unsure what the value of the inputs will be and, as a result, we are unsure of the outputs.

Before Monte Carlo simulation, decision-makers would explore how uncertain the outputs (like profit) were by running different 'what-if' scenarios. In a typical what-if scenario, one would enter values for each input that would reduce the output result and note the drop in the output, then enter input values that would increase the output and again note the change in the output. This would give a feel for how uncertain the output value was. For example, the following model performs three what-if scenarios, summing a set of costs, where the three scenarios explore what the total cost (the output) might be if each individual cost item (the inputs) were all very low, all at values considered likely, or all at high values:

Spreadsheet model before adding uncertainty

This kind of analysis shows the decision-maker that the total cost will lie somewhere between $297.5k and $348.4k, and projects a most likely cost of $312.1.

Although simple, these 'What-if' analyses are largely useless because of three key issues:

  1. They do not take account of the probability of a scenario. For example, if we could say that there was a 1% chance that each of the cost items was in the range of the minimum estimate then, assuming these costs were independent of each other, the chances of all lying around their minimum value would be 1% x 1% x ... x 1%, i..e 0.019 = 1 in a billion billion, a probability so small as to be meaningless.
  2. They don't consider the variety of values that an input can take, just two or three possible values; and
  3. They don't take account of the combinations of values that could constitute a scenario. For example, in the model above some costs could be towards their minima, others towards their maxima, and others around the best guess. With just these nine variables and three values per variable, one can construct 39, nearly 20,000 different combinations!

Monte Carlo simulation replaces the values for uncertain variables within the model with functions that generate random samples from probability distributions that represent the uncertainty. For example, the following model is written in ModelRisk:

Spreadsheet model with uncertainty added using ModelRisk

The Cell F5 contains the ModelRisk function VoseTriangle(Minimum, MostLikely, Maximum) where the input parameters come from the sheet. The function randomly generates a sample, here $128.1k, where the probability of each possible value being generated is defined by the shape of the distribution used. In this case, the Triangle(120, 125, 140) looks like this:

A triangular distribution

The horizontal axis represents the possible value of the variable (the land purchase cost) and the vertical axis represents the probability of each value occurring. The Triangle distribution interprets the three input values with straight lines to form a triangular shape, hence its name. There are many different distribution types used in risk analysis. The most common are: Triangle, PERT, binomial, Poisson, Normal, Lognormal and Uniform distributions. However, depending on the subject of the model (e.g. stock prices, system reliability, epidemiology) the set of distributions used will be very different. ModelRisk includes essentially all probability distributions used in risk analysis — and where you have historical data for a variable, the distribution can be fitted to that data rather than chosen by judgment.

In a Monte Carlo simulation model, values that are uncertain are replaced by functions generating random samples from distributions chosen by the modeller. Then a simulation is run on that model, which amounts to recalculating the model many times, each time using different random values for all the uncertain variables and storing the resultant values for each output of the model. At the end of the simulation run, the values for each output can be analysed in various ways - graphs like the histogram above, and others, give pictorial representations of the shape and range of the uncertainty for each output. The output data can also be analysed statistically to provide information like the probability of the output falling above (or below) some specific target value.

In short, a Monte Carlo simulation has five steps:

  1. Build a model that calculates the results you care about (profit, cost, NPV, completion date) from its input assumptions.
  2. Replace each uncertain input with a probability distribution describing the values it could take.
  3. Recalculate the model thousands of times, drawing a fresh random value from every distribution each time.
  4. Store the result of every recalculation for each output.
  5. Analyse the stored results as distributions: histograms, cumulative curves, percentiles, and the probability of hitting or missing targets.

How are random samples generated from uncertain variables?

Every probability distribution can be represented by a cumulative distribution function, as shown below:

Monte Carlo method cumulative curve plot

By definition, a random value from a probability distribution is equally likely to be at any cumulative probability. Reversing that logic, we can generate a random number for the variable by sampling from a Uniform distribution between 0 and 1, and then use the cumulative curve to translate this into a sample value for the variable. In the illustration above, a random value of 0.53 from the Uniform(0,1) distribution translates into a value of 15.9 for the variable.

Due to the shape of each cumulative curve, more values will be generated where the cumulative curve is at its steepest, as shown below:

Monte-Carlo simulation cumulative plot curve increments

Key to Monte Carlo simulation is that values are generated with a frequency that is proportional to how likely they are to occur. We can then make a histogram distribution or cumulative distribution from the generated output results, and the resultant distributions can be interpreted as approximations to the true theoretical distributions of the output variables.

To produce high-quality Uniform(0,1) random numbers, Vose Software products use the Mersenne Twister, widely considered the best all-round algorithm. The generator starts from a seed value (an integer you can set in ModelRisk and Tamara), and every subsequent random number follows from it. It is good practice to always set a seed: provided the model is unchanged, the same simulation can be reproduced exactly — and if you then change a distribution and re-run, you can be certain any change in the results comes from your edit, not from sampling randomness.

How many samples should a Monte Carlo simulation run?

Enough that the statistics you care about have stabilised — for most business models that is somewhere between 5,000 and 50,000 samples (also called iterations). The precision of a simulated statistic improves with the square root of the number of samples: to halve the sampling error you need four times the samples.

Two practical rules follow. First, means and central percentiles stabilise quickly, but tail statistics — a P95 cost, a 1-in-100 loss — need far more samples because few of them land in the tail. Second, rather than guessing, let the software decide: ModelRisk can monitor the precision of your chosen outputs as the simulation runs and stop automatically when they are stable to the tolerance you set. Our article on how many Monte Carlo iterations you need works through the practical cases, and the full statistical treatment is in our risk wiki article on how many iterations to run.

How do you read Monte Carlo simulation results?

Three views cover most decisions. The histogram shows the shape of the outcome: where results cluster, how wide the spread is, and whether the risk is skewed to one side (as in the profit example at the top of this page). The cumulative curve answers "what is the probability the result is below X?" directly — read up from any target value to the curve. And percentiles compress the distribution into single planning numbers: the P50 is the median outcome, while a P80 cost estimate is the value the cost stays below with 80% probability — the basis of cost-contingency practice in project risk management (our guide to calculating cost contingency works a full example).

The other essential output is a sensitivity (tornado) analysis: ranking the uncertain inputs by how strongly each drives the output. It tells you which two or three assumptions dominate the risk — and therefore where better data, mitigation or management attention will actually change the answer.

What are the limitations of Monte Carlo simulation?

Monte Carlo simulation is only as good as the model it runs on. The common failure modes are choosing distributions casually (garbage in, garbage out), ignoring correlation between inputs — which usually makes results look safer than they are, because bad things tend to happen together — and false confidence from a smooth histogram built on weak assumptions. These are modelling errors, not flaws of the method, and good software helps you avoid them: distribution fitting ranked by information criteria, copulas for realistic correlation, and transparent models colleagues can audit.

The method also cannot tell you about outcomes your model excludes. A simulation explores the uncertainty you described; risks you have not thought of stay outside it. That is why simulation complements — rather than replaces — structured risk identification.

How do you run a Monte Carlo simulation in Excel?

Excel is the natural home for Monte Carlo simulation because the model logic usually already lives there. A risk analysis add-in supplies the distribution functions, the simulation engine and the results analysis: with ModelRisk, a distribution is an ordinary formula in a cell — =VoseTriangle(120,125,140) or =VoseNormal(2,4) — so the workbook stays a readable, auditable spreadsheet. ModelRisk includes 135 distributions, 1,400+ functions, correlation with copulas, time series and distribution fitting, costs at most €1,550 per user per year (published openly), and offers a fully functional 15-day free trial.

To see how the main Excel risk add-ins compare on features, speed and price, read The Top 5 Risk Analysis Add-Ins for Excel, and try the techniques on our free example models. For a category-level overview — the four types of risk analysis software and how to choose among them — see our software guide.

Frequently asked questions

Why is it called Monte Carlo simulation?

The name was coined in the 1940s by the mathematicians developing the method for nuclear physics work at Los Alamos, as a code name referencing the Monte Carlo casino in Monaco — a nod to the method’s reliance on chance, like the casino’s games.

What is the difference between Monte Carlo simulation and scenario (what-if) analysis?

Scenario analysis evaluates a handful of hand-picked input combinations with no probabilities attached. Monte Carlo simulation evaluates thousands of combinations, sampled in proportion to how likely they are — so it tells you not just what could happen, but how probable each outcome is.

Is Monte Carlo simulation accurate?

The sampling itself can be made as precise as you like by running more iterations (precision improves with the square root of the sample count). The real accuracy question is the model: results are only as good as the distributions, correlations and structure you feed in.

How many iterations do I need?

Typically 5,000–50,000 for business models. Means stabilise fast; tail percentiles (P95, 1-in-100 outcomes) need the most samples. ModelRisk can monitor output precision during the run and stop automatically once your chosen tolerance is met.

What software do I need for Monte Carlo simulation in Excel?

A risk analysis add-in. ModelRisk is Vose Software’s add-in — 135 distributions, 1,400+ functions, at most €1,550 per user per year with a free 15-day trial. Our comparison of the top 5 Excel risk add-ins covers the alternatives.