3/5 Skills That Solve Real Problems: Account Reconciliation

· 5 min read

Previous: Your First Skill in 10 Minutes

Post 2 built a meeting summary skill. Useful, but low stakes — nobody loses money if a meeting summary misses a bullet point.

This post goes where the stakes are real: financial reconciliation. Matching invoices to receipts. Flagging discrepancies. The kind of task that eats hours of a CFO’s week and still produces errors.

The Problem

Manual invoice reconciliation looks like this:

  1. Open the bank statement
  2. Open the stack of invoices
  3. Open the folder of receipts/POs
  4. For each transaction, find the matching invoice
  5. Compare amounts, dates, vendor names
  6. Flag anything that doesn’t match
  7. Document the discrepancies
  8. Follow up on each one

Industry benchmarks tell the story:

MetricManual ProcessSkill-Assisted
Exception rate20%+<5%
Reconciliation timeHours per cycleMinutes
Data accuracy~80%~99%
Missed discrepanciesCommonRare

A CFO doing this monthly spends 4-8 hours matching documents. The same CFO with a skill spends 15 minutes reviewing the output.

The Skill Approach

The reconciliation skill follows the same pattern from Post 2: Purpose, Input, Instructions, Output, Rules.

# Account Reconciliation

## Purpose
Match invoices against bank statement transactions and receipts.
Flag any discrepancies in amount, date, or vendor.

## Input
Three data sources in the project folder:
- `statements/` — bank statement exports (CSV or text)
- `invoices/` — invoice documents (one per file)
- `receipts/` — purchase orders or receipts (one per file)

## Instructions
1. Read all bank statement entries
2. For each entry, search invoices for a matching:
   - Vendor name (fuzzy match — "DataCorp" = "Data Corp" = "DATACORP")
   - Amount (within 1% tolerance for rounding)
   - Date (within 5 business days)
3. For each matched invoice, search receipts for the corresponding PO
4. Classify each entry as:
   - ✅ MATCHED — statement, invoice, and receipt all align
   - ⚠️ PARTIAL — statement matches invoice but no receipt found
   - ❌ MISMATCH — amounts differ beyond tolerance
   - ❓ UNMATCHED — no invoice found for this transaction

## Output Format
Create `reconciliation-report.md` with:

### Summary
- Total transactions
- Matched / Partial / Mismatch / Unmatched counts
- Total value of discrepancies

### Detail Table
| Status | Vendor | Statement Amount | Invoice Amount | Difference | Notes |

### Discrepancies
List each mismatch with:
- What was expected vs what was found
- Suggested next step (contact vendor, check PO, investigate)

## Rules
- NEVER modify source files
- Round all amounts to 2 decimal places
- Use EUR as default currency unless stated otherwise
- Flag any invoice over 90 days old as "aging risk"
- If vendor names are ambiguous, list both possible matches

What This Produces

Run this skill on a folder of sample documents and you get:

# Reconciliation Report — March 2026

## Summary
- **Transactions:** 47
- **✅ Matched:** 38 (80.9%)
- **⚠️ Partial:** 4 (8.5%) — missing receipts
- **❌ Mismatch:** 3 (6.4%) — amount discrepancies
- **❓ Unmatched:** 2 (4.3%) — no invoice found

**Total discrepancy value:** 1,247.50 EUR

## Discrepancies

### ❌ DataCorp — Invoice #DC-2026-0341
- Statement: 4,340.00 EUR
- Invoice: 4,000.00 EUR
- **Difference: +340.00 EUR**
- Action: Contact DataCorp. PO #PO-2026-0089 shows 4,000 EUR.

### ❌ DataCorp — Invoice #DC-2026-0355
- Statement: 2,375.00 EUR
- Invoice: 2,500.00 EUR
- **Difference: -125.00 EUR**
- Action: Check if credit note was applied. Contact DataCorp.

### ❌ ServerPro — Invoice #SP-2026-0112
- Statement: 782.50 EUR
- Invoice: 782.50 EUR (amounts match)
- **Issue: Invoice dated 95 days ago — aging risk**
- Action: Verify payment terms. Flag for follow-up.

The CFO reviews this in 5 minutes instead of building it in 5 hours.

The Aha Moment

This skill wasn’t written by a developer. It was written by someone who knows the reconciliation process — what to match, what tolerances to use, what to flag, how to format the output.

That’s the point. Domain expertise is the hard part. The AI provides the processing power. The skill connects the two.

Adapting the Pattern

The reconciliation pattern works for any document-matching problem:

Domain”Invoice""Receipt""Statement”
FinanceInvoicesPOs/ReceiptsBank statements
HROffer lettersSigned contractsEmployee records
SalesQuotesOrdersDelivery confirmations
ProcurementPurchase ordersSupplier confirmationsGoods received notes

Same skill structure. Different input files. Same output pattern: matched, partial, mismatch, unmatched.

From Manual to Reusable

The meeting summary skill (Post 2) saves 15 minutes per meeting. The reconciliation skill saves hours per month. But the real value is compounding:

  • Run it monthly on new data — same skill, new inputs
  • Refine it as you discover edge cases (new vendors, currency conversions, partial payments)
  • Share it with colleagues — it’s a text file, not a software deployment
  • Version-control it with Git — track how your process evolves

Skills are reusable knowledge. Every time you refine one, it gets better. Every time you share one, someone else saves the same hours you did.

What Comes Next

So far, skills are individual files that handle single tasks. But what if you need ten specialists working together — a researcher, a writer, an editor, a designer? That’s a plugin.

Next post opens up Marp Magic — a real plugin with 10 agents, 3 commands, and 3 skills that turns a topic idea into a finished presentation. It shows how the pieces fit together at scale.

Next: Anatomy of a Plugin: Inside Marp Magic