| name | bank-reconciliation |
| category | thai-finance |
| version | 1.0.0 |
| description | Match bank statement transactions with invoices/receipts and produce exception report. |
| risk_level | high |
| output_type | csv, xlsx-schema, markdown |
Bank Reconciliation Skill
Purpose
Draft bank reconciliation for SME owner/accountant review.
Use When
- User asks to match bank statement with invoices/receipts
- User asks for month-end reconciliation
Required Inputs
- Bank statement file
- Invoice/receipt folder
- Period
- Matching tolerance rules if any
Workflow
- For
/close-month, require the shared close-month discovery manifest before reconciliation; never continue when a required role is missing.
- Normalize statement transactions.
- Normalize invoice/receipt records.
- Match by amount, date window, vendor/customer name, reference number.
- Mark match confidence.
- Flag unmatched and ambiguous rows.
- Verify — recompute matched total + unmatched total and confirm they sum to the statement total in an independent pass. If they don't reconcile, re-check the matching logic before writing the summary.
- Exception resolution loop — for ambiguous matches (confidence below threshold), ask the user up to 3 targeted questions (e.g. "which invoice does this ฿12,500 transfer belong to?"), then re-run matching for only those rows. Cap: 1 round. Remaining ambiguity stays in
ambiguous_matches, never auto-resolved by guessing.
- Produce reconciliation summary.
Output Contract
- matched_transactions
- unmatched_bank_transactions
- unmatched_documents
- ambiguous_matches
- summary totals
Risk Control
- Never finalize as accounting record.
- Do not invent matches.
- Ambiguous matches require review.