Free template: Weekly Cash Decision Calculator. Download free →
Trusted by US SMBs, founders and CFOs

Free download

Budget vs Actual Dashboard

Tell us where to send it. No spam — one email with your file.

I am a

We store your details to send the file and occasional finance resources.

🎁 Free Excel Template

Your total hit budget. The lines underneath it didn't.

A free Excel template that compares actuals to budget by month and year to date, line by line, in amount and percentage — with a mapping layer that lets you paste your P&L export exactly as your accounting system produces it. Built by experienced finance professionals.

📥 Get your free EasePro Template
  • Experienced finance professionals
  • Built for QuickBooks Online exports
  • Excel format
  • No credit card required
  • Updated 2026
Output — Variance vs budget$000s
Selected monthActualBudgetVar %
Revenue177.5176.2+0.7%
COGS80.581.5−1.3%
Gross profit97.094.7+2.5%
EBITDA45.443.7+3.8%
Net income45.143.5+3.8%
YTD EBITDA vs budget
+25.4%
$80,878 against $64,502 budgeted. The month reads as rounding; the year says the budget stopped describing the business.
Revenue lines vs budget — selected month
Diagnostic Service +1.0% Training & Cert. +6.4% Equipment Rental −2.9% Other Revenue −9.1% Total Income +0.7% −10% 0 +10%
Ahead of budget Behind budget Total
Sample output: a near-flat total, four lines moving underneath it
What's inside the file

Eight tabs. Three you fill, three that report.

Plus a cover sheet with links to every tab, and a written instruction sheet covering both the one-time setup and the monthly update routine. Sample data for a diagnostic centre ships in the file so you can see the finished output before you touch anything.

Input · I1

Data — Monthly P&L

Set your starting month, then paste your P&L export: account names down column C, monthly values across from column D. Built around QuickBooks Online exports; any software works in the same layout.

Input · I2

Mapping

Three tables. Define your categories and sub-categories, map each GL account to them with dropdowns, and a check table lists anything still unmapped until it reads “Mapped”.

Input · I3

Budget

The budget structure builds itself from the categories you defined, so you are never reconciling two different chart-of-account layouts. Enter monthly budget values into the structure it creates.

Three input tabs in. Three reporting tabs out.

Output · O1

Dashboard

KPI cards for revenue, COGS, gross profit, EBITDA and net income against budget, full-year trend charts with the selected month highlighted, gross margin trend, and revenue and margin mix. One dropdown changes the month and everything follows.

Output · O2

Variance

The detail. Every P&L line with actual, budget, variance amount and variance percentage for the month, then the same four columns for the year to date — including gross margin and EBITDA margin percentages against budget.

Output · O3

Actuals

Your actuals, restated into the model’s category structure automatically from what you pasted. Useful as a mapping check: if a number looks wrong here, the mapping is wrong, not the report.

Inside the template

The mapping layer is why the monthly update takes ten minutes.

Most budget-vs-actual spreadsheets break the first time someone adds a GL account, because the report is hard-wired to a fixed list of accounts. This one sits behind a mapping table: your export stays exactly as your accounting system produces it, and each GL account is assigned to a category once, with dropdowns.

From then on the monthly routine is three things — paste the new month, check that the unmapped-accounts table still reads “Mapped”, read the outputs. If you added accounts during the month, they appear in that check table by name so you know exactly what to map.

I2_Mapping — Table B
GL account (from your export)CategorySub-category
Square feesCOGS Processing
Cost of LaborCOGS Direct labour
Platform FeesCOGS Processing
Officer's salariesOperating exp. Payroll
Advertising & MarketingOperating exp. Sales & mktg
Repairs & MaintenanceOperating exp. Facilities
Interest paidBelow EBITDA Interest
Table C — unmapped GL accounts✓ MAPPED
Dropdown — you choose once Linked from your export
Mapping table: assign each account once, then only new accounts need attention
The problem this solves

Most variance reports tell you that you missed. Not why, and not whether it happens again.

A variance column on its own is not analysis. Revenue was up 0.7%, EBITDA was up 3.8% — fine, and then what? The two questions a variance report has to answer are which lines actually moved the result, and whether this month is noise or a pattern. Neither is answerable from a single total.

Year to date — what moved EBITDA
Budgeted EBITDA$64,502
Revenue ahead of budget+$19,113
COGS over budget−$6,417
Operating costs under budget+$3,680
Actual EBITDA$80,878
Sample data from the file. Three drivers, pulling in two directions — and a 25.4% favourable EBITDA variance that no single monthly column exceeded 4% of.

That bridge is a decision, not a report. Revenue running $19,113 ahead while COGS runs $6,417 over budget means volume is beating plan and unit cost is not holding — so the conversation is about pricing and vendor terms, not about celebrating the EBITDA beat. Read only the total and you would celebrate.

The month-versus-year pairing answers the second question. Every monthly variance in the sample sits inside 4%, which any operator would treat as rounding. Year to date, EBITDA is 25.4% ahead of budget. When a variance persists at that scale, the budget has stopped describing the business — and the honest response is to reforecast, not to keep reporting against a number that no longer means anything.

How to use it

Three steps to set up. One routine each month.

Setup is the only part that takes real time, and you only do it once. Each month after: paste the new data, confirm the check table still reads “Mapped”, review the outputs.

1

Paste your P&L

Set the starting month, then paste your monthly P&L export — accounts down, months across. Values must be numbers, not text, which is the single most common setup error.

2

Build and map categories

Name the categories and sub-categories you want to report on, then map every GL account to them with dropdowns. Work until the check table reads “Mapped”.

3

Load the budget

The budget sheet has already built itself around your categories. Enter monthly budget values into that structure — no separate reconciliation between budget and actual layouts.

4

Read the outputs

Pick a month from the dropdown. Dashboard for the shape of the quarter, variance tab for the line-level detail, actuals tab to sanity-check the mapping.

Is this for you?

Honest qualification. No fluff.

This template is for you if:

  • You have an approved budget for the year and actuals coming out of a real accounting system.
  • You report monthly to an owner, a board, a lender, or an investor group.
  • Your chart of accounts grows during the year and breaks fixed-format reports.
  • You want month and year-to-date variance in one view rather than two spreadsheets.
  • You need the drivers behind a variance, not just the size of it.
  • You run a US business between $1M and $150M in revenue without a full finance team.

This is not for you if:

  • You do not have a budget yet — build one first; variance analysis has nothing to compare to.
  • You need departmental, project, or multi-entity consolidation in one file.
  • You need a driver-based rolling forecast rather than variance against a fixed budget.
  • You want this living inside your accounting or BI system rather than in Excel.
  • Your question is about cash timing rather than performance — that is a cash flow template.
Frequently Asked

Questions about the template, answered honestly.

What format is the template?
It is a Microsoft Excel (.xlsx) file with eight tabs: a cover sheet, an instruction sheet, three input tabs and three output tabs. No macros and no add-ins. It works best with a QuickBooks Online monthly P&L export, but any accounting software works as long as line items go into column C and monthly values run across from column D.
What is the mapping tab for, and do I have to redo it every month?
The mapping tab translates your GL account names into the reporting categories the model uses, so your export can stay exactly as your accounting system produces it. You set it up once. After that, a check table lists only new or unmapped accounts, so the monthly update is: paste the data, confirm the check table reads “Mapped”, read the outputs.
Does it show year to date as well as the month?
Yes, side by side. Every line shows actual, budget, variance amount and variance percentage for the selected month, then the same four columns again for the year to date. That pairing is the point — in the sample data every monthly variance sits inside 4% while YTD EBITDA is 25.4% ahead of budget. One of those numbers is noise and the other is a decision.
Can I change the categories and sub-categories?
Yes, and this is the part worth spending time on. You define them in the first table of the mapping tab, and everything downstream follows: the mapping dropdowns, the budget input structure, the variance report and the dashboard all rebuild around your categories rather than a fixed chart of accounts.
Is this really free? Any catch?
Yes, free. We ask for your email so we can send the file and follow up if you have questions. No credit card. No upsell sequence. You can unsubscribe at any time.
What if I want this produced and interpreted every month?
EasePro's Outsourced FP&A Services include the monthly budget versus actual pack, written variance commentary that explains drivers rather than restating numbers, and reforecasting when the budget stops describing the business. If you do not have a budget to compare against yet, start with Financial Modeling; if your question is cash timing rather than performance, use the 13-Week Cash Flow Template.