As a professional bookkeeper managing 20+ small business clients with Beancount, I learned the hard way: simple is scalable.
The Client Onboarding Nightmare
Two years ago, I was customizing each client’s Beancount setup like a bespoke suit:
- Industry-specific plugins for restaurants, retail, consultancies
- Custom importers for every bank’s quirky CSV format
- Elaborate validation rules tailored to each business
- Client-specific reporting scripts
Sounds great, right? It was a maintenance disaster.
When “Custom” Became “Chaos”
Client onboarding took 2-3 weeks per business. Plugin updates broke 3 clients at once because they had different versions. Training a new bookkeeper on my team? Impossible—every client was a unique snowflake.
When tax season hit, I was drowning. I couldn’t scale my practice because my toolkit was too complex.
The Template Revolution
I stripped everything down and created one standardized template for all clients:
Standard Setup (works for 90% of clients):
- 2 plugins:
noduplicates(critical for multi-source imports),implicit_prices(for investment tracking when needed) - 1 importer: Generic CSV importer with bank-specific config files (not custom code)
- Fava: Standard installation, minimal customization
- Monthly reconciliation workflow: Documented checklist, no automation
That’s it. Special cases get handled manually or with well-tested optional plugins added sparingly.
What Changed for My Business
Onboarding time: 2-3 weeks → 2 days. I have a checklist and template files ready to go.
Reliability: No more 3am calls about broken imports before tax deadlines.
Team training: New bookkeeper was productive in one week instead of months.
Scalability: I took on 8 new clients this year because my systems are simple enough to replicate.
Client handoff: If a client leaves or wants to self-manage, I can hand them a clean, understandable ledger.
The Professional Services Insight
Here’s what I learned: Clients don’t pay me for complex tools. They pay me for accurate books.
A simple setup that I can maintain and explain is worth infinitely more than a “sophisticated” system that only I understand.
When clients ask “Can Beancount do X?”, I ask: “How often do you need X, and what’s the cost of doing it manually?” Usually, the answer is “twice a year” and “5 minutes.” Not worth the complexity.
The Industry Context
This aligns with what I’m seeing across accounting: firms are consolidating tech stacks from 6-10 tools to 1-5 comprehensive platforms. The driver? Operational efficiency beats feature maximization.
Beancount’s plain text format is perfect for this: I control exactly how much complexity my practice needs, and I’m not paying recurring SaaS fees for features nobody uses.
My Recommendation for Professional Use
Start with the absolute minimum:
- Core Beancount (no plugins)
- One generic importer
- Fava for client reporting
- Balance assertions for validation
Add plugins only when:
- Multiple clients need the same functionality
- Manual alternative takes >30 min/month per client
- Plugin is well-maintained and widely used
Avoid:
- Client-specific customization (use metadata instead)
- Custom scripts that only one person understands
- Anything that breaks when Beancount updates
Question for Other Professionals
How do you balance customization vs standardization when managing multiple clients?
Do you have one template for everyone, or do you maintain different setups per client type?
For the solo practitioners: What’s the simplest setup that still looks professional to clients?
I’d love to hear how others are keeping things maintainable while delivering quality service. ![]()