bank-statement-parser

Parse and validate bank statement PDFs to deduplicate check transactions.

Updated Sep 22, 2025
One-click install
npx skills add https://github.com/EGAdams/planner --skill bank-statement-parser
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: bank-statement-parser
Source: https://github.com/EGAdams/planner/tree/main/.claude/skills/bank-statement-parser
Command: npx skills add https://github.com/EGAdams/planner --skill bank-statement-parser

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires docling, sqlalchemy, pandas.

What problem does it solve?

This Skill helps parse and validate bank statement PDFs, addressing issues like duplicate check transactions and bank statement summary errors. It deduplicates checks listed in multiple sections and validates ending balances with intelligent error detection.

Core Features & Use Cases

  • PDF Parsing with Deduplication: extracts transactions using Docling and removes duplicate checks.
  • Smart Validation: ensures totals and endings balances are consistent, detects bank statement anomalies.
  • Database Integration: imports parsed transactions into a MySQL database and migrates to expenses for UI display, while preventing duplicates.

Quick Start

Run the workflow: python3 scripts/parse_and_validate_pdf.py may_statement.pdf 1 to parse and validate a sample statement. Use the wipe/reimport flow to refresh data if needed.

Frequently Asked Questions about bank-statement-parser

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I parse bank statement PDFs and remove duplicate transactions?

Bank statement parsing extracts transactions from PDFs using document parsing tools, then applies deduplication logic to identify and remove duplicate checks listed across multiple sections. This Skill uses Docling for PDF extraction and implements intelligent deduplication to ensure each transaction appears once in your database.

Can I validate bank statement totals and catch inconsistencies automatically?

Yes. Smart validation checks whether deposit and withdrawal totals match the bank's summary and ending balance, detecting anomalies and statement errors. The Skill stops import on validation failures, ensuring data integrity before transactions load into your database.

How do I import parsed bank transactions into a MySQL database?

After parsing and validation, the Skill migrates deduplicated transactions directly into MySQL, preventing duplicate entries through database safeguards. This prepares data for expense tracking and UI display in nonprofit finance workflows.

What's the best way to handle checks appearing in multiple statement sections?

Deduplication logic identifies checks listed across multiple sections of a bank statement and consolidates them into single entries. The Skill applies this before database import, so your records reflect actual transactions without redundancy.

Do I need any dependencies installed to parse PDFs with this Skill?

Yes. The Skill requires Docling for PDF parsing, SQLAlchemy for database operations, and Pandas for transaction handling. These dependencies enable end-to-end PDF extraction, validation, and database migration.

What happens if a bank statement fails validation?

Strict error handling stops the import process entirely when ending balance mismatches or other validation failures occur. This prevents corrupted or incomplete data from entering your database, ensuring accuracy in financial records.