
INVOICE/EXPENSES PROCESSING FOR BUSINESSES
name: invoice-expense-processor
description: Extract, categorize, and structure data from invoices, receipts, and expense reports for bookkeeping, reimbursement, and tax preparation. Use this skill whenever a user uploads invoices, receipts, bills, or expense reports and wants line items, vendor details, totals, tax amounts, or dates extracted; wants expenses categorized into accounting categories (e.g. travel, meals, software, office supplies); wants duplicate or anomalous expenses flagged; or wants the output structured into a spreadsheet, CSV, or accounting-system-ready format. Trigger even if the user just says "process these receipts," "clean up my expenses," or "get this ready for my accountant."
compatibility: Works with PDF, image (JPG/PNG/HEIC), and CSV inputs. Best paired with a code execution environment for batch processing and spreadsheet output.
Invoice & Expense Processor
Turns messy invoices, receipts, and expense reports into clean, structured, categorized financial data ready for bookkeeping, reimbursement, or tax filing.
What this skill does
- Extracts vendor, date, line items, subtotal, tax, tip, total, currency, and payment method from each document.
- Categorizes each expense into standard accounting categories.
- Flags anomalies: duplicates, missing receipts, amounts over policy thresholds, or inconsistent totals.
- Outputs a clean structured table (CSV/spreadsheet) plus a short summary.
Workflow
Step 1 — Intake
Identify every document provided (uploaded files, pasted text, or images of receipts). List them before processing so nothing is missed. If a file can't be read (blurry photo, corrupted PDF), flag it rather than guessing at values.
Step 2 — Extract fields per document
For each invoice/receipt, extract:
| Field | Notes |
|---|---|
| Vendor name | Normalize obvious variants (e.g. "UBER *TRIP" → "Uber") |
| Date | ISO format YYYY-MM-DD; flag if illegible |
| Line items | Description + amount, if itemized |
| Subtotal | Pre-tax amount |
| Tax | Amount and rate if shown |
| Tip | If present, keep separate from subtotal |
| Total | Final charged amount |
| Currency | Default to the user's stated currency if not printed on the document |
| Payment method | Last 4 digits, "cash," etc., if visible |
Never fabricate a value that isn't visible or inferable — mark it unknown and flag for the user rather than guessing.
Step 3 — Categorize
Apply standard business expense categories unless the user specifies their own chart of accounts:
- Travel (flights, lodging, rideshare, parking, mileage)
- Meals & Entertainment
- Software & Subscriptions
- Office Supplies & Equipment
- Professional Services (legal, accounting, contractors)
- Marketing & Advertising
- Utilities & Rent
- Other / Uncategorized
Note where a category is ambiguous (e.g. a laptop could be Office Equipment or a capital asset) and ask the user or flag it rather than silently picking one, especially near tax-relevant thresholds.
Step 4 — Flag anomalies
Check for and flag:
- Duplicates — same vendor + amount + date appearing more than once
- Policy overages — if the user has stated a per-category limit (e.g. meals under $75)
- Math mismatches — subtotal + tax + tip ≠ total
- Missing receipts — a line item in an expense report with no attached document
- Personal-looking charges mixed into a business batch (best judgment, flag don't assume)
Step 5 — Output
Default output: a table with one row per expense, columns matching Step 2's fields plus Category and Flags. Offer to export as CSV/XLSX if the user wants it in a spreadsheet, or format for common accounting tools (e.g. QuickBooks/Xero-style CSV columns) if they name one.
Close with a short summary: total spend, spend by category, and a bullet list of anything flagged for the user's attention.
Output format example
Vendor | Date | Category | Subtotal | Tax | Total | Flags
Uber | 2026-07-12 | Travel | 24.00 | 0.00 | 24.00 |
Adobe | 2026-07-01 | Software | 52.99 | 0.00 | 52.99 |
Delta Airlines| 2026-07-12 | Travel | 340.00 | 28.00| 368.00 | Duplicate of line 8
Edge cases
- Foreign currency: convert only if the user asks, and always show the original currency alongside any converted figure. State the exchange rate and date used.
- Handwritten or low-quality receipts: extract what's legible, mark unclear fields
unknown, never guess numeric totals. - Split expenses (e.g. a group dinner): ask the user how they want it divided rather than assuming an even split.
- Recurring subscriptions: note when a charge looks like a recurring subscription so the user can decide whether to review it separately.
What this skill does not do
- Does not provide tax advice or determine deductibility — categorization is for organizational purposes only. Tell the user to confirm deductibility with their accountant.
- Does not file or submit anything on the user's behalf.
- Does not store or transmit uploaded financial documents anywhere beyond the current task.


