A monthly report lands on the CFO's desk with 40 line items, each with budget, actual, variance, and a dutiful comment. The CFO reads all 40 and comes away knowing no more than before about what needs attention. The report explained everything, which is the same as explaining nothing. Most variances are noise: the normal month-to-month movement of a business that was never going to land exactly on budget. The job is not to explain all 40. It is to find the 3 that matter and ignore the rest with confidence.
The core insight
A variance is not automatically information. Most of the time it is just the difference between a forecast that was never exact and a reality that is inherently variable.
The question a variance should trigger is not "why is this number different from budget?" Almost every number is different from budget. The question is "is this difference bigger than this line normally moves, and big enough to matter?" A variance earns your attention only when the answer to both is yes. If a line item swings within its normal range, explaining it is a fiction: you are inventing a story for random noise. If a line moves outside its normal range but the dollars are trivial, explaining it is a waste: you are spending scarce analytical attention where no decision hangs.
Most variance reports are screened, if at all, by dollar size alone. That is the wrong single filter, because it flags large lines that were always going to vary a lot and misses small lines that have broken from their pattern. You need two filters, not one.
"A report that flags 3 signals is more useful than one that explains 40 variances."
The framework: the two-filter variance screen
Before investigating any variance, run it through two questions.
-
1Materiality: is it big enough to change an action?
Set a threshold in dollars, tied to decisions rather than to a percentage. A variance that cannot move any decision you would actually make does not deserve investigation no matter how large the percentage looks.
-
2Signal: is it outside the line's normal range?
Every line item has a characteristic volatility, how much it swings month to month for ordinary reasons. Estimate that range from history. A variance inside the range is noise. A variance outside it is a signal that something changed.
Only variances that clear both filters deserve real investigation. That gives 4 outcomes:
| Within normal range | Outside normal range | |
|---|---|---|
| Material dollars | Monitor. Large but normal. | Investigate. This is the signal. |
| Immaterial dollars | Ignore. | Note, low priority. |
A real month run through the screen
| Line | Budget | Actual | Variance | Normal range | Verdict |
|---|---|---|---|---|---|
| Revenue | $2,400,000 | $2,310,000 | −3.75% | ±1.5% | Investigate |
| COGS | $1,440,000 | $1,465,000 | +1.7% | ±2.5% | Monitor, in range |
| Payroll | $300,000 | $302,000 | +0.7% | ±1% | Ignore |
| Marketing | $120,000 | $138,000 | +15% | ±6% | Note, small dollars |
| Freight | $60,000 | $78,000 | +30% | ±8% | Watch, early signal |
Read by dollar size alone, COGS looks like the story: a $25,000 miss, the second largest in the report. But COGS moved inside its normal 2.5% range. It is noise, and writing a paragraph about it manufactures a cause that does not exist. Revenue is the real signal: a 3.75% miss against a line that normally holds within 1.5%, and material. That is the one line that should get the deep dive. Freight is tiny in dollars but has jumped far outside its band, so it earns a watch, not because of this month, but in case it is the leading edge of something.
The screen turns 40 comments into one investigation, one watch, and 38 lines you can leave alone with a clear conscience.
Why experienced managers get this wrong
-
1They comment on everything.
A report where every line has an explanation trains everyone to skim past all of them. The real signals drown in a sea of dutiful noise. Reporting by exception, saying nothing about the lines that behaved normally, is not laziness. It is what makes the exceptions visible.
-
2They chase the biggest dollar variance.
The largest absolute variance is often just the largest line item doing its normal thing. Size without context is not signal. A big line with big natural volatility will always top the list and will usually be nothing.
-
3They react to big percentages on small lines.
A 30% swing on a small cost line is eye-catching and usually immaterial. Percentage without dollars sends you chasing rounding.
-
4They treat one month as a trend.
A single variance is one data point. The signal in a business is usually the direction over several months, not the gap in any one of them. A line that is within range this month but has drifted the same way for 4 months can matter more than a one-off breach.
-
5They have no baseline for normal.
Without knowing how much a line usually moves, you cannot tell signal from noise at all, so every variance looks equally suspicious and gets the same shrug or the same panic. The normal range is the whole foundation. Without it, the other filter is guessing.
Putting it to work tomorrow
- Build a normal range for each major line, once. Pull 12 or more months of history and estimate how much each line typically swings for ordinary reasons. It does not need to be a formal control chart. A defensible high-low band is enough to separate a breach from routine movement.
- Set a materiality threshold tied to decisions. Pick a dollar level below which a variance would not change anything you do, and stop investigating below it. The variance screen calculator applies that threshold and the normal ranges together, and returns the verdict for each line. Free the analytical time for the variances that could actually move a call.
- Report by exception. Comment only on the lines that clear both filters. Let the silent lines stay silent. A 3 line variance narrative that names the real signals is worth more to a CFO than 40 lines that explain everything and reveal nothing.
The screen assumes each line has a stable history to define normal. It breaks where the baseline has genuinely shifted: a new pricing structure, an acquisition, a step change in volume, a new cost line with no history. In those cases the old range is meaningless and you reset it deliberately rather than trust it. And keep judgment for the small out-of-range variances: some of them, like the freight jump, are early warnings that matter long before they become material. The screen decides where to spend attention. It does not replace the reading of the business behind the numbers.
The principle worth keeping
The purpose of variance analysis is not to explain why every number differs from budget. Every number differs from budget.
"The purpose is to find the few gaps that are both real and worth acting on, and to say nothing about the rest."
Free Excel Model: FP&A Budget & Variance Template
An annual budgeting model with an assumptions hub, monthly P&L, actuals input and automatic variance reporting, so the screen above has something to run against.
Related Analysis & Tools
Put your own month through the 2 filters. Enter each line with the range it normally moves within, and the screen sorts them into investigate, monitor, note and ignore.
The same discipline pointed at forecasts: effort is only worth spending where it would change a decision, and most of it would not.
Why the assembly of the report eats the time that should have gone into deciding which 3 lines actually deserve a comment.
Where exception reporting sits in the wider workflow, between describing the month and deciding what to do about it.