AI BOOKKEEPER · DOUBLE-ENTRY · RUNS IN YOUR BROWSER · NOTHING UPLOADED

Books from your bank file that learn your business.

Import a bank file Try the example

Import the CSV from your bank and your card. Every line gets a suggested account, a confidence and the reason. You file the ones it is unsure of, and it remembers: next month the payees you have filed post themselves. A card payment from checking is paired into one transfer, not counted as an expense. Out come a trial balance, profit and loss and balance sheet, the close checks a bookkeeper runs, and journals for QuickBooks Online, Xero or your accountant.

AI is optional: on your own API key or a model running on your own computer, it suggests accounts for the lines still in review, and never posts by itself. Independent of every bank, card issuer and accounting software company. Not accounting or tax advice. New to this? Read how to do bookkeeping from bank statements, with a worked example of the two mistakes that turn a profit into a loss. Moving to QuickBooks or Xero? See bank statement to QuickBooks or Xero or a Mint-style export. Selling online? See bookkeeping for Stripe, Shopify, Square, PayPal, Amazon sellers Etsy, eBay, Poshmark, Mercari and Depop, freelancers and Airbnb hosts, rideshare and delivery drivers, creators, restaurants, real estate agents, house cleaners, landscaping, hair salons and barbers, personal trainers, pet sitters and dog walkers, massage therapists and estheticians, home daycares, therapists and counselors, farmers market and cottage food vendors, photographers, tutors and online teachers, club and PTO treasurers, plumbers, HVAC and electricians; want your tax deadlines in your calendar? Free tax calendar (.ics); got a 1099-K that does not match? Bridge it to your books.

1. Import a statement

Where the books stand

2. Review queue

Each line shows the suggested account, how sure it is and why. Change any account, tick the lines to file, and file them. Every line you file teaches the memory and the classifier.

DateFromDescriptionAmountAccountWhy

3. Optional: ask an AI about the review queue

AI suggestions are off. Add your own Anthropic, OpenAI or Gemini key, or point it at a model running on your own computer (Ollama, LM Studio, llama.cpp). Nothing is ever sent to us.

What is sent, from your browser straight to the provider you chose: the dates, descriptions and amounts of up to 40 lines still in review, your chart of accounts, and up to 40 lines you already filed as examples. A local model keeps it all on your computer. For Ollama on a web page, start it with OLLAMA_ORIGINS=https://duncan-haywood.github.io.

Optional: equipment and depreciation

A computer, a van or a tool that lasts more than a year is spread over its life instead of counted all at once. File the purchase to account 1500 Equipment, then register it here; depreciation is booked monthly (straight-line, or written off in full the first month if you and your preparer choose). The books use straight-line; the US tax schedule (MACRS) is a separate worksheet below. Ask your accountant.

US tax depreciation (MACRS)

The tax return uses its own schedule: an optional Section 179 deduction, optional bonus depreciation, then the IRS half-year percentage table (Publication 946, Table A-1) on the rest. Set a treatment for each asset, then read the year's worksheet beside the book figures. Whether you may elect 179 or bonus, and the dollar limits, are for you or your preparer; the worksheet lists what it cannot check.

Optional: prepaid expenses

A year of insurance, software or rent paid up front belongs to the months it covers. File the bank line to 1400 Prepaid expenses, then register it here; each month's share moves to the expense account, so profit is not lumpy and the balance sheet shows what is still paid ahead. Whether a prepayment may be deducted at once for tax (such as the 12-month rule) is for you or your preparer.

Optional: stock you resell

If you buy goods and sell them later, the cost of what you sold is an expense in the month of the sale, not the month of the purchase. File the supplier payment to 1450 Inventory, record the purchase here, then record each sale (or lost or damaged stock) by quantity: the cost moves to 5000 Cost of goods sold, first-in first-out or at the moving average. Whether to count your stock this way for tax is for you or your preparer.

Optional: loans

A fixed-rate loan with equal monthly payments. Enter the terms and the schedule is worked out in cents; then a bank payment of exactly the scheduled amount, within five days of its due date, is split into interest (6040) and principal (2200) for you. File the money you received to 2200 yourself. Variable rates, balloons and interest-only periods are not modelled, and a lender's own figures win where they differ.

Optional: when to pay your bills

Takes the open bills you loaded below, the bank balance and the cash forecast, and suggests a pay date for each so the balance stays above a reserve you choose: on the due date, held back until cash arrives, or flagged when it cannot fit. Overdue bills go first. It is a plan to read; nothing is paid from here. Supplier terms are optional: one line per supplier, name, discount %, days, late fee % (for example Acme Supply, 2, 10, 5 for 2% off if paid within 10 days of the bill date and a 5% late fee). A discount is taken when the cash holds; a late fee is reported, not counted against the reserve.

Optional: card-processor payouts

A Stripe, Shopify, Square or PayPal deposit reaches the bank as one lump: sales less fees. Load the processor's payout report and each deposit already in your books is split into gross sales, refunds and fees, so profit shows what you really sold and what taking cards cost. Stripe: the payout reconciliation report. Shopify: payout transactions. Square: the payout report. PayPal: the activity download (rows are grouped under each withdrawal, and split only when they add up to it). Nothing is posted until you press Post.

Optional: payroll provider reports

Load a pay-run report from Gusto, ADP, Paychex, QuickBooks Payroll or a spreadsheet (one row per employee per pay date: pay date, gross, net, federal, social security and Medicare withholding, employer shares, FUTA and SUTA). Each pay date becomes one entry: wages, employer taxes and the payroll liability (2300). The bank lines that paid the net pay and the tax deposits are then found, and a Form 941 worksheet is summed for the quarter. Worksheet only: not a filing. Nothing is posted until you press Post.

Optional: invoices and bills (accruals)

Bank lines alone give cash-basis books. Load a list of invoices you sent and bills you owe and each is booked on its own date; a bank line with the exact amount and the invoice number or the party's name then clears it instead of counting as income twice. Header: type,number,date,due,party,amount,account, type invoice or bill; rows sharing a number are one document.

Your details for printed invoices

Shown at the top of an invoice or credit note. Kept in your books file only; nothing is sent anywhere.

Optional: opening balances from a trial balance

Already keeping books somewhere else? Start mid-stream with what you have: one account per line, code,amount (what the account holds in its natural sign: an asset you own, a loan you owe) or code,debit,credit with that header. Anything that does not balance goes to 3000 Opening balance equity and is reported. Import statements from the day after the date below.

4. Reports

Profit and loss

Balance sheet

Cash flow

Indirect method: net profit adjusted for receivables, payables, tax and the like, then purchases of fixed assets, then loans and owner money. A card counts as a liability, so card spending shows as operating until the card is paid. The sections add up to the change in your bank accounts.

Ratios

What a lender reads off the statements. Current assets are cash, receivables and the like; the quick ratio leaves out prepaid and inventory. The loan counts as long term, so a payment due this year is understated. n/a means the figure under the line is zero or negative.

Trial balance

US Schedule C worksheet

For a US sole proprietor or single-member LLC: the profit and loss regrouped onto the lines of Schedule C, with meals cut to 50%. A worksheet for you or your preparer, not a filing; it leaves out depreciation and self-employment tax; miles and a simplified home office come in from the card below the reports.

US contractors (1099-NEC worksheet)

Contract labor (account 6020) paid by bank in the latest year of your books, per payee, against the 1099-NEC line ($600 to 2025, $2,000 from 2026; check the IRS page). Tick a W-9 once you hold one (only a flag is kept, never a tax ID). Merge two spellings of one person so their payments add up. A worksheet, not a filing: whether someone is a contractor, and any exemption, is for you or your preparer to decide.

The filing-prep file has one row per payee over the line, in the form's own box names. Tax ID and address columns are blank on purpose: this page never stores them, so fill them from the W-9 in your filing service. Services take their own column layouts, so reorder the columns to match theirs.

Optional: recurring payments and cash forecast

Payees whose lines come at a steady interval (three or more), what they cost per year, and which are overdue, lapsed or changed amount. The forecast rolls your bank balance forward 90 days with those items and your open invoices and bills. A guess from your own history, not a promise.

Optional: business miles and home office

Deductions the bank feed cannot see. Log business trips (the IRS asks for a date, miles and a purpose) and, if you qualify, a simplified home office ($5 a square foot, 300 at most). They go to Schedule C lines 9 and 30 in the worksheet above, for the year of the From date (or the latest year in your books). Mileage uses the IRS rates by trip date (2026: 72.5 cents to June 30, 76 cents from July 1). Whether a space qualifies is for you or your preparer. Stored in this browser only.

Optional: federal tax estimate and quarterly payments (US)

Takes the year's Schedule C profit (annualised from the months elapsed), self-employment tax, the standard deduction and a simplified 20% QBI deduction, then the bracket tax, and spreads the IRS safe harbour (the smaller of 90% of this year's total and 100% of last year's tax, 110% above $150,000 AGI) over the Form 1040-ES dates still ahead. Leaves out state tax, credits and itemising. A worksheet, not tax advice; the year is that of the From date (or your latest year). Blank boxes mean zero.

Optional: budget against actual

Set a monthly amount for an income or expense account, then see it beside what was posted in the From and To dates above (the latest month if they are empty). "Better" and "worse" mean for profit. Lines still waiting in the queue are not counted.

This period against the last

Profit and loss for the From and To dates above beside the period of the same length just before it (the latest month against the month before, if the dates are empty): income, expenses, net, then every account that moved, largest change first. It reports the difference and does not explain it. Lines still waiting in the queue are in neither period.

Optional: reconcile to a paper statement

Type the closing balance printed on a bank or card statement (a card statement's amount owed goes in as printed, positive). If the books differ, this names the likeliest lines behind the gap: lines still waiting for an account, one line equal to the gap, a sign slip, a pair of lines, swapped digits. It only points at lines; it never changes your books. Hints are a search, not proof.

Optional: year-end close

Closing a calendar year moves its income and expense into retained earnings (3900) with one dated entry and locks the books through December 31. The profit and loss and tax worksheets still show the year; the balance sheet and journal exports include the entry. Only the latest closed year can be reopened. Calendar years only.

Optional: match receipts to bank lines

Paste the text of receipts (typed, copied from an email, or read off a photo by any OCR tool), with a line of --- between them. Each is read into a merchant, date, total and tax, then paired with the bank or card line that paid it (the same amount, within a few days; a tip up to 25% on top counts when the name agrees). Below: receipts with no bank line, and spending over the amount you choose that has no receipt. The text stays in this browser. A reading aid, not a statement of what any tax authority requires you to keep.

read on this computer; the first photo downloads a ~20 MB reader from jsDelivr. Check the text before you press Read receipts.

Optional: UK VAT return worksheet

The nine boxes of the UK VAT return from invoices and bills dated inside the From and To dates above (invoice basis; VAT on sales in account 2100, VAT on purchases in 1300). Boxes 2, 8 and 9 (EU) stay 0. Flat-rate, cash accounting and partial exemption are not modelled. A worksheet to check a return against, not a filing.

5. Close checks

Reconciles each account to the statement's own closing balance (when the file has a running balance), and checks for lines left in review, money in the uncategorized account, duplicates, charges far above a payee's usual, and purchases that may be equipment.

6. Export and save


Your rules and chart of accounts

Chart of accounts

One account per line: code,name,type[,bank], type one of asset, liability, equity, income, expense; bank marks an account you import statements into. Keep 3000 Opening balance equity. Changing the chart does not move lines already filed.

How it decides, and what it leaves out

Four layers, then you. (1) Your rules. (2) Memory: the account you chose before for the same payee, after store numbers, card numbers and reference codes are stripped ("SQ *BLUE BOTTLE 0412 OAKLAND CA" and "POS DEBIT SQ *BLUE BOTTLE 9981" are one payee). Confidence is how many times you chose it over how often you saw the payee; at three unanimous choices it reaches 0.86 and posts by itself. (3) A naive Bayes classifier trained on everything you filed, for payees it has not seen exactly; it only suggests. (4) Conservative built-in keywords for common merchants; they only suggest. A language model, if you turn one on, is a fifth suggester for the review queue.

Measured, on synthetic data. A seeded generator writes a year of lines for a made-up studio (payroll, software, Amazon bought for two different accounts, coffee, one-off local merchants, a card paid from checking). Importing a month at a time and filing each month's queue correctly, from the fourth month on 60% of lines posted by themselves (1,300 of 2,164), 1 of those 1,300 to the wrong account, and 84% of the review suggestions were right (542 of 642; 5 seeds, 2,892 lines; the README has the table and the command). The built-in keywords were written by the same person as the generator, so the first month's accuracy flatters them; the learning numbers are the honest part. Real bank files will be messier.

Not modelled: accruals (invoices and bills not yet paid), depreciation, inventory, payroll filings (a Form 941 worksheet is offered) and sales tax filings, foreign-currency invoices (foreign bank accounts are covered in the CLI), splitting one line across accounts, and locking a closed period. It is cash-basis bookkeeping from bank lines. Reconciles to the statement only when the file has a running balance column.

Questions

What does AI Bookkeeper actually do with my bank file?

It reads each line, suggests the account it belongs to with a confidence and the reason, and turns every line you accept into a balanced double-entry journal entry. From those entries it builds a trial balance, a profit and loss by month and a balance sheet. The file is read in your browser and never uploaded.

How does it learn?

Every line you file is remembered by its payee, cleaned of store numbers and reference codes. Next time the same payee posts itself once you have filed it the same way three times, and a small naive Bayes classifier trained on everything you filed suggests accounts for payees it has not seen exactly. On a synthetic year of a small studio's lines, 60% of each month posted by itself from the fourth month on, and 1 of those 1,300 lines went to the wrong account.

Is the AI required, and where does my data go?

No. The rules, memory and classifier run in your browser with no key. If you add your own Anthropic, OpenAI or Gemini key, or point it at a model on your own computer such as Ollama or LM Studio, the dates, descriptions and amounts of the lines still in review, your chart of accounts and up to 40 lines you already filed are sent from your browser straight to that provider, never to us. The model only suggests; nothing is posted until you accept it.

Why doesn't a credit card payment show up as an expense?

Because it is not one. Paying the card from checking moves money between two of your own accounts. When you import both statements, the payment out of checking and the payment received on the card are paired into one transfer entry, so the expense is counted once, when you bought the thing.

Can I take the books to QuickBooks or Xero, or to my accountant?

Yes. Export a QuickBooks Online journal entry import, a Xero manual journal CSV, a QuickBooks Desktop IIF file, a plain journal CSV, or a CSV of every line with its account, suggestion and reason. Check the account names match your company file before you import.

Where are my books saved?

In this browser's local storage and in the books file you download. In Chrome, Edge or Opera you can also keep a live copy in a file you pick (a synced folder works). Nothing is kept on a server. Download the books file regularly; clearing site data deletes the copy in the browser.

Is this a replacement for an accountant?

No. It does the sorting and the arithmetic of bookkeeping and tells you what to check. It does not know your tax position, accrual adjustments, depreciation, payroll filings or sales tax rules. Have a qualified accountant review the books before you file anything.