Multi-Level Purchase Order Approval with Budget Control
Procurement teams need to approve purchase orders fast while respecting department budget codes and multi-tiered approval thresholds.
The problem
Purchase orders routed through ERP or workflow systems are evaluated by Corules before proceeding. Small POs from approved vendors auto-approve. Large amounts or non-approved vendors escalate to the correct approval tier — manager, director, or executive — based on policy parameters. Budget codes are validated to prevent overspend.
Without deterministic enforcement, AI agents either block every edge case (adding manual overhead) or silently approve decisions that violate policy — with no audit trail to show auditors or regulators.
How Corules solves it
Corules sits between your AI agent and the action it wants to take. When the agent proposes a decision, Corules evaluates the full context against your compiled policy set in a single deterministic pass — no LLM, no ambiguity.
The result is a structured outcome: ALLOW — PO $8,200 from approved vendor within manager authority ($10,000 limit). Budget remaining $42,000.
Decision outcome: ALLOW
PO $8,200 from approved vendor within manager authority ($10,000 limit). Budget remaining $42,000.
Policy example
Corules policies are written in CEL (Common Expression Language). They are compiled once at publish time and evaluated deterministically at request time — no LLM, no variability.
// PO approval policy (CEL)
context.vendor_approved == true
&& context.amount <= params.approval_thresholds[context.department][context.approver_level]
&& context.budget_remaining >= context.amountThis expression is evaluated against the structured context your agent sends in the /v1/validate request.
Integration options
Corules integrates with the tools your teams already use. All integrations call the same REST API or MCP server — your policy logic stays in one place.
Frequently Asked Questions
Can thresholds differ by department or entity?
Yes. Thresholds are stored in params as nested maps keyed by department and approver level. Different entities (US, EU) can have different currency-converted thresholds.
What happens when budget is exhausted?
The decision is BLOCKED with specific reason: budget_remaining insufficient. The response includes current remaining budget and the overage amount.
Ready to enforce this policy?
Start free — evaluate up to 1,000 decisions per month with no credit card required.
Get started free