Today's Agent Skill: Expense Report Reconciler
What It Does
Every month you get a credit card statement and a pile of receipts that don't line up. Matching them by hand eats an afternoon, and the one transaction you can't place is always the one finance asks about. An agent can do the matching pass and hand you only the exceptions.
How It Works
The skill ingests a statement export (CSV, or pasted rows) plus a folder of receipt text or images, then matches line items on amount, date proximity, and merchant string similarity. It flags three buckets: confident matches, fuzzy matches needing a human glance, and orphans on either side. Output is a reconciliation table plus a short list of what you still need to chase down.
How to Deploy It
Save the block below as SKILL.md in your agent's skills directory (for Claude Code, ~/.claude/skills/expense-report-reconciler/SKILL.md) and it becomes available on the described triggers. Point it at a statement file and a receipts folder, and it runs the full pass without further prompting.
SKILL.md — Ready to Deploy
## Description
Reconciles a credit card or bank statement against a set of receipts, producing a matched table and an exception list. Handles amount tolerance, date drift between transaction and posting, and merchant names that appear differently on the statement than on the receipt (DBA names, payment processor prefixes, location suffixes).
## Trigger
Fires on: reconcile my expenses, expense report, match receipts to statement, monthly expense reconciliation, which receipts am I missing, categorize my card charges. Also fires when the user supplies a statement export and a receipts folder in the same request without naming the task.
## Input
- **Statement**: CSV, OFX, or pasted rows. Required columns (any naming): date, description, amount. Optional: category, card last-4.
- **Receipts**: folder path, image files, PDFs, or pasted text blocks.
- **Optional**: reporting period, expense policy rules (per-diem caps, disallowed categories), prior month's orphan list.
## Steps
1. Normalize the statement into date / merchant / amount / raw-description records. Strip processor prefixes (SQ *, TST*, PAYPAL *) into a cleaned merchant field, keeping the raw string.
2. Extract date, me
Copy the full SKILL.md and drop it into your agent's skills directory to activate this skill.