Somewhere in your client list is a business that exposes exactly why pricing when client complexity varies is so hard to get right: it should cost you three times what you're charging them, and doesn't. Multiple bank accounts, payroll, maybe a second entity, a transaction volume that eats a disproportionate share of your team's month. Meanwhile a sole proprietor with twelve transactions a month pays nearly the same flat fee. It's a problem the entire industry is still actively arguing about - including, as it turns out, in public.
In April 2026, a practitioner on the Beancount and Plain-Text Accounting forum posted almost exactly this problem: monthly retainers have become the dominant pricing model in bookkeeping, but nobody has a clean answer for pricing predictably when client complexity varies wildly. That thread is worth reading in full if you want to see how unresolved this actually is across the profession - and it's the reason this piece exists as a concrete framework rather than another "it depends" answer.
Why Flat-Fee Pricing Breaks Down at Scale
Flat-fee, tiered retainer pricing is genuinely a good model - it's why roughly 79% of firms have already moved away from hourly billing for bookkeeping. But most tiering schemes only account for one variable: revenue. A $2M business with one bank account, no payroll, and forty transactions a month is not the same engagement as a $2M business with three bank accounts, twelve employees, and eight hundred transactions a month - and pricing them identically because they share a revenue bracket is where flat-fee pricing quietly breaks.
The fix isn't abandoning flat-fee pricing. It's pricing off the variables that actually drive your effort, not the one variable (revenue) that's easiest to ask about on a discovery call.
Run the math on a concrete pair: two clients both at $1.5M in annual revenue, both quoted $900/month because that's "the $1M–$3M tier." Client A is a consulting firm - one bank account, no payroll, sixty transactions a month. Client B is a multi-location retail business - four accounts, nine employees on payroll, and close to a thousand transactions a month. If Client A genuinely costs you three hours a month and Client B costs twelve, you're not running one profitable retainer book - you're running one very profitable client and one that's actively losing you money, averaged together into a number that looks fine on a spreadsheet.
The Complexity Variables That Actually Predict Effort
Revenue is a weak predictor of bookkeeping effort. These variables are much stronger:
- Transaction volume - the single strongest predictor. A low-revenue business with high transaction count (think: e-commerce, restaurants) is often more work than a high-revenue business with few, large transactions.
- Number of bank and credit accounts - each additional account adds reconciliation time linearly, and often adds categorization complexity non-linearly when money moves between them.
- Payroll - even simple payroll adds a recurring compliance-sensitive task with its own deadlines, separate from general bookkeeping.
- Multi-entity structure - holding companies, multiple LLCs, or inter-company transactions multiply the bookkeeping surface area well beyond a proportional revenue increase.
- Inventory tracking - COGS and inventory reconciliation is meaningfully more involved than service-business bookkeeping at a comparable revenue level.
- Industry-specific compliance - trust accounting for law firms, job costing for contractors, or multi-state sales tax nexus all add recurring specialized work.
Notice what's not on this list: revenue by itself. It's a reasonable starting filter for which tier a client might land in, but it should never be the only input into what you charge.
How to Gather This Without an Awkward Interrogation
Asking a prospect "how many bank accounts do you have?" in a rapid-fire list feels like an audit, not a conversation. These variables surface naturally if you ask about their business instead of your checklist: "walk me through how money moves through the business" surfaces accounts and entities. "Do you have anyone on payroll, and do you expect that to grow this year?" surfaces both current and near-future complexity in one question. "About how many transactions would you guess hit your books in an average month?" is a question most owners can ballpark even if they can't give an exact number - and a ballpark is enough to score against.
Five or six well-chosen questions, asked conversationally during a normal discovery call, generate everything the scoring framework needs - without ever feeling like a form.
Building a Simple Complexity-Scoring Framework
You don't need proprietary software for this - a simple point system, applied consistently at every discovery call, is enough to make pricing defensible and repeatable instead of a gut-feel guess. A workable starting structure:
- 1 point per bank/credit account beyond the first
- 2 points if payroll is involved (regardless of headcount - the compliance overhead exists either way)
- 1 additional point for every 5 employees on that payroll
- 3 points for multi-entity structure
- 2 points for inventory tracking
- 1 point per 100 monthly transactions beyond the first 100
Add it up, and use the total to place the client into a tier - not as an exact price calculator, but as a consistent, explainable starting point. A client who questions why their fee is higher than a friend's business down the street gets a real answer: "your bookkeeping scored an 8 on complexity versus their 3 - here's what that includes," instead of "that's just what we charge higher-revenue clients."
This is also what turns pricing from something you defend into something you can explain in one sentence, in front of the client, without sounding like you're making it up on the spot.
Worked example: a business with 2 bank accounts (1 point), payroll for 6 employees (2 points + 1 point for the second block of 5), no second entity, no inventory, and 260 monthly transactions (1 point for the 100 beyond the first hundred, another for the next). That's a score of roughly 5 - solidly a "Growth" tier client, not "Foundation," even if their revenue alone might have suggested a lighter tier. Without the framework, this client is easy to underprice on a gut-feel quote; with it, the tier placement is a two-minute calculation instead of a guess.
Industry-Specific Complexity Multipliers
The base framework above works for most small-business clients, but certain industries carry complexity that a generic point system will systematically underprice if you don't add an industry-specific line to the scoring:
- Law firms and other trust-account industries - trust accounting (IOLTA and similar) carries strict reconciliation and compliance requirements that add real recurring work regardless of transaction volume. Score this as its own line item, not folded into general account-reconciliation points.
- Contractors and project-based businesses - job costing means tracking profitability per project, not just per month, which is a fundamentally different (and more time-intensive) deliverable than standard P&L bookkeeping.
- Multi-state service or e-commerce businesses - sales tax nexus across states is one of the most common places firms silently absorb extra work, since each additional filing state adds a recurring compliance task that a single flat fee rarely accounts for.
- Restaurants and hospitality - high transaction volume combines with tip reporting, multiple revenue categories, and often multi-location complexity, stacking several point categories at once rather than just one.
If a meaningful share of your client base sits in one of these categories, it's worth adding a dedicated industry-complexity line to your scoring sheet rather than trying to approximate it through the general variables alone.
Setting Your Minimum Retainer Floor
Complexity scoring solves the top end of pricing - it doesn't solve the bottom end. Every firm needs a minimum retainer floor below which you simply don't take the engagement, regardless of how simple the client is. Published benchmarks put basic monthly bookkeeping sustainably no lower than roughly $300–$500/month, with many firms setting their real floor closer to $500 once compliance risk and minimum service overhead are accounted for - a client below that line usually isn't unprofitable because they're simple, they're unprofitable because the fixed overhead of onboarding, software, and even a stripped-down monthly close doesn't shrink no matter how few transactions there are.
If a prospect's complexity score and business size genuinely can't support your floor, that's a legitimate "no," or a referral to a lower-cost provider - not a discount that quietly subsidizes the rest of your book.
The floor also has to account for something the point system alone won't catch: the fixed cost of onboarding itself. Setting up a new client in your systems, learning their chart of accounts, and getting through the first close all take real time regardless of how simple the ongoing work will be - which is exactly why a client scoring near zero on the complexity framework can still be unprofitable if they're priced below the floor. The framework prices the recurring work; the floor protects against the one-time cost of taking the client on in the first place.
When and How to Use Complexity as an Upsell Trigger
Complexity isn't static - a client's score changes as their business grows, and that should trigger a pricing conversation, not a passive absorption of new work. Build specific triggers into your process rather than waiting for an annual review to catch it:
- Client adds their first employee → immediate scope conversation before the first payroll runs, not after.
- Client opens a new bank or credit account → flag it the moment it shows up in a reconciliation, not months later.
- Client starts a second entity → this is a new engagement to scope, not an extension of the existing one.
- Transaction volume climbs noticeably for two consecutive months → worth a proactive check-in before it becomes the new normal at the old price.
Complexity-scoring makes this proactive conversation easy, because you're not renegotiating from scratch - you're pointing at a specific, previously agreed-upon variable that changed. This connects directly to a point worth repeating from how retainers should be scoped in the first place: building the annual review into the engagement letter so this conversation is expected, not a surprise.
Repricing an Existing Client Without Losing Them
Raising a price on a client who's used to the old number is uncomfortable, but it's far more defensible with a complexity framework behind it than without one. A few principles that make it land better:
Lead with what changed in their business, not your costs. "You've added two employees and a second account since we set your original price" is about them. "Our costs have gone up" is about you, and invites a negotiation instead of an acknowledgment.
Give real notice. A 30–60 day heads-up before a new rate takes effect respects the relationship and avoids the price change feeling like it was sprung on them mid-invoice.
Anchor to the framework, not a one-off decision. "Your complexity score moved from a 3 to a 7 this year" is a fact about their business. "We decided to raise your rate" sounds arbitrary even when it isn't.
Expect some attrition, and that's not automatically a failure. A client who leaves rather than pay a fair, complexity-justified rate for the work you're actually doing was very likely unprofitable to keep in the first place.
Migrating Existing Clients Onto a Complexity Framework
If you're introducing this framework to an established book of clients rather than building it in from day one, don't reprice everyone at once. Score your existing clients first, privately, and sort the results into three groups:
- Correctly priced already - leave them alone. The framework is a pricing tool, not a mandate to raise every fee you can justify raising.
- Modestly underpriced - fold the adjustment into your next scheduled annual review, framed around what's changed in their business rather than the new framework itself.
- Significantly underpriced - these need a direct conversation sooner, but still with real notice (see the repricing principles below) rather than a surprise line-item change on the next invoice.
The complexity score becomes your internal source of truth going forward - every new client gets scored at signup, and existing clients migrate onto it naturally as their annual reviews come up, rather than all at once in an uncomfortable, book-wide repricing event.
FAQ
Should revenue play any role in pricing at all?
Yes, as a rough initial filter for which tier a prospect might fall into - but it should never be the primary driver once you have real complexity data from a discovery conversation.
How often should a client's complexity score be reassessed?
At minimum, annually - and immediately whenever one of the specific triggers above occurs (new employee, new account, new entity, sustained volume increase), rather than waiting for a scheduled review.
What's a reasonable minimum retainer floor?
Published benchmarks suggest sustainable bookkeeping pricing rarely goes below $300–$500/month; many firms set their actual floor at $500 once true delivery and compliance overhead are priced in.
Is a complexity-scoring system something clients need to see?
Not the internal point values necessarily, but the categories behind them - accounts, payroll, entities, volume - are worth naming explicitly. It's what makes a price increase later feel like a fact about their business rather than a decision you made about them.
Should I reprice every underpriced client at once?
No. Sort existing clients by how underpriced they are and stagger the conversations - significant gaps sooner with real notice, modest gaps folded into the next scheduled annual review. A book-wide repricing event all at once creates unnecessary churn risk.
What if a client's complexity is high but their revenue is low?
Price off the complexity score, not the revenue bracket. A low-revenue, high-transaction-volume business (many early-stage e-commerce clients fit this pattern) is a common case where revenue-based tiering underprices real effort - it's precisely the scenario this framework is built to catch.
Pricing That Reflects the Work
The firms getting this right aren't the ones with the most sophisticated pricing software - they're the ones who stopped pricing off revenue alone and started pricing off the variables that actually predict their own effort. It turns pricing from a defensive conversation into a factual one, and it's the difference between a retainer book that's profitable on average and one that's profitable on every single client in it.
If getting the pricing model right also has you thinking about whether your firm is visible to enough of the right clients in the first place - the complex, higher-value ones this framework is built to protect - that's exactly where we come in. Our own case study on a Hayward, CA accounting firm that went from page 20+ to #1 in 136 days shows what's possible when an accounting practice's search visibility matches the quality of its work. See how we help accounting firms get found by more of the right clients, or reach out if you'd rather just talk it through.