From statements to a usable financial history.

I created ParseTrail to bring PDF, CSV, and XLSX statements into one local database. It handles overlapping exports and statements containing multiple accounts, then supports transaction categorization, budgets, recurring-charge tracking, and reporting.

  1. 01 / IMPORTRead statements from supported institutions and formats.
  2. 02 / ORGANIZEBring accounts and transactions together in local SQLite storage.
  3. 03 / EXPLOREReview categories, budgets, recurring charges, and reports.

Designed around local analysis.

The Windows and macOS application uses PySide6 for its interface and a local model for transaction categorization. Ordinary imports and financial analysis run on the user’s computer without requiring the server.

The public service distributes installers and parser plugins. Users can also explicitly choose to contribute a statement for parser development. That is a separate workflow from ordinary imports.

Making varied inputs fit a consistent workflow.

Institution-specific parsers share a common interface. Routing rules identify the appropriate parser, while the application provides the account and reporting workflows around the extracted data.

The supporting service uses FastAPI and PostgreSQL, with a React dashboard. Signed manifests let the desktop client verify parser releases before activation.

ParseTrail brings together the parts of software development I enjoy: understanding awkward input data, building useful interfaces, and maintaining the path from a source file to a result someone can use.

Browse the MIT-licensed source and documentation ↗

Next: 01.8 / Turing Pattern Generator ↗