Skip to main content

Beancount for Small Business Owners

Published Last updated 4 min readMike ThriftMike Thrift
Beancount for Small Business Owners
On this page

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.

  • 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.

Source: https://beancount.io/blog/2025/06/25/beancount-for-small-businesses

Published: June 25, 2025

Last updated: September 15, 2026