xellstorm Open the app

How much contingency does a construction project need?

Worked example · Project cost and schedule · Updated October 2026

This building project needs a contingency of 259 on top of its base estimate of 2,620 (all figures in USD thousands) to reach 80% confidence, measured with a Monte Carlo simulation rather than set as a flat percentage of the estimate. The base estimate adds up the most likely costs, yet 94.2% of 5,000 simulated outcomes cost more than that.

The total stays at or below 2,879 in 80% of outcomes (P80) and 2,937 in 90% (P90); the contingency is the gap between the level you choose and the base estimate. The workbook’s budget of 2,900 is exceeded in 16.1% of outcomes.

The model

The workbook is an ordinary cost estimate: six cost items with their most likely costs, and a register of four risk events that may or may not happen. A second sheet holds the schedule. It uses plain formulas such as =SUM(C3:C8)+SUM(E11:E14) and no add-in functions.

For the simulation, each cost item gets a three-point range, a PERT distribution from min through most likely to max, and each risk event occurs with its probability and then adds its cost. The ranges are set in xellstorm, next to the workbook: the downloadable file holds the most likely costs and the risk register, as an ordinary estimate would.

Cost items, USD thousands (PERT)
ItemMinMost likelyMax
Site work100120170
Foundation300340460
Structure7608201,010
MEP540610780
Finishes400450560
Equipment260280330
Risk events
RiskProbabilityCost if it occurs
Ground conditions25%150
Design change35%90
Supplier delay20%60
Severe weather30%40

Why the base estimate is optimistic

The base estimate adds up the most likely costs: 2,620. But cost ranges are skewed to the right: an item can come in far above its most likely cost, rarely far below. Risk events cost nothing in the base estimate, yet something in every outcome where they happen. Together they put the average outcome at 2,785, 165 (6.3%) above the base estimate, and 94.2% of simulated totals are higher than the base estimate. The base estimate is not a likely outcome; it is close to a best case.

Results

Total cost, USD thousands: 5,000 simulated outcomes
Base estimate (sum of most likely costs)2,620
Mean of the simulated totals2,785
P50 (half the outcomes cost less)2,776
P802,879
P902,937
Average of the worst 5% (CVaR)3,035
Chance of going over the 2,900 budget16.1%
Chance of finishing after week 6027.2%
Distribution of the total costHistogram of 5,000 simulated total costs. The base estimate of 2,620 sits left of the peak; bars above the 2,900 budget, 16.1% of outcomes, are highlighted.2,6002,8003,0003,200Base estimate 2,620Budget 2,900
Each bar counts simulated outcomes; bars above the budget are highlighted. The base estimate sits well to the left of the peak.
Cumulative probability of the total cost (S-curve)S-curve of the total cost: P50 2,776, P80 2,879, P90 2,937.0%50%100%2,6002,8003,0003,200P50 2,776P80 2,879P90 2,937
Read a budget off the S-curve: the cost you stay under with 50%, 80% or 90% confidence.
What drives the total costContribution to variance of the total cost, estimated from the ranks of the trials: Ground conditions (risk) 32.9%, Design change (risk) 15.8%, Structure 14.9%, MEP 14.3%, Finishes 6.6%, Foundation 6.1%.Ground conditions (risk)32.9%Design change (risk)15.8%Structure14.9%MEP14.3%Finishes6.6%Foundation6.1%
Contribution to variance of the total cost, estimated from the ranks of the trials as in the app, largest first.

Setting the contingency

Contingency is what you add to the base estimate to reach the confidence you want. Read it off the S-curve:

Contingency above the base estimate of 2,620
ConfidenceBudgetContingency
P502,776156
P802,879259
P902,937317

Organizations often budget capital projects at P50, P80 or P90; which level to use is a policy decision about how much overrun risk to accept. A flat percentage on the base estimate cannot tell how wide the ranges are or which risks the project carries; the simulation measures both. P50, P80 and P90 explains the levels, and why the P80 of a total is not the sum of its parts’ P80s.

In xellstorm, hover over the S-curve to read the chance of staying under any cost, or type a budget into the probability box to see the chance of going over it.

What drives the risk

The contribution to variance shows which inputs account for the spread of the total cost; xellstorm estimates it from the ranks of the trials, as the app shows it. The Ground conditions risk comes first with 32.9%, and the four risk events together contribute 55.7%, against 14.9% for the largest cost item. The risk register moves the total more than any single cost item, so its largest risk is where to look first, for example with a site investigation before the contract is signed. Tornado charts and sensitivity analysis explains these measures.

Schedule: the chance of finishing late

The same run simulates the schedule. Finishing after week 60 happens in 27.2% of outcomes, and the P80 finish is week 60.7. Durations, like costs, can run far longer than their most likely values but rarely much shorter, and severe weather adds a delay when it happens. MEP (mechanical, electrical and plumbing) and finishes also run in parallel, so each outcome waits for whichever takes longer. Together these are why the schedule runs late more often than the most likely durations suggest; schedule risk analysis measures each cause.

Try it yourself

  1. Open the model in xellstorm. Its inputs, outputs and the two targets are already set; there is nothing to install and no sign-up, and the workbook is calculated in your browser.
  2. Run it: with the same seed and number of trials you get the mean, P50, P80, P90, probabilities and drivers on this page; P50, P80 and P90 are rows of the percentile table.
  3. Change a range or a risk probability on the Distributions step and run again to see how the P90 and the chance of going over budget move.
  4. Then open your own estimate and click the cells you are unsure of on the model map.

Can I do this in plain Excel?

Yes, with more work: replace each estimate with a formula that draws a random value, repeat the calculation with a data table, and summarize the results. Monte Carlo simulation in Excel shows the formulas, and what changes when a tool runs the workbook for you.

Questions

Which confidence level should the contingency cover?

That is a policy choice: here P50 needs 156, P80 259 and P90 317. P50, P80 and P90 explains what each level means and what to weigh when choosing.

Why PERT distributions?

A PERT distribution takes the same three numbers as a triangular one (min, most likely, max) but puts more weight near the most likely value and less on the extremes, which suits expert estimates. xellstorm also offers triangular, lognormal, Weibull and others. See PERT distribution in Excel.

Are 5,000 trials enough for a P90 budget?

For this model, yes: a distribution-free 95% interval puts the P90 within about ±8, small next to the 58 between the P80 and the P90. P50, P80 and P90 shows how that interval is found; for other models, see how many trials.

Should risk events be correlated?

If one risk makes another more likely, yes: give the pair a correlation, or let one cell drive both. This example keeps them independent to stay simple.

Related

xellstorm is a browser-based Monte Carlo simulation tool for Excel models: no add-in, and the workbook never leaves your computer.