Beancount for Small Business Owners
Bookkeeping Basics You Can Actually Understand—and Own
Managing your own books doesn’t have to mean spreadsheets, stress, or expensive software. Beancount gives you a minimalist, auditable, and powerful way to do bookkeeping using just plain text and a double-entry accounting system.
This guide is your complete introduction to getting your small business books in order with Beancount—with real examples and step-by-step direction.
🧾 What Is Beancount?
Beancount is an open-source plain-text accounting system built around double-entry bookkeeping. You write your transactions in .beancount
files and use tools like bean-doctor
, bean-report
, or Fava to analyze and visualize your books.
Here’s a basic transaction:
2025-06-01 * "Client Payment: Invoice #123"
Assets:Bank:Business:Checking 1,200.00 USD
Income:Consulting -1,200.00 USD
It's readable, scriptable, and version-controllable—perfect for business owners who want transparency and control.
📌 Why Bookkeeping Matters (and Why Beancount)
- You need it for taxes
- You need it for clarity
- You need it for funding
- You need it to catch mistakes early
And with Beancount, you can do all of this with just a text editor and a few tools.
🪜 8 Steps to Start Doing Your Own Bookkeeping with Beancount
1. Separate Business & Personal Finances
Open a separate business checking account and credit card. Reflect that in Beancount:
2025-06-01 open Assets:Bank:Business:Checking USD
2025-06-01 open Liabilities:CreditCard:Business USD
This keeps your books clean and protects you legally (especially if you're an LLC or corporation).
2. Use Double-Entry Bookkeeping
Every financial event affects two accounts. Beancount forces this balance by design:
2025-06-05 * "Web hosting payment"
Expenses:Hosting 15.00 USD
Assets:Bank:Business:Checking -15.00 USD
This guarantees mathematical integrity across your ledger.
3. Choose Cash or Accrual Basis
- Cash Basis: Only record income/expenses when money is received/spent.
- Accrual Basis: Track obligations (Accounts Payable/Receivable).
Cash basis example:
2025-06-10 * "Client payment received"
Assets:Bank:Business:Checking 800.00 USD
Income:Sales -800.00 USD
Accrual basis example (invoice sent, then payment received):
2025-06-01 * "Invoice #2001 issued"
Assets:AccountsReceivable 800.00 USD
Income:Sales -800.00 USD
2025-06-15 * "Payment received for Invoice #2001"
Assets:Bank:Business:Checking 800.00 USD
Assets:AccountsReceivable -800.00 USD
4. Set Up Your Chart of Accounts
Define your categories clearly. A minimalist example:
2025-01-01 open Income:Sales USD
2025-01-01 open Expenses:Software USD
2025-01-01 open Expenses:Meals USD
2025-01-01 open Equity:Owner USD
Tailor these to your business. Keep it consistent and descriptive.
5. Categorize Transactions (with Metadata)
Use metadata to track context. This helps with deductions, audits, and clarity.
2025-06-18 * "Team lunch after Q2 milestone"
Expenses:Meals 90.00 USD
Assets:Bank:Business:Checking -90.00 USD
; business_purpose: Q2 celebration
; attendees: Alice, Bob, Tian
Add tags or links to receipts:
; receipt: ./receipts/2025-06-18-lunch.jpg
6. Store Supporting Documents
Use Dropbox, Google Drive, or a receipts/
folder. Then link them in Beancount like:
2025-06-02 * "Domain Renewal - GoDaddy"
Expenses:Hosting 20.00 USD
Assets:Bank:Business:Checking -20.00 USD
; receipt: ./receipts/domain-godaddy.pdf
Auditors and tax professionals will love you.
7. Organize for Deductions
Mark deductible expenses clearly:
2025-06-03 * "Adobe Creative Cloud Subscription"
Expenses:Software 60.00 USD
Assets:Bank:Business:Checking -60.00 USD
; deductible: true
; usage: 100% business
Use custom metadata or tags like #deductible
to track potential write-offs.
8. Make It a Habit
Create a workflow. Example:
# Weekly bookkeeping routine
git pull origin main
bean-extract transactions.csv >> ledger.beancount
bean-doctor ledger.beancount
bean-check ledger.beancount
fava ledger.beancount
Or just commit to a "Beancount Friday" and reconcile everything weekly.
💼 DIY or Hire Help?
You can do it all yourself with Beancount. But even power users should:
- Consult a CPA during setup
- Hire an accountant at tax time if needed
- Use Fava for monthly reports
You get all the power of an accounting system without vendor lock-in or subscription fees.
🛠️ Recommended Tools for Beancount Users
- Fava – beautiful web dashboard for Beancount files
- bean-doctor – health checks for your ledger
- bean-query – run SQL-like reports
- beancount-import / beanie – automated bank import
- Version control – use Git to track changes to your books
✅ Final Example: Complete Transaction Flow
2025-06-20 * "Consulting payment from Acme Inc."
Assets:Bank:Business:Checking 3,000.00 USD
Income:Consulting -3,000.00 USD
; invoice: 2025-06-acme
; project: "Backend API redesign"
2025-06-21 * "Notion Pro Plan"
Expenses:Software 10.00 USD
Assets:Bank:Business:Checking -10.00 USD
; purpose: project documentation
; receipt: ./receipts/notion-june.pdf
🎯 Summary
Beancount is perfect for small business owners who want to:
- Keep costs low
- Stay fully in control of their finances
- Avoid the bloat of legacy software
- Embrace transparency and plain-text simplicity
Would you like a downloadable .bean
starter template for your business? Let me know your business type, and I’ll build one tailored for you.