The Retirement Wave Is Here: What 75% of CPAs Don't Have (And Why Plain Text Matters)

Three years ago, I inherited a client from a retiring CPA. No documentation. No transition meeting. Just a stack of QuickBooks files and a note saying “good luck.” The first month was brutal—I had to reverse-engineer years of custom entries, undocumented adjustments, and client-specific quirks. It took me 6 months to get confident I wasn’t breaking something.

That experience taught me: knowledge transfer isn’t optional. It’s professional responsibility.

The Statistics Are Sobering

According to recent industry research, only 46% of multi-owner CPA firms have a succession plan. For sole practitioners? A dismal 6%. And here’s the kicker: fewer than 20% of advisory firm transitions actually succeed.

We’re facing a massive retirement wave as Baby Boomer CPAs hit retirement age. The problem isn’t just about finding buyers for practices—it’s about transferring decades of institutional knowledge that lives nowhere but in someone’s head.

What Gets Lost When CPAs Retire

When I talk to colleagues planning their exits, I ask: “What have you documented?” The answers are always vague:

  • “The files are in QuickBooks, they’ll figure it out”
  • “I have some Excel templates, I’ll share those”
  • “Most of it is just… how we do things here”

That last one is the killer. “How we do things” is tribal knowledge:

  • Why Mrs. Johnson’s rental income gets categorized that specific way for her S-corp distribution calculations
  • The monthly reconciliation workflow that catches bank errors before they compound
  • The custom Excel macro that generates the management report the client actually reads (not the standard P&L they ignore)

When that CPA retires, all of this disappears. The successor inherits clients without context. Junior staff spend months rediscovering workflows through trial and error. Clients get frustrated because “it used to work differently.”

Plain Text Accounting as Knowledge Preservation

This is where I fell in love with Beancount.

Traditional accounting software creates knowledge silos. QuickBooks files are binary blobs. Excel macros are VBA spaghetti that breaks when you upgrade Office. Custom reports are locked in proprietary formats.

But Beancount? It’s plain text all the way down:

  1. Version control = decision history: Every change is in Git with a commit message. When I look at a client’s transactions from 2 years ago, I can see who made the entry, when they made it, and why (if they wrote a decent commit message). Future me—or my successor—can understand the rationale behind accounting decisions.

  2. Python importers = codified rules: Instead of “I manually download the bank CSV, delete the first 3 rows, rename some columns, then copy-paste into QuickBooks,” I have a Python importer script. The code documents the data processing workflow. Anyone who inherits my clients can read the code and understand exactly how transactions flow from raw bank data to final ledger.

  3. Comments = institutional knowledge: Beancount transactions support comment fields. I use them religiously:

    2026-03-15 * "ABC Property Management" "Rental income - Unit 3B"
      ; Client prefers this categorized as passive rental (not K-1 distribution)
      ; See email thread from 2024-08-12 RE: S-corp restructuring
      Income:Rental:Unit3B    -2400.00 USD
      Assets:Checking          2400.00 USD
    

    That comment? That’s knowledge transfer. My successor doesn’t have to call me 6 months after I retire to ask “wait, why isn’t this a K-1?”

  4. Text files = future-proof: In 20 years, will QuickBooks 2026 files still open? Who knows. Will plain text .beancount files still be readable? Absolutely. Even if Beancount itself is abandoned, the files are human-readable double-entry accounting. Any accountant can understand them.

The Challenge: It Requires Discipline

Here’s the hard part: this only works if you actually document things.

Writing commit messages takes 30 extra seconds. Adding transaction comments takes discipline. Writing README files explaining your client structure feels like busywork when you’re slammed during tax season.

But I learned the hard way: documentation is an investment. Either you’re investing in your future self (when you revisit a client after 6 months and forget why you did something), or you’re investing in your successor (when you sell your practice or retire).

Industry best practice says retiring partners should start planning 3-5 years before retirement. That’s when you should be documenting workflows, creating transition plans, and making sure institutional knowledge gets captured.

But honestly? Start today. Even if retirement is 20 years away. Because the discipline of documentation makes you a better accountant now.

Questions for the Community

I’m curious about your experiences:

  1. Have you inherited a practice or client from a retiring accountant? What was documented? What was missing?

  2. Are you preparing for your own succession/exit? What are you documenting? What format?

  3. For Beancount users specifically: Do you see plain text accounting as a knowledge transfer advantage? Or am I overthinking this?

  4. What’s the biggest knowledge transfer failure you’ve witnessed? What could have prevented it?

I’ve been thinking about creating a “Beancount Succession Planning Checklist”—a guide for documenting your setup, workflows, and client-specific knowledge in a way that your successor can actually use. Would that be helpful for this community?

Looking forward to hearing your stories. I suspect we all have “inherited a mess” war stories to share. :sweat_smile:


Sources:

This hits close to home, Mike. Even though I’m only 15 years into my CPA career, I started thinking about succession planning 2 years ago after watching a colleague struggle through exactly what you described.

The Documentation Burden Is Real (But Necessary)

When I took on my first “inherited” client from a retiring sole practitioner, I spent the first 3 months just trying to understand their chart of accounts. Why were there 47 different expense categories but only 2 income accounts? Why did certain transactions always get posted on the 15th of the month regardless of when they actually occurred? No documentation. No transition notes. Just “here are the files.”

That experience made me paranoid about my own practice. What if I get hit by a bus tomorrow? What if I want to sell my firm in 10 years? Would anyone be able to make sense of what I’ve built?

The Beancount Advantage: Readable Text, Not Proprietary Blobs

You’re absolutely right about the plain text advantage. I’ve been migrating my clients to Beancount over the past 18 months, and one of the biggest benefits is file portability.

When I hand off a client to a colleague for vacation coverage, I don’t send them a QuickBooks company file and pray they have the right version installed. I send them:

  • A Git repository with the full transaction history
  • A README.md explaining the client’s business model, accounting quirks, and workflow
  • Python importers that are documented in the code itself

The README is my knowledge transfer insurance policy. Here’s my template structure:

# Client: ABC Manufacturing LLC

## Business Overview
- [Quick description of what they do]
- [Key revenue streams]
- [Seasonal patterns]

## Accounting Quirks
- [Why we categorize X as Y instead of Z]
- [Special handling for recurring transactions]
- [Tax considerations]

## Workflow
1. Download bank CSVs (links in bookmarks)
2. Run `./import_abc_transactions.py`
3. Review flagged transactions (usually 5-10/month)
4. Generate monthly P&L and send to client by 10th

## Contact
- Owner: John Smith ([email protected], prefers email)
- Bookkeeper: Sarah (handles receipts, call for questions)

Future me—or my successor—can pick this up 2 years from now and understand the context immediately.

The Training Challenge

Here’s the hard part: teaching successors to work with Beancount + Git.

Traditional CPA training doesn’t include version control. When I hire junior accountants, they know QuickBooks and Excel. They don’t know how to clone a Git repo or run a Python script.

So I have to invest time in training. It’s worth it (because everything becomes transparent and auditable), but it’s an upfront cost that traditional software avoids.

That said, once they get it, they love it. One of my staff members told me: “I can actually see why we made decisions, not just what the final numbers are. It’s like having the senior accountant’s thought process documented.”

Starting Now, Even With 20 Years to Go

Your advice to “start today” is spot-on. I’m treating documentation as part of my weekly workflow now:

  • Every Friday afternoon, I review the week’s commits and make sure commit messages are clear
  • Every new client gets a README template filled out on day 1
  • Every custom importer gets inline comments explaining why we handle data a certain way

It takes an extra 30 minutes per week. But it’s insurance. When I eventually sell my practice or bring in a partner, they’ll have context, not just files.

Yes to the Succession Checklist

Absolutely create that “Beancount Succession Planning Checklist.” I’d use it immediately. Here are some things I’d want to see:

  • Documentation template for client setups
  • Git workflow best practices for accounting firms
  • How to document “tribal knowledge” (the stuff that’s currently just in your head)
  • Code commenting guidelines for importers
  • What to include in a client handoff package

This community could benefit from standardized templates. Right now, everyone is inventing their own system.

Looking forward to more discussion on this. The accounting profession needs to get better at knowledge transfer, and plain text accounting gives us the tools to do it right.

Oh man, do I have stories about inheriting client messes. :sweat_smile:

I run a bookkeeping service for 20+ small businesses, and I’ve taken over clients from 5 different retiring bookkeepers over the past 3 years. Every single one was a nightmare in its own special way.

The “QuickBooks Custom Report That Doesn’t Work Anymore” Problem

Worst one: Inherited a construction company client from a bookkeeper who retired in 2024. She had been using QuickBooks Desktop with custom reports built over 10 years. Problem? The reports used a plugin that no longer exists. The client relied on that report for job costing decisions.

I spent 2 weeks reverse-engineering her report logic by cross-referencing old PDF exports. No documentation. No notes. Just trial and error until the numbers matched.

If she had documented her report logic—even just “I group accounts X, Y, Z under ‘Direct Labor’ and apply a 15% burden rate”—I could have rebuilt it in a day.

The Undocumented Adjustment Entry Nightmare

Another client: Inherited monthly books that had mysterious “adjustment entries” every month. Always the same accounts, always different amounts, always labeled just “adjustment.”

Turns out the previous bookkeeper was manually correcting for the owner’s personal expenses that ran through the business account. She did this for 7 years. Never documented which transactions were personal vs business. Never told the owner to get a separate bank account.

When I took over, I had no idea what these adjustments meant. I called the retiring bookkeeper. She said: “Oh yeah, I just eyeball it every month. You’ll figure out the pattern.”

No. I won’t figure out the pattern. That’s not how accounting works.

I had to sit down with the client, review 6 months of bank statements, and create a documented policy: “Personal expenses get tagged #personal in the transaction comment, then reversed with a documented journal entry at month-end.”

Now it’s transparent. Now it’s auditable. Now my successor won’t have to call me in 5 years asking what the hell I was doing.

Why I Switched to Beancount for New Clients

After the 3rd inherited mess, I made a decision: every new client goes on Beancount, no exceptions.

Here’s why:

1. Every transaction has a comment field.

I use it obsessively:

2026-03-20 * "Home Depot" "Building materials - Johnson remodel"
  ; Customer: Johnson residence, 123 Oak St
  ; Invoice: INV-2026-089
  ; Job cost code: J-089-MAT
  Expenses:JobCosts:Materials    487.23 USD
  Liabilities:CreditCard        -487.23 USD

If I inherit this client or hand them off, the next person knows exactly what this transaction is for. No guessing. No reverse-engineering.

2. Git blame shows decision history.

Client asks: “Why did we change how we categorize truck expenses in May 2025?”

I run git blame on the relevant section, see the commit message: “Changed per CPA advice for Section 179 deduction eligibility.”

That’s knowledge transfer. I can see who made the change, when, and why.

3. Clients love the transparency (eventually).

Not gonna lie: clients are confused at first. “Wait, where’s the blue QuickBooks interface?”

But once I show them Fava and explain: “Every transaction has a paper trail. I can show you exactly why your books look the way they do. No black box. No mystery adjustments.”

They get it. And they appreciate it.

One client told me: “My old bookkeeper would just hand me a P&L with numbers. You can explain every number and show me the backup. That’s worth the learning curve.”

The Challenge: Not All Clients Are Tech-Ready

Here’s my biggest struggle: not all small business owners can handle plain text accounting.

Some clients need the QuickBooks blue-and-green interface. They need the “Pay Bills” button. They need guided workflows.

So I run a hybrid system:

  • Tech-savvy clients (contractors, consultants, software companies) → Beancount + Fava + Git
  • Less technical clients (restaurants, retail shops) → QuickBooks Online, but I maintain a parallel Beancount backup for internal audit trails

That way, if I hand off the client, the QuickBooks file is for day-to-day operations, but the Beancount repo has the why behind every decision.

What Should Be Documented (That Usually Isn’t)

Based on my inherited-mess experiences, here’s what I now document for every client:

  1. Account structure decisions - “Why we use 5 checking accounts instead of 1”
  2. Recurring transactions - “This $500/month charge is for X, it’s supposed to be there”
  3. Seasonal patterns - “Sales spike in December, don’t panic”
  4. Owner quirks - “Owner prefers reports by COB on the 10th, not the 15th”
  5. Vendor payment policies - “Pay net-30 vendors on Fridays, COD vendors immediately”

None of this is in the chart of accounts. All of it is critical for continuity.

In Beancount, I put this in:

  • A README.md in the client’s Git repo (high-level overview)
  • Transaction comments (granular, per-entry context)
  • Commit messages (why decisions changed over time)

Yes, Build That Checklist

Mike, please create that succession checklist. Here’s what I’d want:

  • Client handoff template - What to include when you transfer a client
  • Documentation workflow - How to build documentation into your weekly routine (not as a year-end panic project)
  • Git hygiene for accountants - Commit message best practices, branching strategies, etc.
  • Importer documentation standards - What to comment in your Python scripts

I’ve been winging it for 2 years. A standardized approach would be game-changing.

The accounting industry needs to get better at this. We’re all building knowledge silos and hoping we don’t get hit by a bus before retirement. Plain text accounting gives us the tools to fix this—we just need to use them.

Coming from 8 years at the IRS before I went into private practice, I want to add the audit perspective to this succession discussion.

Poor Documentation = Audit Red Flag

Here’s what most accountants don’t realize: succession events trigger IRS scrutiny.

When a business changes ownership, when a CPA practice gets sold, when a sole proprietor brings in a partner—these are all events that can trigger audits or examination requests. Why? Because the IRS knows that transitions are when mistakes happen.

I’ve seen it firsthand. A new accountant takes over a client, doesn’t understand the previous accountant’s methodology, and suddenly:

  • Deductions that were legitimate (but undocumented) disappear
  • Income that was properly deferred gets double-reported
  • Prior-year adjustments get lost in the shuffle

The IRS notices these anomalies. And when they come asking questions, “the previous accountant retired and didn’t leave notes” is not an acceptable defense.

The Inherited Disaster That Taught Me Everything

Let me share a story from my first year in private practice (2018).

I inherited a client from a retiring Enrolled Agent. The client was a small property management company with 15 rental units. The previous EA had handled their taxes for 12 years. No issues, no audits, clean history.

I took over in January 2018. Filed their 2017 return in April. In September, we got an audit notice.

The problem? 3 years of backlogged receipts with zero documentation.

The previous EA had a “system”: He kept shoeboxes of receipts in his office, cross-referenced them against bank statements manually, and filed everything at year-end. He never scanned them. Never organized them digitally. Never documented his reconciliation methodology.

When he retired, he handed me the client file and said: “The receipts are in my storage unit, you can pick them up whenever.”

The receipts were gone. His storage unit flooded. No backups. No digital copies. No documentation of what deductions were claimed or why.

The IRS wanted proof of $47,000 in repair expenses over 3 years. We had none.

We ended up owing $18,000 in back taxes plus penalties. The client was furious. I was furious. The retiring EA was unreachable (enjoying his RV retirement in Montana).

That’s when I realized: documentation isn’t optional. It’s malpractice insurance.

Why Beancount’s Transaction-Level Comments Are Audit Gold

After that disaster, I became obsessive about documentation. Every transaction needs context. Not just “what was purchased” but “why it was categorized this way.”

Beancount lets me do this:

2025-08-15 * "ABC Plumbing" "Repair - Unit 7 burst pipe"
  ; Emergency repair after tenant reported flooding
  ; Invoice: ABC-2025-0815 (scanned to receipts/2025/08/)
  ; Repair vs Capital: Per IRS guidelines, routine maintenance
  ; See: https://www.irs.gov/pub/irs-pdf/p527.pdf (page 8)
  Expenses:Repairs:Unit7    1847.50 USD
  Assets:Checking          -1847.50 USD

Look at that comment block. If the IRS audits this client 3 years from now and asks: “Why was this $1,847 expense deducted as a repair instead of capitalized as an improvement?”

I have:

  1. Context: burst pipe, emergency repair
  2. Backup: invoice number and scan location
  3. Justification: IRS pub reference explaining why this is repair (not capital improvement)

That’s audit-ready. That’s defensible. That’s what protects my client (and my license).

Tags as Audit Trail Navigation

I also use Beancount tags obsessively for audit trails:

2024-03-15 * "Home Depot" "Materials for Unit 4 renovation" #capital-improvement #schedule-e-unit4
  ; Capitalized: kitchen remodel, depreciated over 27.5 years
  Assets:CapitalImprovements:Unit4    12400.00 USD
  Assets:Checking                    -12400.00 USD

Now if I need to pull all capital improvements for Schedule E, I can:

bean-query ledger.beancount "SELECT * WHERE '#capital-improvement' in tags"

Instant audit trail. No manual searching. No “I think it’s in this Excel file somewhere.”

The Succession Audit Risk

Here’s the scary part about succession: the IRS doesn’t care that you’re the new accountant.

If you take over a client and discover prior-year errors, you’re now responsible for correcting them. If you don’t catch them and the IRS does, you’re potentially liable for malpractice.

This is why documentation is critical during transitions:

  • What deductions were aggressive vs conservative?
  • Were there any prior-year adjustments or carryforwards?
  • Are there open tax positions (like NOL carryforwards or Section 179 recapture risks)?

If the previous accountant didn’t document these, you’re flying blind.

With Beancount + Git, I can trace the entire history:

  • git log --all --grep="NOL" → shows all commits mentioning net operating losses
  • git blame on a specific transaction → shows who entered it and when
  • Transaction comments → explain the tax reasoning

This is the kind of audit trail that protects everyone: the client, the successor accountant, and the retiring accountant’s reputation.

Best Practices for Tax-Ready Documentation

Based on my IRS experience, here’s what I document for every client:

  1. Aggressive positions: Any deduction that’s close to the line gets a comment explaining the justification (with IRS pub citations)
  2. Carryforwards: NOLs, capital losses, charitable contribution carryovers—all documented with tags
  3. Basis tracking: For assets, especially vehicles and equipment (critical for Section 179 recapture)
  4. Prior-year adjustments: If we correct a prior error, document why and what was changed

In traditional software, this is a nightmare. In Beancount, it’s just disciplined commenting and tagging.

The Checklist Request

Mike, if you’re building a succession checklist, please include:

  • Audit documentation requirements - What needs to be documented to survive an IRS examination
  • Tax position tracking - How to document aggressive deductions, carryforwards, and open positions
  • Backup location protocols - Where are scanned receipts? How are they organized?
  • Prior-year issue log - A running list of “things to watch for in future years”

The accounting profession needs to take knowledge transfer seriously. Not just for convenience—for legal and ethical reasons.

Poor documentation isn’t just annoying. It’s a liability risk. Let’s do better.