Predictika · spend action validator

An AI agent's spend action, checked before it is carried out

Ridgeline Fabrication lets AI agents work its procure-to-pay queue: creating suppliers, changing bank details, raising POs, approving invoices, releasing payments. Before any of them acts, the call goes to Predictika's Spend Action Validator. It checks the action against the supplier's record, the bank account's history, the contract, the approval chain, and the person each agent is acting for. Then it returns one verdict: allow, needs approval, or block.

Scope: One write action by an AI agent in a procure-to-pay suite for a fictional manufacturer: six kinds of action, six actors, nine suppliers, six bank accounts, three contracts and seven invoices. See everything this validator covers

This validator models one proposed action against the records behind it, not just the scenarios shown below.

  • Bank details — where the instruction came from (emails and attachments cannot authorize a change), employee-owned accounts, accounts already linked to another supplier, accounts in another country and the hold period after a change.
  • Purchase orders — contract expiry, the not-to-exceed ceiling with a soft and a hard limit, and trailing 30-day spend against the competitive-bid threshold.
  • Invoices and payments — each agent is resolved to the person it acts for and compared with who created the supplier, raised the PO, received the goods and approved the invoice; new supplier records wait before a large first payment.
  • Approval authority — agents may never change an approval limit or chain, and nobody changes their own.

Any spend action that touches these rules is in scope — not only the scenarios pictured here. Not covered: other kinds of action, more than one action per request, and real systems; the company, suppliers, accounts and people are fictional and no real vendor configuration or customer data is used. The validator returns a verdict and findings, not a price or a line-item table.

The AI agentReads the request, picks the supplier, invoice or account, and says it is ready to act.
Predictika validatorChecks every rule at once and returns the verdict, each finding, and the computed figures.

9 scenarios in 3 groups · each group runs from the agent’s first attempt to the outcome · click one to switch

What the agent proposes

The AI agent says

Illustrative agent statement. The validator receives the structured request below.

Proposing agent: AI agent (scripted)

Before sending, the agent must call Recorded run

Predictika validator


      
Waiting for the call.

Where an AI agent gets this wrong on its own

Click to expand

Our assessment of what an AI agent working alone does with the same cases, without a check on the records behind the action. It is a judgment about reliability from public descriptions of how agents and procure-to-pay controls work, not a claim about any particular product.

What the validator caughtAn AI agent on its ownPredictika
Bank details from an email or attachment, and an account moved to another countryError-prone
An agent that inherits its user's permissions has the right to update the supplier record and no built-in reason to doubt a PDF: it reads a document and acts on it. An instruction found inside an email or attachment is a request from an unknown sender, not authority from the supplier.
Where the instruction came from is an input. Text in an attachment cannot authorize a bank change, and an account in another country needs a treasury review whatever the source.
Payment right after a bank changeError-prone
Every box the invoice carries is ticked: approved, matched, account ownership checked. Whether the account changed four days ago, and whether anyone confirmed it by phone, is a relationship between two dates that the invoice does not show.
The payment date and the bank-change date are both inputs, and the hold period is checked on every call.
Paying an invoice that its own principal receivedError-prone
A payment under the agent's approval limit, on an approved invoice, to a long-standing supplier. Nothing in the action itself is out of range; the finding is about the person the agent acts for.
The check resolves each agent back to the person it acts for and compares that person with who raised the PO, received the goods and approved the invoice.
A ghost vendor built in several ordinary stepsError-prone
Each step is within a limit on its own: a supplier created by someone allowed to create suppliers, a PO under the agent's limit, a payment by someone allowed to pay. The same person appears at every step, and the agent does not hold that picture.
All findings come back together, so a reviewer sees the whole picture and one fix cannot hide another.

What this validator catches: findings from its test cases

Click to expand

Every rule is checked on every call, in any order the choices arrive; one problem never hides another. Blocking findings stop the request; approval findings need a person to sign off; everything else is computed.

1The bank details for Brightline Packaging Inc changed 4 day(s) ago and no callback has confirmed them. Payments wait 10 days after a bank change unless a callback confirms it (third-party account-ownership check on the account: passed).
2The bank details in this request came from attachment content, not from the supplier portal or a callback. Instructions found in emails or attachments cannot authorize a bank change (third-party account-ownership check on the new account: passed).
3The bank details in this request came from email content, not from the supplier portal or a callback. Instructions found in emails or attachments cannot authorize a bank change (third-party account-ownership check on the new account: passed).
4The bank details for Northgate Precision Parts LLC changed 0 day(s) ago and no callback has confirmed them. Payments wait 10 days after a bank change unless a callback confirms it (third-party account-ownership check on the account: passed).
5Northgate Precision Parts LLC was created 0 day(s) ago. Payments over $10,000 wait until a supplier record is 14 days old.
6Procurement agent (for Dana Kline) acts for KLINE, who created this supplier record or last changed its bank details and is now releasing its payment.
7Procurement agent (for Dana Kline) acts for KLINE, who also raised the PO, received the goods or approved the invoice being paid.
8Account ACCT_EMP_OKAFOR is registered to an employee (payroll match). A supplier cannot be paid into an employee account.
9Account ACCT_ALPINE is already linked to supplier SUP_ALPINE. Two supplier records cannot share a bank account.
10The account on file for Orchid Facility Services is registered to an employee (payroll match). Do not pay into it.
11AP agent (for Marcus Okafor) acts for OKAFOR, who already raised the PO or received the goods on this invoice. The same principal cannot approve it.
12AP agent (for Marcus Okafor) acts for OKAFOR, who also raised the PO, received the goods or approved the invoice being paid.
13Procurement agent (for Dana Kline) is an agent. Agents may never change approval limits or approval chains.
14Principal KLINE cannot change their own approval limit.
15External finance agent via MCP (for Priya Patel) is an agent. Agents may never change approval limits or approval chains.
16The new account is in CY but Fjordline Marine Coatings is based in US. Treasury review is required before the change takes effect.
17This PO takes Kestrel tooling agreement to $522,000.0 against its $500,000.0 not-to-exceed limit. A contract amendment is required.
18Trailing 30-day spend with Kestrel Tooling Corp would reach $120,000.0, above the $100,000 competitive-bid threshold. A bid waiver is required.
19This PO takes Kestrel tooling agreement to $562,000.0 against its $500,000.0 not-to-exceed limit, more than 10 percent over.
20Contract Kestrel tooling agreement 2025 expired on September 17, 2026. POs cannot be raised against it.
21Trailing 30-day spend with Harborview Industrial Supply would reach $109,000.0, above the $100,000 competitive-bid threshold. A bid waiver is required.

Scenarios and results

Click to expand

The recorded result of the validator for each scenario on this page: the request the AI agent sent, the verdict, and every finding, in the order they appear above.

1. Payment to a supplier set up the same day: The procurement agent releases the $48,500 Northgate payment it set up the same day

The agent's request. Please release payment of INV-0001, $48,500, to Northgate Precision Parts LLC on October 5.

Verdict: Blocked.

  • Payment inside the hold period after a bank change. The bank details for Northgate Precision Parts LLC changed 0 day(s) ago and no callback has confirmed them. Payments wait 10 days after a bank change unless a callback confirms it (third-party account-ownership check on the account: passed).
  • Large payment to a new supplier record. Northgate Precision Parts LLC was created 0 day(s) ago. Payments over $10,000 wait until a supplier record is 14 days old.
  • Payer created the supplier or changed its bank details. Procurement agent (for Dana Kline) acts for KLINE, who created this supplier record or last changed its bank details and is now releasing its payment.
  • Payer also raised, received or approved the invoice. Procurement agent (for Dana Kline) acts for KLINE, who also raised the PO, received the goods or approved the invoice being paid.

2. Payment to a supplier set up the same day: The treasury agent takes over the payment

The agent's request. Please release payment of INV-0001, $48,500, to Northgate Precision Parts LLC on October 5.

Verdict: Blocked.

  • Payment inside the hold period after a bank change. The bank details for Northgate Precision Parts LLC changed 0 day(s) ago and no callback has confirmed them. Payments wait 10 days after a bank change unless a callback confirms it (third-party account-ownership check on the account: passed).
  • Large payment to a new supplier record. Northgate Precision Parts LLC was created 0 day(s) ago. Payments over $10,000 wait until a supplier record is 14 days old.

3. Payment to a supplier set up the same day: The payment waits until the bank-change hold has run

The agent's request. Please release payment of INV-0001, $48,500, to Northgate Precision Parts LLC on October 15.

Verdict: Blocked.

  • Large payment to a new supplier record. Northgate Precision Parts LLC was created 10 day(s) ago. Payments over $10,000 wait until a supplier record is 14 days old.

4. Payment to a supplier set up the same day: The payment waits until the supplier record is old enough

The agent's request. Please release payment of INV-0001, $48,500, to Northgate Precision Parts LLC on October 19.

Verdict: Allowed.

5. Bank details from an invoice PDF: The AP agent changes Fjordline bank details to an account in Cyprus from remittance text in an invoice PDF

The agent's request. Please update the bank details for Fjordline Marine Coatings to the new account in Cyprus, taken from the remittance text in an invoice PDF attachment.

Verdict: Blocked.

  • Instruction came from an email or attachment. The bank details in this request came from attachment content, not from the supplier portal or a callback. Instructions found in emails or attachments cannot authorize a bank change (third-party account-ownership check on the new account: passed).
  • Bank account in another country. The new account is in CY but Fjordline Marine Coatings is based in US. Treasury review is required before the change takes effect.

6. Bank details from an invoice PDF: The details are confirmed by a callback to the supplier

The agent's request. Please update the bank details for Fjordline Marine Coatings to the new account in Cyprus, taken from a callback to the supplier.

Verdict: Needs approval.

  • Bank account in another country. The new account is in CY but Fjordline Marine Coatings is based in US. Treasury review is required before the change takes effect.

7. Bank details from an invoice PDF: Treasury reviews and approves the move

The agent's request. Please update the bank details for Fjordline Marine Coatings to the new account in Cyprus, taken from a callback to the supplier.

Verdict: Needs approval.

  • Bank account in another country. The new account is in CY but Fjordline Marine Coatings is based in US. Treasury review is required before the change takes effect.

8. Payment on an invoice the principal received: The AP agent releases payment on an invoice its own principal received

The agent's request. Please release payment of INV-3345, $22,400, to Lumen Electrical Distributors on October 5.

Verdict: Blocked.

  • Payer also raised, received or approved the invoice. AP agent (for Marcus Okafor) acts for OKAFOR, who also raised the PO, received the goods or approved the invoice being paid.

9. Payment on an invoice the principal received: The treasury agent releases the payment

The agent's request. Please release payment of INV-3345, $22,400, to Lumen Electrical Distributors on October 5.

Verdict: Allowed.

Narration transcript

Click to expand

The text of the narrated walkthrough, step by step.

  1. Welcome to a demo of Predictika's Validator. Ridgeline Fabrication lets AI agents work its procure-to-pay queue: creating suppliers, changing bank details, raising POs, and more. Before any of them acts, the call goes to Predictika's Spend Action Validator. It checks the action against the supplier's record, the bank account's history, the contract, the approval chain, and the person each agent is acting for. Then it returns one verdict: allow, needs approval, or block.
  2. I will start with the first request by the agent.
  3. The agent says. Please release payment of INV-0001, $48,500, to Northgate Precision Parts LLC on October 5.
  4. Before it goes out, the agent calls the validator.
  5. Blocked, with four findings, all in one answer. The bank details for Northgate Precision Parts LLC changed 0 day(s) ago and no callback has confirmed them. Payments wait 10 days after a bank change unless a callback confirms it (third-party account-ownership check on the account: passed). Northgate Precision Parts LLC was created 0 day(s) ago. Payments over $10,000 wait until a supplier record is 14 days old. Procurement agent (for Dana Kline) acts for KLINE, who created this supplier record or last changed its bank details and is now releasing its payment. The other one is on screen.
  6. The validator returned four blocking findings in one answer. A check that reads one field at a time would pass most of this; it shows only when the choices in the action are checked against each other.
  7. What this shows: for payment right after a bank change, an AI agent on its own is error-prone for this.
  8. Now the agent resubmits.
  9. The corrected request. It changes the acting agent to Treasury agent (for Lena Nguyen).
  10. It calls the validator again.
  11. Still blocked, with two findings, all in one answer. The bank details for Northgate Precision Parts LLC changed 0 day(s) ago and no callback has confirmed them. Payments wait 10 days after a bank change unless a callback confirms it (third-party account-ownership check on the account: passed). Northgate Precision Parts LLC was created 0 day(s) ago. Payments over $10,000 wait until a supplier record is 14 days old.
  12. Two findings cleared. Still blocking: payment inside the hold period after a bank change and large payment to a new supplier record.
  13. The agent resubmits once more.
  14. The revised request. It changes the date to October 15.
  15. It calls the validator once more.
  16. Still blocked, with one finding, all in one answer. Northgate Precision Parts LLC was created 10 day(s) ago. Payments over $10,000 wait until a supplier record is 14 days old.
  17. One finding cleared. Still blocking: large payment to a new supplier record.
  18. The agent resubmits again.
  19. The next revised request. It changes the date to October 19.
  20. It calls the validator yet again.
  21. This time the validator clears it.
  22. The earlier finding is cleared.
  23. Four problems caught in one call, fixed in three passes, and a clean action. That is the value of Predictika's validator: catching mistakes before the action runs. Now you can try the other scenarios yourself.