Variance analysis
Budget vs Actual Analyzer
Budget vs actual analysis on a profit and loss or a balance sheet. Lines ranked by what moved the result, with a walk from budget to actual that reconciles. Balance-sheet movements use neutral increase/decrease interpretation.
Save or open an analysis file
Download a copy of the current inputs and answer to keep on your device. The file contains financial values and labels and is not encrypted. Opening it here stays in this browser; nothing is uploaded or automatically saved on this device. Keep the file somewhere you trust.
An opened file keeps its original answer. Recalculate separately when you want a result from the current method. Account workspace saves currently keep inputs only.
Import a table from Excel or CSV
Read a file locally, choose its table or range, and review the mapping before replacing inputs. No file is uploaded. Macros and formulas are never run. Account saves keep the imported input rows only; downloaded analysis files can also keep source references.
Reuse monthly periods and scenarios
Use one local monthly dataset for Actual, Budget, named Forecast versions or prior-year comparisons. No file is uploaded. The dataset stays in this page session; account saves keep generated input rows only. Downloaded analysis files keep the generated answer and source references, not the full monthly dataset.
Required CSV/TSV headings: Entity, LineItem, Nature, Period, Scenario, Version, Currency, Amount. Group and RowRole are optional. If RowRole is present, every row must say detail or subtotal; declared subtotals are excluded, without verifying their totals against children. Period uses YYYY-MM; Scenario is Actual, Budget or Forecast. Use a named Version for every scenario, such as Approved or As reported. Up to 2,000 source observations, in one reporting currency. Every selected entity/line is expected in every selected month; supply explicit zeros where appropriate.
Input data
One row per line item. The natures offered follow the statement. Fill Group to bar the chart by function; the table stays at line level either way.
Applies to what you type and to every figure on the page.
| Line item | Nature | Group | Budget | Actual | |
|---|---|---|---|---|---|
Tip: paste a rectangular range from Excel or Sheets.
Walk order
Ranked draws up to eight movements meeting the chart threshold, with the rest in Other. Statement order draws every line as entered. The driver table below is ranked either way, and the downloaded chart follows this choice.
Profit against budget
Income minus expense from the lines you tagged. Not statutory profit before tax.
+$4.00
Profit finished $4.00 favourable against Budget. Favourable movements of $13.00 were partly offset by $9.00 of adverse movements. COGS is the largest single driver at 36.4% of total movement.
- Budget
- $20.00
- Total favourable
- +$13.00
- Total adverse
- -$9.00
- Actual
- $24.00
Profit walk
Budget through the ranked drivers to Actual
Budget
$20.00
COGS
-$8.00
Revenue
+$7.00
New product revenue
+$4.00
Marketing
+$2.00
Payroll
-$1.00
Actual
$24.00
Show as table
| Line | Value | Context |
|---|---|---|
| Budget | $20.00 | Endpoint |
| COGS | -$8.00 | unfavourable |
| Revenue | +$7.00 | favourable |
| New product revenue | +$4.00 | favourable |
| Marketing | +$2.00 | favourable |
| Payroll | -$1.00 | unfavourable |
| Actual | $24.00 | Endpoint |
| Line | Value | Context |
|---|---|---|
| Budget | $20.00 | Endpoint |
| COGS | -$8.00 | unfavourable |
| Revenue | +$7.00 | favourable |
| New product revenue | +$4.00 | favourable |
| Marketing | +$2.00 | favourable |
| Payroll | -$1.00 | unfavourable |
| Actual | $24.00 | Endpoint |
Explore profit contributions · 5 input rows
Expand an entered group to see its lines. These are contributions to the unchanged profit walk; opening a group does not recalculate a filtered result. All detail remains here, including small and offsetting movements omitted from the chart. Group names are supplied labels, not a verified company hierarchy.
All entered contributions: +$4.00 · matches this walk’s movement
Ungrouped (no group supplied) · +$4.00 · 5 lines
| Input row | Line | Nature | Contribution |
|---|---|---|---|
| 1 | Revenue | income | +$7.00 |
| 2 | COGS | expense | -$8.00 |
| 3 | Payroll | expense | -$1.00 |
| 4 | Marketing | expense | +$2.00 |
| 5 | New product revenue | income | +$4.00 |
Worth knowing before you present this
- 1 unbudgeted line: New product revenue. Full impact, no percentage — there is no budget to divide by.
Drivers
Every line, ranked by absolute impact. Impact is the signed contribution to its walk; raw variance is simply actual less budget.
| Line item | Nature | Raw varianceActual − Budget | Variance %Raw variance ÷ |budget| | ImpactPositive is favourable | ContributionShare of total absolute movement, not a signed mix |
|---|---|---|---|---|---|
| COGS | expense | +$8.00 | 13.3% | -$8.00 | 36.4% |
| Revenue | income | +$7.00 | 7.0% | +$7.00 | 31.8% |
| New product revenueUnbudgeted | income | +$4.00 | n/a | +$4.00 | 18.2% |
| Marketing | expense | -$2.00 | -25.0% | +$2.00 | 9.1% |
| Payroll | expense | +$1.00 | 8.3% | -$1.00 | 4.5% |
No percentage: the budget is zero, so there is no base to divide by.
Where this analysis stops
- Both columns are read in USD. Where rates moved between them, the movement here still contains the translation — separate it in the FX Variance Bridge.
What has been checked
The calculation adds up from the entered rows. Business meaning and source completeness have not been independently verified.
- Arithmetic agreement does not verify the selected source, period, business meaning or statement completeness.
- This is the current calculation, not an immutable historical snapshot.
- Only the entered rows are included. No independent reported total has been supplied.
Period labels are entered text; a monthly dataset comparison is not currently linked.
Source references: input row 1, input row 2, input row 3, input row 4, input row 5. Imported references identify the selected source at import; editing a row clears its direct reference. Account saves keep input rows only.
Current threshold: 0. Ranked groups or lines below this absolute movement join Other; the top-eight limit still applies. Every input remains in the contribution view. Zero keeps the existing ranked chart.
Create an editable PowerPoint slide locally. The notes include calculation values, period labels and source references, including source file names when present. Edits in PowerPoint are not recalculated. No file is uploaded.
Reuse the analysis
Copy the summary, or export the rows and the chart.
Transparent by design
How this calculation works
Income increases and expense reductions are labelled favourable. Balance-sheet movements use neutral colours: an increase in an asset, liability or capital does not by itself establish better or worse performance.
Raw variance
Actual minus budget, for every nature. Never re-signed.
Impact
Actual minus budget for income, assets and capital. Budget minus actual for expenses and liabilities. Positive increases the walk total; balance-sheet impacts carry no favourable/adverse judgment.
Variance %
Raw variance divided by the absolute budget. Not calculated where budget is zero, or where budget and actual sit on opposite sides of zero. A line that falls to exactly zero keeps its percentage.
Contribution
Absolute row impact divided by the sum of all absolute impacts. A materiality scale, not a balance sheet total.
Profit walk
Budget profit plus the impacts equals actual profit, with income added and expenses subtracted. Profit here is income minus expense from the lines you tagged — not statutory profit before tax.
Balance sheet walks
Net assets and capital walk separately and are never added: net assets are capital, so one total would count the same movement twice.
Reconciliation
Where a walk does not land on its actual endpoint, the expected, calculated and residual figures are all shown. A difference is never spread across the lines.
Chart aggregation
Ranked, the chart draws up to eight groups or lines meeting the selected absolute movement threshold, with the rest combined in Other. A zero-net Other has no bar; its rows remain in the contribution view. Profit bars follow their signed impact; balance-sheet bars remain neutral. Statement order bypasses the threshold and draws every entered line or group. The driver table and expanded contributions keep every row.
The downloaded chart
The image is built from the same bars as the walk on screen, so a book of more than eight lines exports a chart that reaches its own closing total.