Every statement for a client. One table, every statement footed.
Drop in a year of bank and card statements. Get back one transaction table, a balance check per statement, and the list of what did not tie out. Ready for QuickBooks Online or Xero.
or drop PDFs here. Any bank, text or scanned. Ten pages a month are free with a verified email; credits and Pro take the rest.
Harbor Street Bakery
3 statements · 11 pages · read in 41 s
Harborline checking ····4471
Feb 1 to Feb 28 2025
4 pages
FootsHarborline checking ····4471
Mar 1 to Mar 31 2025
4 pages
Flagged$42.17 short · likely a row on page 3
Meridian Card ····4417
Feb 12 to Mar 11 2025
3 pages
Foots| Date | Description | Amount | Balance | Category |
|---|---|---|---|---|
| Deposit, Square payout | 2,418.60 | 14,902.33 | Sales | |
| Sysco Boston #4418 | -1,206.42 | 13,695.91 | Cost of goods | |
| Check 1182, Eversource | -142.17 | 13,553.74 | Suggested: Utilities | |
| Zelle, Maria Oyelaran | -900.00 | 12,653.74 | Payroll | |
| Monthly service fee | -15.00 | 12,638.74 | Bank fees |
1 exception to clear before import · 0 duplicates · 1 gap: Meridian Card, Jan 2025
Four steps, and you can watch each one.
-
Drop in the statements
Every PDF for the client, from any bank, in one batch or over a week. Pages are counted and shown before anything runs.
-
Each page is read
A model reads the statement into rows: date, description, amount, running balance where printed, check number, page. Scans are read the same way.
-
Each statement is checked
Opening balance plus the rows must equal the closing balance, to the cent. A statement that foots is marked. One that does not is flagged with the difference and the likely cause.
-
Export what is checked
One table across all accounts, with duplicates and gaps named. CSV, XLSX, the QuickBooks Online bank file, or the Xero bank statement file, validated before download.
Checked against the statement itself.
- Balances
- Every statement carries its own opening and closing balance. Ledgerfoot adds the rows and compares. The difference, when there is one, is shown in dollars with the page and row most likely to be wrong.
- Duplicates and gaps
- A quarterly statement next to three monthlies, or the same month uploaded twice, produces duplicates. They are found and shown, not dropped. A month with no statement for an account is listed as a gap.
- Running balance
- Where a statement prints a running balance, every row is checked against it. A misread row is found at the row, not at the end.
Files built for where they are going.
-
QuickBooks Online
The 3-column and 4-column bank files: dates as MM/DD/YYYY, money out negative, at most 1,000 rows a file. Checked against Intuit's own rules before download.
-
Xero
The bank statement file with Xero's columns, one signed amount, no balance column, split at 1,000 rows.
-
CSV and XLSX
Every column, including balance, account, statement, page, category, and confidence. The XLSX carries a Statements sheet and an Exceptions sheet.
-
The client summary
One page for the engagement file: every statement and its check, the duplicates, the gaps, and what was left open. Pro.
A flagged statement's rows are included in every export with the flag. Nothing is exported silently.
QuickBooks Online, 4-column, Harborline checking ····4471: 412 rows, dates MM/DD/YYYY, money out in Credit, 1 file, 38 KB. Ready.
- harborline-4471-qbo4.csv 412 rows
Built for the catch-up engagement.
-
Bookkeepers
Six to twenty-four months, several accounts, one client, one import. The exceptions list is the work queue and the summary is the record.
For bookkeepers -
Small business owners
A year of statements, a spreadsheet you can check, and a file your accountant can import. Credits, no subscription.
For small business owners -
Tax preparers
Every transaction for the year, from the statements the client has. The missing months are named before the return is built.
For tax preparers
Pages are the unit. The count is shown before anything runs.
Ten pages a month are free with a verified email. Credits never expire. Pro adds unlimited workspaces, the rules that learn, the QuickBooks and Xero files, the exceptions list, and the client summary. The first 100 bookkeepers can take Pro for as long as Ledgerfoot runs, paid once.
What the check catches, and what it cannot.
The check catches what does not add up. It cannot catch two misreads that cancel each other. It cannot foot a statement that prints no balances. Both are named on the page instead of hidden. A scan reads less well than a text statement, and the check is how you know which rows to look at. A bank layout the model has not seen is attempted and then checked like any other. Categories a model suggests are marked as suggestions until you accept them.
Three questions people ask first.
Does it work on scanned statements?
Yes. A scanned page goes to the model as an image and comes back as rows the same way. Scans read less well than text, so the balance check matters more. A scanned statement that foots is as good as a typed one.
What happens to my client's statements?
They are stored encrypted at rest and deleted after 30 days by default. Pro can set 7 to 90 days or keep them until deleted. The extracted table stays while the account exists. Nothing is used for training by Ledgerfoot; pages go to the model provider under its API terms.
Which banks are supported?
Any bank whose statement prints its balances. The layout is read, not matched to a template, and every statement is checked the same way. The Supported Banks page lists the layouts tested so far.
Start with one statement.
Ten pages a month are free. Drop in one statement and see the check.