Methodology

Sensitivity Analysis Explained: Which Assumption Actually Moves the Answer

Sensitivity analysis changes one input at a time to see how much the output moves, revealing which assumptions carry a model and which barely matter at all.

Sensitivity analysis is the practice of moving one input in a model by a defined amount, holding everything else fixed, and measuring how far the output moves. Do it across every assumption and you get a ranking: the handful of inputs that carry the answer, and the long list that barely touch it.

That ranking is the entire point. Most financial models contain dozens of assumptions, and analysts routinely spend equal effort on all of them. Sensitivity analysis tells you which three or four are worth genuinely researching and which you can set to something reasonable and stop worrying about.

The mechanics

The method is deliberately simple, which is part of its value.

Start with a base case that you are willing to defend. Pick an input. Move it up by a fixed amount and record the output. Move it down by the same amount and record the output again. Return it to base. Move to the next input and repeat.

The “fixed amount” needs a rule, and there are two common ones.

Equal percentage moves. Flex every input by the same relative amount, say five percent up and five percent down. This is easy to run and easy to explain, but it treats a five percent move in a revenue growth assumption as equivalent to a five percent move in a tax rate, which they are not in terms of how likely each is.

Plausible range moves. Flex each input across a range that is realistic for that specific input, based on its own history and volatility. A commodity input cost might reasonably swing much more than a depreciation rate. This is harder to set up, because someone has to define each range and defend it, but the resulting ranking is far more decision useful. It ranks inputs by realistic impact rather than by mathematical gearing.

Both are legitimate. The mistake is running the first and interpreting it as though it were the second.

Reading the output

The standard presentation is a tornado chart: one horizontal bar per input, length showing the swing in output, sorted longest at the top. The visual does the work. Two or three bars usually dwarf the rest.

What the shape tells you:

  • A few long bars, then a sharp drop. The model is driven by a small number of assumptions. Your research effort should go almost entirely to those, and the rest of the model is scaffolding.
  • Many bars of similar length. The model is diffuse. No single assumption dominates, which sounds reassuring but often means the model has too many moving parts to be confidently wrong or right about anything. It is also a hint that the inputs are not truly independent.
  • One bar that dominates everything. The model is effectively a bet on one variable. That is fine if you know it and say it. It is dangerous when the model’s apparent sophistication disguises the fact that it is a single assumption in a suit.

A discounted cash flow model is the classic example of the third case. The terminal growth rate and the discount rate typically swamp everything else, which is why a DCF with twenty carefully forecast line items can still be almost entirely a view on two numbers nobody can observe. Sensitivity analysis is what exposes that, and it is a useful counterweight to the false comfort discussed in why the P/E ratio is not enough, where a single headline number carries more weight than it can bear.

A two way table is the natural extension. Instead of one input at a time, flex two simultaneously and print a grid of outputs. This is standard for showing how a valuation changes across combinations of discount rate and terminal growth, or how a portfolio outcome changes across combinations of return and cost assumptions. It is still not full scenario analysis, because only two things move, but it captures interaction between the two that the one at a time method misses entirely.

How to do it well

Flex inputs, never outputs. Sensitivity should be run on genuine assumptions, the things you choose. Running it on a calculated line, then reporting the result, produces a number that is either meaningless or circular. If your model computes operating margin from revenue and costs, flex revenue and costs, not margin.

Choose ranges from evidence, not from convenience. Where you can, set each input’s range from its own realised history: how much has this company’s realisation, volume or working capital cycle actually varied over past cycles? A range grounded in observed variation is defensible. A round five percent is a placeholder that nobody can argue with because it means nothing.

Watch for inputs that cannot move independently. This is the deepest limitation of the method and it deserves attention at the design stage. If you flex volume alone in a business with heavy operating leverage, the model will show a margin effect. Good. But if you flex volume alone in a business where volume and price are set in the same negotiation, you have modelled something that cannot happen. Note those pairs and move them together, or move to scenario work.

Report the base case alongside every swing. A statement that the output moves by a certain amount is only interpretable next to what the output was. Sensitivity results shown without their anchor invite readers to compare percentage swings across models that started in different places.

Use it to direct research, not just to garnish it. The proper output of a sensitivity run is a to do list. If the answer hangs on the volume assumption, go read the capacity disclosures, the segment breakdown, the concall commentary. Segment analysis and revenue mapping exist for exactly this: turning a high leverage assumption into something you can actually research rather than guess.

Rerun it after every material model change. Sensitivity rankings are not stable. Change the structure of the model, or move the base case far enough, and the order of the bars can change. A tornado chart from three quarters ago is a description of a model that no longer exists.

What it does not tell you

Sensitivity analysis has real blind spots, and treating its output as a risk assessment is a common and expensive error.

It ignores correlation completely. The whole method rests on holding everything else constant, and in financial reality almost nothing is constant while something else moves. Input costs, realisations, volumes and working capital travel together. A one at a time analysis therefore systematically understates how bad a genuine downturn is, because it never lets the bad things happen at once. This is the same failure that makes single name analysis miss portfolio risk, and the reason correlations rise in crises matters so much.

It says nothing about likelihood. A long bar means an input has leverage, not that it is likely to move. An input with enormous leverage and near total stability may deserve less attention than one with moderate leverage that swings every cycle. The chart cannot distinguish the two unless you built the ranges to encode it, and most people do not.

It assumes the model is right. Sensitivity explores the space inside your model structure. It cannot tell you that you modelled the wrong business, missed a subsidiary, used the wrong accounting basis, or built the value chain backwards. Structural error is invisible to it. So is data error: if the historical base you calibrated from was restated after the fact, every range you set is quietly wrong, which is the point made in why restatements break models.

Linearity is assumed and often false. Most implementations flex an input by a small amount and extrapolate. Many financial relationships are not linear: covenants trip at thresholds, tax rates step, operating leverage compounds, a business that is marginally profitable becomes structurally loss making below a utilisation level. Small symmetric flexes can miss all of it. Where thresholds exist, test across them explicitly.

It is not a probability distribution. People often read a tornado chart as though the ends of the bars were confidence bounds. They are not. They are the results of arbitrary flexes chosen by the modeller. Turning input uncertainty into an actual distribution of outcomes is a different exercise, which is what Monte Carlo simulation attempts, with its own set of fragile assumptions.

It can be gamed without anyone noticing. Choose narrow ranges for the assumptions you are least sure about and wide ranges for the ones you are confident in, and the chart will point research effort exactly where it is least needed. Because range selection is rarely documented, this is hard for a reader to audit. Publishing the ranges and their justification alongside the chart is the fix.

Used properly, sensitivity analysis is not a risk measure at all. It is a prioritisation tool: a systematic way of finding out which parts of your work matter, so that the effort goes where the answer actually lives.

This article is educational. Altys Labs is not a registered research analyst or investment adviser, and nothing here is investment advice or a recommendation to buy, sell, or hold any security.

Frequently asked questions

What is sensitivity analysis?

Sensitivity analysis is the practice of changing one input in a model by a set amount, holding everything else constant, and recording how much the output moves. Repeating this across every meaningful input ranks the assumptions by influence. It answers the question of which numbers in a model actually deserve your research time.

What is the difference between sensitivity analysis and scenario analysis?

Sensitivity analysis isolates one variable at a time so you can attribute the change in output to that variable alone. Scenario analysis moves several inputs together in a way that makes narrative sense, because real world drivers rarely move alone. Sensitivity tells you where the leverage sits, scenario tells you what a coherent world looks like.

What is a tornado chart?

A tornado chart is the usual way sensitivity results are displayed. Each input gets a horizontal bar showing how far the output moves when that input is flexed by a fixed amount, and the bars are sorted longest at the top. The shape resembles a funnel, and it makes the dominant assumptions obvious at a glance.