Budget & Spend Control
This flow shows how a Budget Plan controls real spend documents — purchase requisitions (PR), purchase orders (PO), vendor bills and expenses — following the BSIM test scenario run on the demo company.
Apps: Accounting · Procurement · Workflow Management
Steps
| Step | Role | Document | App | Approval gate | Notes |
|---|---|---|---|---|---|
| Build plan | Accountant / department head | Budget Plan (manual, seasonal split, CSV import, clone to next year) | Accounting | — | One plan per owner per year; header total = Σ lines |
| Approve plan | CFO | Budget Plan | Accounting · Workflow | Maker cannot self-approve; rejection keeps the reason | Hierarchical cap off / warn / block |
| Match documents | System | PR, PO, Bill, Expense | Procurement · Accounting | — | Cost center → department → company; project is an extra measured layer (worse layer wins) |
| Thresholds | System | — | — | 80% warns; over budget within contingency is allowed; beyond that blocks | Warn mode never blocks |
| Override | CFO | Budget override record (pending_budget_override) | Accounting · Workflow | Maker cannot approve own override | Cancelling the document ⇒ override cancelled |
| Adjust | Accountant | Adjustment register | Accounting | Top-ups go through workflow | Cannot cut below used amount; draft entries do not change limits |
| Report & forecast | Accountant / CFO | Vs-actual, variance, alerts, full-year forecast | Accounting | — | Every report shows the same number; closed months reject estimates |
An approved PR not yet on a PO still holds budget (open commitment). Budget lines not mapped to an account show null (not measurable), never 0.
Known gaps
Per the test scenario, the following are not available yet:
- Cumulative monthly control inside an annual plan (spending the full year in Q1 raises no warning).
- User-created carry-forward; transfers between two plans.
- Cash-flow forecast using remaining budget.
- A dedicated revenue plan vs actual screen.
- A PR converted to an RFQ is not counted as a commitment until a PO exists.
- The default department-head role lacks
accounting:read, so it cannot view its own department’s plan.