Forecraft
PricingLive demo
Sign inTry ForeCraft free →

Worked examples

Variance analysis examples and templates

Worked variance examples showing how to explain a movement rather than restate it.

  1. Home /
  2. Resources /
  3. Variance analysis examples

By ForeCraft · Published 2026-09-08 · Updated 2026-09-08

Variance analysis compares each line of the accounts against a prior period or budget and explains why it moved. This page shows the arithmetic on a worked example, a two-part materiality rule for deciding which lines deserve attention, and how to name the driver behind each movement rather than restating the number.

Download

forecraft-variance-analysis-template.csv — a blank template with the formula notes in the header and columns for driver, explanation, owner, and due date.

The two calculations

For any line, comparing a current period against a prior period:

Variance      = Current − Prior
Variance %    = Variance ÷ ABS(Prior) × 100

Use ABS(Prior) in the denominator rather than Prior. If the prior figure is negative — a contra-revenue line, or a credit sitting in an expense category — dividing by the signed value flips the sign of the percentage and makes an increase look like a decrease.

A worked example

The figures below are illustrative and invented for this example. They are not a customer, a case study, or an industry benchmark.

CategoryPriorCurrentVarianceVariance %Flagged
Revenue120,000132,000+12,000+10.0%Yes
Cost of goods sold48,00056,100+8,100+16.9%Yes
Payroll41,00041,400+400+1.0%No
Software and subscriptions3,2005,900+2,700+84.4%Yes
Marketing9,0006,300−2,700−30.0%Yes
Professional fees1,5001,530+30+2.0%No

The materiality rule used above

A line is flagged when either test is met:

  • the absolute variance is at least 2,000 (a fixed amount you set per client), or
  • the variance is at least 10 percent of the prior figure.

Applying only one test misses real movements in both directions:

  • Percentage alone misses payroll. Payroll moved +400, which is under one percent — correctly ignored here. But on a larger base a movement can be financially significant while staying under any percentage threshold. The absolute test is what catches it.
  • Absolute alone misses software. Software rose by 2,700 — small in currency terms against revenue of 132,000, but an 84 percent increase on a normally stable line. That pattern usually means an annual renewal posted in one month, a new tool, or a duplicate subscription. The percentage test is what catches it.

Professional fees rose by 30, or 2 percent — below both thresholds, so it is correctly left alone. Not flagging a line is a decision worth making deliberately; a pack that flags everything communicates nothing.

Naming the driver

A variance table that stops at the number is only half the work. Each flagged line needs a driver, and there are only five useful categories:

DriverMeansExample from the table above
VolumeMore or fewer units, customers, or hoursRevenue +12,000 alongside cost of goods sold +8,100
PriceThe same volume at a different rateA supplier increase inside cost of goods sold
TimingCost landed in this period but relates to severalSoftware +2,700 from an annual renewal
One-offGenuinely non-recurringA campaign that did not repeat, reducing marketing
CorrectionA coding or cut-off errorAnything traced back to the wrong category

If the driver is correction, stop and fix the books rather than explaining the error in the pack. If it is timing, say so explicitly — otherwise the reader assumes a permanent step change and plans around a cost that will not recur.

Checking gross margin, not just gross profit

Revenue rose 10.0 percent and cost of goods sold rose 16.9 percent in the example. Both look healthy in isolation, but the ratio moved:

Prior gross margin    = (120,000 − 48,000) ÷ 120,000 = 60.0%
Current gross margin  = (132,000 − 56,100) ÷ 132,000 = 57.5%

A 2.5 point margin decline in a growing month is the most important line in this table, and it appears nowhere in the variance column. Ratios have to be checked separately from movements.

Doing this automatically

ForeCraft runs this comparison across every line, ranks what moved, and drafts the explanation with the source row attached, so you can trace any figure back to the file it came from.

ForeCraft for fractional CFOsSee a worked pack

Related resources

  • How to write monthly financial commentary — turning a flagged variance into a sentence.
  • Monthly close checklist — where variance analysis sits in the month.
  • CFO management pack template — the section this table feeds.
  • All resources
HomePricingDemoSecurityResources