What Sensitivity Analysis Actually Does in a Financial Model

Sensitivity analysis answers a specific question: if I change this input, how much does this output move? It is one of the most important tools in financial modeling because models are, by definition, wrong in ways you don't yet know. The inputs you assumed will be wrong. The question is not whether they are wrong — it is how wrong, and which ones matter most.

A properly structured sensitivity analysis tells you:

This is different from scenario analysis, though the two are often conflated. Sensitivity analysis is systematic — hold everything else constant, vary one (or two) inputs across a range, observe outputs. Scenario analysis is narrative — "what does the world look like if the bear thesis plays out?" Both matter; they answer different questions.

Excel's Data Table: How It Works and Where It Breaks

Excel's What-If Analysis → Data Table is the standard tool for sensitivity analysis in spreadsheets. It works by recalculating your model once for each combination of input values you specify, then filling a table with the resulting outputs. The mechanics:

For what it does, Excel's data table is genuinely good. It recalculates efficiently, it formats cleanly, and analysts know how to read it. The two-variable format is the industry standard presentation for a reason.

The problem is the ceiling: Excel's data table is hard-capped at two variables. You cannot add a third axis. There is no Excel-native way to create a three-variable sensitivity table. This limitation is not a bug or an oversight — it is an architectural constraint of the grid-based table format. A three-variable sensitivity matrix would require a three-dimensional structure that doesn't exist in a 2D spreadsheet.

Why this matters in practice: Most real financial models have 4–6 load-bearing assumptions. An LBO model might have entry multiple, exit multiple, revenue CAGR, EBITDA margin, and leverage level all as material inputs. A two-variable sensitivity table can only hold two of these simultaneously. The other three are hidden assumptions — held constant at their base case values, where they may not stay.

The 2-Variable Ceiling: What It Costs You

When a sensitivity analysis is limited to two variables, analysts compensate in ways that create real risk:

Creating Multiple Disconnected Tables

The most common workaround is to build several two-variable tables, each testing a different pair of inputs. Entry vs. exit. Entry vs. revenue growth. Revenue growth vs. margin. The problem: each table assumes all other inputs are at base case. The interactions between variables are invisible. A scenario where entry multiple is high and revenue growth is low and margin is compressed — the exact combination that produces the worst outcome — never appears in any individual table.

Picking the "Two That Matter" and Hoping

Many analysts simply pick the two inputs they believe are most important and build a single table. This is a judgment call that may be wrong. If you chose entry multiple and exit multiple as your two axes, but the deal's actual vulnerability is to revenue growth (which your exit multiple is a proxy for), you have built a sensitivity table that obscures the real risk.

Manual Scenario Building

Some analysts give up on data tables entirely for multi-variable analysis and build named scenarios manually — one for each combination of interest. This is effective but slow: five scenarios with three variables each requires building fifteen separate cases. And it reintroduces the copy-sheet management problem.

Three Workarounds Analysts Actually Use (and Their Trade-offs)

Workaround 1: Multiple Linked Data Tables

Build a series of two-variable tables, each with a different pair of inputs. Use conditional formatting to highlight cells below the hurdle rate. Add a summary section that pulls the "worst combined" scenario manually.

⚠ Verdict: Works for up to 3 variables if you're disciplined. Breaks down at 4+. Interactions between variable pairs remain invisible.

Workaround 2: VBA Macro Sensitivity Loop

Write a VBA macro that loops through combinations of input values, sets them in the model, captures the output, and writes results to a results sheet. This can handle 3–5 variables. The macro runs once, the output is static until you re-run it.

⚠ Verdict: Technically capable but requires VBA skill, is slow to audit, and breaks whenever the model structure changes. Not portable — colleagues need VBA enabled and the macro to work on their machines.

Workaround 3: Python or R Script

Export the model to Python (via openpyxl or xlwings), define input ranges, run a combinatorial loop, plot the output distribution. Produces excellent multi-dimensional sensitivity charts. Used by quant-leaning analysts at large firms.

✗ Verdict: Requires Python setup, data export/import friction, and significant skill. Rebuilding after every model change is expensive. Not accessible to most FP&A or junior PE analysts.

What a True Sensitivity Sweep Looks Like

The right answer to multi-variable sensitivity analysis is not to fight the constraints of the two-variable table. It is to reframe the problem: instead of a grid of output cells for every combination of inputs, generate a set of scenario branches — each representing a specific point in the input space — and compare their outputs directly.

This is conceptually equivalent to what the VBA macro does, but natively integrated into the modeling tool. Define your input range, define the step size, and the tool creates one branch per step — each inheriting your full model except for the swept input. You can then compare any two branches, view all branches on the Decision Sheet, or identify the break-even point by scanning where the metric crosses your threshold.

This approach has several advantages over a static data table:

The Sensitivity Sweep in TreBranch

TreBranch implements this natively. Right-click any input cell in your model → Sweep. Enter your range (e.g., Revenue Growth: 4%, 6%, 8%, 10%, 12%) — comma-separated values, or a min/max/step — and click Sweep. TreBranch auto-generates one branch per value, each inheriting everything from the current branch except the swept input.

The result looks like this in the scenarios panel:

Sensitivity Sweep — Revenue Growth Rate · IRR (Key Metric)
Growth 12%
12.0% CAGR
26.4% IRR
Growth 10%
10.0% CAGR
23.1% IRR
Growth 8% ★
8.0% CAGR
20.2% IRR
Growth 6%
6.0% CAGR
17.1% IRR
Growth 4%
4.0% CAGR
13.8% IRR
★ Base case  ·  5 branches auto-generated from sweep

Key Metrics (IRR, revenue, payback) appear inline for every branch — no need to open the model to read each scenario's outcome. Click Compare on any two branches and the DiffPanel shows exactly which cells differ and by how much.

For a deal team presenting to a credit committee, this is significantly more useful than a static two-variable table: the sweep is live, every branch can be drilled into, and the entire analysis recomputes automatically when the base model changes.

When to Use Sensitivity Analysis vs. Scenario Branching

These two tools answer different questions, and knowing when to use which one saves significant modeling time.

Use a sensitivity sweep when: you want to understand the relationship between one input and an output across a continuous range. "How does IRR change as revenue growth varies from 4% to 12%?" is a sensitivity question. The sweep is the right tool.

Use scenario branches when: you want to model a coherent, internally consistent narrative. "What does the model look like if management hits their aggressive growth target, we execute the add-on acquisition, and we exit at a premium multiple in year 4?" involves multiple assumptions changing together in a correlated, story-driven way. That is a scenario, not a sensitivity.

Use both together when: you have defined your narrative scenarios (base, upside, downside) and want to understand the sensitivity of each scenario to a key remaining assumption. Run the base case scenario, then sweep entry multiple from 7x to 12x within that base case. This tells you: "Given our base growth assumptions, what is the entry-multiple sensitivity?" — a question that has a different answer in your downside scenario than your base.

Question Tool to Use Excel Method TreBranch Method
How does IRR vary with entry multiple (1 variable)? Sensitivity analysis One-variable data table Sensitivity Sweep
How does IRR vary with entry and exit multiple (2 variables)? Sensitivity analysis Two-variable data table Sensitivity Sweep (nested)
How does IRR vary with entry, exit, and growth (3+ variables)? Multi-variable sensitivity No native method — VBA or Python required Sensitivity Sweep on each axis
"What if management misses growth but multiple expansion saves us?" Scenario analysis CHOOSE dropdown or copy-sheet Scenario Branch
Which single assumption is driving the bull/bear difference? Root-cause analysis Manual cross-reference DiffPanel

Getting Started: Your First Sensitivity Sweep in TreBranch

If you want to try the sensitivity sweep approach with your own models, here is the fastest path:

  1. Import your model. TreBranch opens .xlsx and .csv files directly. Open your existing Excel model — no rebuilding required.
  2. Mark your Key Metrics. Right-click any output cell (IRR, revenue, MOIC) and mark it as a Key Metric. It will appear in the scenarios panel for every branch automatically.
  3. Create your base branch. Your imported model becomes the root branch — the base case everything inherits from.
  4. Run your first sweep. Right-click your most important input cell → Sweep. Enter the range. TreBranch generates one branch per value, each fully live.
  5. Compare branches. Click any two branches → Compare. The DiffPanel shows exactly which cells changed and by how much impact.

The entire setup takes under five minutes for an existing model. The 30-day free trial on the Microsoft Store gives you enough time to run a real deal model through it and see if the workflow fits.

Stop building sensitivity tables that stop at 2 variables.

TreBranch's Sensitivity Sweep generates unlimited branches from any input range — live, composable, and automatically updated when your base model changes. Try it free for 30 days.

Try Free on Microsoft Store

Windows 10/11 · 30-day free trial · Buy once, own forever · No subscription

FAQ: Sensitivity Analysis in Excel and TreBranch

Why does Excel's data table only support 2 variables?

Excel's data table is architecturally constrained to a two-dimensional grid — one variable along rows, one along columns. A third variable would require a third dimension (essentially a stack of grids), which the flat spreadsheet format cannot represent natively. Microsoft has not added multi-dimensional table support in any Excel version to date.

What is the difference between sensitivity analysis and scenario analysis?

Sensitivity analysis varies one (or two) inputs systematically while holding everything else constant, and measures the impact on an output. It answers "how much does IRR change per unit of growth rate change?" Scenario analysis defines complete, internally consistent sets of assumptions — the bear case has lower growth, compressed margins, and a lower exit multiple, all at once. They are complementary: sensitivity analysis tells you which assumptions matter most, scenario analysis tells you what happens in coherent real-world outcomes.

Can I build a three-variable sensitivity table in Excel without VBA?

Not natively. The closest Excel-native approach is to build multiple two-variable tables — one for each combination of two variables — and manually synthesize conclusions across them. This works but the interactions between variable pairs remain invisible. For true three-variable sensitivity, VBA, Power Query with parameter tables, or a dedicated tool like TreBranch's Sensitivity Sweep are the realistic options.

How does TreBranch's Sensitivity Sweep differ from an Excel data table?

TreBranch's Sensitivity Sweep creates live, independent branches — each a full model with its own formula history — rather than a static grid of output values. Each branch can be individually inspected, drilled into, diffed against any other branch, and exported. The sweep automatically updates when the base model changes. You can also sweep within a branch (e.g., sweep entry multiple within your bear-case scenario), producing a nested sensitivity tree that Excel data tables cannot replicate.

What does "unlimited sensitivity sweep" mean in TreBranch?

TreBranch imposes no limit on the number of branches per file or the number of values in a sweep. You can sweep 20 values across a range and generate 20 live branches. You can run multiple sweeps in the same file. The only practical constraint is your machine's memory — in practice, models with 10,000 rows and 100 branches run without issues on modern Windows hardware.

Is TreBranch appropriate for FP&A teams, or only for PE/M&A analysts?

Both. The scenario branching and sensitivity sweep features are valuable for any analysis where you need to model multiple futures: FP&A budget cycles (conservative vs. base vs. aggressive), startup runway scenarios, operations planning, retail pricing models. TreBranch is not a PE-specific tool — it is a general-purpose scenario modeling spreadsheet that happens to be well-suited to financial modeling workflows.