AWRA OpsHub Search

The Budget Warning Arrives After the Approval

Public finance has three moments and most software only knows about one of them. The vote is approved, the order commits it, the payment settles it. Our budget module gets the important part right — money leaves the budget when you place the order, not when you pay. What it does next is the part worth knowing about: it works out that you are over, approves the request anyway, and sends you a notification saying so.

Public Sector & County Government Washingtone Aura 12 min read

Ask a county finance officer what their budget says and you will get a careful answer, because there are at least three defensible numbers. There is what has been paid. There is what has been received and invoiced but not yet paid. And there is what has been ordered — money that is not in anyone's account yet but is no longer available to spend on anything else. The third number is the one that stops an overspend, and it is the one most business software does not carry.

Commercial accounting can afford to be relaxed about this. A company that overspends a departmental budget has a management problem. A public entity that overspends a vote has an audit finding, and possibly a personal one for whoever authorised it. The distinction between committing money and spending it is not accounting pedantry in that setting — it is the control.

This post says exactly how our product handles those three moments. One part of the answer is better than people expect, one part is weaker than the language around budgets usually implies, and the third part does not exist at all.

The good part: the budget consumes at commitment

A budget in this product is an amount for a department and a category over a period. Its consumption is not computed from payments and not from invoices. It is computed from purchase order lines, counting every order whose status is approved, processed, completed, delivered or paid.

That is the correct model. The moment an order is approved, the money it represents stops being available, whether or not anything has been delivered and long before anyone has been paid. The remaining figure on the budget screen is what you can still commit, which is the number a budget holder actually needs.

A cancelled or rejected order falls outside that status list, so cancelling an order releases the commitment automatically. That is also correct, and it is the kind of behaviour that is easy to get wrong.

One precision, because the word "commitment" carries weight

The commitment lives in the budget module. Nothing is posted to the general ledger when an order is approved — there is no encumbrance journal, no reserve account, no contra entry. If your auditor expects commitments to be visible in the ledger rather than in a budget report, that is a different requirement and this does not meet it.

The part worth knowing: the check does not stop you

There is a budget availability check, and it runs at two points — when a [request for quotation](/glossary/request-for-quotation) is approved, and again when the resulting purchase order is approved. It totals the lines by category, looks up the matching budget, and works out whether the new amount fits in what remains.

When it does not fit, here is the sequence, in the order it happens in the code. The check returns a failure. The violation is recorded, with the remaining balance. The request is then approved. Two notifications are sent: one saying the request was approved, and a second saying it was approved with a budget warning.

A control refuses. A warning explains. This one explains, after the fact, to whoever happens to read notifications.

It is worth being clear that this is not a failure of the calculation. The arithmetic is right, the remaining balance in the message is accurate, and the person who approved it does get told. It is a reporting behaviour rather than an enforcement one, and if you are specifying a system on the basis that it will prevent an over-commitment, that is the distinction that matters.

The same codebase does hard-block elsewhere, which is what makes this a design choice rather than an oversight. A purchase order cannot be closed without a goods receipt — attempt it and the action is refused outright with an error. So the machinery for a refusal exists and is used. The budget is not wired to it.

A department with 200,000 remaining approves an order for 260,000

Availability check runs on the category total returns insufficient
Violation recorded "Furniture (remaining 200,000.00)"
Request status set to approved
Notifications sent two
State of the budget afterwards over-committed by 60,000, with a notification explaining it

Everything the system did was accurate. Nothing it did prevented the outcome. Whether that is acceptable depends entirely on what your regulations require of you, which is why it is better to know now.

Three things about the calculation to know before you rely on it

These are not defects so much as behaviours with consequences, and each of them can make a budget figure quietly wrong in a way nobody notices.

One. Category matching is an exact text match on the item

A budget is for a category, and consumption is matched by comparing the budget's category to the item's category as lowercase text. Exact match or nothing. An item categorised "Office Supplies" will not consume a budget named "Office supply", and a line whose item has no category set will not consume any budget at all.

The consequence is the dangerous kind: it does not produce an error. The order goes through, the budget simply does not move, and the budget screen shows more money remaining than there really is. If you take one operational action after reading this post, make it a review of your item categories against your budget categories.

Two. The period is matched on when the order was created

Purchase orders are matched to a budget period using the date the order record was created, not its order date and not its approval date. An order raised on the 29th of one period and approved in the next belongs, for budget purposes, to the period in which it was raised. For a financial year boundary that distinction is not academic.

Three. A budget without a department matches everything

The department filter is applied only when the budget has a department set. A budget created without one will draw consumption from every department's orders in that category. That is reasonable behaviour for an organisation-wide budget and misleading if the omission was accidental.

The part that does not exist: reconciliation

Here is the third moment, and the gap that a finance officer will find first.

The budget records the commitment at order approval and then stops looking. The general ledger, separately, records the transaction when goods are received — a check-in debits inventory and credits either accounts payable, an inventory clearing account or work in progress, depending on what the receipt is for. Payment is a third event again.

Nothing compares the first number to the second. If you order a hundred units at five hundred each and are ultimately invoiced for ninety units at five hundred and twenty, the budget goes on reporting the original fifty thousand for as long as that budget exists. There is no committed-versus-actual variance anywhere in the product.

Moment What records it What it produces
Order approved The budget module Budget consumption — the commitment
Goods received The general ledger, at check-in A journal: inventory debited, payable or clearing credited
Invoice and payment The payments records Settlement
Commitment compared to actual Nothing. No report, no variance, no reconciliation.

The budget detail screen does show a projection variance, and it is worth not misreading it: that compares a projected total against the budget amount. It is a forecast against a limit, not a comparison of what was committed against what was eventually spent.

What to do with this

None of the above makes the budget module unusable. It makes it a particular kind of tool, and these are the steps that get the most out of that tool honestly.

  1. Align your item categories with your budget categories, exactly

    One list, one spelling. This is the single highest-value hour anyone can spend in this module, because the failure mode is silent.

  2. Always set a department on a budget unless you mean otherwise

    A budget without one draws from every department in that category, which will look correct right up until it does not.

  3. Treat the warning as a report, and give it an owner

    The over-budget notification goes to the approver. If nobody is accountable for reading and acting on those, the information exists and the control does not.

  4. Reconcile committed against actual outside the system, on a cadence

    Monthly, comparing purchase order values against what the ledger recorded on receipt. It is a spreadsheet job today, and knowing that is better than assuming it happens.

  5. Mind the period boundary

    Orders raised near the end of a period belong to that period by creation date. If that is the wrong answer for your financial year, plan the cut-off around it.

What the budget module does

  • Consumes at order approval, not at payment
  • Releases the commitment when an order is cancelled or rejected
  • Computes remaining and percentage used per department and category
  • Checks availability at request approval and again at order approval
  • Names the category and the remaining balance in the warning
  • Shows a spend breakdown by order, supplier and status
  • Projects a total against the budget amount

What it does not do

  • Refuse an approval that exceeds the budget
  • Post any commitment entry to the general ledger
  • Compare what was committed against what was actually spent
  • Match categories in any way other than exact text
  • Match periods by order date or approval date
  • Warn you that an item consumed no budget because its category did not match

The questions to put to any vendor

Ask for the demonstration, not the statement

  • At what moment does money leave my budget — order, receipt, invoice or payment?
  • Approve an order that exceeds the remaining budget in front of me. Show me what happens.
  • If it is blocked, who can override it, and is the override recorded?
  • Show me a report comparing what was committed against what was eventually spent.
  • Is the commitment visible in the general ledger, or only in a budget report?
  • What happens to my budget figure if an item is categorised differently from the budget?

The second question is the one to insist on. Almost every product will answer the first one correctly in conversation. Watching the second one happen on screen tells you whether you are buying a control or a report, and that is the distinction your auditor will be working from.

Budgets, commitment and expense: exactly what exists

Built and verified in the code

  • Commitment-based consumption. A budget's actuals are computed from purchase order lines on orders that are approved, processed, completed, delivered or paid — so money leaves the budget at order, not at payment.
  • Automatic release on cancellation. A cancelled or rejected order falls outside that status list, so the commitment is released without anyone having to remember.
  • An availability check at two points, when a request for quotation is approved and again when the purchase order is approved, computing the shortfall per category.
  • A named, accurate warning giving the category and the remaining balance, delivered as a notification to the approver.
  • Remaining, percentage used and a spend breakdown by order, supplier, status and date.
  • A projection against the budget amount on the budget detail screen.
  • Correct ledger posting at goods receipt, choosing between accounts payable, inventory clearing and work in progress according to what the receipt is for.

Not built — verified absent

  • The budget check does not gate anything. The approval proceeds regardless; the warning is sent afterwards. There is no setting that makes it block.
  • No commitment entry in the general ledger. No encumbrance journal, no reserve, no contra account. The commitment exists in the budget module only.
  • No committed-versus-actual reconciliation. Nothing compares the order value the budget consumed against what the ledger eventually recorded, and no variance report exists.
  • No tolerant category matching. An exact lowercase text match on the item's category, or the line consumes no budget — silently, with no error.
  • No order-date or approval-date period matching. Purchase orders are matched to a budget period by the date the order record was created.
  • No override record. Since nothing is blocked, there is no override to authorise, and therefore no record of who decided to proceed over budget beyond the ordinary approval trail.

Where the line falls

  • If you need visibility of committed spend against a departmental budget, that exists and the model behind it is the right one.
  • If you need the system to prevent an over-commitment, it will not, and you should either commission that or place the control with a person.
  • If your auditor expects commitments in the ledger rather than in a budget report, this does not meet that requirement today.

Making the check enforce is a small, well-shaped change: a setting per budget or per organisation for warn-or-block, and an authorised override that records who approved the excess and why. The override record is the part that matters for an audit, and it is the part we would insist on building alongside the block rather than after it.

Verified against the repository on 7 August 2026. The commitment model was confirmed by reading the consumption query rather than the module name — the planned version of this post said the opposite and was wrong.

A budget that warns is worth having. A budget that refuses is a different product decision, and one we would rather make deliberately with a finance officer than discover in an audit. What matters for anyone evaluating now is knowing which of the two is sitting in front of them.

Bring us your vote structure

If you are running budgets against votes and need to know exactly what our figures represent at each moment, send us the structure and the control you have to evidence. We will map it against what exists, in writing, before you commit to anything.

Talk to us about public sector budgeting

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center