How do I set a budget in my books and compare it against actuals each month?

Applies to: United States · Updated 2026-09-30

Build the plan from last year's actuals for the accounts you intend to control, after removing one-off items and moving miscoded amounts. Enter it by month in your accounting system or a spreadsheet, spread to your own seasonal pattern. After each month's books are closed, compare budget with actual on the same basis and whole-month date range, sort each variance worth chasing into timing, permanent or coding error, and revise a copy of the budget, never the original.

What is a budget inside a set of books?

AccountingTools' article on the difference between a budget and a forecast defines a budget as a formal financial plan of expected revenues, expenses and cash flows over a specific period, used to monitor performance by comparing actual results to planned amounts. In your books it becomes a concrete object: a planned amount for each chosen account in each period of one fiscal year. Zoho Books' undated Budgets help page, for example, has you select the financial year, choose a monthly, quarterly, half-yearly or yearly budget period, and select the income and expense accounts to include.

A budget is not a forecast. The same AccountingTools article describes a forecast as an estimate based on current information, trends and assumptions, and says forecasts are updated regularly to incorporate new data. The budget stays fixed so that actuals have something to be measured against. Nor is it a target such as "grow sales 15%": a target becomes a budget only when it is turned into amounts by account and month. Projecting cash balances forward is a separate question.

How do I prepare last year's figures before building on them?

Pull the last full year of actuals by account and by month, on the basis (cash or accrual) you will run the comparison on. AccountingTools' Types of budgeting models describes incremental budgeting, in which the current budget starts from the prior period's budget and is adjusted for expected changes, and warns that it can preserve inefficiencies, outdated activities and unnecessary spending. Raw history carries last year's one-offs and mistakes into this year's plan the same way. Cleaning does not remove spending that was simply unnecessary, so review each seeded line rather than accepting last year's level.

Work in a copy of the history, not in the books, and make two kinds of adjustment:

  • Exceptional items. Remove one-off amounts that will not recur, such as a single campaign, a settlement or an emergency repair, from the month they fall in, and note why.
  • Known misclassifications. Subtract an amount coded to the wrong account and add it to the right account in the same month, so it counts once, in the right place. Likewise move a known amount posted to the wrong month into the month it belongs to on your comparison basis, before taking monthly shares.

Whether to correct the books themselves is the separate question of fixing a miscategorised transaction. Then adjust the cleaned figures for changes you already know about, such as a new lease or a price rise.

What if the history has known errors or predates a chart-of-accounts change?

The precondition is that every figure in the base sits in an account that exists today and carries no known error. If accounts were renamed, merged or split, map each old account to its successor in the working copy; where one account split into two, allocate it by a written rule or budget the pair as one line for the first year (one line works in a spreadsheet; in a system that budgets account by account, allocate it across the two accounts by the written rule). If the history cannot be cleaned or mapped in time, do not use it for those lines. AccountingTools' How to prepare a budget addresses building a budget when reliable historical data are limited: management can build it from operational drivers, current contracts, market data, staffing plans, production requirements and management estimates. As that AccountingTools article advises, write down the assumption behind each such line; mark it provisional and replace it in a revised copy once a few months of clean actuals exist.

Which design choices shape the budget?

Each of the four choices has its own test:

ChoiceDecide it by
Which accountsBudget the accounts you can act on and that are large enough to move the result, and group the small or fixed ones into a few lines (a few lines work in a spreadsheet; in a system that budgets account by account, allocate each group across its accounts by a written rule). A budget over every account makes a report too long to review monthly.
How to divide the yearMatch the periods to how often you review: monthly for a monthly review, quarterly only if you review quarterly.
Location, department or classBudget by a dimension only where transactions are already coded to it consistently, or there is no actual to compare. Zoho Books' undated Budgets help page lets you associate reporting tags with a budget. Whether to use such dimensions at all is the tracking-dimension question.
History or freshSeed recurring, stable accounts from cleaned history. Start new, discretionary or badly distorted accounts from zero and build each figure up from costs you can justify for the year, such as contracts, quotes and planned activity: AccountingTools' Types of budgeting models describes zero-base budgeting, in which each budget cycle starts from zero, with every cost justified, which takes more work, so keep it to these lines.

Should the budget live in the accounting system or a spreadsheet?

AccountingTools' How to prepare a budget ends with a step that loads the budget into the financial software so that budget versus actual reports can be generated. That is the case for holding it inside the system; a spreadsheet trades it for flexibility:

FactorInside the accounting systemIn a spreadsheet
MaintenanceEntered once; the report pulls actuals each monthActuals exported and pasted in each month, with a check that every account still lines up
ComparabilitySame accounts and periods; basis and date range must still be set to match each time the report is run (see below)Accounts, basis and dates matched by hand; a renamed account can silently drop out
AccessSeen by users whose role in the product allows it; check its permission settingsSeen by whoever has the file; copies multiply when it is emailed
FlexibilityLimited to what the product supportsAny drivers, notes and scenarios

Hold it in the system if your product stores budgets (check its own help) and a monthly comparison is the main need. Use a spreadsheet if it does not, or if the plan rests on drivers the system cannot hold. A middle path is to build in a spreadsheet and load only the final monthly figures.

How do I enter the budget and spread each annual figure across the months?

Zoho Books' undated Budgets help page offers three entry options: manual entry next to each account; pre-fill from a previous year's actuals; or auto-fill, where a fixed amount repeats the first period's amount in each later period and an adjustment steps each later period from the one before by a set amount, or compounds it by a set percentage (1,000, 1,100, 1,210 at 10%). The same Zoho page also offers a percentage adjustment to amounts already entered. Other products' options may differ; check your own product's help.

Spread each annual figure by the account's own pattern: take each month's share of the cleaned history and apply it to the annual budget. An even spread suits costs that land in equal amounts every month on your comparison basis, such as rent paid monthly; on the cash basis, put a premium paid annually or quarterly in the month it is paid. For a seasonal business, or one whose revenue is concentrated in part of the year, an even spread shows an "overspend" in every busy month and an "underspend" in every quiet one, and those variances carry no information. Zoho's page does not say on which basis, or into which months, pre-fill places last year's actuals, so after pre-filling check every month against your cleaned history on the comparison basis and overwrite any that differ, including each month holding an item you removed or moved.

How do I produce a comparison that means something?

The comparison is a report showing budget, actual and the difference for each account and period; Zoho Books' undated Budgets help page describes its budget-versus-actuals view as showing how the business is actually performing against the budget. Four settings must match before any variance on it means anything:

  • Basis. IRS Publication 538 describes the cash method as generally deducting expenses in the tax year you actually pay them, and an accrual method as generally deducting or capitalizing them in the year incurred. Those are tax-year rules; in the books the same principle works month by month, so a cash-basis report counts a bill in the month it is paid and an accrual-basis report in the month it was incurred. Run the comparison on the basis your history was pulled on; Zoho Books' undated Budgets help page says its report can be run on an accrual or cash basis.
  • Date range. Use whole months matching the budget periods. Zoho Books' undated Budgets help page says the budget column runs from the start of the month of the From date to the end of the month of the To date, while the actuals column uses the exact dates set, so a mid-month range compares part of a month's actuals with a full month's budget.
  • Fiscal year. Compare the budget only with periods inside the fiscal year it was built for.
  • Accounts and dimension. Actuals must sit in the accounts the budget covers, and a budget for one location or tag needs actuals filtered to the same tag.

Run it for the month and for the year to date; the year-to-date view is where timing differences net out.

How does one account go from history to a comparison line?

A garden centre budgets its Advertising account for a calendar year on the cash basis:

StepAmount
Last year's Advertising actual18,000
Less one-off reopening campaign-4,500
Less shelf-label printing coded here, moved to the Supplies base-1,500
Cleaned base12,000
Plus expected 5% rise in advertising rates600
Annual budget12,600

In the cleaned history, March held 1,800 (15%) and April 2,400 (20%), so the budget puts 1,890 in March and 2,520 in April, where an even spread would have put 1,050 in each.

The April comparison, cash basis, 1 to 30 April:

AccountBudgetActualVarianceVariance %
Advertising2,5203,400880 over34.9

The line clears the filter, so the bookkeeper opens April's Advertising transactions and finds three causes:

  • Timing, 500. The invoice for a March newspaper advert was paid on 3 April, and March came in 500 under budget (1,390 against 1,890). On the accrual basis the invoice would sit in March, when the advert ran, and this variance would not arise.
  • Coding error, 300. A sign repair was coded to Advertising. The actual is wrong, not the plan: once it is recoded to Repairs, April Advertising is 3,100 and the 300 appears once, under Repairs.
  • Permanent, 80. The radio station raised its rate by more than the 5% allowed for. At 3.2% of the month's budget it is below the filter, but it will recur, so it is noted for the next revision.

The three causes add to 880. Before the recode, March and April together are 380 over (4,790 against 4,410); after it, they are 80 over, all of it the rate rise. Only 80 of April's 880 is a real change in spending.

How do I tell a timing variance from a real overspend or a coding error?

Check the coding first. On the report, a miscoded transaction looks exactly like an overspend. Then apply these tests in order:

ClassTestWhat it triggers
Coding errorAn item in the account's transactions belongs to another account, period, location or tag; or, for a line under budget, an item that belongs here was posted to another account, period or tag (look for a matching line over budget)Get the transaction corrected and re-run the report; leave the budget alone
TimingThe item is correctly coded and belongs to a month budgeted elsewhere in the same fiscal year (an invoice not yet paid, a payment ahead of its budgeted month, a quarterly or annual item)Note the month in which it should reverse and check then, on the year-to-date line, that it did; if it has not reversed by that month, treat it as permanent
PermanentThe item is correctly coded and the year to date does not come back to planDecide whether to act on the spending or accept the new level and carry it into a revised copy

On a line that moves with sales, such as cost of goods sold or card fees, compare its variance with the sales variance before calling it permanent: AccountingTools' Types of budgeting models warns that a budget prepared for a single expected level of activity can produce misleading variances when activity levels change significantly, since some differences may reflect volume rather than performance.

AccountingTools' Budget variance definition says variances are frequently caused by bad assumptions or improper budgeting, and in other cases by operating conditions that changed since the budget was formulated. A wrong assumption about the level of spending, or a change in operating conditions, gives a permanent variance; a wrong assumption about which month spending falls in gives a timing variance, which the timing test catches.

When the flagged figure itself is wrong, fix the actual rather than explain it. Correcting a miscategorised transaction is its own question; afterwards, re-run the comparison and record the finding so nobody chases it again. If the same error recurs, find whatever keeps assigning it to that account.

Which variances should I chase and which should I ignore?

AccountingTools' Budget variance definition says variances should be prioritized by dollar amount, percentage deviation, recurrence, controllability, trend and business impact; that a large variance may matter less than a smaller recurring one tied to margins, cash flow, compliance or customer service; and that management should investigate the variances most likely to affect decisions or reveal control problems. Write that into a filter before the first review:

  • Investigate any line over both a dollar floor and a share of its budget, for example 250 and 10%.
  • Investigate any smaller variance that runs in the same direction for three months.
  • Ignore the rest.

If a typical month flags more lines than you can work through, raise the floor rather than skip the review.

Where does the review sit in the monthly close, and what does a flag trigger?

Run the comparison once the month's books are closed and reconciled, not before: unreconciled actuals produce variances that are really missing transactions. The close steps themselves belong to the month-end close checklist.

Run the same steps each month:

  1. Close the month.
  2. Run budget against actual for the month and the year to date, with the matching settings above.
  3. Apply the filter and list the flagged lines.
  4. Classify each flagged line as coding error, timing or permanent.
  5. Write one line per flagged variance: its class, its cause and what happens next.
  6. Have the owner, or whoever controls that spending, review the notes and decide each permanent variance.
  7. At each review, confirm on the year-to-date line that timing items due to reverse by now have reversed, and that last month's coding errors were corrected.

Where one person does everything, still write the notes before deciding; they are what the next review checks against. Each flag triggers the action in the last column of the classification table, and none of those actions changes the original budget.

How do I revise the budget mid-year without losing the original?

AccountingTools' Static budget definition describes a budget whose amounts are not changed even when actual volume moves far from plan, and which is used as the basis from which actual results are compared. Keep your original that way for the year. AccountingTools' article on the difference between a budget and a forecast also says a budget in use should at least be updated more often than once a year, so revise, but in a copy.

Zoho Books' undated Budgets help page says budgets can be edited at any time and that an earlier budget can be cloned. Editing the original replaces the figures the year has been measured against, so clone it instead, name the copy for the revision date, change only the copy, and run the comparison against both: the original shows how far the year has drifted from the plan, and the copy shows whether the remaining months are on track. Where a product holds only one budget per year, save the original's figures to a separate, locked file before editing.

Sources
  1. AccountingTools, Inc. — The difference between a budget and a forecast, last updated February 05, 2026
  2. AccountingTools, Inc. — Types of budgeting models, last updated May 14, 2026
  3. AccountingTools, Inc. — How to prepare a budget, last updated September 05, 2026
  4. AccountingTools, Inc. — Static budget definition, last updated March 22, 2026
  5. AccountingTools, Inc. — Budget variance definition, last updated May 06, 2026
  6. Internal Revenue Service — Publication 538, Accounting Periods and Methods, Rev. January 2022
  7. Zoho Corporation — Budgets (Zoho Books Help, U.S. edition), undated

Machine-readable: markdown · JSON