PDF Import
Upload bank statements for AI-powered transaction extraction
How It Works
Upload a PDF bank statement and the system handles the rest. Text extraction is performed using pdfplumber with an OCR fallback for scanned documents. The extracted text is then sent to Claude AI (Haiku) which parses it into structured transactions. Each extracted transaction becomes a double-entry journal entry in your ledger, automatically categorized using your category rules and AI.
Uploading a Statement
Go to the PDF Upload page and click "Choose File" to select your bank statement PDF. The system processes the file and displays a summary showing:
- Institution name detected from the statement
- Number of rows extracted from the PDF
- Number of journal entries created in the ledger
- A preview table of all extracted transactions with dates, descriptions, and amounts
Upload History
View all past uploads from the PDF Upload page. Each upload shows its status (processing, completed, or failed), the detected institution name, the transaction count, and timestamps for when the upload was created and completed.
Supported Formats
PDF Import works with most US bank statement PDFs. The AI adapts to different statement layouts automatically, so no manual template configuration is needed. Supported statement types include:
- Checking account statements
- Credit card statements
- Brokerage statements
Duplicate Prevention
If a transaction from a PDF matches one already in the ledger -- whether from Plaid sync or a previous upload -- it is automatically skipped. The deduplication system matches on date (+-1 day tolerance), amount, and description word similarity using a threshold of 0.3. This means you can upload overlapping statements without creating duplicate entries.
PDF Import is great for backfilling historical data before your Plaid connection was set up. For ongoing transactions, Plaid sync is recommended as the primary data source.