Finance & Accounting

Expense Policy Auditor

Applies the expense policy nobody has read since it was written

Version 2Published Sep 2, 2026
Finance & AccountingKnowledgeExtractclaude-sonnet-5Read-only · auto8 hard rules5 handover rulesResult
8hard rules
Things it must never do, enforced in every run
5handover rules
Conditions where it stops and gives the work to a person
10output fields
A structured result, not a paragraph you have to re-read
≤5steps per run
Bounded work: at most 4 tool calls, enforced by the runtime

Read-only by design. This agent has no path to sending, spending, publishing or committing anything. Where that limit is the product, removing it would remove the reason to trust the output.

Live wiring for version 2. Tool nodes are the capabilities this agent is registered to call — nothing else can run.

Overview

Expense approval is a rubber stamp. A manager with forty claims and no memory of the per-diem limit approves all forty, and the policy document exists to be pointed at afterwards rather than applied.

This agent applies it. It reads your policy from your knowledge base — the limits, the receipt thresholds, the categories that need pre-approval, the things never reimbursable — and checks each claim line against the rules that govern it, citing the clause and the amount over.

It also sees what a single claim cannot: the expense split into two to sit under a threshold, the same receipt submitted twice, the category that has quietly doubled since the policy was written. It approves nothing and rejects nobody — it produces an exception report for the approver, and never characterises a person's intent.

Benefits

The policy actually takes effect

A rule applied to every claim is worth more than a rule everyone can quote.

Approval in minutes

Clean claims pass silently; the approver reads only what needs them.

Fair and consistent

The same rule for everyone, not whoever the approver happens to know.

What it does

  • Applies your written policy

    The limits and conditions as your document states them, not a generic expense ruleset.

  • Cites the rule and the amount over

    An approver sees the clause and the difference, and decides in seconds.

  • Sees across claims

    Splits under a threshold, duplicate receipts, and the same journey claimed twice — invisible one claim at a time.

  • Separates missing from breaching

    A claim without a receipt is incomplete, not a breach. Treating them alike is how these reports get ignored.

  • Reports drift

    Categories rising against the policy that governs them — usually a policy problem, not a people one.

  • Approves and rejects nothing

    It produces exceptions. Every decision about a person's money stays with a person.

What this changes

What this changes about your week

It takes over
Checking every expense claim against the policy nobody has read since it was written.
Done today by
Managers approving in batches, and finance afterwards.
How often
Every expense run.
Typical manual effort
Applying the policy properly to forty claims is an afternoon.

Why Finance & Accounting in particular. Approval is a rubber stamp everywhere. A rule applied to every claim is worth more than a rule everyone can quote.

  • Runs unattended

    Started by you or by an event, and it finishes on its own. Nothing waits for someone to be at a desk.

  • The same standard every time

    The two-hundredth item is held to the bar the first one was. Consistency is the part people cannot sustain.

  • It cannot act on its own

    Expense Policy Auditor has no path to sending, spending or committing. That limit is why its output is safe to act on.

How it runs

This agent runs server-side through the PROMIVO runtime. Each run is logged step by step and every tool call is permission-checked before it executes.

  1. 1InputValidated against the agent input schema
  2. 2Modelclaude-sonnet-5 with automatic fallback
  3. 3Toolssearch_knowledge, extract_structured_data
  4. 4PermissionsRuns READ actions automatically; anything higher waits for approval
  5. 5OutputStructured result matching the output schema
  6. 6LoggingTokens, duration and every step recorded

Demo

Demo dataIllustrative sample output, abridged.

Input

{
  "claims": [
    {
      "lines": [],
      "claimId": "EXP-118"
    }
  ],
  "period": "March 2026",
  "currency": "EUR"
}

Output

{
  "escalate": false,
  "patterns": [
    {
      "claimIds": [
        "EXP-118"
      ],
      "observation": "Two taxi lines of EUR 24 and EUR 23 on the same evening, where receipts are required above EUR 25."
    }
  ],
  "disclaimer": "An exception report against your written policy. No claim has been approved, rejected or paid, and no finding implies intent on anyone's part.",
  "exceptions": [
    {
      "line": "Dinner, Frankfurt, 12 March",
      "rule": "Evening meals reimbursed up to EUR 40 in Tier 1 cities.",
      "type": "policy-breach",
      "claimId": "EXP-118",
      "claimed": 78,
      "difference": 38,
      "policyLimit": 40,
      "sourceDocument": "Travel & Expense Policy 2025 — section 4.2"
    }
  ],
  "policyFound": true,
  "policyDocument": "Travel & Expense Policy 2025 — section 4",
  "totalOverPolicy": 38
}

Requirements

Integrations

No integrations required.

Before you start

  • The expense claims, as structured data or text
  • A knowledge base holding your expense policy
  • Requires the Starter plan or higher

Use cases

Monthly expense run

Every claim checked before the approver opens the batch.

Pre-audit review

Find the exceptions before an auditor does.

Policy review

See which rules are breached constantly — often the rule is wrong.

Pricing

Starter

Billed monthly through your PROMIVO subscription. Cancel at any time.

Runs consume your plan allowance for agent executions and tokens. See plan limits

FAQ

Does it reject claims?

No, and it cannot. It reports exceptions against the policy with the clause attached. Decisions about someone's reimbursement are made by a person.

What if we have no written policy?

Then it has nothing to check against and says so, rather than applying rules you never agreed to. Load the policy you do have — even a page — and it will apply exactly that.

Does it accuse people of fraud?

Never. It reports patterns — a duplicate, a split, a threshold — as observations for a person to interpret. Intent is not something it is competent to judge, and saying so in a report would be defamatory.

Reviews

Reviews open once customers have run this agent.

Need this agent to work differently?

Tell us what to change and our team will scope a customised version for your business.

Customize this agent