Variance Analysis in Excel — Free Template & Step-by-Step Guide

Variance analysis is the engine behind every management accounts pack, board report, and FP&A review. This tutorial walks through building a complete variance analysis model in Excel from scratch: budget vs actual, month-over-month, year-over-year, and the full price-volume-mix decomposition. No add-ins, no macros. Every formula explained.

Dr Waqas Rafique Dr Waqas Rafique · Founder & CTO · PhD, Statistical Machine Learning
· About
📄
Free Variance Analysis Template Budget vs Actual, Period-over-Period, and Price-Volume-Mix — all pre-built. Connect your data in minutes.
Get the free template →

TL;DR

Variance = Actual − Budget. Variance % = (Actual − Budget) / ABS(Budget). Colour-code with conditional formatting (green = favourable, red = adverse). For deeper insight, split total revenue variance into Price variance (price change × actual volume) + Volume variance (volume change × budget price) + Mix variance (product mix shift × budget prices). Visualise with a waterfall chart. The whole model takes about 45 minutes to build.

Contents

  1. What is variance analysis?
  2. Types of variance covered
  3. Step 1 — Set up the data structure
  4. Step 2 — Calculate absolute variance
  5. Step 3 — Calculate percentage variance
  6. Step 4 — Add conditional formatting
  7. Step 5 — Build a variance waterfall chart
  8. Step 6 — Add period-over-period columns
  9. Price-Volume-Mix variance (advanced)
  10. Common mistakes
  11. Skip the build — DataHub Pro
  12. FAQ

What is variance analysis?

Variance analysis is the process of comparing a planned (budget or prior period) figure against an actual result, quantifying the difference, and diagnosing why that gap exists. It is one of the most fundamental techniques in financial planning and analysis (FP&A), management accounting, and operations management.

At its simplest, a variance is just subtraction: Actual minus Budget. But the discipline goes much further than arithmetic. Good variance analysis answers three questions: how large is the gap? (magnitude), is it good or bad? (direction and sign convention), and what caused it? (decomposition).

The sign convention is the first thing that trips people up. In revenue contexts, a positive variance — actual exceeds budget — is favourable (F). In cost contexts, a positive variance — actual costs exceed budget — is adverse (A). Many Excel models get this wrong because they use a single conditional formatting rule across the whole P&L without accounting for the direction flip between revenue and cost lines.

There are four main types of variance you will encounter in finance and operations work:

In finance contexts, variance analysis typically operates at P&L line level: revenue, gross margin, operating expenditure, EBITDA. The audience is the CFO, board, or budget holders. In operations contexts, variance analysis goes deeper: materials price variances, labour efficiency variances, overhead absorption variances. The audience is plant managers and procurement teams.

This tutorial focuses on the finance and commercial use case — the kind of variance model you would build for a monthly management accounts pack or a revenue bridge presentation. The formulas are identical in both contexts; only the line item labels change.

Excel remains the tool of choice for variance analysis in most organisations below enterprise scale. It is flexible enough to handle non-standard P&L structures, quick to update with monthly actuals, and easy to share without specialist software. The main limitations — manual data entry, formula fragility at scale, and limited drill-through capability — are covered in the final section.

Types of variance covered in this tutorial

1. Budget vs Actual variance

The simplest and most common form. You have a budget (set at the start of the year, quarter, or month) and you compare it to what actually happened. The output is an absolute variance (£ or $) and a percentage variance. This is the backbone of monthly management accounts.

Example: Revenue budgeted at £500,000, actual £473,000. Variance = −£27,000 (adverse, 5.4% below budget).

2. Period-over-period variance (MoM, YoY)

Instead of comparing against a forward-looking budget, you compare against a historical period. Month-on-month (MoM) reveals recent trend changes. Year-on-year (YoY) strips out seasonality by comparing the same calendar period. Both use the same formula; only the reference column changes.

YoY is particularly important for businesses with strong seasonality (retail, hospitality, travel) where comparing November to October is meaningless but comparing November to November last year is very meaningful.

3. Price-Volume-Mix variance (3-way split)

The most powerful decomposition for revenue analysis. When revenue is below budget, is it because you charged less, sold less, or sold a less profitable mix? The three-way split answers that question precisely. The three components must sum to the total revenue variance — this acts as a built-in reconciliation check. Covered in full detail in the Price-Volume-Mix section below.

1.Step 1 — Set up the data structure

Open a new Excel workbook and create a sheet named Variance Report. Set up the following column structure starting at column B (leave column A for row labels):

AB (Actual)C (Budget)D (Variance)E (Variance %)
Revenue473,000500,000
Cost of Sales189,200195,000
Gross Profit283,800305,000
Operating Expenses112,500108,000
EBITDA171,300197,000

Add a header row at row 1 with column labels. Put the period label (e.g. May 2026) in cell B1. Freeze row 1 and column A (View → Freeze Panes → Freeze First Row, then repeat for the column). This keeps labels visible as you scroll across multi-month reports.

If you are building a multi-month report, repeat the four columns (Actual, Budget, Variance, Variance %) for each month. A typical full-year report will have columns B through W (4 columns × 6 months, or adjust for your reporting period). Use a named range or structured table to make the formulas easier to read.

Tip: Format the Actual and Budget columns as your local currency (Accounting format). Format the Variance column as Accounting with a custom format that shows negative numbers in red: [Red]-#,##0;[Black]#,##0. This gives you a visual cue before conditional formatting is applied.

2.Step 2 — Calculate absolute variance

In column D (Variance), enter the following formula in D2 (the Revenue row):

=B2-C2

This is Actual minus Budget. Copy this formula down to all P&L line rows. Do not hard-code any values — all variance cells should be formula-driven so the model updates automatically when you paste in new actuals each month.

The sign interpretation depends on the line item type:

Line typePositive varianceNegative variance
Revenue / Income linesFavourable (F) — sold moreAdverse (A) — sold less
Cost / Expense linesAdverse (A) — overspentFavourable (F) — underspent
Profit subtotalsFavourable (F) — higher profitAdverse (A) — lower profit

Many analysts add a helper column that appends “F” or “A” to the variance using an IF formula. For a revenue line in D2:

=TEXT(ABS(D2),"#,##0")&IF(D2>=0," F"," A")

This displays the variance as 27,000 A or 8,500 F — a format common in UK management accounts. For cost lines, flip the condition: IF(D2<=0," F"," A").

3.Step 3 — Calculate percentage variance

In column E (Variance %), enter in E2:

=(B2-C2)/ABS(C2)

Always wrap the denominator in ABS(). This is critical. If the budget value is negative (e.g. a budgeted loss of −£50,000), dividing by a negative number reverses the sign of the percentage, making a favourable outcome look adverse. ABS() prevents this.

Format column E as a percentage with one decimal place (e.g. 5.4%). If the budget figure could ever be zero (a line item with zero budget that received actual spend), protect against the divide-by-zero error:

=IF(C2=0,"N/A",(B2-C2)/ABS(C2))

Alternatively, use IFERROR to suppress the error silently:

=IFERROR((B2-C2)/ABS(C2),"")

The IFERROR version is cleaner for a finished report but hides potential data quality issues. In a working model, IF(C2=0,"N/A",... is more transparent because it flags zero-budget lines explicitly.

4.Step 4 — Add conditional formatting

Conditional formatting is what transforms a variance column from a wall of numbers into something a reader can parse in seconds. The challenge in a P&L model is that the colour logic is opposite for revenue and cost lines.

For revenue and profit lines (rows 2, 4, 5 in our example)

Select the Variance cells for these rows (e.g. D2, D4, D5). Go to Home → Conditional Formatting → New Rule → Format only cells that contain. Set up two rules:

For cost lines (row 3 in our example)

Select the Variance cells for cost rows (e.g. D3). Apply the same rules but inverted:

Apply the same conditional formatting rules to the Variance % column (E) using the same logic.

Pro tip: Avoid using the built-in 3-colour scale for a P&L variance column. It calculates green/red relative to the range values, which means a “least bad” adverse variance might show as green. Use explicit above/below zero rules instead so the colouring has absolute meaning.

5.Step 5 — Build a variance waterfall chart

A waterfall (bridge) chart is the standard way to visualise how individual variance components add up to a total. It shows a starting value (e.g. Budget EBITDA), then a series of positive and negative bars representing each line item’s contribution, ending at Actual EBITDA.

Using Excel 2016+ built-in waterfall

Excel 2016 and Microsoft 365 include a native Waterfall chart type. Set up a two-column helper table with the variance components:

LabelValue
Budget EBITDA197,000
Revenue variance-27,000
CoS variance+5,800
Opex variance-4,500
Actual EBITDA171,300

Select both columns, go to Insert → Charts → Waterfall. Right-click the first bar (Budget EBITDA) and select Set as total. Do the same for the last bar (Actual EBITDA). Excel will render the intermediate bars as floating segments above the baseline.

Colour coding the waterfall

Double-click any bar to open the Format Data Point pane. Set positive variance bars to green (#22c55e) and negative variance bars to red (#ef4444). Keep the total bars in your brand colour or neutral grey. This makes the bridge chart immediately interpretable: how much green vs red, and which line items drove the gap.

For Excel 2013 or earlier

Build a stacked bar chart manually. You need three series: an invisible base, a positive variance series, and a negative variance series. The base series floats each bar to the correct position; format it with no fill and no border. This is more work but produces the same result.

6.Step 6 — Add period-over-period comparison columns

Alongside your budget vs actual view, most management reports also include a prior period comparison. Add a second block of columns to the right of your budget vs actual section:

AF (Current Month)G (Prior Month)H (MoM Variance)I (MoM Var %)J (Prior Year)K (YoY Variance)L (YoY Var %)
Revenue473,000451,000432,000

The MoM variance formula in H2:

=F2-G2

The MoM variance % formula in I2:

=(F2-G2)/ABS(G2)

The YoY variance in K2:

=F2-J2

The YoY variance % in L2:

=(F2-J2)/ABS(J2)

Apply the same conditional formatting rules from Step 4 to these new variance columns. For a multi-month report, the Current Month and Prior Month columns reference the relevant monthly actuals columns rather than fixed values — use INDEX/MATCH or OFFSET to pull the correct month dynamically based on a period selector.

YoY tip: If you are comparing a period where the prior year had an exceptional item (e.g. a one-off write-down), consider adding a “normalised” prior year column that strips out the exceptional. Label it clearly so the reader knows they are seeing an adjusted comparison.

Price-Volume-Mix variance (advanced)

Price-Volume-Mix (PVM) analysis is the standard decomposition used by FP&A teams to explain revenue variances to commercial leadership. When revenue is £27,000 below budget, management wants to know: did we charge less per unit (price), sell fewer units (volume), or sell a worse mix of products (mix)? PVM answers this precisely.

You need a product-level breakdown with four fields per product: Actual Price, Budget Price, Actual Volume, and Budget Volume.

ProductAct PriceBud PriceAct VolBud VolPrice VarVolume VarMix Var
Product A48.5050.004,2004,000
Product B120.00115.001,1001,500
Product C22.0022.003,8003,500

Price variance formula

Price variance measures the revenue impact of selling at a different price, holding volume at actuals (so we are asking: “how much more/less revenue did the price change alone generate?”).

Price Variance (per product)
= (Actual Price − Budget Price) × Actual Volume

In Excel, with Actual Price in B2, Budget Price in C2, Actual Volume in D2:

=(B2-C2)*D2

For Product A: (48.50 − 50.00) × 4,200 = −£6,300 (adverse — sold at a lower price than planned)

Volume variance formula

Volume variance measures the revenue impact of selling a different total quantity, holding price at budget rates. We hold price at budget because we want to isolate volume as the only variable.

Volume Variance (per product)
= (Actual Volume − Budget Volume) × Budget Price

In Excel, with Budget Price in C2, Actual Volume in D2, Budget Volume in E2:

=(D2-E2)*C2

For Product A: (4,200 − 4,000) × 50.00 = +£10,000 (favourable — sold more units than planned)

Mix variance formula

Mix variance is the residual. It captures the revenue impact of selling a different proportion of each product within the total volume. Even if total volume and individual prices are exactly on budget, shifting customers from high-price products to low-price products depresses average revenue per unit — and that impact is mix variance.

Mix Variance (per product)
= (Actual Mix % − Budget Mix %) × Total Actual Volume × Budget Price

Where Actual Mix % = Actual Volume for this product ÷ Total Actual Volume across all products, and Budget Mix % = Budget Volume for this product ÷ Total Budget Volume across all products.

In Excel, assuming total actual volume is in a cell named TotalActualVol and total budget volume in TotalBudgetVol:

=(D2/TotalActualVol - E2/TotalBudgetVol)*TotalActualVol*C2

Reconciliation check

The three components must sum to the total revenue variance. Add a reconciliation row at the bottom:

=SUM(F2:F4) + SUM(G2:G4) + SUM(H2:H4)

Compare this to your total revenue variance from the budget vs actual sheet. If they match, your PVM decomposition is correct. If not, check for rounding errors in the mix percentage calculation — use more decimal places or avoid percentage rounding until the final display step.

ComponentAmountInterpretation
Price variance−£6,300Sold at lower prices overall
Volume variance+£10,000Sold more units overall
Mix variance−£4,200Sold more low-price products
Total revenue variance−£500Net adverse vs budget

This output tells a clear story: volume was strong (+£10,000 favourable), but the pricing discount (−£6,300) and the unfavourable product mix shift (−£4,200) more than offset it, leaving a small net adverse revenue variance. Without PVM analysis, all you would know is that revenue was £500 below budget — which tells you almost nothing about what to do next.

Common mistakes in Excel variance analysis

Frequently asked questions

What is favourable vs adverse variance?
A favourable variance improves profit: actual revenue above budget, or actual costs below budget. An adverse (unfavourable) variance reduces profit: actual revenue below budget, or actual costs above budget. The sign convention depends on the line item — a positive variance on a revenue line is favourable, but a positive variance on a cost line is adverse. UK management accounts conventionally abbreviate these as “F” and “A”.
What is the formula for budget vs actual variance in Excel?
Absolute variance: =Actual-Budget. Percentage variance: =(Actual-Budget)/ABS(Budget). Always use ABS() on the denominator to prevent incorrect sign reversals when the budget figure is negative (e.g. a budgeted loss). If the budget could be zero, wrap in IFERROR or use IF(Budget=0,"N/A",...) to avoid #DIV/0! errors.
How do you calculate price variance in Excel?
Price variance = (Actual Price − Budget Price) × Actual Volume. In Excel, if Actual Price is in C2, Budget Price in D2, and Actual Volume in E2, the formula is =(C2-D2)*E2. This isolates the revenue impact of pricing changes alone, holding volume constant at actual. A negative result means you charged less than planned; a positive result means you charged more.
What is the formula for volume variance?
Volume variance = (Actual Volume − Budget Volume) × Budget Price. In Excel: =(E2-F2)*D2, where E2 = Actual Volume, F2 = Budget Volume, D2 = Budget Price. This shows how much revenue was gained or lost purely because of selling more or fewer units than planned, valued at the budgeted price. Volume and price variances together with mix variance should reconcile to total revenue variance.
What is mix variance and how do you calculate it?
Mix variance measures the revenue impact of selling a different product mix than planned, even if total volume and individual prices were on budget. Formula per product: = (Actual Mix % − Budget Mix %) × Total Actual Volume × Budget Price. Where Actual Mix % = product’s actual volume ÷ total actual volume. This is the most complex of the three PVM components and requires a product-level breakdown to calculate.
What is price-volume-mix variance analysis?
Price-volume-mix (PVM) analysis decomposes the total revenue variance between two periods into three components: (1) Price variance — change due to selling at a different price, (2) Volume variance — change due to selling a different total quantity, (3) Mix variance — change due to selling a different combination of products. The three components must sum to the total revenue variance, which provides a built-in reconciliation check.
How do I visualise variance in Excel?
The most effective visualisation is a waterfall (bridge) chart. In Excel 2016+, insert a Waterfall chart directly from Insert → Charts. Mark the first and last bars as “totals”. Colour positive variance bars green and negative bars red. For older Excel versions, build a stacked bar chart with an invisible base series. Conditional formatting on the variance column (green for favourable, red for adverse) also works well for tabular reports.
Can DataHub Pro automate variance analysis?
Yes. DataHub Pro calculates budget vs actual variances, period-over-period comparisons, and price-volume-mix breakdowns automatically from your uploaded data. The waterfall chart and conditional formatting are generated instantly without any manual formula work. You can register for free at datahub-pro-production.up.railway.app/register.

Related tutorials & further reading