Install
openclaw skills install expense-categorizationExtract and categorize expenses from receipts or statements, map to GL codes, check compliance with policies, and flag anomalies for review.
openclaw skills install expense-categorizationReceipt OCR, GL mapping, policy compliance, and anomaly detection for business expenses.
Use tesseract (local) or Vision API for image receipts; pdfplumber for PDF receipts.
Key fields to extract:
# Tesseract OCR on receipt image
tesseract receipt.jpg stdout --psm 4 | python3 scripts/parse_receipt.py
# Or use Claude vision directly for complex layouts
For complex or handwritten receipts → use vision model with prompt in references/ocr-prompt.md.
Map extracted expense category to chart of accounts. See references/gl-mapping.md for:
Matching logic:
Apply policy rules before approval routing. See references/policy-rules.md for standard rules.
Core checks:
Flag for human review:
{
"receipt_id": "REC-20260315-001",
"vendor": "Delta Air Lines",
"date": "2026-03-15",
"amount": 487.50,
"currency": "USD",
"gl_code": "6200",
"category": "Travel - Air",
"policy_status": "approved",
"flags": [],
"confidence": 0.94,
"requires_review": false,
"notes": "Business purpose required for reimbursement"
}
For expense report batches:
# Process folder of receipts
import glob
receipts = glob.glob("receipts/*.{jpg,png,pdf}")
results = [categorize(r) for r in receipts]
# Summary stats
flagged = [r for r in results if r["requires_review"]]
total = sum(r["amount"] for r in results)
by_category = group_by(results, "category")
Output batch summary as CSV or feed directly to QBO via qbo-automation skill.
Credit card statement import:
Expense report approval routing:
Mileage reimbursement:
references/irs-rates.md)