Skip to content

Review Process

Agents propose. Reviewers verify. System executes.

Why Review?

AI agents can: - Misread amounts (OCR errors) - Assign wrong account codes (hallucination) - Apply wrong VAT rate (ambiguous merchant) - Match to wrong transaction (similar amounts on same day)

Financial errors have real consequences. The review process catches mistakes before they reach Folio/Fiken.

Confidence-Based Routing

Confidence Route Example
≥ 0.9 Auto-approve Known merchant, exact match, verified pattern
0.7 – 0.9 Review recommended Partial match, similar merchant name
< 0.7 Review required Unknown merchant, no pattern found

How It Works

Auto-Approve (Known Pattern)

Book-E: "Adobe 199 kr"
  → ConfidenceEngine: 0.95 (Adobe → 6540, 25% MVA, exact match)
  → Auto-approved
  → User sees: "Auto-godkjent (kjent mønster, 95% sikkerhet)"

No human intervention. Trust built from previous approvals.

Review Required (Unknown Merchant)

Book-E: "NewCorp AS 5 000 kr"
  → ConfidenceEngine: 0.0 (unknown merchant)
  → Status: PROPOSED
  → Review-E notified on Discord #review-e
  → Review-E: "Approve with account 6540?"
  → Human or Review-E: POST /review/{id}/approve
  → Status: APPROVED → EXECUTED
  → Pattern saved: NewCorp AS → 6540, 25%
  → Next time: auto-approve

Rejection

Review-E: "Amount doesn't match PDF. Rejecting."
  → POST /review/{id}/reject {reason: "Amount mismatch"}
  → Status: REJECTED
  → Book-E notified: "Avvist — beløp stemmer ikke med PDF"
  → User can resubmit with corrections

Review-E Integration

Review-E is an existing code review agent in the Dashecorp fleet. For accounting reviews:

  1. Notification: Accounting API posts to Discord #review-e when a low-confidence proposal arrives
  2. Review: Review-E reads the proposal, checks amounts, accounts, VAT rates
  3. Decision: Review-E calls POST /review/{id}/approve or POST /review/{id}/reject
  4. Corrections: On approve, Review-E can include corrections: {corrections: {accountCode: "6540"}}

Building Trust Over Time

Month 1: All merchants are new → everything reviewed
Month 2: Known merchants auto-approve, only new ones reviewed
Month 3: Most receipts auto-approve, reviews are rare
Month 6: 95% auto-approve, reviews only for new vendors

The system gets smarter with every approval. Patterns accumulate. Human effort decreases.

Manual Override

A human can always: - Reject any proposal (even auto-approved ones, before execution) - Approve with corrections - View all pending proposals: GET /events?status=PROPOSED - View full history: GET /events?correlationId={id}