Today's Agent Skill: Expense Report Reconciler

What It Does

Every month you dump a pile of receipts, card statements, and vendor invoices into a spreadsheet and hope the numbers line up. They never do on the first pass — a duplicate charge here, a missing receipt there, a subscription you forgot to cancel. Reconciling by hand eats an afternoon you don't have.

How It Works

This skill takes a card statement and a folder of receipts, normalizes both into a common line-item format, then matches them on amount, date proximity, and merchant name. It flags four categories the human actually needs to see: unmatched charges, missing receipts, likely duplicates, and recurring subscriptions. Everything reconciled cleanly gets summarized in one line so you only read the exceptions.

How to Deploy It

Drop the SKILL.md below into your agent's skills directory (`~/.claude/skills/expense-report-reconciler/SKILL.md` for Claude Code, or the equivalent path for any SKILL.md-compatible runtime). Point the agent at your statement CSV and receipts folder, and it activates on any reconciliation phrasing without further configuration.

SKILL.md — Ready to Deploy

## Description

Reconciles a credit card or bank statement against a set of receipts and produces an exception report. Matches line items on amount, date window, and merchant, then classifies anything that does not match cleanly. Designed for monthly expense close, quarterly reimbursement batches, and audit prep.

## Trigger

Activates on: reconcile expenses, expense report, match receipts, close the books, expense reconciliation, missing receipts, why doesn't my statement match, categorize these charges. Also activates when the user supplies a statement file plus a receipts folder and asks what's wrong, even without reconciliation language.

## Input

- **Statement**: CSV, OFX, or PDF export with date, merchant, amount columns.
- **Receipts**: folder of images, PDFs, or a CSV of already-extracted line items.
- **Optional**: prior month's exception report, chart of accounts, per-category spend limits.

If the statement is missing, ask for it. If receipts are missing, proceed and report every charge as unreceipted rather than stopping.

## Steps

1. Parse the statement into normalized rows: `date | merchant | amount | raw_description`.
2. Extract the same fields from each receipt. F

Copy the full SKILL.md and drop it into your agent's skills directory to activate this skill.

← Back to All Posts | Home — MA AI Tools