Budget vs Actual
Compares, for each expense category, the budget set in Budget Planning with what has actually been spent.
What it shows
Budget vs Actual lists your expense categories, one row each. For every category it shows the budget amount from Budget Planning, the actual spend, the variance (actual minus budget) and the percentage of the budget used. A Total row adds up the columns.
When to use it
- You want to know which categories are close to or over budget.
- You need a month or quarter review of spending against plan.
- You want to find spending in categories that have no budget at all.
The budget comes from Accounting Budget Planning. How a budget is linked to an expense category, and how Winlium can warn or block when a claim goes over it, is explained in Budget checks.
Open the report
In the menu choose Expense, then Reports, then Budget vs Actual. The page heading is Budget vs Actual. The Generate button stays disabled until the categories, budgets and expenses have finished loading. Then choose your filters and choose Generate.
Filters
The filters sit in two cards: Date Range and Options.
| Field | Type | Required | Details |
|---|---|---|---|
| Date From | Date | No | Placeholder "Pick a date". Future dates cannot be picked. Matches the date the expense was created. |
| Date To | Date | No | Placeholder "Pick a date". Future dates cannot be picked. The end day is not included, see Good to know. |
| Include categories with no budget set | Switch | No | Default: Off Off: only categories whose expense account is covered by an active budget are listed. On: every active category is listed, even with no budget. |
The Quick Range dropdown (placeholder "Select a range") also appears above the dates. It fills Date From and Date To for you. Its options are: Today, Yesterday, Last 7 Days, Last 30 Days, Last 90 Days, This Week, Last Week, This Month, Last Month, Last 12 Months, This Quarter, Last Quarter, This Year, Last Year and Custom Range. It shows Custom Range after you edit a date by hand.
Columns
Choose which to show with Columns. Category is always shown.
| Heading | Meaning | How it is worked out |
|---|---|---|
| Category | The expense category name. | One row per active category. Inactive categories are not listed. Always shown. |
| Tax | Tax on the counted spend. | Sum of tax on that category's lines in approved or processed expenses. Totalled. |
| Budget Amount | The budget for this category. | The budget amount of the active budget line that covers the category's expense account. 0.00 if there is none. Totalled. |
| Actual Spend | What has been spent. | See below. Totalled. |
| Variance | Actual minus budget. | Positive means you spent more than the budget. Negative means money is left. Totalled. |
| % Used | How much of the budget is used. | Actual divided by budget times 100, one decimal, for example 62.5%. Shows 100.0% when there is no budget but there is spend, and "—" when there is neither. |
How Actual Spend is counted
- Only expenses with status Approved or Processed count. Draft, pending, rejected, cancelled, partially approved and processing expenses are ignored.
- Spend is the line amounts before tax, added up by category.
- If you choose a date range, Actual Spend is that spend inside the range.
- If you choose no dates and the category has a budget line, Actual Spend is the figure kept by Budget Planning for that line. It can include other postings to the same account, so it may differ from the date-range figure.
The Total row adds up Tax, Budget Amount, Actual Spend and Variance of the rows shown. Its % Used is total actual divided by total budget (100.0% if the total budget is zero but spend exists, 0.0% if both are zero). There is no grouping, no paging and rows are not clickable. Amounts show two decimals with commas and no currency sign.
How to read it
Filters: Quick Range This Month, Include categories with no budget set On.
| Category | Tax | Budget Amount | Actual Spend | Variance | % Used |
|---|---|---|---|---|---|
| Fuel & Transportation | 0.00 | 400,000.00 | 250,000.00 | -150,000.00 | 62.5% |
| Staff Meals | 0.00 | 100,000.00 | 120,000.00 | 20,000.00 | 120.0% |
| Travel | 0.00 | 0.00 | 50,000.00 | 50,000.00 | 100.0% |
| Total | 0.00 | 500,000.00 | 420,000.00 | -80,000.00 | 84.0% |
Fuel & Transportation has used 62.5% of its budget (250,000.00 divided by 400,000.00) and ₦150,000.00 is left, shown as -150,000.00. Staff Meals is over budget by ₦20,000.00 (120.0%). Travel has no budget, so any spend shows 100.0%. Totals: 400,000.00 + 100,000.00 + 0.00 = 500,000.00 budget; 250,000.00 + 120,000.00 + 50,000.00 = 420,000.00 actual; 420,000.00 - 500,000.00 = -80,000.00; 420,000.00 divided by 500,000.00 = 84.0%.
Screenshot pending
Budget vs Actual with the Date Range and Options cards and a results table of categories with budget, actual, variance and percent used
- 1Pick a date range and decide whether to include categories with no budget.
- 2Variance: positive means over budget, negative means money left.
Export and print
All five Expense reports share the same toolbar. Choose Generate first. Until you do, Email, Print and the download options only show the message "Generate a report first" (the CSV and Excel options say "No data to export").
| Button | What it does |
|---|---|
| Columns | Opens a list of every column. Tick the ones you want. Columns marked "(required)" cannot be unticked. |
| Generate | Runs the report. |
| Opens the Email Budget vs Actual Report box. Type an address in Recipient email and choose Send. The report goes as a PDF attachment. You see "Report sent to" the address, or "Failed to send report". | |
| Opens the report in a preview window and saves a landscape PDF. Winlium does not use the browser print box. | |
| Download | Opens a menu: This page (CSV), This page (Excel .xlsx) and This page (PDF). The PDF is the same as Print. |
| Reset | Clears every filter, hides the results and restores the default columns. |
CSV and Excel files contain only the columns you ticked, plus a totals row where the report has totals. Files are named after the report and the date, for example budget-vs-actual-2026-10-06.csv. Column headings in CSV and Excel come from the field names behind each column, so they can differ from the headings on screen. For example Budget Amount and Actual Spend are headed Budget and Actual in a file.
After you choose Generate, the report starts with a header block: the company name in capitals, the report title, Report ID, Date, Prepared By and Period. The Report ID looks like RPT-EXP-482. Winlium builds it from the clock when you generate, so it is not a stored number and two reports can show the same one. If no company name is loaded, the header shows the text SPLENDIDCOMM TECH LIMITED. Period shows the dates you chose, or "All dates". The filters you chose other than dates are not printed in the header.
Good to know
- The whole list of expenses is downloaded and filtered in your browser, so it can be slow for a large company.
- If you cannot read Budget Planning, every Budget Amount shows 0.00, and with the switch Off the report returns no rows.
- With the switch On, a category with no budget and no spend still prints a row, with "—" under % Used.
Who can see it
Custom role with Expense: Read, Expense Categories: Read and Accounting Budget Planning: ReadYou need all three of expense:expenses:read, expense:categories:read and accounting:budget-plannings:read for a full result. Today only the Owner standard role holds Expense permissions, so everyone else needs a custom role. See Roles and permissions.