AI Adoption GuideFinanceBudget
Reallocation agent during cuts
Constrained optimizer proposes which lines to cut to hit a target with minimum operational impact.
Finance processPlanBudgetInvoiceCollectPayCloseReportAudit
By Don, DoneThat’s AI coach · updated
Lock the savings target and the lines you cannot touch
A reallocation pass during a cut is only usable if the savings target and the hard constraints are locked before any line is proposed. The artifact you want is a cut list that cites the target, the constraints, and the lines it proposes. If a required constraint is missing, the list stays empty. Do not invent an operational-impact score. Do not post the budget from the proposal. Leadership still owns the cut.
Lock a single savings number first: amount, currency, remaining-year or full-year scope, and the named baseline (approved budget, latest forecast, or a dated version). If finance and the business disagree on the baseline, stop. A list that mixes two baselines cannot be reconciled in a leadership meeting.
Then lock the hard constraints as identifiers, not hallway language. Typical locks include protected cost centers, contractual minimums, regulatory or safety spend, committed purchase orders, and lines that cannot move without a named owner. Headcount is not a silent lever. If this pass must not reduce FTE, write that as a constraint. If FTE can move, send that work to a capacity and headcount optimizer instead of deducting a salary line to close the gap.
Do not run the proposal until those locks exist. An optimizer that fills missing constraints will cut a protected line or invent a headcount reduction. Empty is the correct output when a constraint is missing. A blank list puts the missing input in the open. A filled list that hid the gap will be treated as posted.
What belongs on a defensible cut list
The cut list is a proposal, not a journal entry. Every row should be readable by someone who did not build the model.
Each proposed line needs the account or cost-center identifier as it exists in the plan, the amount proposed against the remaining balance, and a cite back to the locked target and the constraint that made the line eligible. Ineligible lines do not appear. Do not substitute a "low impact" label for a missing constraint. You do not have an operational-impact score unless operations supplied one as an input. This workflow does not invent one.
Cite where the remaining dollars sit. If the line is a vendor category, say so. If it is discretionary opex, say so. A vendor spend benchmark can show whether a supplier line sits high relative to peers. It cannot authorize the cut. Authorization is a leadership act after the list exists.
Group the list the way the meeting will argue it: by owner, then by account, not by an internal rank. Ranking by an invented impact score is how protected lines get quietly included. Sort by dollars only if that is how the room works. Otherwise sort by owner so each leader sees their share of the target.
Show what was considered and rejected, with the constraint that blocked it. That appendix is how you prove you did not cut a protected line.
Running a mid-year reduction through the constraints
This is an illustrative walk-through, not a case study. No invented savings figures.
An FP&A lead is told in Q3 to take a named amount out of remaining-year opex. The baseline is the latest forecast, not the original budget. Hard constraints from the CFO: do not touch two named product-support cost centers, do not reduce headcount on this pass, and do not break contracted software with a named renewal inside the remaining year.
The lead locks those inputs: the target, the forecast baseline, the protected center identifiers, the no-FTE rule, and the contracted-software identifiers. Only then does a constrained pass scan eligible lines: discretionary professional services, delayed hiring that is already a vacancy (not a cut to filled seats), training, travel, and vendor categories that are not on the protected or contracted lists.
The return is a cut list. Each row cites the Q3 target, the forecast baseline, and the constraint that made the line eligible. Contracted software is absent because the renewal constraint blocked it. The two product-support centers are absent. Salary lines for filled seats are absent because the no-FTE constraint blocked them.
If the remaining eligible pool cannot hit the target, the list must show the shortfall against the locked number. It must not invent a headcount reduction to close the gap. If a constraint that would decide the remainder was never supplied, the list stays empty rather than guessing.
The lead takes the list to the owners. They accept, reject, or swap lines. Swaps still have to satisfy the locked constraints. When the accepted set hits the target, someone with budget authority posts the change in the planning system. Until that accept step, the proposal is a document, not the budget.
If the real ask is to rebuild packages from zero rather than trim inside a locked frame, use a zero-based budget challenger instead of stretching reallocation past its job.
Planning platforms that already store the lines
The proposal does not replace the system of record. Anaplan, Pigment, Workday, and Datarails are the class of planning and close tools where lines, versions, and often workflow already live. Use that class as the place the baseline version is named, the place accepted cuts are posted, and the place owners already forecast.
What you take from those platforms: a named version, line identifiers that match the chart of accounts, and an audit trail after a human posts. What you do not take: an assumption that the product will score operational impact, rank cuts, or own the decision. Modeling style and workflow differ across that class. None of them remove the need to lock the target and the hard constraints first.
If the planning file and the GL disagree on a line, reconcile before proposing. A cut that cites a planning line that does not exist at posting will fail, and someone will treat the proposal as if it had already landed.
Use budget anomaly flagging as a prior filter, not as a substitute. An anomalous spike may be a candidate. An anomaly is not a constraint and not an approval.
Failure modes that make the proposal unusable
Cutting a protected line happens when protection was a comment and never a locked identifier, or when the pass maps a center by display name instead of by the identifier in the plan. Put protected identifiers in as constraints. If the protected set is incomplete, keep the list empty.
Treating the proposal as posted is the next failure. A cut list that looks like a budget version will be forwarded as live. Controllers will book to it. Hiring managers will freeze the wrong seats. Keep the proposal in a labeled scenario version until an owner accepts and a designated poster writes it to the approved version.
Inventing a headcount reduction is the usual close when eligible opex cannot hit the target. Taking dollars off salary lines is a different decision, with different owners, often with legal and communications constraints. If FTE is not an allowed lever, salary lines stay out. If FTE is in scope, route that work to capacity and headcount planning rather than burying seats inside a reallocation proposal.
Do not mix budget and forecast baselines in one list. Do not fill an empty constraint with an assumption that travel can always move. Do not score lines with a homemade impact index so the ranking looks scientific.
Accepting the list without posting it as the budget
The last step is human. The FP&A lead presents the cited list, the shortfall if any, and the rejected-with-constraint appendix. Each owner accepts or substitutes. The named budget authority confirms the accepted set meets the locked target. Only then does a designated person post the accepted lines into the named version in the planning tool.
Until that confirmation, nothing in the ledger or the hiring plan should move. The job ended when the pass produced a cut list that cites the target, the constraints, and the lines, or when it stayed empty because a constraint was missing.
If owners cannot accept enough to hit the target, do not lower the target inside the model. Take the shortfall back to leadership as a decision: enlarge the eligible pool, relax a constraint in writing, or accept missing the number. That is the cut. The proposal does not get a vote.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other. This one is rated high effort to implement, so the baseline matters more than usual.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first