For accountants · September 27, 2026

Recurring-Charge Review for Bookkeepers: A Client Workflow

Sooner or later most clients ask some version of "what am I actually paying for every month?". The answer is in their statements, but getting it out usually means an hour of scrolling through a bank feed — if the client has connected one. Plenty have not, or will not, or bank somewhere whose feed breaks every few weeks.

This is a review that runs entirely off PDF statements. Once the statements are in, it takes about fifteen minutes per client, produces a one-page list the client will actually read, and keeps the conversation factual. It works whether you do the grouping in Excel or use a tool for part of it.

Why clients ask, and why bank feeds are not always there

Recurring charges creep. A software seat added for a contractor, a price increase on a phone plan, an annual renewal nobody diarised, a trial that converted on the company card. Individually they are small; together they are a line in the P&L that the client cannot explain.

Bank feeds would make this easy, but feeds depend on the client granting access, on the bank's connection staying up, and sometimes on the client's comfort with third-party access at all. PDF statements have none of those dependencies. Every bank produces them, every client can download them, and they are the document of record.

The 15-minute workflow

Collect the statement PDFs

Ask for every account: operating account, any secondary accounts, every company card, and PayPal if they use it. Three months — the month being closed plus the previous two — is the minimum to see monthly cadence. Keep a rolling twelve-month folder per client so annual renewals show up when they come round.

Convert to CSV

If the client's bank offers a CSV export, use it. Otherwise convert the PDFs to CSV. Whatever you use, reconcile first: check the extracted rows against the statement's opening balance, closing balance and running balance before trusting any number. A review built on a mis-extracted amount is worse than no review. Our guide on converting a bank statement to CSV covers the options and their failure modes.

Group by descriptor root

Descriptions carry reference numbers and dates that change every month. Strip digits and symbols and keep the first two words as a "merchant root", then pivot: rows by merchant root, values Count, Sum, Min and Max of Amount. In Excel this is one Power Query custom column and a PivotTable; the subscription audit checklist walks through the same grouping for individuals.

Flag repeats, amount changes, new merchants and upcoming annuals

Four flags do almost all the work:

  • Repeats: count of two or more with a stable amount → recurring.
  • Amount changes: Min different from Max → the price moved. Note old and new.
  • New merchants: present this month, absent in the previous two. This is where converted trials and new seats show up.
  • Upcoming annuals: a large single charge ten to twelve months ago from a software, hosting, insurance or membership company → likely to renew soon.

Produce the one-page confirm list

This is the only thing the client sees. Keep it to one page:

Merchant (as on statement)Likely serviceCadenceLast amountChange vs priorClient note
DESIGNSUITE *PRODesign softwareMonthly$59.99was $54.99 in MarchStill in use?
TEAMMAIL *SEATSEmail and office seatsMonthly$84.00+1 seat since MayStill in use?
NAMEHOST.COMDomain renewalAnnual$21.99renews next monthStill in use?

(The rows above are illustrative: invented merchants, not a real client.)

Record client decisions

Write the answers into the client file. Add calendar reminders for the annual renewals a few weeks ahead. Next month, the "new merchants" flag is what catches anything that slipped in since.

Wording that stays informational

The list works because it describes rather than directs. "Appears monthly, last charged $59.99, was $54.99 in March" is a fact the client can check. A question — "still in use?" — invites a one-word answer and keeps the review call short and non-judgemental.

Leave out verbs that tell the client what to do with a service. The client knows why the design software exists; you know it went up by five dollars. Put the fact on the page and let the decision be theirs. It keeps you on the bookkeeping side of the line, and in practice clients answer a list of questions much faster than a list of instructions.

QuickBooks and Xero CSV import notes

If you also post the transactions, the CSV needs to match what the ledger expects:

  • QuickBooks Online accepts a 3-column CSV (Date, Description, Amount) or a 4-column CSV (Date, Description, Credit, Debit) through its upload-from-file option on the bank transactions page. Use one date format throughout and strip currency symbols and thousands separators if the import complains.
  • Xero needs at least Date and Amount; Payee, Description and Reference are optional but make reconciliation easier. Income and spending go in the same Amount column, spending negative. The date format has to match the organisation's region (MM/DD/YYYY for US organisations).

If a converter gives you an Excel file, export it as CSV (UTF-8) before uploading. There is no direct integration needed for either; the CSV is the interface.

Batch: many statements at once

For one client with three statements, the manual workflow is fine. For a practice with many clients at month-end, the conversion and grouping steps are where the time goes.

StatementConvert.ai does both from the PDFs. Each statement becomes a transaction table (Excel, CSV, JSON or XML) with amounts reconciled against the statement's running balance whenever one is printed, and the same upload lists the merchants that charge on a cycle with cadence, latest amount, last and next expected charge date, monthly equivalent, yearly cost and a confidence label. That list is suggested from the transactions it read, so it is a starting point for the confirm list above, not a finished one: transactions are read by AI, which can make mistakes, and the result shows whether they agreed with the balances printed on the statement.

Stated plainly, the batch parts are paid: up to 12 statements in one upload, merged into one timeline per account with duplicate rows from overlapping periods removed once and gaps flagged; statements longer than 5 pages; and the subscription report export (a "Subscriptions" sheet in the Excel file, or a separate CSV). Downloading the statement itself as Excel, CSV, JSON or XML is free within the monthly pages. Plans start at $7.99 a month. The free plan covers up to 5 statement pages a month, which is enough to see whether the output fits your workflow. We never store client statements (their pages are read by our AI providers and then discarded; the privacy page has the details), and no bank-feed or online-banking access is involved.

For the underlying method for an individual — useful to send to clients who want to check their personal accounts — see how to find all your subscriptions from a bank statement.

Frequently asked questions

Can I run a recurring-charge review without bank-feed access? Yes. The review only needs the statements. Clients can download PDF statements from online banking and send them over; you convert them to a table, group the charges by merchant and produce the list. Bank feeds make it faster, but they are not required.

Which CSV format does QuickBooks Online accept for bank uploads? QuickBooks Online accepts a 3-column CSV (Date, Description, Amount) or a 4-column CSV (Date, Description, Credit, Debit). Dates need one consistent format and amounts need to be plain numbers without currency symbols. StatementConvert.ai exports a CSV but has no direct QuickBooks integration.

How do I handle variable-amount recurring charges like utilities? Match them by merchant name rather than amount, and label them variable on the client list. The useful comparison is the range over the last three to twelve months rather than one fixed price.

Are client statements stored when I use StatementConvert.ai? Not by us. Each PDF is processed in server memory, its pages are read by our AI providers (OpenAI, and Anthropic for a second reading), and it is then discarded; nothing from the statement is written to our disk or database. The providers do not train on it and may keep request logs for up to 30 days. The only data we keep is the account's plan and monthly page usage, tied to the email used to sign in.

Built for client statements

See how StatementConvert.ai works for accountants and bookkeepers — statement PDFs in, reconciled transactions and a recurring-charges list out. We never store client statements.