Import a PDF or screenshot statement
On this page
If your bank can't link to Pennyweight, or all you have is a statement, your AI can read a PDF statement or a screenshot of your banking app and add the transactions to one of your accounts. You see a preview first, and nothing is saved until you say yes.
Before you start
You need an account to import into. If it doesn't exist yet, add a manual account first, with the balance it held at the start of the statement.
How to do it
- Attach the PDF or screenshot to your message in your AI app.
- Ask your AI to add the transactions, and name the account they belong to.
- Your AI reads the file and asks Pennyweight for a preview.
- Check the preview, including the balance change and any flagged rows. Tell your AI which flagged rows to skip, then say yes. Your AI saves the rows.
Read statement.pdf and add its transactions to my Everyday Checking account. Send Pennyweight every line as printed, including the card activity section that repeats some of them, and tell me what it flags before saving. I want each transaction added once.
Add the transactions in screenshot.png to my Rewards Card.
What you'll see
Your AI shows the preview: how many rows are new, how many look like duplicates and how many need a look, how many rows Pennyweight received, and what the batch does to the account's balance. After you confirm, it reports how many rows were imported and lists any skipped row with the reason. For what each label means, see reading an import preview.
Good to know
- Your AI does the reading. Pennyweight doesn't read PDFs or images itself. Your AI reads the file in your chat and sends the transactions as rows. Pennyweight saves the transactions, not the file.
- What opens depends on your AI app. Whether your AI can read a particular file, such as a scanned page or a password-protected PDF, depends on your AI app.
- Each row needs a date, an amount and a merchant. Dates must be in YYYY-MM-DD form and amounts must be plain numbers, with no currency symbol or thousands separator. If a row breaks one of these, Pennyweight refuses the batch and names the row number. See import error messages and how to fix them.
- Money in and money out. Your AI tells Pennyweight whether the statement raises the account's balance, lowers it, or both, and the signs of the rows follow from that. If the balance change in the preview goes the wrong way, say so before you confirm. See understanding balance signs. See balance looks wrong after an import.
- Row counts are checked. Your AI can tell Pennyweight how many rows it read. If a different number arrives, the call is refused before anything is previewed or saved. This catches rows dropped while copying out a long statement.
- Repeated lines are flagged, not dropped. Some statements list a transaction twice, such as in a summary and again in a detail section. A line that exactly repeats an earlier line in the same import (same date, amount, currency and merchant) is marked as needing a look and is imported by default, because two equal purchases on one day can both be real. Tell your AI to skip the repeats that are double entries. A row that matches a transaction already in the account is a duplicate and is skipped by default.
- Long statements. One import call takes up to 5,000 rows, and Pennyweight recommends chunks of about 250, so your AI may import a long statement in parts. On a phone, see import a statement from your phone.
- The account needs an opening balance. If a manual account has none, Pennyweight won't save the import and tells your AI to ask you for the balance at the start of the statement period. See set or correct an opening balance.
- Categories. If the statement shows a category for a row, your AI can pass it along, and it's saved as that row's category. Your active rules categorize matching rows when the import is saved, and a rule's category wins over the statement's. To keep the statement's categories, ask your AI to import without applying rules. A row with no category and no matching rule stays uncategorized. See which category wins.
- One batch, one undo. Every row is tagged with its import, so you can undo an import as a whole.
- Have a CSV instead? See import a CSV.