The Budget Is Departmental and Half the Spend Is Not
A budget in this product is a department, a category and a window. Purchase-order spend against it is scoped to that department. Expense spend against it is not — expenses carry a project instead — so one column of the report is departmental and the one beside it is organisation-wide. The report says so in its own column heading, which is the only reason it is safe to read.
Departmental budget control sounds like one feature and is actually two questions that have to agree: which dimension do you set the budget on, and which dimension does the spending document carry? When those are the same, budget-versus-actual is arithmetic. When they are not, it is an estimate wearing the clothes of arithmetic — and it will be wrong in the direction that generates compliments rather than questions.
The finding, immediately
A budget is held per department and category. A purchase order carries a department, so procurement spend matches the budget exactly. An expense carries a project and no department at all, so expense spend can only be matched on category and period — against the whole organisation. Two departments each holding a "Repairs" budget are therefore shown the same organisation-wide repairs expenses. The report labels the two columns separately, warns when budget lines are sharing a figure, and counts each figure once in the totals rather than once per line. Read the column headings and it is honest; read the row as one number and it is not.
The dimensions each document actually carries
This table is the whole article. Everything else is consequence.
Which dimension is on which record
| Record | Department | Project | Category |
|---|---|---|---|
| The budget | Yes | No | Yes |
| A purchase order | Yes | Yes | Partly — configurable by you |
| An expense | No | Yes | Yes |
| A requisition | Partly — configurable by you | No | No |
Built and maintained Configurable by you, not maintained by us Not built
A purchase order's category is on its lines rather than on the order, which is why it reads as partial and is actually the more precise arrangement — a mixed order contributes only the lines in the budget's category. A requisition holds its department as text rather than as a reference, which is a separate matter with its own consequences.
Read the first two columns down. The budget and the purchase order agree on department. The budget and the expense agree on category and nothing else. That is the shape of the problem, and it is not a bug — it is two modules built eighteen months apart, each choosing the dimension that made sense for what it was for.
Two channels into one budget line
Money reaches a budget line by two routes, and the report presents them as two columns rather than adding them into one. That decision is the difference between a usable report and a misleading one.
Committed — purchase orders
- Scoped to the department on the budget line
- Category matched case-insensitively, on the order's lines
- Counted from the order's creation date
- Only approved, processed, completed, delivered and paid orders
- Commitment, not payment — an approved order counts before the money moves
Expenses — costs booked outside procurement
- Not scoped to any department, because the record has none
- Category matched exactly, including its capitalisation
- Counted from the expense date
- Rejected and not-yet-approved claims excluded
- The figure is organisation-wide for that category and period
Two category matches, one row, different tolerances
Worth knowing if you are ever debugging a figure that looks too low. The purchase-order channel lowercases both sides before comparing, so "Repairs" and "repairs" match. The expense channel compares them as typed, so they do not. Two joins in the same report row with different levels of forgiveness is the sort of thing that is invisible until you go looking, and it is worth checking in any product rather than assuming consistency.
What it looks like on a real report
Two departments, one category, one quarter
The footer is right: 180,000 + 310,000 + 240,000, with the shared expense figure counted once rather than once per line. The two rows above it are each overstated by part of an organisation-wide number, and the report says so — it prints "Expenses (all departments)" over that column and adds a sentence to the report's own introduction when two lines are sharing a figure. What it cannot do is narrow the per-row figure, because the dimension it would need is not on the record.
A report that tells you which of its columns you cannot trust at the row level is more useful than one that averages the two and presents a single clean number.
The fix you can apply today, without waiting for us
There is a column every spending document carries: the project. Purchase orders have one, expenses have one, stock issues have one, customer invoices have one. The budget does not — but a project can be used as the attribution dimension even so, and the technique is straightforward.
Create a standing project per department. Not a project in the sense of a body of work with an end date — a permanent one, named for the department, whose only purpose is to be selectable on every expense, stock issue and order. Then run both: the departmental budget for the plan, and the standing project for the attribution.
-
Create one standing project per department
Name it exactly as the department is named so the two lists read as one thing. Give it a code if you use codes. It never completes.
-
Make selecting it the rule on every expense
This is the only new discipline, and it is one dropdown. An expense with no project is a cost that cannot be attributed to anybody, which is the situation you are leaving.
-
Keep raising departmental budgets as you do now
The budget is still the plan, still per department and category, still the thing the variance is measured against. Nothing about budgeting changes.
-
Read committed spend from the budget report and expense spend from the project
Two surfaces, both exact. The budget report gives you department-scoped commitment; the project gives you department-scoped expenses. Neither figure is organisation-wide.
-
Reconcile once a period against the budget report footer
The footer already counts each figure once, so it is the control total for the exercise. If your two exact figures do not sum to it, something is uncategorised or unprojected, and that is worth finding.
-
Do not use projects instead of departmental budgets
A project carries one budget amount with no category breakdown and no period, so it cannot replace the budget. The two are complementary and the recommendation is genuinely both.
The one column that would close this properly
The standing-project technique works and is what we recommend today. It is a workaround, and the real fix is a single column in the right place.
A department on an expense
One nullable reference on the expense record, defaulted from the claimant, and the expense column of the budget report becomes department-scoped exactly as the purchase-order column already is. This is the whole fix.
Budget lines within a budget
A budget today is one amount for one category. Organisations reporting to a funder or a board usually need a plan with lines inside it, reconciling to a control total.
A project dimension on the budget
The other direction: let a budget be raised against a project as well as a department, so the standing-project technique stops being a technique.
We publish scope, not dates. The first item is small and well understood, and it is the one to ask for.
Scope the expense dimensionFive questions that test budget control in any suite
Which dimensions can I set a budget on?
A good answer sounds like
A named list.
What ours actually is
Department and category, for a period. No project dimension on the budget.
Which dimensions does each spending document carry?
A good answer sounds like
Document by document, not a general answer.
What ours actually is
Orders carry both department and project; expenses carry project only. Ask this per document — a general "everything is tagged" answer is where the trouble hides.
Does an approved order count against the budget, or only a payment?
A good answer sounds like
Commitment, with the statuses named.
What ours actually is
Commitment, from five named order statuses. Budgeting on payment alone is how a department discovers it is overspent after the fact.
Are rejected and pending claims included?
A good answer sounds like
Excluded, and demonstrated.
What ours actually is
Excluded. A refused claim counting against a budget can tip a line into overspend on money nobody ever approved.
Show me two departments with a budget in the same category, in the same period.
A good answer sounds like
Two independent figures.
What ours actually is
Two department-scoped commitment figures and one shared expense figure, labelled as shared. This is the single most revealing test on the page and it takes two minutes to set up.
What AWRA OpsHub does today
- Budgets per department and category, for a monthly, quarterly or yearly period, with any window selectable on the report.
- Purchase-order spend matched to the budget's department, its lines' category and five approved-or-beyond statuses — so commitment counts before payment.
- Expense spend matched on category and period, with rejected and awaiting-approval claims excluded.
- The two channels reported side by side and labelled with their real scopes, rather than added into one figure.
- Totals summed over distinct match keys, so a shared figure is counted once rather than once per budget line.
- A sentence added to the report's own introduction when two budget lines in the window are reading the same expenses.
- A project on every spending document — purchase orders, expenses, stock issues and customer invoices — which is what makes the standing-project technique work.
- An approval trail on an expense, with the approver held on the record.
More we can add to your workspace
- A department on an expense. One reference on the record, defaulted from the claimant, which would make the expense column department-scoped exactly as the purchase-order column already is.
- Budget lines within a budget, so a plan can hold personnel, travel, equipment and overheads and reconcile to a control total.
- A project dimension on a budget, so a budget can be raised against the standing project rather than alongside it.
- Case-insensitive category matching on the expense channel, matching the tolerance the purchase-order channel already has.
- A budget with no department scoped to something narrower than the whole organisation. An unscoped budget currently matches every department's orders, which is correct behaviour and occasionally surprising.
- An unattributed-spend figure — expenses with no project and orders with no department, by period — so the cost of the discipline slipping is a number rather than an impression.
Where we point you to a specialist
- We report commitment and spend against a plan. We do not sign the plan off, and where a funder or a board requires a budget in a prescribed format with a statement of assurance, that belongs with your accountant and we build to their structure rather than replacing it.
- The two channels stay separate on the report. Averaging them into one figure would produce a cleaner-looking page and a number nobody could defend, and we would decline to make that change even on request.
- Whether a cost belongs to a department or to a project is an accounting-policy question for your organisation. We provide both dimensions and report on both; we do not encode an opinion about which is authoritative.
The department on an expense is the smallest change on this page with the largest effect, and budget lines within a budget is the one most often asked for. Say which one your reporting actually needs and we will scope it in writing.
Set up the standing projects this week
One project per department, selected on every expense, and the organisation-wide column stops mattering to you. It is an afternoon of setup and one habit. If you would rather have the department on the expense record instead, that is the scope conversation to have.
Talk it throughFrequently asked questions
Is the total on the budget report wrong?
No. The footer sums over distinct match keys, so a figure shared by two budget lines is counted once rather than twice. It is the per-row expense figure that is organisation-wide for its category and period, and the column heading says exactly that. Read the footer as a total and the rows as two differently scoped columns, and the report is accurate throughout.
Why do expenses carry a project rather than a department?
Because the expense module was built alongside projects, where the attribution question was project profitability, and the budget module was built eighteen months earlier for departmental planning. Both choices were right for what they were for. The consequence only appears when you put them in the same report, which is exactly what budget-versus-actual does.
Can I use projects instead of departmental budgets?
Not as a replacement. A project carries a single budget amount with no category breakdown and no period, so it cannot express "KES 400,000 of repairs this quarter". Run both: the departmental budget for the plan, and a standing project per department for the attribution. That is the recommendation and it is genuinely both rather than a preference for one.
Does an approved purchase order count against my budget before it is paid?
Yes, and this is the more important half of the report. Commitment is counted from five order statuses — approved, processed, completed, delivered and paid — so a department that has committed its quarter in the first fortnight reads as committed rather than as underspent. Budgeting on payments alone is how an overrun is discovered a month after it was preventable.
What happens to a budget with no department on it?
It matches every department's purchase orders, because the department predicate is only applied when the budget names one. That is correct for an organisation-wide budget and worth knowing if you have mixed unscoped and departmental budgets in the same category and period — the unscoped line will include the departmental lines' orders.
How does this relate to a purchase order with no department at all?
Such an order consumes no departmental budget, silently. It is a different failure on the same chain — a name-matching join in the middle of procurement — and it is written up in A Department That Is Only a Word. Read together, the two articles cover both ways a purchase can fail to reach the budget it belongs to.
We are comparing an inventory, procurement, financial controls and HR suite against separate systems. Does this favour one?
It favours the suite, but for a narrower reason than vendors usually claim. The advantage is not that the modules are integrated — it is that commitment from procurement and cost from finance land in the same report at all, so a mismatch of dimensions is visible and labelled rather than hidden in a spreadsheet join nobody re-checks. Separate systems do not remove this problem; they move it into a monthly reconciliation and stop telling you when two lines are reading the same figure.