Blog
Model Deep-Dives12 min5 September 2026Alex TapioBy Alex Tapio

EBITDA Bridge: How to Build One in Excel

EBITDA Bridge: How to Build One in Excel

Key Takeaways

  • An EBITDA bridge explains why EBITDA changed, not just that it changed - it's the difference between reporting a number and telling a story a board or investment committee can act on.
  • The eight-driver framework (Volume, Price, Variable Cost, SG&A, R&D, Other Opex, Restructuring, FX) covers most operating businesses; simplify or extend it based on how granular the underlying data supports.
  • Volume uses prior-year margin; price and variable cost use current-year volume. Getting these two conventions right is what keeps the bridge from double-counting or under-counting the interaction between price and volume.
  • Flip the sign on every cost driver so the entire bridge reads on one consistent "positive equals favorable" scale.
  • FX and restructuring should always be isolated - they represent real dollars but not real, repeatable operating performance, and blending them into the operating drivers hides the true run-rate trend.
  • Reconcile before you present. The sum of the driver effects must tie exactly (or within a tiny tolerance) to the actual CY-minus-PY EBITDA change. If it doesn't, there's a sign or double-counting error to find before the bridge goes in front of anyone.

For the full income statement, balance sheet, and cash flow build this bridge typically sits alongside, see our guide to pro forma financial statements. To understand how the EBITDA line flows into the rest of the model, read how the three financial statements link together, or start from the EBITDA bridge template used for the worked example above.

An EBITDA bridge decomposes the year-over-year change in EBITDA into the individual drivers that caused it - volume, price, cost, and FX - so a reader can see exactly why EBITDA moved instead of just that it moved. This guide walks through the standard eight-driver framework, the exact formulas for each effect, how to build the waterfall chart in Excel, and a fully worked, reconciling example.

A single EBITDA number tells you almost nothing about why performance changed. A company can grow EBITDA by raising prices while volume collapses, or it can grow EBITDA purely from a currency tailwind while the underlying business deteriorates. The EBITDA bridge - also called an EBITDA walk - exists to answer the "why" question, and it's one of the most requested exhibits in board decks, quarterly investor updates, and private equity investment committee memos. A partner reviewing a portfolio company doesn't want to hear "EBITDA is up 42% year over year" - they want to see how much of that came from real operating improvement versus a one-time item or a favorable FX rate.

flowchart LR A["PY EBITDA $750K"] --> B["+ Volume $200K"] B --> C["+ Price $220K"] C --> D["- Variable Cost $110K"] D --> E["- SG&A $50K"] E --> F["- R&D $20K"] F --> G["+ Other Opex $10K"] G --> H["- Restructuring $50K"] H --> I["+ FX $114K"] I --> J["CY EBITDA $1,064K"]

The eight-driver EBITDA bridge: each bar isolates one cause of the year-over-year change, and the bars sum exactly to the total move.


The Eight Standard Drivers

There's no universal law dictating how many drivers a bridge must have, but a robust EBITDA bridge for an operating business typically covers eight:

  1. Volume - the EBITDA effect of selling more or fewer units, holding price and cost constant.
  2. Price - the effect of charging more or less per unit, holding volume constant.
  3. Variable Cost - the effect of a change in cost per unit (materials, direct labor, logistics).
  4. SG&A - the change in selling, general, and administrative expense.
  5. R&D - the change in research and development spend.
  6. Other Opex - any other operating cost line not captured above.
  7. Restructuring - one-time or non-recurring costs, kept separate so they don't distort the read on run-rate performance.
  8. FX - the effect of currency translation, isolated from real operating performance.

The first two drivers isolate the revenue side of the walk; the next four isolate the cost side; the last two separate out items that aren't "real" operating performance in the current period. Every cost-side effect is signed so that positive always means favorable to EBITDA - a cost that went down shows up as a positive number, exactly like a revenue increase. That single convention is what lets a reader scan the bridge top to bottom without mentally flipping signs.


The Formulas

Each driver effect is calculated by holding every other variable constant and isolating the change in just one. Assume your Assumptions sheet has prior-year (PY) and current-year (CY) values for units sold, average selling price, variable cost per unit, and the fixed-cost lines, plus a CY FX factor (PY is anchored at 1.000).

Volume Effect

Volume is valued at the prior-year contribution margin per unit - you're asking "what would the extra units have been worth at last year's economics?"

// PY contribution margin per unit
= PY_Price - PY_VariableCost

// Volume effect
= (CY_Units - PY_Units) * PY_CM_Per_Unit

Price Effect

Price is valued at the current-year unit volume, since the price change applies to however many units you actually sold this year.

= (CY_Price - PY_Price) * CY_Units

Variable Cost Effect

Variable cost also uses current-year volume, and the sign is flipped so a cost decrease reads as favorable.

= (PY_VariableCost - CY_VariableCost) * CY_Units

Fixed-Cost Effects (SG&A, R&D, Other Opex, Restructuring)

Fixed costs aren't volume-driven, so each effect is simply PY minus CY - again, a cost decrease is positive.

= PY_SGA - CY_SGA
= PY_RandD - CY_RandD
= PY_OtherOpex - CY_OtherOpex
= PY_Restructuring - CY_Restructuring

FX Effect

FX is applied to revenue only - cost lines stay in the entity's functional currency, since most cost bases don't reprice with FX in the same period. The effect is the current-year revenue at the current FX rate minus the same revenue at a rate of 1.000 (the PY anchor).

= CY_Units * CY_Price * (CY_FX - 1)

Reconciliation Check

The eight effects should sum exactly to the actual change in EBITDA. Build this as a visible check row, not an afterthought - it's the only thing standing between a credible bridge and a silently wrong one.

= ABS(SUM(Volume, Price, VariableCost, SGA, RandD, OtherOpex, Restructuring, FX) - (CY_EBITDA - PY_EBITDA)) <= Tolerance

Live example: EBITDA Bridge in Excel

Loading...

Worked Example

Assume a manufacturing business with the following prior-year (PY) and current-year (CY) figures:

Assumption Prior Year Current Year
Units sold 100,000 110,000
Average selling price $50.00 $52.00
Variable cost per unit $30.00 $31.00
SG&A $800,000 $850,000
R&D $300,000 $320,000
Other opex $150,000 $140,000
Restructuring $0 $50,000
FX factor 1.000 1.02

Step 1 - Build the P&L to EBITDA for each period. FX applies to revenue only; variable cost stays in domestic currency.

Line Prior Year Current Year
Revenue (Units x Price x FX) $5,000,000 $5,834,400
Variable cost (COGS) $3,000,000 $3,410,000
Gross profit $2,000,000 $2,424,400
SG&A $800,000 $850,000
R&D $300,000 $320,000
Other opex $150,000 $140,000
Restructuring $0 $50,000
EBITDA $750,000 $1,064,400
EBITDA margin 15.0% 18.2%

Current-year revenue: 110,000 x $52.00 x 1.02 = $5,834,400. Current-year variable cost: 110,000 x $31.00 = $3,410,000 (no FX applied). The EBITDA change to explain is $1,064,400 - $750,000 = $314,400.

Step 2 - Compute each driver effect.

Driver Formula Effect
PY contribution margin/unit $50.00 - $30.00 $20.00
Volume (110,000 - 100,000) x $20.00 +$200,000
Price ($52.00 - $50.00) x 110,000 +$220,000
Variable Cost ($30.00 - $31.00) x 110,000 -$110,000
SG&A $800,000 - $850,000 -$50,000
R&D $300,000 - $320,000 -$20,000
Other Opex $150,000 - $140,000 +$10,000
Restructuring $0 - $50,000 -$50,000
FX 110,000 x $52.00 x (1.02 - 1) +$114,400
Total (should equal EBITDA change) $314,400

Step 3 - Reconcile. $200,000 + $220,000 - $110,000 - $50,000 - $20,000 + $10,000 - $50,000 + $114,400 = $314,400, which exactly matches the $1,064,400 - $750,000 EBITDA change computed in Step 1. The bridge reconciles with zero residual.

Reading the walk: volume and price together added $420,000 (the real commercial growth story), variable cost inflation and the SG&A/R&D step-ups ate $180,000 of that, a one-time restructuring charge cost another $50,000, and a favorable FX rate contributed $114,400 that had nothing to do with operating performance. A reader who only saw "+42% EBITDA growth" would have missed that roughly a third of the improvement came from currency, not the business.


Building the Waterfall Chart

Native Excel Waterfall (2016+)

Select your driver labels (PY EBITDA, Volume, Price, Variable Cost, SG&A, R&D, Other Opex, Restructuring, FX, CY EBITDA) alongside their dollar values, then go to Insert > Charts > Waterfall. Right-click the first and last bars and mark them as "Set as Total" - this anchors PY EBITDA and CY EBITDA to zero instead of stacking them on the running total like the driver bars in between. Excel colors increases and decreases automatically.

The Invisible-Base Technique (older Excel or Google Sheets)

If you're on a version without the native Waterfall chart type, build the same visual with a stacked bar chart and a hidden helper series:

// Running cumulative total after this driver's effect
= Previous_Cumulative + Driver_Effect

// Invisible base bar - the lower of the two cumulative points
= MIN(Previous_Cumulative, Current_Cumulative)

// Visible bar height - the size of the move
= ABS(Driver_Effect)

Stack the invisible base series (formatted with no fill) beneath the visible effect series, and each bar will appear to float at the correct height, rising or falling from the previous bar's endpoint - the classic waterfall look, built entirely from a standard stacked column chart.


Common Mistakes

  1. Applying FX to both revenue and costs. This double-counts the currency effect and breaks the reconciliation. Pick one basis - revenue-only is standard - and hold costs in the functional currency.
  2. Valuing volume at current-year margin instead of prior-year margin. This blends the volume and price effects together and makes the bridge non-reconciling. Volume should always be measured at the prior-year contribution margin per unit.
  3. Forgetting to flip the sign on cost effects. If a cost decrease shows up as a negative number, the reader will misread it as unfavorable. Every driver, revenue or cost, should follow the same "positive = favorable to EBITDA" convention.
  4. Burying restructuring inside SG&A or Other Opex. One-time items belong in their own bar. Blending them into a recurring cost line makes the underlying run-rate change unreadable.
  5. Skipping the reconciliation check. A bridge that doesn't visibly tie the sum of its drivers to the actual EBITDA change is not trustworthy - build the check row and treat any material residual as a bug to find, not a rounding footnote to ignore.
  6. Too many drivers. A 15-line bridge is unreadable in a boardroom. If a line contributes less than a few percent of the total swing, fold it into "Other."

Alex Tapio, founder of Finamodel and ex-Deloitte financial modelling expert

Alex Tapio

Founder of Finamodel • Professional Financial Modeller • Ex-Deloitte

alextapio.comx.com/alextapioLinkedIncontact [at] finamodel.com

Frequently asked

An EBITDA bridge (also called an EBITDA walk) is a waterfall analysis that decomposes the change in EBITDA between two periods - usually prior year vs. current year - into the individual drivers that caused it, such as volume, price, variable cost, fixed costs, and foreign exchange. Instead of just reporting that EBITDA rose or fell, a bridge shows exactly how much each factor contributed, which is why it's a standard exhibit in board decks, investor relations materials, and private equity IC memos.

There's no single mandatory list, but a robust bridge typically covers eight drivers: Volume, Price, Variable Cost, SG&A, R&D, Other Opex, Restructuring/one-offs, and FX. Volume and price isolate the revenue-side effects, variable cost and the fixed-cost lines isolate the cost-side effects, restructuring separates one-time items from the underlying run rate, and FX isolates currency translation from real operating performance. Fewer drivers is fine for a simple business; more granular businesses sometimes split volume further into mix effects.

In Excel 2016 or later, select your driver labels and effect values and insert a native Waterfall chart (Insert > Charts > Waterfall). Mark the first and last bars (PY EBITDA and CY EBITDA) as totals so Excel anchors them to zero instead of stacking them on the running total. If you're on an older Excel version or need the chart to work in Google Sheets, use the invisible-base stacked-bar technique instead: build a hidden 'base' series equal to the lower of the running total before and after each step, and a visible series equal to the absolute size of that step.

Isolate FX as its own driver so currency movements don't get mistaken for real operating performance. The cleanest approach applies the FX rate only to revenue - translate current-year units and price at both the prior-year rate and the current-year rate, and the difference between the two is the FX effect. Cost lines are typically left in the entity's functional (domestic) currency and excluded from the FX calculation, since most cost bases don't reprice with FX in the same period.

A revenue bridge decomposes the change in top-line revenue - typically into price, volume, mix, and FX. An EBITDA bridge goes further down the income statement and decomposes the change in EBITDA, which means it has to account for cost-side drivers (variable cost per unit, SG&A, R&D, other opex, restructuring) in addition to the revenue drivers. A revenue bridge is often built first as an input to the EBITDA bridge's volume and price effects.

A bridge that doesn't tie out almost always has a sign or double-counting error. Common causes: applying the FX rate to both revenue and costs (pick one basis and be consistent), computing the volume effect off the wrong contribution margin (use the prior-year margin per unit, applied to the change in units), or forgetting that cost effects should be measured as PY minus CY so a cost decrease shows up as a positive, favorable number. Build a reconciliation row that sums all driver effects and subtracts the actual CY-minus-PY EBITDA change - it should equal zero (or fall within a small rounding tolerance).

Have more financial modelling questions? Contact us

Go further

Build the financial model you need with Fina AI

Browse templates, examples, and downloadable Excel models for the analysis you are trying to build. If you can't find your model, ask Fina to build a model for your specific needs.

Excel financial model spreadsheet preview showing Customer Rollforward
Fina interactive chat interface preview
Career Principles

Learn Financial Modelling Skills with industry-leading Career Principles

Breaking into the finance industry? Explore courses in Excel, financial modeling, valuation, data analytics, and AI for business and finance.

Career Principles lesson on preparing a cash flow statement in Excel
Career Principles Financial Analyst Program
Career Principles Python for Data Analysis
Career Principles AI for Business and Finance course