Skip to main content

8 posts tagged with "small business"

View All Tags

How Much to Set Aside for Small Business Taxes

· 6 min read
Mengjia Kong
Mengjia Kong
IRS Enrolled Agent

Running a small business is already a constant juggle of cash flow, suppliers, and customers—tax surprises shouldn’t be another bowling pin in the air. The good news: with a simple framework and a few Beancount tricks, you can translate “I hope the tax bill isn’t huge” into a predictable monthly transfer.

1. Know What You’re Really Paying For

2025-07-20-how-much-to-set-aside-for-small-business-taxes

Before you can set money aside, you need to know where it’s going. For most U.S. small businesses (especially sole proprietorships and partnerships), the total tax liability is a combination of several distinct obligations.

  • Federal Income Tax: This is a progressive tax, meaning the rate increases as your income does. For 2025, brackets go up to 37% for single incomes above $626,350 and married-filing-jointly (MFJ) incomes above $751,600.
  • Self-Employment (SE) Tax: This is the entrepreneur's version of FICA taxes (Social Security and Medicare) that W-2 employees pay. It’s a flat 15.3% on your first chunk of net earnings. The 12.4% Social Security portion stops once your profit hits the annual wage base, which is projected to be $176,100 in 2025. The remaining 2.9% for Medicare continues on all profits.
  • State & Local Income Tax: This varies wildly by location, ranging from 0% in states like Wyoming and Texas to over 13% in California's top bracket.
  • Quarterly Underpayment Penalties: The IRS wants its money throughout the year, not all at once. To avoid penalties, you generally must pre-pay at least 90% of your current year's tax liability or 100% of your previous year's tax bill (this threshold rises to 110% if your adjusted gross income, or AGI, is over $150,000).

Quick heuristic: Most U.S. solopreneurs who live in an average-tax state end up owing 25% - 30% of net profit once federal, SE, and state taxes are combined.

2. A Three-Step Estimate You Can Update Monthly

You don’t need complex software to get a handle on this. A simple, repeatable process is all it takes.

  1. Project Annual Profit: Look at your year-to-date performance and make a reasonable forecast for the full year. The basic formula is your friend: Projected Revenue - Projected Deductible Expenses = Projected Profit.
  2. Apply an Effective Tax Rate: Start with a reasonable percentage. If you have last year’s tax return, you can calculate your effective rate from that. If you're new to this, the 30% heuristic is a safe starting point.
  3. Divide by 12 (or 52): Take your total estimated annual tax and divide it by the number of pay periods you want to use. We recommend monthly. Move that amount into a dedicated tax-reserve bank account every month. If your cash flow is more volatile, a weekly transfer might feel more manageable.

3. Implement It in Beancount

Plain-text accounting makes this process transparent and auditable. Here’s how to manage your tax savings in Beancount.

First, create a routine transaction to move your monthly savings from your primary checking account to a separate, dedicated savings account for taxes.

; Reserve July's taxes
2025-07-31 * "Tax reserve transfer"
Assets:Bank:Checking -3000 USD
Assets:Bank:TaxReserve 3000 USD
Equity:Opening-Balances

When you make a quarterly estimated payment to the government, you record the actual liability. The payment comes directly from your reserve account.

; Record liability when you file the quarterly payment
2025-09-15 * "Q3 estimated tax payment"
Assets:Bank:TaxReserve -9000 USD
Liabilities:Taxes:Federal 6000 USD
Liabilities:Taxes:State 3000 USD

This simple system buys you three powerful advantages:

  • Immediate Visibility: Your Assets:Bank:TaxReserve balance always shows what’s already “spoken for.” You know at a glance that this cash isn't available for other business expenses.
  • Accurate Profit: Because the reserve is treated as a transfer between asset accounts, your Profit & Loss statement isn’t distorted. You only record the tax liability when you actually file and pay it.
  • Audit Trail: Every payment to the IRS or your state treasury ties back to a clearly tagged movement from your reserve account, creating a clean paper trail.

4. Fine-Tuning Your Percentage

The initial 25% - 30% estimate is a great start, but you should adjust it based on your specific business model.

  • High-Margin Consultants / Agencies: If you clear well above the Social Security wage base ($176,100), your effective tax rate will climb. A rate of 30% - 35% is likely more accurate.
  • Product Businesses with Heavy Deductions: If you have significant costs of goods sold (COGS), inventory, or other deductions, your net profit margin is lower. A rate of 20% - 25% may suffice. Use Form 1040-ES worksheets each quarter to confirm.
  • S-Corp Owners: Your situation is different. The "reasonable salary" you pay yourself is subject to standard payroll withholding (FICA and income taxes). Your distributions (profits paid out beyond salary) still require quarterly estimated payments, but often at a lower marginal rate since they aren't subject to SE tax.
  • Multi-State Sellers: If you have "nexus" (a significant business presence) in multiple states, you may owe income tax in each. This can stack your liabilities. For clarity, create separate liability accounts in Beancount, such as Liabilities:Taxes:State:CA and Liabilities:Taxes:State:NY.

5. Automate, Review, Repeat

A system only works if you use it. Make it effortless.

  • Automate: Link your main operating account to a high-yield savings account named something like "TaxReserve." Schedule an automatic transfer to occur right after you close your books each month.
  • Review: Re-forecast your annual profit quarterly. If Q2 sales blew past expectations, increase your monthly reserve amount immediately. Don't wait until January to discover you've under-saved.
  • Repeat: Keep key documents organized within your Beancount directory. Saving last year’s final tax return (document: "2024/Taxes/Form1040.pdf") gives you one-click context when discussing numbers with your CPA or planning for the next year.

Closing Thoughts

Tax bills feel random only when the set-aside process is. By baking a percentage-based reserve directly into your double-entry accounting flow, you trade anxiety for algebra—and Beancount makes the math (and the audit trail) trivial. Review your rate each quarter, keep Assets:Bank:TaxReserve funded, and April 15th turns back into just another day of business as usual.


Disclaimer: This article is for educational purposes only and isn’t tax advice. Always confirm numbers with a qualified professional for your jurisdiction and entity type.

2025 Tax Calendar: The Tax Tool Every U.S. Small-Business Owner Needs

· 6 min read
Mengjia Kong
Mengjia Kong
IRS Enrolled Agent

Staying compliant is simpler when the year’s tax deadlines live in one place. Below is a month-by-month guide to every major 2025 federal due date that touches solo proprietors, LLCs, S-corps, C-corps, and their payroll. Bookmark it, copy the bullets into your planner, or subscribe to the free IRS .ICS feed so reminders pop up automatically on your digital calendar.

Why a Dedicated Calendar Matters

2025-07-13-2025-tax-calendar

Integrating tax deadlines into your regular workflow isn't just about avoiding last-minute panic; it's a strategic business decision.

  • Avoid Penalties & Interest: The IRS doesn't mess around. Late-payment and late-filing penalties can accumulate rapidly, sometimes hitting up to 25%25\,\% of the total tax you owe.
  • Sync Your Cash Flow: When you know your four quarterly estimated-tax withdrawal dates in advance, you can protect your operating capital and ensure funds are available without disrupting business as usual.
  • Delegate with Confidence: Whether you have an in-house bookkeeper or an external CPA, a shared, accurate calendar ensures accountability. When everyone knows the exact dates, nothing slips through the cracks.
  • Stay Audit-Ready: Timely filing of informational returns like Forms W-2 and 1099 is one of the first things examiners check. A clean filing history is your first line of defense.

At-a-Glance: Key 2025 Federal Deadlines

The dates below are adjusted for weekends and federal holidays, reflecting the next business day as the official deadline. All times are based on the postmark or e-file transmission date unless specific deposit rules require a same-day electronic funds transfer (EFT).

January

  • Jan 15 – Final 2024 estimated-tax payment (Form 1040-ES) is due for self-employed individuals and others who did not have enough tax withheld during 2024. Note: Farmers and fishers can skip this payment if they file and pay their entire tax bill in full by March 3, 2025.
  • Jan 31 – Key year-end information returns are due:
    • Furnish Forms W-2 to all employees and file copies with the Social Security Administration (SSA).
    • Furnish and file Form 1099-NEC to report non-employee compensation paid in 2024.
    • Furnish most other 1099 forms (like 1099-MISC, 1099-INT) to recipients. The deadline to file these with the IRS is later.

February

  • Feb 18 – Last day for businesses to furnish Forms 1099-B (Proceeds from Broker and Barter Exchange Transactions) and 1099-S (Proceeds from Real Estate Transactions) to payees.
  • Feb 28 – Deadline to mail paper copies of Forms 1097, 1098, 1099 (excluding 1099-NEC), and W-2G to the IRS. (E-filers have until March 31.)

March

  • Mar 17 – Partnership and S-corporation tax returns for 2024 are due. (March 15 is a Saturday.)
    • File Form 1065 (Partnerships) or Form 1120-S (S-Corps).
    • Alternatively, file Form 7004 to request an automatic six-month extension to file.
    • Provide Schedule K-1s (and K-3s, if applicable) to all partners and shareholders.

April

  • Apr 15 – "Tax Day" features a triple-header of crucial deadlines:
    • Individuals: File your 2024 Form 1040. You can file Form 4868 for an automatic six-month extension, but you must still pay any tax you estimate you owe today.
    • C-Corporations: File your 2024 Form 1120 or file Form 7004 for an extension. The balance of tax owed is due with the extension filing.
    • 1st Quarter 2025 Estimated Tax: Your first installment payment for the 2025 tax year (Form 1040-ES) is due if you expect to owe at least $1,000 in tax for the year.

June

  • Jun 16 – 2nd Quarter 2025 estimated-tax installment is due. (June 15 falls on a Sunday.)

September

  • Sep 15 – A dual-deadline day:
    • 3rd Quarter 2025 estimated-tax installment is due.
    • The six-month extension period ends for partnerships (Form 1065) and S-corps (Form 1120-S) that filed Form 7004.

October

  • Oct 15 – Final deadline for extended returns for individuals (Form 1040) and calendar-year C-corporations (Form 1120).

December

  • Dec 15 – C-corporations must pay their 4th and final 2025 estimated-tax installment.

Looking Ahead: January 15, 2026

Don't let the new year catch you by surprise. Your Q4 2025 estimated-tax payment for individuals and single-member LLCs (taxed as sole proprietors) is due. Mark it on your 2026 calendar now.

Payroll Cycle Reminders

For businesses with employees, these deadlines are just as important:

  • Form 941 (Employer's Quarterly Federal Tax Return): Due on Apr 30, Jul 31, Oct 31, and Jan 31 (2026) for the prior quarter’s income tax withholding, Social Security, and Medicare taxes.
  • Payroll Tax Deposits: Must be deposited electronically via the Electronic Federal Tax Payment System (EFTPS). Your deposit schedule (either semi-weekly or monthly) is determined by the IRS. See IRS Publication 15 for details.
  • Form 940 (FUTA Tax): The Employer's Annual Federal Unemployment (FUTA) Tax Return is due by Jan 31, 2026. If you made all FUTA tax deposits on time, you have until Feb 10, 2026, to file.

State & Local Caveats

Remember, this calendar is for federal deadlines only.

  • State Income Tax: Deadlines in states that have an income tax often mirror the federal schedule, but always verify with your state's Department of Revenue.
  • Sales & Franchise Tax: These calendars vary widely by state and locality. Import these specific dates into your master calendar to create a single source of truth for all tax obligations.

Five Ways to Stay Ahead

  1. Subscribe and Set Alerts: Use the IRS .ICS feed or manually import the dates above into your Google Calendar or Outlook. Set 14-day and 2-day reminder alerts for each deadline.
  2. Automate Payments: Schedule your quarterly estimated-tax payments inside your EFTPS account to automatically pull from your bank account on each deadline.
  3. Tag Your Expenses: Use your bookkeeping software (like Beancount, QuickBooks, etc.) to tag expenses by quarter. This helps your cash flow reports mirror upcoming tax hits, so there are no surprises.
  4. Schedule a Mid-Year Check-in: Book a meeting with your CPA in June or July to review your year-to-date profit and true-up your estimated payments to avoid a large, unexpected bill next January.
  5. Document Everything: After you file or pay, save e-file confirmations and certified mail receipts in a dedicated folder. In any dispute, the burden of proof is on you, the taxpayer.

Disclaimer: This calendar covers U.S. federal deadlines for calendar-year small businesses. Always confirm details that apply to your entity type, fiscal year, payroll frequency, and state/local obligations with a qualified tax professional.

Beancount for Small Business Owners

· 4 min read
Mike Thrift
Mike Thrift
Marketing Manager

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.

2025-06-25-beancount-for-small-businesses

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.

The Evolution of Finance “Jobs-to-Be-Done”

· 4 min read
Mike Thrift
Mike Thrift
Marketing Manager

Why the humble budget morphs into multi-currency treasury as an organisation grows

Personal-finance apps promise seven core jobs: seeing everything in one place, budgeting, tracking income and spend, paying debt, saving for big purchases, managing money with a partner and monitoring investments. The same needs re-appear in business—then multiply as head-count, regulators and investors enter the picture.

2025-06-01-comparison-of-personal-finance-to-business-finance

Micro & small businesses (solo-founder → ±50 employees)

Personal-finance jobClosest small-business analogueWhy it matters
View all finances in one placeReal-time cash-flow dashboard pulling bank, POS and loan feeds60 % of SMBs cite cash-flow pain as their top challenge ([pymnts.com][1])
Manage my plan / budgetRolling 12-month operating budget with variance alertsPrevents overspending and highlights seasonality
Track income & spendingAutomated invoicing (AR) and bill-pay (AP)Late collections are the biggest cash-flow killer ([preferredcfo.com][2])
Pay down my debtOptimise credit-card float and working-capital linesInterest erodes thin margins
Save for a large purchaseCap-ex planning – lease vs. buy analysisA poor equipment deal can starve operations
Manage money with a partnerShared cloud book-keeping with co-founders & accountantKeeps audit trail, simplifies taxes
Track my investmentsSeparate owner equity and retained earningsClarifies personal vs. corporate wealth

Extra jobs unique to small firms

  • Payroll & benefits compliance (accurate, on-time filings).
  • Sales-tax / VAT collection & remittance across states or countries.
  • Basic risk cover (liability, cyber, key-person insurance).

Lower- & mid-market companies (≈ 50 – 500 employees, often multi-entity)

  • Department-level budgets plus rolling forecasts for FP&A.
  • 13-week and 12-month cash-flow forecasting to protect covenant headroom ([eventusag.com][3]).
  • Debt & equity portfolio management (term loans, venture debt, cap-table dilution).
  • Multi-entity consolidation—inter-company eliminations and live FX re-measurement ([picus-capital.medium.com][4]).
  • Internal controls & audit readiness (segregation of duties, SOX-lite).
  • Vendor procurement & contract lifecycle monitoring.
  • KPI dashboards for investors and lenders (EBITDA, ARR, DSO, working-capital days).

Large enterprise & global groups (500 + employees)

Enterprise-specific jobTypical activitiesPurpose
Global treasury & liquidityIn-house bank, cash pooling, daily sweepsMinimise idle cash, cut bank fees
Capital-markets & hedgingBond issues, interest-rate & FX swapsReduce funding cost & volatility
Regulatory & statutory reportingMulti-GAAP close, ESG/CSRD disclosuresAvoid fines, enable listings
Tax strategy & transfer pricingInter-company agreements, BEPS 2.0 complianceLower effective tax rate
Cyber-fraud preventionPayment-approval hierarchies, anomaly alertsFinance is a prime fraud target
M&A integration / carve-out accountingDay-one ledger cut-over, PPAAcquisition-driven growth
Strategic capital allocationRank global cap-ex, hurdle-rate analysisDeploy capital to highest ROI

Key take-aways for product builders

  • Same instincts, bigger stage – “show me everything” grows from a Mint-style dashboard into multi-ledger consolidation and treasury views.
  • Cash is king at every tier – but the tooling jumps from spreadsheets to dedicated forecasting engines.
  • Compliance balloons – payroll, tax, audit and ESG appear only in business contexts and dominate enterprise workloads.
  • Stakeholders multiply – individuals coordinate with a partner; businesses juggle employees, suppliers, bankers, investors and regulators.

Understanding where a customer sits on this growth curve lets you prioritise features that move the needle—whether that’s instant cash-flow visibility for a café owner or cross-border liquidity pooling for a multinational.

Automating Small Business Expenses with Beancount and AI

· 6 min read
Mike Thrift
Mike Thrift
Marketing Manager

Small business owners spend an average of 11 hours per month manually categorizing expenses - nearly three full workweeks annually devoted to data entry. A 2023 QuickBooks survey reveals that 68% of business owners rank expense tracking as their most frustrating bookkeeping task, yet only 15% have embraced automation solutions.

Plain text accounting, powered by tools like Beancount, offers a fresh approach to financial management. By combining transparent, programmable architecture with modern AI capabilities, businesses can achieve highly accurate expense categorization while maintaining full control over their data.

2025-05-28-how-to-automate-small-business-expense-categorization-with-plain-text-accounting-a-step-by-step-guide-for-beancount-users

This guide will walk you through building an expense automation system tailored to your business's unique patterns. You'll learn why traditional software falls short, how to harness Beancount's plain text foundation, and practical steps for implementing adaptive machine learning models.

The Hidden Costs of Manual Expense Management

Manual expense categorization drains more than just time—it undermines business potential. Consider the opportunity cost: those hours spent matching receipts to categories could instead fuel business growth, strengthen client relationships, or refine your offerings.

A recent Accounting Today survey found small business owners dedicate 10 hours weekly to bookkeeping tasks. Beyond the time sink, manual processes introduce risks. Take the case of a digital marketing agency that discovered their manual categorization had inflated travel expenses by 20%, distorting their financial planning and decision-making.

Poor financial management remains a leading cause of small business failure, according to the Small Business Administration. Misclassified expenses can mask profitability issues, overlook cost-saving opportunities, and create tax season headaches.

Beancount's Architecture: Where Simplicity Meets Power

Beancount's plain-text foundation transforms financial data into code, making every transaction trackable and AI-ready. Unlike traditional software trapped in proprietary databases, Beancount's approach enables version control through tools like Git, creating an audit trail for every change.

This open architecture allows seamless integration with programming languages and AI tools. A digital marketing agency reported saving 12 monthly hours through custom scripts that automatically categorize transactions based on their specific business rules.

The plain text format ensures data remains accessible and portable—no vendor lock-in means businesses can adapt as technology evolves. This flexibility, combined with robust automation capabilities, creates a foundation for sophisticated financial management without sacrificing simplicity.

Creating Your Automation Pipeline

Building an expense automation system with Beancount starts with organizing your financial data. Let's walk through a practical implementation using real examples.

1. Setting Up Your Beancount Structure

First, establish your account structure and categories:

2025-01-01 open Assets:Business:Checking
2025-01-01 open Expenses:Office:Supplies
2025-01-01 open Expenses:Software:Subscriptions
2025-01-01 open Expenses:Marketing:Advertising
2025-01-01 open Liabilities:CreditCard

2. Creating Automation Rules

Here's a Python script that demonstrates automatic categorization:

import pandas as pd
from datetime import datetime

def categorize_transaction(description, amount):
rules = {
'ADOBE': 'Expenses:Software:Subscriptions',
'OFFICE DEPOT': 'Expenses:Office:Supplies',
'FACEBOOK ADS': 'Expenses:Marketing:Advertising'
}

for vendor, category in rules.items():
if vendor.lower() in description.lower():
return category
return 'Expenses:Uncategorized'

def generate_beancount_entry(row):
date = row['date'].strftime('%Y-%m-%d')
desc = row['description']
amount = abs(float(row['amount']))
category = categorize_transaction(desc, amount)

return f'''
{date} * "{desc}"
{category} {amount:.2f} USD
Liabilities:CreditCard -{amount:.2f} USD
'''

3. Processing Transactions

Here's how the automated entries look in your Beancount file:

2025-05-01 * "ADOBE CREATIVE CLOUD"
Expenses:Software:Subscriptions 52.99 USD
Liabilities:CreditCard -52.99 USD

2025-05-02 * "OFFICE DEPOT #1234 - PRINTER PAPER"
Expenses:Office:Supplies 45.67 USD
Liabilities:CreditCard -45.67 USD

2025-05-03 * "FACEBOOK ADS #FB12345"
Expenses:Marketing:Advertising 250.00 USD
Liabilities:CreditCard -250.00 USD

Testing proves crucial—start with a subset of transactions to verify categorization accuracy. Regular execution through task schedulers can save 10+ hours monthly, freeing you to focus on strategic priorities.

Achieving High Accuracy Through Advanced Techniques

Let's explore how to combine machine learning with pattern matching for precise categorization.

Pattern Matching with Regular Expressions

import re

patterns = {
r'(?i)aws.*cloud': 'Expenses:Cloud:AWS',
r'(?i)(zoom|slack|notion).*subscription': 'Expenses:Software:Subscriptions',
r'(?i)(uber|lyft|taxi)': 'Expenses:Travel:Transport',
r'(?i)(marriott|hilton|airbnb)': 'Expenses:Travel:Accommodation'
}

def regex_categorize(description):
for pattern, category in patterns.items():
if re.search(pattern, description):
return category
return None

Machine Learning Integration

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
import re
from typing import List, Tuple

class ExpenseClassifier:
def __init__(self):
self.vectorizer = TfidfVectorizer()
self.classifier = MultinomialNB()

def parse_beancount_entries(self, beancount_text: str) -> List[Tuple[str, str]]:
"""Parse Beancount entries into (description, category) pairs."""
entries = []
for line in beancount_text.split('\n'):
# Look for transaction descriptions
if '* "' in line:
desc = re.search('"(.+)"', line)
if desc:
description = desc.group(1)
# Get the next line which should contain the expense category
next_line = next(filter(None, beancount_text.split('\n')[beancount_text.split('\n').index(line)+1:]))
if 'Expenses:' in next_line:
category = next_line.split()[0].strip()
entries.append((description, category))
return entries

def train(self, beancount_text: str):
"""Train the classifier using Beancount entries."""
entries = self.parse_beancount_entries(beancount_text)
if not entries:
raise ValueError("No valid entries found in training data")

descriptions, categories = zip(*entries)
X = self.vectorizer.fit_transform(descriptions)
self.classifier.fit(X, categories)

def predict(self, description: str) -> str:
"""Predict category for a new transaction description."""
X = self.vectorizer.transform([description])
return self.classifier.predict(X)[0]

# Example usage with training data:
classifier = ExpenseClassifier()

training_data = """
2025-04-01 * "AWS Cloud Services Monthly Bill"
Expenses:Cloud:AWS 150.00 USD
Liabilities:CreditCard -150.00 USD

2025-04-02 * "Zoom Monthly Subscription"
Expenses:Software:Subscriptions 14.99 USD
Liabilities:CreditCard -14.99 USD

2025-04-03 * "AWS EC2 Instances"
Expenses:Cloud:AWS 250.00 USD
Liabilities:CreditCard -250.00 USD

2025-04-04 * "Slack Annual Plan"
Expenses:Software:Subscriptions 120.00 USD
Liabilities:CreditCard -120.00 USD
"""

# Train the classifier
classifier.train(training_data)

# Test predictions
test_descriptions = [
"AWS Lambda Services",
"Zoom Webinar Add-on",
"Microsoft Teams Subscription"
]

for desc in test_descriptions:
predicted_category = classifier.predict(desc)
print(f"Description: {desc}")
print(f"Predicted Category: {predicted_category}\n")

This implementation includes:

  • Proper parsing of Beancount entries
  • Training data with multiple examples per category
  • Type hints for better code clarity
  • Error handling for invalid training data
  • Example predictions with similar but unseen transactions

### Combining Both Approaches

```bean
2025-05-15 * "AWS Cloud Platform - Monthly Usage"
Expenses:Cloud:AWS 234.56 USD
Liabilities:CreditCard -234.56 USD

2025-05-15 * "Uber Trip - Client Meeting"
Expenses:Travel:Transport 45.00 USD
Liabilities:CreditCard -45.00 USD

2025-05-16 * "Marriott Hotel - Conference Stay"
Expenses:Travel:Accommodation 299.99 USD
Liabilities:CreditCard -299.99 USD

This hybrid approach achieves remarkable accuracy by:

  1. Using regex for predictable patterns (subscriptions, vendors)
  2. Applying ML for complex or new transactions
  3. Maintaining a feedback loop for continuous improvement

A tech startup implemented these techniques to automate their expense tracking, reducing manual processing time by 12 hours monthly while maintaining 99% accuracy.

Tracking Impact and Optimization

Measure your automation success through concrete metrics: time saved, error reduction, and team satisfaction. Track how automation affects broader financial indicators like cash flow accuracy and forecasting reliability.

Random transaction sampling helps verify categorization accuracy. When discrepancies arise, refine your rules or update training data. Analytics tools integrated with Beancount can reveal spending patterns and optimization opportunities previously hidden in manual processes.

Engage with the Beancount community to discover emerging best practices and optimization techniques. Regular refinement ensures your system continues delivering value as your business evolves.

Moving Forward

Automated plain-text accounting represents a fundamental shift in financial management. Beancount's approach combines human oversight with AI precision, delivering accuracy while maintaining transparency and control.

The benefits extend beyond time savings—think clearer financial insights, reduced errors, and more informed decision-making. Whether you're technically inclined or focused on business growth, this framework offers a path to more efficient financial operations.

Start small, measure carefully, and build on success. Your journey toward automated financial management begins with a single transaction.

IRS-Ready in Minutes: How Plain-Text Accounting Makes Tax Audits Painless with Beancount

· 3 min read
Mike Thrift
Mike Thrift
Marketing Manager

Picture this: You receive an IRS audit notice. Instead of panic, you calmly run a single command that generates a complete, organized financial trail. While most small business owners spend weeks gathering documents for tax audits, Beancount users can produce comprehensive reports in minutes.

Plain-text accounting transforms financial record-keeping from a scattered mess into a streamlined, automated process. By treating your finances like code, you create an immutable, version-controlled record that's always audit-ready.

2025-05-15-automating-irs-audit-preparation-with-plain-text-accounting-a-beancount-guide

The Hidden Cost of Disorganized Financial Records

Traditional record-keeping often leaves financial data scattered across spreadsheets, emails, and filing cabinets. During an audit, this fragmentation creates a perfect storm of stress and inefficiency. One tech startup learned this lesson the hard way – their mixed digital and paper records led to inconsistencies during an audit, resulting in prolonged investigation and substantial fines.

Beyond the obvious time waste, disorganization introduces subtle risks. Missing documentation, data entry errors, and compliance gaps can trigger penalties or extend audit durations. Small businesses face an average of $30,000 in penalties annually due to preventable tax mistakes.

Building an Audit-Proof Financial System with Beancount

Beancount's plain-text foundation offers something unique: complete transparency. Every transaction is stored in a readable format that's both human-friendly and machine-verifiable. The system employs double-entry accounting, where each transaction is recorded twice, ensuring mathematical accuracy and creating an unbreakable audit trail.

The open-source nature of Beancount means it adapts as tax laws evolve. Users can customize the system for specific regulatory requirements or integrate it with existing financial tools. This flexibility proves invaluable as compliance requirements grow more complex.

Automated Audit Trail Generation with Python

Rather than manually compiling reports, Beancount users can write Python scripts that instantly generate IRS-compatible documentation. These scripts can filter transactions, calculate taxable income, and organize data according to specific audit requirements.

One developer described their first audit with Beancount as "surprisingly pleasant." Their automatically generated ledger impressed the IRS inspector with its clarity and completeness. The system's ability to track modifications and maintain a complete transaction history means you can always explain when and why changes were made.

Beyond Basic Compliance: Advanced Features

Beancount shines in handling complex scenarios like multi-currency transactions and international tax requirements. Its programmability allows users to create custom reports for specific tax situations or regulatory frameworks.

The system can integrate with AI tools to help predict tax liabilities and flag potential compliance issues before they become problems. From our firsthand experience, automated tax reporting delivers substantial time savings.

Future-Proofing Your Finances with Version Control

Version control transforms financial record-keeping from periodic snapshots into a continuous, traceable history. Every change is documented, creating an immutable timeline of your financial activities. This granular tracking helps quickly resolve discrepancies and demonstrates consistent record-keeping practices.

From our firsthand experience, adopting continuous audit readiness reduces stress during audits and cuts the time spent on compliance tasks. The system acts like a financial time machine, allowing you to examine any point in your financial history with perfect clarity.

Conclusion

Plain-text accounting with Beancount transforms tax audits from a source of anxiety into a straightforward process. By combining immutable records, automated reporting, and version control, you create a financial system that's always audit-ready.

The real value isn't just in surviving audits – it's in building a foundation for financial clarity and confidence. Whether you're a small business owner or financial professional, Beancount offers a path to stress-free tax compliance and better financial management.

Ten Bookkeeping Tips to Supercharge Your Beancount Workflow

· 6 min read
Mike Thrift
Mike Thrift
Marketing Manager

Great therapy for your business is a calm, balanced ledger. The following tips condense the latest small‑business guidance into a Beancount‑friendly routine.

Maintaining a pristine set of books isn't just about surviving tax season; it's about understanding the financial health of your business in real time. For users of a plain-text accounting system like Beancount, good habits are the engine that transforms a simple ledger into a powerful tool for insight and growth. The following ten tips are designed to refine your process, save you time, and keep your financial data clean, auditable, and ready for action.

2024-09-12-bookkeeping-basics-for-therapists-with-beancount

1. Separate Business and Personal Money

This is the golden rule of business finance for a reason. Maintaining a dedicated checking account and credit card for your practice is the cleanest way to draw a line between your business and personal life. It drastically simplifies tax preparation, provides a clear audit trail, and helps protect your personal assets from business liabilities. In Beancount, this means your transactions are cleanly sorted from the start—no more trying to remember if that coffee purchase was a client meeting or a personal expense.

2. Pick Cash or Accrual Early—Then Stick to It

Your accounting method determines when you record income and expenses. The IRS allows most small businesses to choose between the cash or accrual method.

  • Cash basis: You record income when money hits your account and expenses when money leaves it. It’s simple and ideal for businesses with straightforward, immediate transactions.
  • Accrual basis: You record income when you earn it (e.g., when you provide a service) and expenses when you incur them, regardless of when cash changes hands. This provides a more accurate picture of profitability, especially if you manage invoices or insurance claims with delayed payments.

The key is to choose one method early and apply it consistently. You can even declare your choice in your ledger using Beancount's options block to formalize the decision.

3. Reconcile on a Cadence

Reconciliation is the process of matching the transactions in your Beancount ledger against your official bank and credit card statements. Performing this check on a regular cadence—whether weekly or monthly—is a crucial habit. It allows you to catch bank fees, spot potential fraud, and identify any data import errors before they compound into a major headache. A quick command can show you the balance to check against your statement.

bean-balance books.bean "Assets:Bank" -e 2025-07-31

4. Automate Imports Wherever Possible

Your time is better spent serving clients than manually typing transaction data. Beancount’s ecosystem shines here. Use tools like bean-extract to create configurations that read CSV files from your bank, payment processor (like Stripe or Square), or EHR system. Once set up, these scripts can automatically convert raw data into formatted Beancount entries, dramatically reducing typos and freeing up hours of administrative work.

5. Categorize Immediately—Not at Tax Time

Procrastinating on categorization is a recipe for stress and inaccuracy. When a transaction enters your ledger, assign it to the correct account immediately (e.g., Income:Therapy:SelfPay, Expenses:Software:EHR, Expenses:CEU). Doing this in real-time ensures you correctly remember the context of each expense. A well-defined chart of accounts makes this process fast and consistent, turning your ledger into a rich, real-time report on your business operations.

6. Save Digital Copies of Every Receipt & EOB

Paper receipts fade and get lost. A digital-first approach is more resilient and efficient. Scan paper receipts or save PDF invoices and Explanations of Benefits (EOBs) to a secure, organized folder on your computer. With Beancount, you can link directly to these files from within your ledger using metadata.

2025-07-15 * "CEU webinar"
Expenses:CEU 79.00 USD
Assets:Bank:Practice
document: "docs/ceu/2025-07-15-trauma-webinar.pdf"

This creates an unimpeachable, self-contained record that is invaluable during a tax audit.

Knowing your current bank balance is good; understanding the flow of money in and out of your business is better. Use Beancount's powerful query language to analyze your financial trends. Chart your monthly income versus expenses, identify your most profitable services, or forecast potential cash crunches during slower months. This proactive approach, recommended by top bookkeeping guides, allows you to make strategic decisions rather than reacting to financial surprises.

8. Back Up & Version-Control Your Ledger

Since your Beancount ledger is a simple text file, you can use Git—a powerful, free version control system—to manage it. By keeping your ledger in a private Git repository (on a service like GitHub or GitLab), you get two critical benefits for free:

  1. A complete history: You can see every change ever made to your ledger.
  2. An off-site backup: Your data is safe from local hardware failure.

Make it a habit to "push" your changes after every reconciliation session.

9. Review Financial Statements Monthly

Don't wait for your accountant to tell you how your business is doing. At the end of each month, use Beancount's reporting tools to generate key financial statements like an income statement and a balance sheet. Compare them to the previous month or the same month last year. This regular review helps you spot spending leaks, evaluate your pricing, and build the financial literacy needed to answer questions from lenders or investors with confidence.

bean-report books.bean income_statement -e 2025-07-31

10. Budget for Taxes Year‑Round

For a self-employed professional, tax day should never be a surprise. Treat your future tax bill as a recurring expense. Create liability accounts in Beancount (e.g., Liabilities:Tax:Federal, Liabilities:Tax:State) and regularly transfer a percentage of every payment you receive into these virtual buckets. When it's time to make your quarterly estimated tax payments, the money will be set aside and waiting, making the process entirely painless.


Quick‑Start Checklist

  • Open separate practice bank accounts.
  • Choose cash or accrual and record it in your options.
  • Script your bank & EHR CSV imports with bean-extract.
  • Tag every transaction with a category upon arrival.
  • Reconcile weekly; back up to your private Git repo after.
  • Run monthly statements & cash-flow queries.
  • Transfer a tax buffer to a separate high-yield savings account.

Ready to calm your books?

Install Beancount, commit your first entry, and let these ten habits provide the structure needed to keep your therapy practice financially grounded and insight-rich. Happy bean-keeping!

Bookkeeping Basics for Etsy Sellers with Beancount

· 7 min read
Mike Thrift
Mike Thrift
Marketing Manager

Hand-stitched ledgers beat tangled spreadsheets—especially when every cent counts.

For the artists, makers, and curators on Etsy, passion drives the business. But as your shop grows, financial clarity becomes just as important as creative vision. Juggling fees, tracking material costs, and preparing for taxes can feel overwhelming, pulling you away from the workbench.

2024-07-16-bookkeeping-basics-for-etsy-sellers-with-beancount

What if you could manage your shop’s finances with the same care and precision you put into your products? This guide introduces a plain-text accounting workflow using Beancount, an open-source engine designed for accuracy and control. It’s a method that helps you master your numbers so you can focus on your craft.

Why Etsy Bookkeeping Is Different

An Etsy shop has a unique financial fingerprint, with complexities that generic accounting software often misses.

  • Marketplace fees everywhere: Your final payout is what’s left after Etsy takes its share. Listing fees, transaction fees, payment processing fees, and advertising costs all nibble away at every sale. Without tracking them individually, you can't know your true profit margins. (Bench)
  • Platform-controlled sales tax: In a huge win for sellers, Etsy now automatically calculates, collects, and remits sales tax on your behalf in most states. However, if you sell on other channels or have a physical presence in certain states, you might still have your own sales tax obligations due to "nexus" rules. (Bench)
  • Flexible payout cadence: Depending on your settings and account history, Etsy can deposit your funds daily, weekly, bi-weekly, or monthly. This flexibility can make cash flow feel unpredictable, especially when funds are held in reserve or delayed. (Etsy Help)
  • Lower 1099-K thresholds: The days of flying under the tax radar are over. The IRS reporting threshold for Form 1099-K, which reports your gross sales, is set at 5,000for2024andisplannedtodroptojust5,000 for 2024 and is planned to drop to just 600 by 2026. This means nearly every shop will receive an IRS form, and your books must be able to reconcile with it perfectly. (IRS)

Beancount Blueprint in Seven Quick Steps

This plain-text blueprint will help you build a clear, accurate, and stress-free bookkeeping system.

1. Separate Channels Up Front

If Etsy isn't your only sales channel, create separate income and expense accounts for each one. This simple separation at the top level of your chart of accounts keeps your analytics clean and makes tax time much easier.

2025-07-22 open Income:Etsy               USD
2025-07-22 open Expenses:Etsy:ListingFee USD
2025-07-22 open Assets:Etsy:Payout USD

2. Explode Every Payout

Never record an Etsy deposit as a single line of income. Instead, download your monthly Payment Account CSV from your Shop Manager. Use this report to create a single Beancount transaction that "explodes" each deposit into its gross sales and individual fee components.

; weekly payout from the Etsy Payment Account CSV
2025-07-15 * "Etsy Deposit #2025-28"
Assets:Bank:Operating 1842.77 USD
Income:Etsy:Sales -2100.00 USD
Expenses:Etsy:TransactionFee 136.50 USD ; 6.5 %
Expenses:Etsy:PaymentProcessing 66.00 USD ; 3 % + $0.25 per order
Expenses:Etsy:ListingFee 14.00 USD ; $0.20 x 70 renewals
Assets:Etsy:Reserve -75.73 USD

3. Track Inventory & COGS with Lots

For sellers of physical goods, Beancount's "lots" feature is a game-changer for tracking Cost of Goods Sold (COGS). When you buy raw materials, you record them as inventory at a specific cost. When you sell a finished product, you can expense the exact cost of the materials used.

; Purchase bulk materials for inventory
2025-07-01 * "Bulk yarn purchase | Supplier XYZ"
Assets:Inventory:ScarfBlue 500 ScarfBlue {@ 3.45 USD}
Assets:Bank:Operating

; Record the COGS when an item sells
2025-07-20 * "Sold Blue Scarf | Order #1234"
Expenses:COGS 1 ScarfBlue {3.45 USD}
Assets:Inventory:ScarfBlue

4. Pick Your Accounting Method Early

You have two main choices:

  • Cash basis: Simple and easy. You record income when the money lands in your bank and expenses when you pay for them. This works well for small, hobby-scale shops.
  • Accrual basis: Provides a truer picture of profitability. You record revenue when you make the sale (not when you get paid) and expenses when you incur them. This is better for shops that buy supplies in bulk or sell made-to-order items. (Bench)

5. Automate Imports

Save time by automating data entry. The plain-text ecosystem offers several options:

  • Use bean-extract with custom rules to parse the Etsy CSV files.
  • Configure a bank CSV importer to catch ad charges or shipping labels paid by credit card.
  • For advanced users, write a Python script to pull reports directly from the Etsy API.

6. Reconcile Weekly

Set aside a few minutes each week to check your numbers. Use Beancount's command-line tools to quickly validate your balances and spot any issues like released reserves, refunds, or fee adjustments before the month ends.

# Check the balance of your Etsy holding account
bean-balance books.bean "Assets:Etsy:Payout" "2025-07-21"

# Generate an income statement for the last period
bean-report books.bean income_statement -e 2025-07-21

7. Attach Source Docs

Create a completely self-contained and auditable record by linking to source documents directly in your transaction metadata. This is perfect for supplier receipts, shipping label PDFs, or purchase orders.

2025-07-12 * "Etsy shipping label for order #4321"
Expenses:ShippingLabel 4.25 USD
Assets:Bank:Operating
document: "docs/labels/2025-07-12-order4321.pdf"

Know Your Etsy Fees (U.S.)

To get a true picture of your profit, track each fee type in its own expense account:

  • Listing fee: $0.20 per item, which automatically renews every 4 months or after a sale. (Etsy)
  • Transaction fee: 6.5% of the total order amount (including item price, shipping, and gift-wrapping). (Etsy)
  • Payment processing fee: Varies by country, but for the U.S. it's typically 3% + $0.25 per order processed through Etsy Payments. (Etsy Help)
  • Subscription (Etsy Plus): An optional $10/month for additional tools. (Bench)

Sales-Tax & Compliance Tips

  • While Etsy remits sales tax for most U.S. states, be aware that selling on other platforms or having a physical workshop can create additional tax obligations ("nexus"). Track your sales thresholds carefully. (Bench)
  • Once the 1099-K thresholds apply to your shop, ensure your Income:Etsy:Sales total in Beancount reconciles to the gross amount on the form to the cent. (IRS)

Common Pitfalls (and Fixes)

  • Pitfall: Net-deposit accounting.
    • Fix: Always use the payment CSV to break deposits into gross sales, fees, and reserves.
  • Pitfall: Stale inventory costs.
    • Fix: Record your supply and material purchases as inventory the moment you buy them. Don’t wait until the finished product sells.
  • Pitfall: Refund blind spots.
    • Fix: When issuing a refund, log the expense and also reverse the original COGS entry to move the cost back into your inventory account.
  • Pitfall: Ignoring reserve holds.
    • Fix: Open an Assets:Etsy:Reserve account to track money that Etsy is holding. This keeps your cash-flow statements honest.

Quick-Start Checklist

  • In your Shop Manager, set up monthly statements and download your first CSV.
  • Clone the Beancount starter repository and sketch out your shop's chart of accounts.
  • Decide on cash or accrual accounting and commit to it.
  • Write a basic importer script or rules file and schedule a weekly sync.
  • Reconcile your payouts, inventory levels, and bank balance every Monday.
  • Generate an income statement each month and review your gross margin trends.
  • Back up your .bean files using Git and an off-site storage solution.

Ready to stitch bookkeeping into your creative workflow? Install Beancount, commit your first entry, and let plain-text clarity free up more time at the workbench. Happy bean-keeping!