Monte Carlo simulation is the difference between a model that gives a single number and a model that gives a risk profile. The pattern is: identify the uncertain inputs, sample from the appropriate distribution, run the model many times, plot the distribution of outputs. The senior uses Monte Carlo for any investment, hiring, or expansion decision where the answer is not a single number but a range with a probability.
The three-step pattern
The senior uses the same three-step pattern on every Monte Carlo engagement. (1) Identify the inputs with uncertainty and the appropriate distribution for each (normal, triangular, uniform, beta). (2) Replace the deterministic values with NORM.INV(RAND(), mean, std_dev) or the equivalent for the chosen distribution. (3) Copy the model 10,000 times in a column and record the output. The output is a distribution, not a single number.
The five distributions
The senior uses five distributions in practice. Normal (NORM.INV) for inputs with a known mean and standard deviation - most financial inputs. Triangular (TRIANG.INV) for inputs with a min, most likely, and max - common for expert estimates. Uniform (RAND scaled) for inputs where every value in a range is equally likely. Beta (BETA.INV) for probabilities between 0 and 1. Discrete (CHOOSE based on RAND) for scenario-based inputs.
How to read the output
The output of 10,000 iterations is a column of numbers. The senior sorts the column, calculates percentiles (5th, 50th, 95th), and plots a histogram. The percentiles answer: what is the worst case (5th), the expected case (50th), and the best case (95th)? The histogram shows the shape - is the distribution normal, skewed, bimodal? The senior reports the three percentiles in the board pack and the histogram on the dashboard. The decision is informed by the distribution, not a single point estimate.
When to move to Python
Excel Monte Carlo tops out at 10,000 iterations in a reasonable time. For 100,000+ iterations or for more complex sampling, the senior moves to Python (numpy for sampling, matplotlib for the histogram). The transition is straightforward - the same model formulation, the same distributions, just a faster runtime. The senior uses Excel Monte Carlo for standard engagements and Python for the complex ones.