For bookkeepers and 1–10 person practices doing catch-up and cleanup

Drop one bank statement. See it coded in about a minute.

Every transaction is coded to a chart of accounts, every balance is checked against the closing figure the statement itself prints, and you can read the result on screen before you decide anything.

The sample statement is synthetic. The run that coded it is real. No account, and no card.

10 pages a month, free, no card. One email gets you in. There is no password.

Catch-up pack, $19 once. 400 pages that never expire. It cannot renew. See exactly what comes back ↓

acme-ltd · barclays · mar 2024
DateDescriptionAmountCode
Opening balance10,588.10
03 MarSQ *THE DAILY GRIND−4.806420
07 MarDD ADOBE SYSTEMS−51.986530
11 MarUNKNOWN LTD−450.00flagged low-confidence
12 MarTFR FROM SMITH & CO LTD+2,400.004000
Closing balance 12,481.32tied

Send a year of PDF statements. Get back a coded ledger file.

Every transaction coded to your client's own chart of accounts, and checked against the closing balance on every statement. Out comes a QuickBooks or plain CSV import file. Pick Xero and you get two files: the bank statement CSV Xero imports, and the coded CSV beside it. $19 for 400 pages, one time.

See exactly what comes back ↓

You pay $19, then upload the PDFs and the chart of accounts on the page you land on. We email you the same link, so you can send them later. The coded file comes back within 48 hours of your files arriving. Every statement is checked against the closing balance it prints, and a person reads the ones that do not tie.

One-time charge · Cannot auto-renew · No card stored here · Full refund if it does not tie out

What bookkeepers say

These are not testimonials. Nobody has bought this yet. They are public posts by bookkeepers and accountants describing the job, with links so you can read the thread yourself.

"No category mapping at all — after export you're still manually typing account codes row by row before anything goes into Xero or QuickBooks."
— r/Accounting, post 1um5dal, 3 July 2026
"Chase online banking only shows 18 months of history… Manual entry would take forever (60 statements × 200+ transactions each)."
— r/Accounting, post 1oxxr09, 15 November 2025
"I then charged them like 12 hours and booked it as 'Converting PDF to excel'."
— r/Accounting, post 1p3gya9, 22 November 2025, 795 upvotes

Twelve billable hours is a lot of money for retyping. $19 is not.

What lands in your inbox

Three things, every time, whether the pack tied or not.

1. The import file.

Every transaction on every statement, with a date, a description, an amount and an account code from your client's chart of accounts. Choose the format: QuickBooks 3-column CSV, .QBO, .IIF, Xero CSV, or plain CSV. Ask for more than one and you get more than one, at no extra charge. Send us the chart of accounts as a CSV or a QuickBooks or Xero export — you never have to build one. If you don't send one, we use a standard chart and list every account name we used at the top of the file, so you can remap it in one find-and-replace.

Xero is the one that comes as two files. Xero's import carries no account code per line, so you get the bank statement CSV Xero imports, and the coded CSV beside it. The codes are in the second file. You use it to code the lines as you reconcile.

  • QuickBooks 3-column CSV
  • .QBO
  • .IIF
  • Xero CSV
  • plain CSV

2. The tie-out and date-range report.

For every statement: opening balance + credits − debits = closing balance, and whether it ties. Plus the exact period covered — first transaction date, last transaction date, and any gap between one statement and the next, spelled out ("statement 3 ends 31 Mar, statement 4 starts 08 Apr — 7 days missing"). You find the missing month before you import, not after.

3. The flag list.

Every transaction we coded by judgement rather than by an obvious rule, and every page we could not read cleanly. Usually short. It is the list you check before you sign anything off.

The pack, in numbers:

$19
one time, never renews
400 pages
never expire, split across as many clients as you like
48 hours
from your files arriving, not from payment
Any bank, any country
the model reads the page image, so the layout doesn't have to be one we've seen
Scans and photos
accepted; illegible figures are reported rather than guessed
Pages we don't count
cover pages, blanks, terms and conditions, marketing inserts

What this is not. Not a bank feed — we never touch your client's credentials. Not tax advice — you're the professional, you sign it off. Not a bookkeeping service — no reconciliation against your ledger, no journals, no month-end, no contact with your client. No receipt or invoice capture. No app inside QuickBooks or Xero. It is a file.

Three steps, and the clock only runs on one of them

01

Step 1 — You pay $19. (about 60 seconds)

Card payment through Stripe. They email you an invoice with the business name and tax ID you enter at checkout. One charge. There is no subscription to cancel because there is no subscription.

02

Step 2 — You send the files. (about 5 minutes)

Upload the PDFs on the page you land on after paying, or use the link we email you. Attach the client's chart of accounts as a CSV or a QuickBooks or Xero export. Tell us which format you want back. The pack's 48 hours starts here, not when you paid.

03

Step 3 — The coded file comes back. (within 48 hours of your files arriving)

Every page is read, every transaction is coded to your chart of accounts, and opening + credits − debits = closing is checked on every statement. A person — right now, the founder — reads the statements that do not tie and the rows on the flag list. If a statement doesn't tie, nothing is sent until you've been told which page broke and what the difference is. Then the import file, the tie-out report and the flag list arrive by email with a download link.

If we cannot start your pack when your payment lands, you hear within 2 hours and get every penny back, unless you'd rather wait. We would rather say so than be late.

You can get rows for free. This isn't rows.

Converting a PDF statement into rows costs nothing. DocuClipper gives you 120 pages over 14 days with no credit card. BankStatementConverters.ai, Founderpath (5 PDFs), bankxlsx and Razor Extract each convert for $0 with no signup, and they come up on the first page of the same search that brought you here. (Terms as those vendors published them on 15 September 2026. Go and check — they change.)

If rows are what you need, use one of those. Genuinely. Don't pay us $19 for something you can have for nothing.

Here is what $19 buys that a row dump doesn't.

Coded, not just extracted.

Every line already carries an account code from your client's chart of accounts. Not a generic category, not a guess at "Office Supplies" — the codes in the chart you sent. The free tools stop at rows, which is exactly where the work starts.

Tied to the closing balance, on every statement.

Opening balance + credits − debits = closing balance, checked per statement. If it doesn't tie, you don't get an export. You get a report naming the statement, the page and the exact difference, and then you choose: send a clearer copy of that page and we redo it free, take the rows labelled "does not tie" and use them anyway, or take the $19 back. An extraction that silently doesn't tie is worse than no extraction — it corrupts a reconciliation quietly.

The date range is asserted, not assumed.

We state the first and last transaction date in the pack, the range of each statement, and any gap between one statement and the next. A missing month is something you find out before you import.

A person checks the ones that do not tie.

The tie-out is the check, and it runs on every statement: opening + credits − debits against the closing figure the statement itself prints, with a tolerance of zero. A person — right now, the founder — reads a statement when that check fails, or when a row is on the flag list, and not otherwise. Every one of those reads writes a row on your data page: who opened it, which client, which statement, and why. A claim about who reads your statements is only worth something if you can check it.

It also means we can say something a tool with no tie-out can't: if a figure is illegible, we tell you, we don't invent it.

The one number we won't give you.

Every competitor publishes an accuracy percentage — 99.9%, 99.99%. We don't have one, because we haven't measured one, and quoting someone else's would be worthless. When we've run a public accuracy harness across real statements we'll publish the method and the result. Until then, the promise is the refund, not a number.

Month two shouldn't start from zero.

Here's the part that only matters if you send a second month.

While we code your first month, we write down how this client's merchants map to this client's accounts. Next month, the transactions we've seen before come back already coded, and the only ones you have to think about are the new ones.

Nothing else in this category does this. Every converter hands you rows and forgets you. The complaint is on the record, twice, in one thread: "No category mapping at all — after export you're still manually typing account codes row by row", and "every new merchant needs a manual rename rule built from scratch. New client with two years of statements means hundreds of firsts." (r/Accounting 1um5dal, 3 July 2026)

The worked example — three transactions.

Month 1. You code these by hand, because nobody has seen them before.

DateDescription on the statementAmountCoded to
03 MarSQ *THE DAILY GRIND−4.806420 Staff refreshments
07 MarDD ADOBE SYSTEMS−51.986530 Software subscriptions
12 MarTFR FROM SMITH & CO LTD+2,400.004000 Sales

Month 2. The same three arrive pre-coded. Only the fourth needs you.

DateDescription on the statementAmountCoded toStatus
02 AprSQ *THE DAILY GRIND−6.206420 Staff refreshmentspre-coded
07 AprDD ADOBE SYSTEMS−51.986530 Software subscriptionspre-coded
11 AprTFR FROM SMITH & CO LTD+1,950.004000 Salespre-coded
19 AprCARD PURCHASE HOWDENS−310.44new merchant, flagged for you

Three coded, one to decide. On a real month it's hundreds of transactions and a handful of new merchants — but we're not going to put a percentage on that until we've measured it across real clients. What we will say is that the list is kept per client, it's yours, and you can ask for it as a CSV at any time or ask us to delete it.

The $19 pack is one pack. The memory is what the $49 / month Practice plan is for, and it opens later — see below.

Who this is for, and who it isn't

It's for you if:

  • You're a bookkeeper, accountant or tax preparer and a client has just handed you one to five years of PDF statements with a deadline attached.
  • You run a practice of one to ten people and you're doing the catch-up work in-house.
  • You have the client's chart of accounts, or you can get it.
  • You want a file you can import, not a login to another portal.
  • You bill your client for the outcome and you'd rather not bill them for typing.

It's not for you if:

  • You're doing your own books. A free converter plus your accounting software's own bank feed will cost you less than $19 and do enough. We'd rather say so.
  • You need the data to stay on your own machine. It doesn't. The pages go to a model to be read, and a person here reads a statement only when it does not tie out or when a row is flagged. Every time that happens it writes a row you can read on your data page. If that's still a liability problem for you — and for some practices it is — use a desktop tool that never uploads anything. That is a reasonable position and we're not going to argue you out of it.
  • You need receipts and invoices captured. That's a different document and a different product.
  • You need a live bank feed, or reconciliation against a ledger, or a month-end close. We don't do any of those.
  • You're a lender or an underwriter analyzing statements for a credit decision. Wrong tool, wrong product.
  • You need it in an hour. The pack's window is 48 hours from your files arriving, and it is a commitment rather than an estimate. If an hour is the deadline, this is the wrong tool today.

Two things. One you can buy today.

The pack

Catch-up Pack

$19

one time · 400 pages · pages never expire

  • Every transaction coded to your client's chart of accounts
  • Balance tie-out on every statement — no export if it doesn't tie
  • Date-range assertion, with any gap between statements named
  • QuickBooks 3-column CSV, .QBO, .IIF, Xero CSV or plain CSV — as many formats as you want
  • Xero comes as two files: the bank statement CSV Xero imports, and the coded CSV beside it
  • Any bank, any country, digital or scanned
  • Cover pages, blank pages and inserts are not counted against your 400
  • Every balance checked against the closing figure the statement prints. A person reads the ones that do not tie
  • Flag list of anything coded by judgement or unreadable
  • Split the 400 pages across as many clients and as many months as you like
  • Invoice emailed by Stripe, with your business name and tax ID on it
  • Full refund if it doesn't tie out or it's late. Ask, and it's done.

At checkout you confirm: I have read the refund policy and the data handling statement, and I understand a person reads a statement when it does not tie out.

One-time charge. It cannot renew — there is no subscription to renew. We don't store your card. There is no trial that turns into a bill.

Later

Practice

$49 / month

Opens later. Not built yet. Nothing to pay and nothing to cancel.

  • 750 pages a month
  • Unlimited clients. Unlimited users. No per-client fee, ever
  • Per-client categorization memory — month 2 arrives pre-coded, you only touch what's new
  • Everything in the Catch-up Pack

One email when it opens. Nothing else, no newsletter. No card, no waitlist fee, no automatic enrolment, and the price you see is the price you'd pay. If you'd rather not be emailed at all, just buy the $19 pack when you need one — it will always exist.

Who's doing this

I build and run software on my own, from the UK. My other product is Authex, which I build for managed service providers — it's a real product with real paying customers, and it's how I pay for my time.

The coding and the tie-out run on every statement without me. What I read myself is the statements that do not tie and the rows on the flag list, and every one of those reads is logged where you can see it. That's a deliberate choice, not a gap: the exceptions are how I find out what the software has to do next, and it's why I can promise a refund on a tie-out rather than an accuracy percentage I haven't earned.

Email me directly: hello@halebook.com

Questions

What we will never do to your card

The loudest complaint in this whole category isn't about accuracy. It's about billing. Four separate 1-star reviews of four separate tools, in the reviewers' own words:

"They trick you into 12 months billing - then falsely say they cancelled your account."
"Canceled subscription and have cancellation confirmation, but continued to be billed monthly."
"I carefully selected a monthly plan and was given a very expensive yearly plan."
"You only have 90 days to use credits or they will take them back."

So, in plain terms:

  • The $19 charge cannot renew. Not "we promise not to" — there is no subscription object to renew. Stripe takes one payment and there is nothing to cancel afterwards.
  • We don't store your card. Stripe holds the payment method; we never see it and never keep it.
  • There is no trial that turns into a bill. There is no trial at all.
  • Your 400 pages never expire. Not in 90 days, not in a year, not ever. Use them across as many clients and as many months as you like.
  • No per-client fee and no per-user fee, now or on the $49 plan when it opens.
  • If we ever do add a subscription, cancelling it will be one click in the dashboard, with a confirmation email. Not a phone call, not an email to support, not a retention flow.