Skip to content
Reportly AI
Features and Functionality

Variance analysis: budget vs actual without the pain

DTDavid Tarkhanyan8 min read

Key takeaways

  • Variance analysis answers three questions, always in order: what drifted, by how much, and why.
  • You need both the dollar variance and the percentage. Each one alone will mislead you.
  • "Favourable" and "unfavourable" describe direction, not virtue. An underspend can be worse news than an overspend.
  • Investigate the top three variances by materiality, not all of them. Explanation fatigue kills the practice.
  • The output is a decision (reforecast, reallocate, or accept), not a report.

The three questions variance analysis answers

Every variance review, whether it's a founder with a spreadsheet or a listed company's finance team, is answering the same three questions:

What drifted? Which lines came in different from plan. This is mechanical: subtract budget from actual for every line.

By how much? The size of each gap, in dollars and in percent. This is where you rank what deserves attention.

Why? The driver behind the biggest gaps. This is the only step requiring thought, and the only one that creates value. The first two exist to make sure you spend the thinking on the right lines.

The order matters more than it looks. Teams that start with "why" theorize before measuring, and the theorizing anchors on whatever's already worrying them. Teams that stop after "by how much" produce accurate tables that change nothing. Run the three in sequence every month and the practice stays both honest and useful.

How to calculate variance

Absolute vs percentage

Two formulas, both trivial, both necessary:

  • Absolute variance = actual − budget (in dollars)
  • Percentage variance = (actual − budget) ÷ budget × 100

For cost lines, a positive result means you spent more than planned. For revenue, a negative result means you earned less. Some teams flip signs so that "positive = good" everywhere; either convention works as long as you never change it mid-year.

Favourable vs unfavourable, and why the labels mislead

Accounting convention labels a variance "favourable" when it improves profit (revenue above budget, costs below) and "unfavourable" when it hurts profit. The labels are useful shorthand and terrible analysis. A marketing underspend is "favourable," but if it happened because the campaign that drives Q4 pipeline never launched, it's genuinely bad news wearing a green flag. A COGS overspend is "unfavourable," but if it's because you sold 20% more than planned, congratulations. Read the labels as direction indicators, then think, and never let a report auto-color variances green and red without a human pass, because that coloring is exactly the misleading part.

Worked example

Line itemBudgetActualVariance%Flag
Revenue120,000108,000(12,000)-10.0%Unfavourable
COGS42,00040,5001,500-3.6%Favourable
Payroll55,00061,000(6,000)+10.9%Unfavourable

Notice the COGS line: spending less on goods while revenue missed by 10% isn't a win, it's mostly the same story (you sold less, so you spent less delivering it). Reading lines together, not in isolation, is half the skill.

Which variances are worth investigating

Not all of them. A twenty-line budget produces twenty variances every month, and if you write a paragraph on each, you'll do this for two months and quit. Set a materiality threshold and only investigate what crosses it.

Use both a percentage and an absolute threshold, because each fails alone. A 40% variance on a $200 software line is $80; who cares. A 2% variance on $500,000 of revenue is $10,000; care a lot. A practical rule for an SME: investigate anything that's both over 5% and over some fixed dollar amount that's meaningful for your size ($1,000 for a small company, $5,000 for a larger one). Then, regardless of thresholds, take the three largest absolute variances and explain those. Three sentences a month is a sustainable practice. Twenty paragraphs is not.

One caveat on thresholds: they're blind to slow drift. A cost line running 4% over budget every single month never trips a 5% rule and still ends the year 4% over on everything. So add one scan to the monthly routine: any line that's moved the same direction for three consecutive months gets a look, whatever its size. Thresholds catch events; the three-month scan catches trends.

Price, volume, or mix: finding the real driver

"Revenue missed by $12,000" isn't an explanation. It's a symptom. The explanation is which of three drivers moved:

  • Volume: you sold fewer units than planned.
  • Price: you sold at lower prices than planned.
  • Mix: you sold a different blend of products, weighted toward cheaper ones.

Decompose the example above. Budget assumed 400 units at $300 each ($120,000). Actual was 375 units at an average $288 ($108,000). Then:

  • Volume variance = (375 − 400) × $300 = ($7,500)
  • Price variance = ($288 − $300) × 375 = ($4,500)
  • Total = ($12,000)

Now you know something actionable: most of the miss is volume, but a third of it is price, and those have completely different fixes. Volume problems point at pipeline and demand. Price problems point at discounting, and discounting usually means a sales behavior you can change this week. If you sell multiple products, run the same decomposition per product and the mix effect falls out of the comparison. This ten-minute arithmetic is the difference between a variance report and variance analysis.

The same logic works on cost lines, where the split is rate vs usage instead of price vs volume. Take the payroll overspend from the table: $61,000 actual against $55,000 budget. Was it rate (you're paying more per person, perhaps an off-cycle raise or contractor premium) or usage (more hours or heads than planned, perhaps overtime covering a backlog)? Budget assumed 11 people at an average $5,000; if actuals show 11 people averaging $5,545, it's pure rate, and the question is whether the new rate is permanent. If it's 12 people at $5,083, it's mostly headcount, and the question is whether the twelfth person was a plan change nobody told the budget about. Same $6,000 variance, entirely different conversations.

Turning variance into a decision

A variance explained but not acted on is trivia. Every material variance should end in one of three decisions:

Reforecast. The world changed and the plan should too. The customer who churned isn't coming back; take their revenue out of the remaining months so every future decision uses real numbers.

Reallocate. The total plan holds but the internals move. Marketing underspent because a hire started late; shift the freed budget to the channel that's overperforming.

Accept. It's a timing difference or noise. The invoice landed in the wrong month; note it and move on. Timing variances deserve one specific habit: track them to their reversal. If June's "favourable" $4,000 marketing underspend is really July's invoice arriving late, July will show a matching overspend, and if you flagged it in June, July's review takes one sentence instead of an investigation. Choosing "accept" consciously is fine. Reaching it by default because nobody decided is how budgets rot.

Write the decision next to the variance in the monthly pack. "Payroll +$6,000: contractor covering the support backlog, ends in March, forecast updated" is a complete piece of variance analysis in one line. Over a few months these one-liners become something valuable in their own right: a running record of what actually happened to the plan, which is exactly the material you need when next year's budget gets built and someone asks whether the marketing number was ever realistic.

Let the variance table build itself. You write the three sentences that matter.

Doing this without spreadsheets

The spreadsheet version of this practice fails in predictable places. Actuals are re-keyed or pasted from the accounting system, so they're stale by the time anyone reads them, and occasionally wrong in ways nobody catches. The budget lives in one tab, actuals in another, and the links between them break when someone inserts a row. There's no audit trail, so when a number looks odd, you can't tell whether it's a real variance or a formula casualty. And because assembly consumes the available time, the "why" step, the only one that matters, gets skipped.

The failure is rarely dramatic. It's a sequence: month one the review runs long, month two it's squeezed to the big lines, month three it slips a week, month four the file doesn't get opened, and the budget quietly becomes a document from January that nobody compares against. The practice didn't fail because it wasn't valuable; it failed because the overhead was charged before the value.

None of this means spreadsheets can't do variance analysis; they can, and for a ten-line budget they're fine. It means the manual assembly is the fragile, valueless part, which is exactly the part budgeting and forecasting software automates: actuals flow in from your accounting system, the variance table builds itself, and your monthly time goes to the three sentences of "why" and the three decisions.

Frequently asked questions

What is variance analysis in accounting?

It's the comparison of budgeted figures against actual results, line by line, to quantify and explain the differences. It's the core monthly discipline connecting a budget to real decisions.

What's a good variance percentage?

There's no universal number; the useful question is materiality. A practical SME rule is to investigate variances that are both over 5% and over a fixed dollar floor meaningful for your size, and always explain the three largest.

What does favourable vs unfavourable variance mean?

Favourable improves profit versus plan (revenue over, costs under); unfavourable does the opposite. The labels indicate direction only, and a "favourable" underspend can hide genuinely bad news, like a delayed launch.

How often should you run variance analysis?

Monthly, immediately after the books close. Quarterly reviews let problems compound for ninety days before anyone looks.

What causes budget variance?

Three families of causes: execution differences (sold less, spent more), assumption errors (the budget itself was wrong), and timing (right numbers, wrong month). Identifying which family you're in matters, because they call for different fixes.