Bank statements to one checked import file

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.

    Pages are counted before anything runs. Reconciliation, duplicates, and gaps are code, never a guess.

    Harbor Street Bakery

    3 statements · 11 pages · read in 41 s

    Feb 1 to Feb 28 2025

    4 pages

    Foots

    Mar 1 to Mar 31 2025

    4 pages

    Flagged

    $42.17 short · likely a row on page 3

    Feb 12 to Mar 11 2025

    3 pages

    Foots
    Harborline checking, March 2025: five rows
    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

    • CSV
    • XLSX
    • QuickBooks Online
    • Xero
    An example workspace with fictional statements
    How it works

    Four steps, and you can watch each one.

    1. 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.

    2. 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.

    3. 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.

    4. 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.

    What gets checked

    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.
    Exports

    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.

    Format

    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
    An example workspace with fictional statements
    Who it is for

    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
    Pricing

    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 it cannot do

    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.

    Questions

    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.

    Built by Brett Wharton, Founder of NexusMKTG, who has built 200+ websites and apps. nexusmktg.com