csv2ofx-gui
OpenStatement is a cross-platform desktop GUI application that transforms messy, inconsistent bank CSV exports into clean, standard OFX files. Designed for personal finance enthusiasts, it automates data cleanup to enable seamless transaction imports into local accounting software.
The Problem & Motivation
Financial institutions in the United States are notoriously poor at supporting reliable transaction data exports. While proprietary tools rely on unstable third-party aggregation APIs (like Plaid or MX) that constantly break, manual exports are often limited to badly formatted CSV files.
Having spent more time repairing broken API integrations and manually scrubbing duplicate transactions than actually balancing my checkbook, I built OpenStatement. It wraps the powerful backend logic of csv2ofx inside a seamless desktop interface, allowing users to build reusable profiles that map and clean financial data instantly.
- Compatible with: GnuCash, Actual Budget, Homebank, and YNAB 4.
Key Features
- Intelligent Mapping GUI: Auto-detects and maps standard bank CSV headers (dates, balances, split debit/credit columns, and unique transaction IDs).
- Reusable Bank Profiles: Saves specific mapping configurations, delimiter preferences, and date formats per institution for one-click conversions.
- Filename Metadata Parsing: Extracts missing transaction details (like account IDs or statement dates) directly from custom CSV filename structures using tokenized patterns.
- Pre-flight Validation & Preview: Features an interactive OFX preview dialog to let users audit parsed data and structural validity before generating the final output file.
- Cross-Platform Packaging: Fully automated build and compilation pipelines for Windows, macOS, and Linux (offering both
.deband standaloneAppImagepackages).
Tech Stack
- Language & UI: Python 3, PySide6 (Qt)
- Core Libraries:
csv2ofx, PyInstaller - Testing & Tools: PyTest, Bash/Powershell automation scripting