Understand amount-based approval tiers
The current ExpenseApprovalPolicy compares the total amount against fixed numeric thresholds. It returns NOT_REQUIRED, MANAGER_APPROVAL_REQUIRED or DIRECTOR_APPROVAL_REQUIRED. These are implemented code values, not tenant-configurable policy presets.
| Total amount | Initial requirement |
|---|---|
| 5000 or less | NOT_REQUIRED |
| Greater than 5000 and 50000 or less | MANAGER_APPROVAL_REQUIRED |
| Greater than 50000 | DIRECTOR_APPROVAL_REQUIRED |
Boundary examples
| Amount | Requirement |
|---|---|
| 4999.99 | Not required |
| 5000.00 | Not required |
| 5000.01 | Manager |
| 50000.00 | Manager |
| 50000.01 | Director |
The policy compares the recorded amount directly. It does not convert to a threshold base currency or use a tenant-entered manager/director limit. Do not assume the same real-world value across currencies or infer a jurisdiction-specific approval policy from these numbers.
When recalculated
The requirement is assigned at creation. During a DRAFT update, it is recalculated when the total changes numerically; previous approval/rejection details are then cleared. Other changes do not automatically recalculate it.
NOT_REQUIRED does not move the expense to lifecycle APPROVED automatically. The authorised user still uses the normal DRAFT → APPROVED action. A successful tier decision also leaves that separate lifecycle action to be performed.
For high-value expenses, the current code chooses the director tier rather than a sequential manager-then-director chain. A Manager selection on the draft does not change the threshold or restrict the decision to that person.
Recovery
If a banner seems inconsistent, reload and inspect actual saved total and Approval Status. A formatting-only change does not reset a rejection. If the organisation needs configurable limits, base-currency tiering or mandatory independent review, treat those as requirements outside the present implementation rather than implying the guide can configure them.