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:
- Notification: Accounting API posts to Discord #review-e when a low-confidence proposal arrives
- Review: Review-E reads the proposal, checks amounts, accounts, VAT rates
- Decision: Review-E calls
POST /review/{id}/approveorPOST /review/{id}/reject - 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}