top of page

Budget Control in Dynamics 365 Finance

Budget control in Dynamics 365 Finance is a hard or soft check that fires at the moment of posting, against budget figures held in the ledger. It's built for organisations that have to live inside their budget by statute or contract: public sector, grant-funded operations, healthcare, and education.


If overspending has legal consequences, you need budget control. If it only has political consequences inside the business, you probably need an approval workflow and clear reporting instead.


This post covers what budget control does, how it differs from budget planning, what the setup involves, what a user sees when they hit a block, and how to handle the reality that budgets shift during the year.


Budget planning vs budget control: what is the difference in Dynamics 365 Finance?

Budget planning is how you build the budget. Budget control is how you enforce it.

That sounds obvious until a client says, "We want to use budgets in Dynamics. Can the system stop people from overspending?" Having a budget loaded in D365 Finance does not stop anyone from doing anything. The budget figures sit in the budget register as numbers to compare against actuals.

Take a concrete example. A finance team builds the FY26 budget through budget plan documents. Each cost centre owner submits their numbers in Excel. The plan moves through workflow stages, gets approved, and is converted into a budget register entry.


A marketing manager raises a purchase order for £180k of agency work. Without budget control, the PO posts. The budget register entry does nothing. The transaction appears against actuals in finance reports, which will eventually show the overspend if it happens, but nothing in the system tried to stop it.


Turn budget control on, and the same PO triggers a check at the point of confirmation. If the consumed-plus-encumbered amount on that dimension combination would exceed the budget, the check either warns the user or blocks the post, depending on how you've configured it.


Budget Planning produces a number. Budget Control turns that number into a gate.


Setting up a budget control configuration and activating it for a ledger

Configuration is at Budgeting > Setup > Budget control configuration. It's bound to a ledger, so one configuration per legal entity. The ledger defines the chart of accounts, currencies, and fiscal calendar that the control framework operates against.

The setup is split across tabs. Each one needs a deliberate decision, not an accept-the-defaults click-through.


Define parameters. Pick the financial dimensions that budget control will check against. You don't have to use every dimension enabled for budgeting. The dimensions that matter for control are usually a subset: cost centre and main account in most cases, sometimes project. The more dimensions you add, the more granular the control, and the more configuration you need downstream in rules and groups. Set the default time interval here. Fiscal year for most private-sector clients. Fiscal period for the public sector that manages cash quarter by quarter.


Over budget permissions. Assign user groups and decide whether they can exceed the budget. Two settings: stop them at the threshold (some overage allowed), or stop them at any overage. For most implementations, I configure a small budget manager group with permission to exceed and a default group with no permission. The mistake I see most often is leaving everyone with permission to exceed. At that point, budget control is just generating warnings nobody reads.


Budget funds available. Define the formula for what counts against the budget. Posted actuals always count. The real decision is whether to include encumbrances (purchase orders) and pre-encumbrances (purchase requisitions). For public sector and regulated environments, you almost always include both. The whole point is to reserve the budget at the moment of commitment, not at invoice posting. For the private sector, encumbrances only. Including pre-encumbrances means a draft requisition consumes budget, which surprises users and creates support tickets.


Documents and journals. Tick which source documents trigger a check. Purchase orders, vendor invoices, expense reports, and general journals. The check can run line by line or on the whole document. Be explicit about what you want checked. If you tick everything, you will get budget errors on internal cost transfers and adjustment journals, and the finance team will switch the whole thing off in week two.


Define budget control rules. This is the trap. A rule with empty criteria turns budget control on for every dimension combination across every active main account: profit and loss, expense, revenue, balance sheet, liabilities, the lot. If you leave it empty, your finance team can't post a bank receipt because there is no budget for it. Always create rules with specific criteria, usually by account category or main account range.


Activate budget control. Marks the configuration as Active. Separately, the Turn On/Off setting at the parameter level controls whether the check runs during posting. Both have to be on for the framework to take effect. I have walked into clients where Active was set but Turn On/Off was off, and nobody could work out why budget warnings had stopped firing.


How budget control behaves at the transaction level: warning, error, or override

Suppose a procurement officer raises a PO for £15k against a cost centre with £8k of remaining budget. They confirm the PO. Budget control fires the check.


Three possible outcomes, depending on configuration:

  • Soft control, with permission to overspend. The user sees a warning. "The amount exceeds available budget funds." They can click through and post. The PO confirms.

  • Hard control, or no override permission. The PO is blocked. The user cannot post. They see the error and have to do something else: request more budget, raise an exception, or abandon the PO.

  • Permission to overspend up to the threshold, transaction exceeds the threshold. This is the middle case. The user is allowed some overage, but this one is too far over. Blocked.


When a check fails, the entry goes into the Budget control errors and warnings page. From there, you can drill into Budget control statistics by period to see live availability for the dimension combination that caused the block. This is where the user or the budget manager goes to understand the why.


For purchase orders specifically, the Ledger budgets and forecasts workspace shows the budget manager a queue of unconfirmed POs flagged with budget warnings or errors. A budget manager with override permission can confirm them from the workspace.


One configuration trap I always check for in a review: budget control is not compatible with ledger allocation terms. The control framework needs to know every accounting distribution before the document posts. Allocations are calculated at posting, after the check has already run. If the chart of accounts uses allocation terms, budget control will give incorrect results.


A lot of multi-cost-centre implementations use allocations, so this needs to be resolved before go-live, or budget control needs to be scoped out of the design.


Soft control is mostly useless. Users learn to click through warnings within a week. If you want real control, you want hard control on the dimensions that matter, and a small group of people with explicit permission to override. Soft control on everything else is fine. It generates the data for budget reporting without getting in anyone's way. Just do not treat it as a governance control. It isn't one.


Processing budget transfers and handling approved exceptions

A budget transfer is a budget register entry with a budget code of type Transfer. It moves approved budget from one dimension combination to another, usually between main accounts within a department, or between departments where management has agreed on the reallocation.


Two ways to handle them.

Open transfers. Any user with budget register entry permission can post a transfer. Light governance is useful for smaller organisations where the finance team is the only group creating budget entries anyway. The audit trail is the budget code and the entry itself.

Budget transfer rules. Switched on the Use rules for budget transfers on the Budget parameters page. You define which dimension combinations allow free transfers and which require workflow approval before the balances update. This is what you want for any organisation where transfers cross management boundaries. A cost centre owner can transfer within their department, but anything crossing into another department goes through the budget manager workflow.


A note on what transfers are and are not for.


Transfers are for genuine reallocation. Department A underspent by £30k, Department B is going to overspend by £30k, and you transfer between them.


What transfers are not for is working around a budget block on a specific transaction. If a PO is failing the budget check and someone needs it to go through, the right answer is the override path described above. Budget manager confirms through the workspace, with the rationale documented. The wrong answer is transferring £15k into the line, so the check passes. That defeats the control, makes the audit trail meaningless, and teaches people that budget control is something you go around rather than something you respect. I have seen this become a habit with clients, and it always ends with the auditors asking awkward questions.


For reporting, the Budget control statistics report shows revised budget amounts (original plus revisions, transfers, and carry-forwards) alongside actual expenditures and encumbrances. Run it when an approver asks for a department's budget position.

Whether budget control is the right control for your organisation, or you're already deploying it and need to bring the team up to speed, adoption depends as much on the training as on the configuration. The user training starter kit is a free resource on how to plan that work before go-live.

Sources

Subscribe to our newsletter to receive our articles in your inbox, invites to our free training webinars and special offers for our training courses.

Recent Posts

See All

Comments


Microsoft-Solutions-Partner-Logo-white.webp

Viscontis Limited

Canada Street

SE16 6BH, London, UK

Company Registered in England and Wales 

© 2026 by Viscontis Limited. All rights Reserved

  • LinkedIn
  • YouTube

Legal Notice: D365 Training is a Trademark of Viscontis Limited, a Microsoft Training Services Partner; all rights reserved.

This website is neither owned nor sponsored by Microsoft©. Any reference to Microsoft, Dynamics365, Microsoft Teams, Microsoft Business Central, Azure or any other Microsoft software is purely for illustration, training and demo purposes.

 

You must perform due diligence before purchasing, implementing and setting up any technology mentioned on this website. By navigating this website, you acknowledge that we owe no responsibility if your business experiences losses, disruption or loss of data following the implementation of suggestions, guides or training material accessed from or mentioned on this website.

bottom of page