Import a bank statement
Exporting a statement, choosing the wallet it belongs to, and what happens between uploading the file and having rows to review.
Export a statement from your bank
SavingStat does not connect to your bank. There is no account to link and no banking credentials to hand over: you sign in to your bank, export the transactions yourself, and upload the file.
Either format banks usually offer will do. A CSV export is taken up to 5 MB and a PDF statement up to 10 MB, checked as the file goes up; a file already sitting in your library is not measured again. Start with a single month: enough to show whether your categories match how you spend, and small enough that fixing the misses is not a chore.
Start the import
Open Imports and choose New Import.
- Pick the wallet the money came from. This is required, and it is what tells each row which balance it will move once you publish it.
- Drop the file onto the upload area, or browse for it. If you have uploaded it before, switch to From library and pick it from there.
- Optionally open Import instructions and describe anything unusual about how your bank writes its statements. What you write is kept in your settings and applied to every import.
- Press Start import.
SavingStat decides what it is looking at from the file name: .csv and .pdf are sent as statements, anything else as a receipt. A receipt that is not a JPEG, PNG or WebP is refused at this point rather than accepted and failed later. Otherwise you land back on the imports list with the new job at the top.
While it runs
An import is queued first, then processed, and ends as either completed or failed. While it is being processed the list reports how many rows of the total it has got through, and both the list and the import's own page update themselves as it goes, with nothing to refresh.
Rows come back in batches rather than all at the end, so the review list fills up while the import is still running and you can start reading it before it finishes. If a job is still queued a couple of minutes on, the list says so: the file was accepted, but no processing has begun.
When it finishes
Every row arrives as a draft rather than a transaction. Drafts stay out of your transaction list and leave your wallet balances untouched, so nothing an import produces is in your data until you publish it.
The file is kept in your library and attached to each transaction the import creates, so you can open the statement a row came from later. A finished import can still carry a note about something it could not do; it appears above the rows. Read it, then go on to reviewing the drafts.
If it fails
A failed import says why in plain language, both in the list and on its own page, with the underlying message tucked behind a Technical details toggle.
Retry import puts the same file back in the queue, clearing the drafts the failed attempt left behind and keeping anything you had already published. Deleting it is the other way out, and it asks separately about the drafts and about any published rows.