ModelRisk example · General techniques
Tornado of the Mean: What Drives the Profit
Which uncertainties move the expected profit, and by how much? A worked example of VoseSimSensitivityMean.
From the model’s saved run
Profit next year
The plan (most likely values) against the simulation.
| Measure | Unit | Value |
|---|---|---|
| Profit with most likely values (the plan) | US$ thousand | 1,360 |
| Mean profit (simulated) | US$ thousand | 1,058 |
| Profit target | US$ thousand | 1,000 |
| Chance of missing the target | probability | 38.3% |
| Measure | Unit | 10th pct | Median | 90th pct | Mean |
|---|---|---|---|---|---|
| Profit | US$ thousand | 686 | 1,084 | 1,421 | 1,058 |
Histogram of Profit from the saved simulation.
The business question
A plant makes a coated industrial part on one line and has to commit to a profit target for next year.
Seven quantities are uncertain: the demand, the selling price, the price of the resin the part is made from, the price of energy, the fixed costs, how far the curing oven's temperature drifts from its set point, and whether a major breakdown stops the line.
The drift is the unusual one: parts cured too hot and parts cured too cold both fail inspection, so scrap rises with the square of the drift, whichever way it goes. Management wants to know which uncertainties matter most — where better estimates, contracts or controls would pay.
A tornado chart answers that, and VoseSimSensitivityMean builds it on the worksheet: for every input it splits the simulated samples into groups by the input's value and reports the lowest and the highest mean profit of the groups. This example shows the function at work, how to enter it, and what it sees that a correlation-based tornado misses.
- Who it is for
- Anyone who wants to rank the drivers of a simulation output on the worksheet itself: analysts, model reviewers, and users of the Results Viewer's tornado plot who need its numbers in cells.
- Main outputs
- The profit's mean and percentiles · the ranked tornado table from VoseSimSensitivityMean (all inputs, with captions) and its chart · the three main drivers with five tranches · the tornado against rank correlation.
How the model works
The model's three sheets, read from left to right: each one feeds the next. The Function guide sheet at the end explains VoseSimSensitivityMean.
Inputs sheet
Seven uncertain inputs: demand, selling price, resin price, energy price and fixed costs as three-point estimates (PERT). The oven's temperature drift as a Normal distribution centred on the set point; and the days lost to a major breakdown as a risk event, zero in most years. Each one is marked with VoseInput, which is what makes VoseSimSensitivityMean rank it.
Model sheet
Units sold = demand less the sales lost while the line is down. Scrap = 3% + 1.2% × drift², so a drift either way adds scrap. Units made = units sold ÷ (1 − scrap). Profit = revenue − resin and energy for the units made − repairs − fixed costs.
The plan repeats the calculation with most likely values, no drift and no breakdown.
Results sheet
The profit's mean, percentiles and the chance of missing the target. The tornado table {=VoseSimSensitivityMean(Profit,10,1,TRUE)} with its chart; the three main drivers with five tranches. And the tornado against the rank correlation of each input with the profit.
ModelRisk techniques
Find similar models
- Product
- Type
- Application
- Uses
The results in detail
What drives the profit: VoseSimSensitivityMean
One array formula, entered with Ctrl+Shift+Enter over B:E: all seven inputs, ranked, with the captions the function returns (Show Caption = TRUE).
Tornado chart: the inputs ranked by how far the mean output moves across each input’s range.
Array formula over the 4 × 8 range below: {=VoseSimSensitivityMean(Profit,10,1,TRUE)}
| Input Name | Low | High | Rank |
|---|---|---|---|
| Demand | 808 | 1,288 | 1 |
| Resin price | 806 | 1,256 | 2 |
| Oven temperature drift | 748 | 1,182 | 3 |
| Selling price | 849 | 1,232 | 4 |
| Breakdown days | 866 | 1,100 | 5 |
| Fixed costs | 939 | 1,148 | 6 |
| Energy price | 1,018 | 1,090 | 7 |
- Input Name: the name given in VoseInput. Low and High: the lowest and the highest mean profit over the ten groups (tranches) of the input's samples. Rank: 1 for the widest range from Low to High.
- The chart draws each bar from the overall mean profit: to High (the highest group mean) and to Low (the lowest).
Only the three main drivers, with five tranches
Simulation number and Show Caption left out (1 and FALSE): no caption row, so the sheet has its own header.
Array formula over the 4 × 3 range below: {=VoseSimSensitivityMean(Profit,5)}
| Input | Low | High | Rank |
|---|---|---|---|
| Demand | 867 | 1,248 | 1 |
| Resin price | 853 | 1,231 | 2 |
| Selling price | 890 | 1,209 | 3 |
- Three rows show the three most influential inputs: a range shorter than the number of inputs keeps the top of the ranking.
- With five tranches each group holds a fifth of the samples, so the extreme groups average over wider stretches of each input and Low and High move towards the mean. The oven drift loses most: its two end groups now mix small drifts with large ones. Choose the number of tranches together with the number of samples (Function guide).
What a correlation tornado would miss
Each input's rank correlation with the profit (VoseSimCorrelation, Spearman) against its range of mean profit from section 2.
| Input | Rank correlation | Range of mean profit | Rank by correlation | Rank in the tornado |
|---|---|---|---|---|
| Demand | 0.47 | 480 | 1 | 1 |
| Selling price | 0.38 | 383 | 3 | 4 |
| Resin price | −0.46 | 449 | 2 | 2 |
| Energy price | −0.05 | 71 | 6 | 7 |
| Fixed costs | −0.22 | 209 | 5 | 6 |
| Oven temperature drift | −0.00 | 435 | 7 | 3 |
| Breakdown days | −0.26 | 234 | 4 | 5 |
- The oven drift is number 3 in the tornado but number 7 of 7 by correlation: its rank correlation with the profit is about zero.
- The reason is the shape of its effect. Too hot and too cold both add scrap, so the profit is highest when the drift is small and lower at both ends. A high drift is not linked with a higher or a lower profit, and a correlation, which measures a rising or a falling link, sees nothing.
- VoseSimSensitivityMean looks at the mean profit within each tranche of the drift instead. It finds the highest mean in the middle tranches and the lowest at an end, and ranks the drift where it belongs.
- For an input whose effect only rises or only falls (demand, prices, costs) the two methods agree on the order.
How to read these results
- Each bar shows how far the expected profit moves when one input is known to lie in one tenth of its range, with every other input still uncertain. A long bar marks an input worth a better estimate, a contract or a control.
- Low and High need not come from the lowest and the highest values of the input: for the oven drift, High comes from the middle tranches.
- The energy price has a short bar: energy is a small cost next to the resin. Even an input that does not affect the profit at all would show a short bar, from sampling noise alone.
- The tables and the chart are filled in after every simulation. Change an input on the Inputs sheet, simulate again, and the ranking follows.
See it move. Open the workbook, change an input on the Inputs sheet and run the simulation: every table and chart on this page updates in Excel.
Inputs and assumptions
Every assumption in the model, with its uncertainty and where it comes from. The figures are illustrative.
Market 2 inputs
How many parts the plant sells next year, and at what price.
| Assumption | Unit | Uncertainty | Low | Most likely | High |
|---|---|---|---|---|---|
| Demand next yearSales plan. The largest customer may move part of its orders to a competitor; little room above plan. | thousand units | PERT | 85.0 | 100.0 | 110.0 |
| Selling priceList price 52; discounts may be needed to keep volume. | US$ per unit | PERT | 46.00 | 50.00 | 52.00 |
Materials and energy 4 inputs
What each part consumes, and what that costs.
| Assumption | Unit | Uncertainty | Low | Most likely | High |
|---|---|---|---|---|---|
| Resin per unitBill of materials. | kg per unit | Fixed | 2.50 | ||
| Resin priceOil-linked supply contract, renewed in January: more room to rise than to fall. | US$ per kg | PERT | 6.20 | 7.00 | 9.00 |
| Energy per unitMetered on the line, curing oven included. | kWh per unit | Fixed | 12.0 | ||
| Energy priceGrid tariff; a winter price spike is possible. | US$ per kWh | PERT | 0.090 | 0.110 | 0.160 |
Curing oven 4 inputs
How far the oven drifts from its set point, and how much scrap that costs.
| Assumption | Unit | Uncertainty | Low | Most likely | High |
|---|---|---|---|---|---|
| Oven temperature drift from the set pointThe controller holds the set point to within ±4 °C 95% of the time; the oven drifts either way. | °C | Normal · P2.5, P97.5 | −4.0 | – | +4.0 |
| Scrap rate at the set pointQuality records at a stable temperature. | share of units made | Fixed | 3.0% | ||
| Extra scrap per °C² of driftParts cured too hot or too cold fail inspection: scrap grows with the square of the drift. | share per °C² | Fixed | 1.2% | ||
| Highest scrap rateBeyond this the line is stopped and the oven reset. | share of units made | Fixed | 50% | ||
Breakdowns 4 inputs
A major breakdown stops the line; most years have none.
| Assumption | Unit | Uncertainty | Low | Most likely | High |
|---|---|---|---|---|---|
| Chance of a major breakdown in the yearMaintenance records: one year in four. | probability | Fixed | 25% | ||
| Days lost to a major breakdownZero when there is no breakdown; otherwise from 2 to 15 days. | days | Risk event · PERT | 2.0 | 6.0 | 15.0 |
| Production days a yearFive days a week, less holidays. | days | Fixed | 250 | ||
| Repair and restart costContractors, spare parts and overtime. | US$ thousand / day | Fixed | 12.0 | ||
Overheads and target 2 inputs
The year's fixed costs, and the profit the plant has committed to.
| Assumption | Unit | Uncertainty | Low | Most likely | High |
|---|---|---|---|---|---|
| Fixed costsStaff, maintenance and site costs; a wage round is due. | US$ thousand / year | PERT | 1,600 | 1,700 | 1,950 |
| Profit targetCommitted in the budget. | US$ thousand | Fixed | 1,000 | ||
Units and conventions
- Money
- US$ thousand, next year's prices; unit prices in US$.
- Volumes
- Thousand units a year.
- Tornado
- Low and High are the lowest and the highest mean profit over ten groups (tranches) of samples of each input, each holding a tenth of the samples: VoseSimSensitivityMean with NumBins = 10.
- Rank
- 1 = the input whose groups give the widest range of mean profit.
Key assumptions and limitations
- Independence
- The seven uncertain inputs are independent of each other.
- Scrap
- 3% at the set point plus 1.2% for each °C² of drift, at most 50%. Scrapped parts use resin and energy but are not sold.
- Breakdown
- At most one major breakdown a year, in one year out of four. The days lost cut the year's sales in proportion and cost US$12 thousand a day to repair and restart.
- Data
- The plant and all figures are invented for this example.
How to use it
- Run a simulation from the ModelRisk ribbon (10,000 samples with a fixed seed are set). The Results sheet fills in, the tornado table and chart included.
- Read the tornado on the Results sheet: the longer an input's bar, the more the expected profit depends on it.
- Change an input on the Inputs sheet — for example narrow the oven drift to ±2 °C — simulate again and watch the ranking change.
- To use the function in your own model, mark its uncertain inputs with VoseInput, select a range 4 columns wide, type =VoseSimSensitivityMean(output,10,1,TRUE) and press Ctrl+Shift+Enter. The Function guide sheet explains every argument.
The tornado chart fills in after a simulation with ModelRisk’s classic engine.
ModelRisk functions used
- VoseSimSensitivityMean
- The tornado table: every VoseInput ranked by how far the mean profit moves across its range. Entered twice: all seven inputs with captions, and the top three with five tranches.
- VoseInput, VoseOutput
- Mark the seven uncertain inputs — the cells VoseSimSensitivityMean ranks — and the profit.
- VosePERT, VoseNormalAlt, VoseRiskEvent
- The uncertain inputs: three-point estimates; the oven drift from its 2.5th and 97.5th percentiles; the breakdown, which may not happen.
- VoseSimMean, VoseSimPercentile, VoseSimProbability
- Statistics of the profit.
- VoseSimCorrelation
- The rank correlation of the profit with each input, to compare with the tornado.
Further reading
- Sensitivity analysis in Excel: a tornado chart step by step (Vose guide)
- Vose, D. (2008). Risk Analysis: A Quantitative Guide, 3rd edition. Wiley: tornado and spider plots.
- Taguchi, G., Chowdhury, S. & Wu, Y. (2005). Taguchi's Quality Engineering Handbook. Wiley: the quadratic loss function.
Download the workbook and run it yourself. It opens in Excel with ModelRisk. The free trial runs every example model.
Related example models
- ModelRisk★★★★★Correlation Through a Common Factor (Look-up Table)How much later does a project finish when bad weather hits every activity at once?One shared random factor and a look-up table make six durations move together, without a correlation matrix.
- ModelRisk★★★★★Envelope Correlation: Interest and Mortgage RatesHow do you make one variable follow another when you only know its range at a few points?Correlating two variables from expert ranges: the second's range follows the first.
- ModelRisk★★★★★Event Counts over Time: Poisson and PólyaHow uncertain is next year's total of house calls?The same expected counts with three amounts of randomness: Poisson, and two ways of adding Pólya's extra variation.
An illustrative example: the figures are invented for teaching and do not describe a real company, project or asset. Last updated 30 October 2026.