Finance & AccountingFree
Bookkeeping Cleanup Diagnostic and Quote
River counts what is actually in the prospect's books, ties it to the last filed return, and gives you a number you can hold to.
A cleanup quote goes wrong in one specific way. You price the file you were shown on a screen share, then discover the part nobody scrolled to. Eight hundred transactions sitting in Uncategorized is not eight hundred keystrokes, it is a few hundred questions the owner has to answer, and the engagement stalls in their inbox rather than at your desk. The diagnostic that protects a fixed fee is the one that counts both kinds of work separately, from the export, before the proposal goes out.
River opens the general ledger, the statements and the last filed return together. It counts every uncategorized line, every unreconciled month by account, every unapplied credit and every duplicate candidate, then splits that count into work you can multiply by a rate and work that is a decision waiting on the client. A normalized trial balance makes the account-level totals comparable, and where the only record of a period is a statement, bank statement conversion turns it into lines you can actually count.
Then it checks what the books can be anchored to. Opening balances have to agree with something, and for a small partnership or S corporation that something frequently does not exist: the return was filed with the balance sheet schedules left blank, which is permitted and very common. Finding that out during the engagement costs you the fee. Finding it out during the diagnostic turns it into a priced line item, alongside the findings that are not bookkeeping at all and belong in a separate quote.
Why cleanup quotes run double
The pricing models in circulation ask for a transaction count, a month count and a difficulty rating, then multiply. That model breaks on decisions. A miscoded expense you can fix from the memo line takes a minute. A 4,200 wire to a name that appears nowhere else in the file takes an email, a wait, a follow-up and a judgment call about whether it is a distribution or a loan. Both are one transaction. One of them is forty times the work, and the count alone cannot tell you which.
Anchoring is the second failure. Form 1065 Schedule B question 4 lets a partnership skip Schedules L, M-1 and M-2 entirely when total receipts are under 250,000 dollars and total assets under 1 million. It blanks the capital account on every K-1 as well, per the Form 1065 return itself. Form 1120-S question 11 does the same for an S corporation at 250,000 on both tests. A prospect who has grown past those thresholds needs a balance sheet this year and has nothing to roll forward from.
The third failure is scope that was never bookkeeping. Books kept on cash against a return filed on accrual is a method question, not a coding problem. Changing the method means a Form 3115, where a positive section 481(a) adjustment spreads over four tax years and a negative one lands in one, per the Form 3115 instructions. Unissued information returns behave the same way. The threshold rose to 2,000 dollars for tax years after 2025 while a 2025 backlog is still tested at 600, per the 1099-NEC instructions. River prices each one apart.
From export to signed proposal
Hand over the file
The ledger detail, the statements and the last filed return with all of its schedules attached.
Everything gets counted
Each finding is counted at the account and period level, then split by whether it is a decision.
Anchor and carve-outs
Opening balances tested against the return, and anything that is not bookkeeping is pulled out.
The number
Hours roll into a fixed fee, with separately quoted items and exclusions written beside it.
What the diagnostic gives you
- A count of every finding straight from the export, with the account and the period it sits in
- Per-transaction work separated from per-decision work, because only one of those scales with a rate
- The unreconciled backlog by account and by month, not a single number for the whole file
- An anchor check against the last filed return, including whether a filed balance sheet exists at all
- The findings that are a different engagement, priced apart from the cleanup and labelled as such
- A quotable total with the assumptions written next to it, so a scope argument has a document
Common questions
How is this different from a cleanup checklist?
A checklist tells you which categories to look at. It does not tell you how many of each are in this file, which of them are decisions rather than keystrokes, or which findings are outside bookkeeping altogether. River returns counts, hours and a total, sourced from the export you were given rather than from the prospect's description of it.
What if the prospect only gives us read-only access?
An export is enough. The ledger detail for the open periods, a trial balance, the statements and the last filed return with every schedule attached will produce the full diagnostic. The return matters as much as the ledger, because it decides whether the opening balances have anything to agree with.
Why separate per-decision work from per-transaction work?
Because they behave differently. Per-transaction work finishes at your pace and can be fixed-fee with confidence. Per-decision work waits on the owner, and a fixed fee that bundles the two is a bet on how fast a stranger answers email. Quoting them apart gives you a defensible reason to reprice when the answers stop coming.
What counts as a finding that is not a cleanup?
Anything that changes a filed position or requires a form. A method mismatch between the books and the return, unissued information returns, a payroll variance against the quarterly filings, an amended return. Each one gets named, priced separately and labelled, so the cleanup fee covers cleanup and nothing else.
Does it handle a prospect with no prior return at all?
Yes, and it says so plainly rather than assuming. Opening balances then get built from statements, loan schedules and asset records, and that rebuild appears as its own hours line. The same path runs when a return exists but arrived with the balance sheet schedules left blank.
Can we use the output as the scope section of the proposal?
That is what it is written for. Findings, counts, hours, assumptions, carve-outs and exclusions all come out in a form you can paste into an engagement letter. When the client later asks why something is billing extra, the answer is a line that was in the document they signed. Two years on, the pricing review reads that letter against the hours to find what drifted outside it.
What happens after the cleanup is done?
The diagnostic becomes the specification for the ongoing engagement, naming every account and process that failed. A monthly close pack turns that into a repeatable cycle, and a fractional CFO engagement pack scopes an ongoing CFO seat separately. When that relationship eventually ends, a client offboarding pack closes the file the way this diagnostic opened it, access tracked to a confirmed revocation, not assumed.
Bookkeeping Cleanup Diagnostic and Quote
Fill in the form and your workspace opens with the work already underway.