Analyst Dojo
Lesson 1 of 5 11–14% of the exam

Historical, bootstrap or Monte Carlo: the four-step engine

Every simulation runs four steps: set up the model, generate scenarios, evaluate each one, and compile the results into a distribution. The three methods differ only in where scenarios come from: actual past changes (historical), random redraws of the observed data (bootstrap), or random draws from assumed distributions (Monte Carlo).

5 min cram, 24 min full read. Based on the 2027 CFA® Program Level I curriculum, Quantitative Methods, Learning Module 9.

Tailor this to you: take the self-assessment

Before this: Why asset prices are log-normal, Value at risk from the normal distribution

On the exam

  • Describe historical simulation and explain how it can be used in investment applications
  • Describe bootstrap resampling, and explain how it can be used in investment applications
  • Describe Monte Carlo simulation and explain how it can be used in investment applications

Describe historical simulation, bootstrapping and Monte Carlo simulation and explain their uses. Expect "which method…" items (uses replacement, needs a distribution, easiest to explain, can create unseen extremes), each method's implicit assumption, and which of the four steps does a given job.

How deeply to learn each part
Know the idea
Understand it in general. It frames other topics, but you will not calculate with it.
Use it
Understand it well enough to solve a question with it. Recognize when it applies.
Memorize
Learn it by heart. The exam will not give it to you.

You know this one. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still do.

You tested strong here. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still know it.

Cram mode: the one-screen version of this lesson. Switch to Full for the explanations, worked examples and interactives.

What is a simulation?

A simulation estimates the range of possible outcomes of a calculation by running it over many scenarios instead of one forecast. Each scenario is a set of input values. The outputs, taken together, form a distribution you can read probabilities from.

Analysts use simulations to measure risk and return, to optimize portfolios, to model cash flows and liquidity, and to value securities that have no formula.

What are the four steps?

Memorize

Every simulation, whatever its method, runs the same four steps.

The four steps of every simulation
Simulationthe same engine for every method
  • 1. Setup and parameterization Memorize define the goal and output, choose inputs, write the calculations linking them
  • 2. Scenario generation Memorize produce the input sets, often thousands
  • 3. Scenario evaluation Memorize the calculation engine runs the formulas from step 1 on each scenario
  • 4. Result compilation and analysis Memorize collect the outputs into a distribution and conclude

In setup and parameterization you define the goal and the output you want, choose the inputs and their parameters, and write the calculations that link inputs to output. Scenario generation produces the sets of input values, often thousands of them. In scenario evaluation (calculation engine) the formulas from the setup run on every scenario and produce one output each. Result compilation and analysis collects those outputs into a distribution and reads the average, the spread and the tails.

The calculation in that example is the weighted portfolio return from Learning Module 8, applied to one scenario.

Portfolio return in one scenario Use it
rp,s=∑iwi ri,sr_{p,s} = \sum_{i} w_i\, r_{i,s}

Where do the three methods differ?

In step 2. Historical simulation uses the changes that actually happened, each date once. Bootstrap simulation redraws the observed data at random, with replacement, so a date can appear twice and others not at all. Monte Carlo simulation draws from probability distributions you choose.

Where the scenarios come from
Scenario generationthe step where the methods differ
  • Historical simulation Memorize actual past changes, each date once, no replacement
  • Bootstrap simulation Memorize random draws from the observed sample, with replacement
  • Monte Carlo simulation Memorize random draws from assumed distributions
HistoricalBootstrapMonte Carlo
Source of scenariosthe historical data setthe observed samplean assumed (modeled) distribution
How it samplesuses past data as it happened, no replacementresamples with replacementrandom draws from the distribution
Implicit assumptionthe past is a fair guide to the futurethe sample represents the populationthe process can be modeled statistically
Typical usesrisk management, stress testsstandard errors, confidence intervalscomplex securities, long-term outcomes
Flexibilitylimited to what happenedlimited by the samplehigh: any scenario you can specify
Uncertainty capturedonly what history showedvariation from resamplinghypothetical, from the model’s inputs
Computing loadlow to moderatemoderatehigh

Historical simulation and bootstrapping are both built from past data and assume no distribution, so both keep fat tails and skew that really occurred, and neither can produce an outcome beyond the observed range. Only Monte Carlo can, if its distribution allows it.

Which method fits which job?

  • Choose historical simulation when results must be explained and tied to real dates (“we would lose EUR 2 million if markets moved as they did on a given day”). It is the workhorse of bank risk management, and regulators often require large banks to use it.
  • Choose bootstrapping when the data are few or no distribution fits, and you want the variability of a statistic: a standard error or a confidence interval for a mean, a volatility or a correlation.
  • Choose Monte Carlo when no closed-form formula exists (a payoff that depends on the price path, an embedded option), when you want scenarios history never produced, or when you want to test how results change with your assumptions, including correlations you set yourself.

Exam tip A well-built simulation engine accepts scenarios from any of the three sources. Change step 2 and the rest stays the same.

Loading the interactive

How are they built in a spreadsheet?

Know the idea

The curriculum shows the logic with spreadsheet simulation functions in Excel and Google Sheets. Learn which function does which job and which method uses it. You will not need to type the formulas.

JobExcelGoogle SheetsUsed in
Uniform random number between 0 and 1RAND()RAND()Monte Carlo, bootstrap
Random whole number in a rangeRANDBETWEEN()RANDBETWEEN()bootstrap draws, discrete events
Turn a probability into a normal valueNORM.INV()NORMINV()Monte Carlo
Turn a probability into a log-normal valueLOGNORM.INV()LOGNORMINV()Monte Carlo prices
Value in a given row of a rangeINDEX()INDEX()historical, bootstrap
Position of a value in a rangeMATCH()MATCH()bootstrap lookups
Sort a rangeSORT()SORT()historical ranking
PercentilePERCENTILE.INC(), PERCENTILE.EXC()samehistorical value at risk (VaR)
kth smallest or largest valueSMALL(), LARGE()sameworst and best outcomes
Count cells meeting a conditionCOUNTIF()COUNTIF()bootstrap counts
Margin of a normal confidence intervalCONFIDENCE.NORM()CONFIDENCE()Monte Carlo, bootstrap
Totals, means, volatilitySUM(), AVERAGE(), STDEV()sameall three
Logic and error handlingIF(), IFERROR()sameall three

Three recipes show how the functions fit together.

  1. Historical: prices in column A, returns in column B. Sort with =SORT(B:B, 1, TRUE). Read the 5% tail with =PERCENTILE.INC(B:B, 0.05) or =PERCENTILE.EXC(B:B, 0.05), or the kth worst with =SMALL(B:B, k).
  2. Bootstrap: returns in column B (rows 2 to N). One draw is =INDEX(B:B, RANDBETWEEN(2, N)). Copy it across rows and columns for many paths, summarize each path with SUM(), AVERAGE() or STDEV(), and read percentiles with SMALL() and LARGE().
  3. Monte Carlo: a standard normal draw is =NORM.INV(RAND(), 0, 1). One price step is =P*EXP((r-0.5*sigma^2)*dt+sigma*SQRT(dt)*NORM.INV(RAND(),0,1)). Copy it for many steps and paths, and summarize with AVERAGE(), STDEV() and CONFIDENCE.NORM().

PERCENTILE.INC and PERCENTILE.EXC place a percentile slightly differently, so the same 5% tail can give slightly different numbers, and both can differ a little from counting ranks by hand (lesson 2). Professional systems usually run simulations in a programming language or purpose-built software; the spreadsheet shows the logic.

Parametric VaR, the formula version of the same risk question, is in Learning Module 7.

Memorize this

MemorizeThree ways to generate scenarios

HistoricalBootstrapMonte Carlo
Sourcepast data as it happenedthe observed samplean assumed distribution
Replacementnoyesnot applicable
Assumespast = guide to futuresample = populationprocess can be modeled
Unseen extremesnonoyes
Best known forexplainability, risk managementstandard errors, confidence intervalscomplex securities, what-if analysis
Computing loadlow to moderatemoderatehigh

Memory hook Steps: Set up, Generate, Evaluate, Compile. The methods differ only at G.

Know it cold Replacement means bootstrap. A chosen distribution means Monte Carlo. Each past date once, as it happened, means historical.

The four steps of every simulation
Simulationthe same engine for every method
  • 1. Setup and parameterization Memorize define the goal and output, choose inputs, write the calculations linking them
  • 2. Scenario generation Memorize produce the input sets, often thousands
  • 3. Scenario evaluation Memorize the calculation engine runs the formulas from step 1 on each scenario
  • 4. Result compilation and analysis Memorize collect the outputs into a distribution and conclude
Where the scenarios come from
Scenario generationthe step where the methods differ
  • Historical simulation Memorize actual past changes, each date once, no replacement
  • Bootstrap simulation Memorize random draws from the observed sample, with replacement
  • Monte Carlo simulation Memorize random draws from assumed distributions
Portfolio return in one scenario Use it
rp,s=∑iwi ri,sr_{p,s} = \sum_{i} w_i\, r_{i,s}
Quick example

Weights 70% shares and 30% bonds; a scenario has shares +1.5% and bonds −0.5%. 0.7×1.5+0.3×(−0.5)0.7 \times 1.5 + 0.3 \times (-0.5) = 0.90%.

On your calculator
  1. 0.7×1.5=STO1
  2. 0.3×0.5+|-+RCL1= 0.9

STO store · +|- change sign · RCL recall a stored number

  1. 0.7ENTER1.5×0.3ENTER0.5CHS×+ 0.9

ENTER enter (on the HP, puts the number on the stack) · CHS change sign

How it is asked

  1. Which method uses replacement?

    Which method can put the same past day into one simulated path twice?

    Bootstrap. Historical simulation uses each date once; Monte Carlo draws from a distribution.

  2. Which method needs a distribution?

    Which method needs the analyst to pick a probability distribution for each input?

    Monte Carlo. The other two use the data as observed.

  3. Which step?

    The team turns each of 10,000 simulated return pairs into a profit or loss. Which step is that?

    Scenario evaluation (the calculation engine). Not scenario generation, not result compilation.

  4. Implicit assumption

    Which assumption belongs to bootstrapping?

    The sample represents the population. "Past reflects future" is historical; "distribution known" is Monte Carlo.

Exam traps

  • Saying historical simulation samples with replacement. It uses each past date once; replacement belongs to bootstrapping.
  • Thinking the methods differ in every step. They differ in scenario generation; setup, evaluation and compilation work the same way.
  • Putting "apply the formulas to each scenario" in scenario generation. Generation produces the inputs; evaluation runs the formulas.
  • Believing bootstrapping or historical simulation can produce a loss larger than any in the data. Only Monte Carlo can.

Checkpoint

3 exam-style questions. About 90 seconds each.

  1. 1A pension fund simulates its funding surplus. The team has already chosen the inputs and produced 5,000 sets of asset returns and interest rates. Its next task, turning each set into a surplus figure with the formulas chosen at the start, belongs to which step?

  2. 2A risk team wants every simulated year built only from trading days that actually happened, but combined in new random orders, with the same day allowed to appear more than once. The approach that fits is:

  3. 3A pension fund's board wants every simulated loss linked to a real past market day so that it can follow the reasoning. The method that best meets this need is:

Key takeaways

  • Every simulation: set up, generate scenarios, evaluate each, compile the results.
  • The methods differ in step 2: past data as it happened, past data redrawn with replacement, or draws from an assumed distribution.
  • Historical and bootstrap keep real fat tails but cannot go beyond the data; Monte Carlo can, if its assumptions allow.
  • Historical is easiest to explain, bootstrap gives standard errors and confidence intervals, Monte Carlo handles what no formula covers.
Portfolio return in one scenario Use it
rp,s=∑iwi ri,sr_{p,s} = \sum_{i} w_i\, r_{i,s}
Quick example

Weights 70% shares and 30% bonds; a scenario has shares +1.5% and bonds −0.5%. 0.7×1.5+0.3×(−0.5)0.7 \times 1.5 + 0.3 \times (-0.5) = 0.90%.

On your calculator
  1. 0.7×1.5=STO1
  2. 0.3×0.5+|-+RCL1= 0.9

STO store · +|- change sign · RCL recall a stored number

  1. 0.7ENTER1.5×0.3ENTER0.5CHS×+ 0.9

ENTER enter (on the HP, puts the number on the stack) · CHS change sign

All Quantitative Methods formulas, every lesson

Practice exam-style questions on Simulating Prices and Returns

Questions about this lesson?

Where this comes back

Questions candidates ask

What are the steps of a simulation?

Four: set up the model (goal, inputs and the calculations linking them), generate scenarios, evaluate each scenario with those calculations, and compile the outputs into a distribution. Historical, bootstrap and Monte Carlo simulation all follow these steps and differ only in how scenarios are generated.

What is the difference between historical simulation, bootstrapping and Monte Carlo?

Historical simulation replays actual past changes, each date once. Bootstrapping redraws the observed data at random with replacement. Monte Carlo draws from probability distributions you assume. Only Monte Carlo can create outcomes beyond what was observed.

Which simulation method is easiest to explain?

Historical simulation, because every result is tied to a real date: the portfolio would gain or lose a given amount if markets moved as they did on that day.

Spotted an error? Tell us and we will fix it.

  1. Historical, bootstrap or Monte Carlo: the four-step engine
  2. Historical simulation and historical value at risk
  3. Bootstrapping: simulating from the data you have
  4. Monte Carlo simulation
  5. Simulating two correlated assets: the Cholesky step

Ask Sensei Listen instead

Questions on Historical, bootstrap or Monte Carlo: the four-step engine

Learn with Sensei, out loud The voice tutor, in early access

Sensei teaches the lesson aloud and stops when you interrupt: "wait, why is the geometric mean lower?" It answers with the lesson's own example, then quizzes you by voice. Every account can try Sensei on one module, with one voice question.

USD 149 a month founding price (regular USD 199), kept for as long as you stay subscribed. Everything in Plus included.

In active development and improving every day. Send feedback · Plans and pricing

Analyst Dojo Plus

Your free review list holds 10 items.

Plus keeps everything you save, for USD 19 a month. To make room on the free plan, remove something from your review list.

See Plus

Lessons, checkpoints and the lesson questions in practice stay free. Compare plans