Did I beat or miss my forecast, and by how much?

You set targets at the start of the year. Now the month is over. Did you hit them? Here's how to run a proper budget vs. actual comparison in your accounting software, step by step.

7 min read

The short answer

Did you beat or miss your forecast? You need your budgeted numbers and your actual numbers side by side. Then you calculate the variance in dollars and as a percentage for revenue, expenses, and net income. Below, we show you exactly where to find this in QuickBooks and Xero.


Why budget vs. actual analysis matters for small businesses

You projected $85K in revenue for March. You actually did $78K. That is a $7K miss, or about 8% below forecast. Not catastrophic on its own, but if you also budgeted expenses assuming $85K in revenue, your margins are now thinner than planned.

The point of a forecast is not to predict the future perfectly. It is to give you a baseline so you can measure what actually happened. Without that comparison, every month feels like a coin flip. With it, you start to see patterns: you consistently overestimate Q1 revenue, or marketing spend always comes in 10% over budget, or payroll creeps up faster than you planned.

Those patterns are the difference between reacting to surprises and planning ahead.


How to read a budget vs. actual report

A budget vs. actual comparison has three columns for each line item:

  • Budget. What you planned or forecasted for the period.
  • Actual. What really happened according to your books.
  • Variance ($ and %). The difference. Positive variance on revenue means you beat the target. Positive variance on expenses means you overspent.

Focus on the big-ticket variances first. A $200 miss on office supplies is noise. A $7K miss on revenue or a $4K overage on advertising is a signal worth investigating.


How to compare budget vs. actual in QuickBooks Online (5 steps)

QuickBooks has a built-in budget vs. actual report, but you need to have created a budget first. If you have not set one up yet, start at step 1. If you already have a budget, skip to step 3.

  1. 1
    Create a budget (if you do not have one)

    Go to the Gear icon (Settings) → BudgetingAdd Budget. Choose the fiscal year. You can enter monthly targets for each income and expense category, or pre-fill from last year's actuals.

  2. 2
    Enter your targets

    For each row (revenue categories, expense categories), type in your monthly forecast. Click Save when done. You can edit this later if your plans change.

  3. 3
    Go to Reports → Budget vs. Actuals

    From the left sidebar, click Reports. Search for “Budget vs. Actuals.” Select the budget you created and set the date range to the month you want to review.

  4. 4
    Read the variance columns

    QuickBooks shows Budget, Actual, Over Budget, and % of Budget columns. Focus on the rows with the largest dollar variances. For revenue, “over budget” is good. For expenses, “over budget” means you overspent.

  5. 5
    Drill into the largest variances

    Click any line item to see the underlying transactions. If advertising is $4K over budget, you can see exactly which transactions caused it.

Total time: about 10 minutes if you already have a budget set up. If you need to create a budget first, add another 30-60 minutes for initial setup.


How to compare budget vs. actual in Xero (5 steps)

Xero also supports budgets, though the setup process is slightly different. You can import budgets from a spreadsheet or enter them manually.

  1. 1
    Create a budget (if you do not have one)

    Go to AccountingReports Budget Manager. Click Create New Budget. Give it a name and select the financial year.

  2. 2
    Enter your forecast numbers

    The Budget Manager shows every account in a spreadsheet-style grid. Enter monthly targets for each row. You can also click “Calculate from last year” to pre-fill based on your prior year actuals.

  3. 3
    Go to Accounting → Reports → Budget Variance

    This report compares your budget to your actuals for any period. Set the date range to the month you want to review.

  4. 4
    Review the variance columns

    Xero shows Budget, Actual, and Variance columns. Positive variance on income means you exceeded your target. Positive variance on expenses means you spent more than planned.

  5. 5
    Investigate the biggest variances

    Click into any account to see the individual transactions. This tells you whether the variance was one large item or many small ones adding up.

Total time: about 10-15 minutes with an existing budget. Budget creation in Xero takes 30-60 minutes the first time, especially if you import from a spreadsheet.


What it takes to track forecast accuracy every month

Running a budget vs. actual report once is straightforward. Doing it consistently, and learning from it, is where the real value lives. Here is the commitment:

  • You need a budget first. The report only works if you have entered forecast numbers. Many small businesses skip this step entirely, which means the comparison is impossible.
  • Your books need to be current.If your bookkeeper is two weeks behind, the “actual” column is incomplete and the variances are misleading.
  • You need to investigate, not just read. A variance number on its own is not actionable. You need to click into the details, understand why it happened, and decide if it is a one-time event or a recurring pattern.
  • Your budget should evolve. If you miss revenue every month, either your forecast is wrong or your strategy is not working. Either way, the budget needs updating.

Or get your forecast comparison automatically, every month

Bottomline connects to your QuickBooks or Xero account and compares your actuals against your forecast on the first of every month. It highlights the biggest variances and explains what drove them.

Forecast vs. actual, March 2026
Revenue$85,000$78,200-$6,800 (-8%)
Expenses$72,000$74,100+$2,100 (+3%)
Net income$13,000$4,100-$8,900 (-68%)

Revenue missed forecast by 8%. Net income missed by 68% due to the revenue shortfall combined with a 3% expense overage.

From a real Bottomline report. Budget vs. actual with variance analysis, calculated automatically.

Beyond the numbers, Bottomline explains the “why” behind each variance. It cross-references your CRM pipeline, ad performance, and payment data to tell you whether a revenue miss came from fewer deals closing, lower deal sizes, or delayed payments. That context turns a number into an action plan.

Get your answer. Every month, automatically.

Connect your accounts in 5 minutes. Your first report arrives within 24 hours.

Works with QuickBooks, Stripe, HubSpot, Google Ads, and more
© 2026 Bottomline