MosoFin · budget vs actual analysis, in plain words

Where did the money actually go?

You planned the month one way, and it went another way. This skill compares your actual results with a budget that you name, line by line. Then it finds the cause of each large gap and writes the explanation for your management meeting.

The 20-second version

You name the budget, the period and your thresholds. It reads your actual results and the budget. It calculates the gap on every line and labels each gap good or bad for profit. It explains the gaps above your thresholds, and it names a person for each cause it cannot see. It changes nothing in your books.

What a run finds

Northbrook Trading, September, against the FY26 Board Budget

Northbrook compares its September results with its budget, the "FY26 Board Budget". It set two thresholds: $5,000 and 10%. A line needs an explanation when its gap passes either threshold. The two thresholds and the "either" rule are Northbrook's own choice. The skill asks whether a gap must pass both thresholds or either one, and the report header records the answer. It never supplies a threshold.

LineBudgetActualGap $Gap %For profitExplanation?
Revenue420,000452,000+32,000+7.6%F, goodYes, on the dollar threshold
Other income2,0001,400−600−30.0%U, badYes, on the percent threshold
Cost of goods sold168,000185,600+17,600+10.5%U, badYes
Payroll96,00099,000+3,000+3.1%U, badNo: noted, with no explanation
Marketing30,00048,000+18,000+60.0%U, badYes
G&A40,00049,500+9,500+23.8%U, badYes
Insurance07,200+7,200no budgetU, badYes, on the dollar threshold. No percent
Net income88,00064,100−23,900−27.2%U, bad
Example figures for a made-up company, in dollars. Budget: 420,000 + 2,000 − 168,000 − 96,000 − 30,000 − 40,000 − 0 = 88,000. Actual: 452,000 + 1,400 − 185,600 − 99,000 − 48,000 − 49,500 − 7,200 = 64,100. The line effects on profit add to the same gap: +32,000 − 600 − 17,600 − 3,000 − 18,000 − 9,500 − 7,200 = −23,900. Six of the seven lines need an explanation. F is favourable and U is unfavourable.

On an expense line, a plus sign is bad news. Marketing is $18,000 over its budget. That is 18,000 ÷ 30,000 = 60%. The skill labels it U because marketing is an expense. The skill reads the type of each line from your chart of accounts, and never from the line's name. Insurance had no budget for September. The skill shows the $7,200 and the words "no budget". It does not divide by zero.

Profit below plan$23,90088,000 − 64,100. That is 23,900 ÷ 88,000 = 27.2% below the budget
Timing$19,20012,000 marketing + 7,200 insurance. This money moved between months. It will reverse
Cause to be confirmed$8,000A payment to a law firm, in G&A. The books show the payee. They do not show the reason
The mistake it catches

Revenue up $32,000 hides a price cut

A report that gives only the gap says revenue beat the plan. The skill splits the gap into its drivers: volume and price. Northbrook budgeted 2,800 units at $150. It sold 3,200 units at $141.25. Both figures come from the driver data that Northbrook supplies. Northbrook sells one product in US dollars, so the mix and exchange-rate parts are zero. The parts must add to the gap. The skill shows any difference that remains as "unexplained".

The gap alone

What a person sees in a two-column report
Revenue, budget$420,000
Revenue, actual$452,000
Conclusion"A good month"
The report restates the numbers. Nobody asks why the price fell.

The gap with its drivers

What the skill writes
Volume: (3,200 − 2,800) × $150+$60,000 F
Price: ($141.25 − $150) × 3,200−$28,000 U
Total+$32,000
The ledger shows lower invoice prices. It does not show the reason. So the cause stays "to be confirmed", and the sales director owns it.

Cost of goods sold works the same way. The budget cost per unit was 168,000 ÷ 2,800 = $60. The actual cost was 185,600 ÷ 3,200 = $58. Volume adds (3,200 − 2,800) × 60 = $24,000 U. The lower cost per unit saves (58 − 60) × 3,200 = $6,400 F. Together: $17,600 U. Most of that overrun comes from the extra units that also raised revenue.

An explanation must give the cause, and not only restate the numbers2. Managers compare actual results with budgets and look into unexpected results, so that they can fix them3. The skill applies that discipline to a private management report. It is not a tool for public-company filings.

How a run starts

Eight questions, in one message

The skill asks these questions first, in one short batch. It asks only for what it cannot already see.

  1. Use MosoFin for this run, or upload the data yourself?
    MosoFin is the connection to your books and the other platforms you link. With it, the skill reads from there. Without it, you upload the files, and the skill does the same work. The skill asks this only if your account has a MosoFin connection.
  2. Which entity, or which set of entities?
    Required. The skill compares each entity with its own budget. A missing entity looks like a cost saving.
  3. Which period: the month, the quarter to date, or the year to date? Is that period closed?
    Required. The year to date depends on the end of your financial year. In an open month, bills that nobody entered look like savings. If the period is not closed, or you do not know, the report says "PRELIMINARY".
  4. Which budget, by name: the original, a revised one, or the latest forecast?
    Required. Each version tells a different story. The skill never chooses one for you. If your books hold several budgets, it lists them and asks which one.
  5. Your thresholds: an amount and a percentage. Must a gap pass both, or either one?
    A $5,000 gap on a $10,000 line is 50%. On a $5 million line, it is noise. If you decline to give thresholds, the skill says that it applied no rule. It ranks every gap by its dollar size and explains from the largest down.
  6. Which one-time items happened in the period?
    Recommended. A one-time item, such as a legal settlement, must not look like a regular cost.
  7. What driver data do you have: units, headcount, prices, and the budget's own figures for them?
    Recommended. The split into drivers needs the actual and the budget figures. Your books often hold the actual units and prices. The planned figures usually come from you.
  8. Which grouping of lines does your management read?
    Recommended. It decides how the lines add up in the report.

Then it reads your answers back, and waits for your yes:

"Comparing Northbrook Trading's actuals for September, QTD and YTD on a December year-end, to the FY26 Board Budget, with both read from your Mosofin connection. September is closed. Thresholds $5,000 and 10%, and a line needs commentary when it passes either one. Prior year shown as a separate column. Shall I go ahead?"
What you need

Connect once, or upload two files and your choices

Connected with MosoFin

Say yes, then give it what no ledger holds

  • It reads your actual results by month and by line
  • It reads the budget, where your accounting platform holds it. It reads the list of budgets first and asks which one
  • It reads the prior year, the chart of accounts and its groups, and the transactions behind large lines
  • It reads your financial year-end, so the year to date means what your company means
  • You still give it the thresholds, the one-time items and the planned driver figures. They are usually not in the books
Uploading instead

Bring the actual results and the named budget

  • Actual results by line and by month for the period: a profit and loss export, CSV or XLSX, required
  • Budget or forecast by line and by month, with its version name, CSV or XLSX, required. Give its basis (cash or accrual) and any split by class, location or customer
  • Prior-year actual results at the same level of detail, CSV or XLSX, recommended
  • Chart of accounts with its report groups, CSV or XLSX, recommended. The skill takes F or U from the type of each line
  • Driver data: units, prices and headcount, CSV, XLSX or typed in the chat, recommended
  • Period, year-end and currency, thresholds and one-time items, typed in the chat

Keep your budget in the same categories as your accounting reports. Then the two sides compare line for line1.

What you get back

Six sheets, from the summary to the coverage

Variance summaryEvery line, with the gap in dollars and percent, F or U, and the budget version named on the face of the report. An open period has the mark "PRELIMINARY".
CommentaryFor each large gap: the drivers, timing or permanent, the effect on the full year, the action and the owner.
Driver detailThe split of each gap into volume, price, mix, FX, headcount, rate or one-time items, with the arithmetic.
Full-year outlookWhat the permanent gaps can mean for the year. It is arithmetic for you to discuss, and no forecast.
Waterfall dataThe steps from budgeted profit to actual profit, ready for a chart.
CoverageWhich tool read each figure, and where each cause came from: the ledger, a person, or still to be confirmed.

In September, Northbrook's marketing gap has two parts. $12,000 is a trade-show deposit for a November show. That is timing, and it will reverse. $6,000 is higher advertising cost, which is permanent. For three more months, that is 6,000 × 3 = $18,000. The marketing lead decides whether the higher cost continues. The skill asks before it makes an Excel file.

What it never does

Six rules that never bend

  • Never reads MosoFin without asking. A connected account is not permission to read it.
  • Never reads anything before you answer the intake questions and say yes to the read-back.
  • Never revises a budget, posts a reclassification or updates a forecast. Every recommendation is a proposal for a person. It never saves the gap figures, the commentary or the outlook.
  • Never chooses the period, the budget version, the thresholds or the entity for you. It never shows last year's results as a budget. Without a budget, there is no variance report.
  • Never invents a cause. Where the driver is unknown, it writes the gap, names the transactions behind it, and marks the cause "to be confirmed", with an owner.
  • Reports each entity first, then the group. It never compares one entity's actual results with the budget of a different entity.
Words you'll hear

Six terms, in plain English

Variance
The gap between the actual result and the budget. Accountants call the comparison variance analysis1.
Favourable, unfavourable
F means the gap helps profit. U means it hurts profit. More revenue is F. More cost is U.
Materiality threshold
The size of gap that needs an explanation. You set it, as an amount and a percentage.
Driver
The cause of a gap: volume, price, mix, exchange rates (FX), headcount, rate or a one-time item.
Timing variance
The money moved between months. It reverses later. A later month proves it.
Permanent variance
The business really spent or earned more or less. It does not reverse.
Sources

Where the facts on this page come from

The sources are a US Small Business Administration page, SEC guidance on management's analysis, and a US internal control tool. We found each one on 27 October 2026 in search results. We did not open the pages, so follow each link for today's wording. What the skill does comes from the skill's own files.

  1. US SBA: Why Bother with Financial ForecastsPlan-versus-actual analysis, which accountants call variance analysis, compares the forecast with the actual results. You see the difference and can make changes. Keep the budget's categories the same as the ones in your accounting reports.
  2. US SEC: Commission guidance regarding MD&A (Release 33-8350, 2003)The analysis should show the causes, for example a manufacturing difficulty, a fall in product quality or a loss of market share. It should not only restate the numbers.
  3. GAO: Internal Control Standards: Management and Evaluation Tool (GAO-01-1008G)Top management regularly compares actual performance with budgets, forecasts and prior periods. It looks into unexpected results so that it can fix them.

No outside authority backs the six stages, the F and U table, the six sheets or the volume and price split. They are the skill's own rules. The $5,000 and 10% thresholds and the "either" rule in the example are Northbrook's own choice, made up for this page. All three sources are US sources.

About this skill

This page explains budget-vs-actual-analysis, from the MosoFin finance skills library, MosoFin/mosofin-finance-skills on GitHub. Read the skill on GitHub → The card format of the skill is on main of MosoFin/mosofin-finance-skills. PR #1 merged it on 26 October 2026, and a bookkeeping-audit fix followed on 27 October 2026. This page describes that version. Want the worked examples? Learn it step by step →