This question comes up in every freelancer conversation I have: “Should I be using accrual or cash accounting?” The short answer for most freelancers is: you’re already using cash basis, and that’s fine for taxes. But the longer answer - the one that actually helps you run your business better - is more nuanced.
Let me break down both methods with Beancount examples, explain when the IRS cares, and show you how to get the best of both worlds.
The Core Difference in 30 Seconds
Cash basis: You record income when money hits your bank account. You record expenses when money leaves your bank account.
Accrual basis: You record income when you earn it (send the invoice). You record expenses when you incur them (receive the bill).
Same economic activity, different timing. That timing difference can make your financial picture look completely different.
The Same Month, Two Different Stories
Let’s say in March you complete a $5,000 project, send the invoice, receive a $500 hosting bill, and pay last month’s $800 contractor bill. Here’s how each method records March:
; ============================================
; CASH BASIS VIEW OF MARCH
; ============================================
; You completed $5,000 of work but haven't been paid yet
; Cash basis: NOTHING recorded for income
; You received a $500 hosting bill but haven't paid it
; Cash basis: NOTHING recorded for expense
; You paid last month's $800 contractor bill
2025-03-05 * "Contractor" "Pay February contractor invoice"
Expenses:Business:Contractors 800.00 USD
Assets:Business:Checking -800.00 USD
; MARCH P&L (Cash Basis):
; Revenue: $0
; Expenses: $800
; Profit: -$800
; Looks like a terrible month!
; ============================================
; ACCRUAL BASIS VIEW OF MARCH
; ============================================
; You completed the project and invoiced the client
2025-03-15 * "ClientA" "Invoice #2025-012 - Website redesign"
Assets:Business:Receivables:ClientA 5,000.00 USD
Income:Business:Services -5,000.00 USD
invoice: "2025-012"
terms: "Net 30"
; You received the hosting bill (owe it but haven't paid)
2025-03-20 * "AWS" "March hosting - bill received"
Expenses:Business:Hosting 500.00 USD
Liabilities:Business:Payables:AWS -500.00 USD
; You paid last month's contractor bill (expense was recorded in Feb)
2025-03-05 * "Contractor" "Pay February contractor invoice"
Liabilities:Business:Payables:Contractor 800.00 USD
Assets:Business:Checking -800.00 USD
; MARCH P&L (Accrual Basis):
; Revenue: $5,000
; Expenses: $500 (hosting incurred in March)
; Profit: $4,500
; Reflects what actually happened economically!
Same business. Same month. Cash basis says you lost $800. Accrual basis says you earned $4,500. Which one is “right”? Both are - they just answer different questions. Cash basis tells you what happened in your bank account. Accrual basis tells you what happened in your business.
When Does the IRS Care?
For most freelancers, the IRS doesn’t force you into one method. The rules:
2025-01-01 note Equity:Business "
=== IRS ACCOUNTING METHOD RULES ===
WHO CAN USE CASH BASIS:
- Sole proprietors (Schedule C filers): YES
- Single-member LLCs: YES
- Partnerships and S-Corps: YES (if under threshold)
- C-Corps: YES (if under threshold)
THE THRESHOLD:
Average annual gross receipts < $31 million (2025)
Calculated over prior 3 tax years
If you're a freelancer reading this forum,
you are almost certainly under $31 million.
Cash basis is available to you.
INVENTORY EXCEPTION:
If you sell physical products and maintain
inventory, you MAY need accrual for COGS.
But 'small business taxpayer' exception
(< $31M) lets most keep cash basis anyway.
ONCE YOU CHOOSE:
You choose by filing your first return.
Cash basis = report income when received.
Switching later requires IRS Form 3115.
Automatic approval for most small businesses.
"
Why Freelancers Should Care Anyway
Even if you file taxes on cash basis (and you should), understanding accrual accounting helps you:
1. Know Your Real Profitability
2025-04-01 note Assets:Business "
=== WHY ACCRUAL MATTERS FOR BUSINESS DECISIONS ===
SCENARIO: You worked 200 hours in Q1.
Invoiced: $45,000
Collected: $18,000 (rest is outstanding)
CASH BASIS Q1 PROFIT:
Revenue: $18,000
Expenses: $12,000
Profit: $6,000
Hourly rate (apparent): $30/hour
ACCRUAL BASIS Q1 PROFIT:
Revenue: $45,000
Expenses: $15,000 (includes unpaid bills)
Profit: $30,000
Hourly rate (actual): $150/hour
The cash basis made your business look barely
viable. The accrual basis shows reality: you're
running a profitable consulting practice with
a collections timing lag.
Which view should inform your business decisions?
"
2. Spot Problem Clients Early
; Receivables aging shows who owes you and how late they are
2025-04-01 note Assets:Business:Receivables "
=== RECEIVABLES AGING REPORT ===
CLIENT AMOUNT DAYS STATUS
ClientA $5,000 15 Current (Net 30)
ClientB $8,000 45 OVERDUE (Net 30)
ClientC $3,000 22 Current (Net 30)
ClientD $12,000 67 SERIOUSLY OVERDUE
ClientE $2,500 5 Current (Net 15)
TOTAL OUTSTANDING: $30,500
OVERDUE (>30 days): $20,000 (66%)
You can't see this on cash basis.
Cash basis just shows: revenue hasn't arrived yet.
Accrual basis shows: ClientB and ClientD need
collection attention NOW.
"
3. Make Better Pricing Decisions
If you only look at cash collected, you might think your rates are too low. If you look at accrued revenue minus accrued expenses, you see your actual margins. This affects whether you raise rates, take on new clients, or fire slow-paying ones.
The Beancount Solution: Track Accrual, Report Both Ways
Here’s the approach I recommend: keep your books on accrual basis and derive the cash view when you need it.
Beancount naturally supports accrual accounting because it uses double-entry bookkeeping. Every invoice creates a receivable. Every bill creates a payable. The cash movement is a separate transaction.
; Step 1: Invoice sent (accrual - revenue recognized)
2025-03-15 * "ClientA" "Invoice #2025-012"
Assets:Business:Receivables:ClientA 5,000.00 USD
Income:Business:Services -5,000.00 USD
invoice: "2025-012"
status: "SENT"
; Step 2: Payment received (cash - bank account updated)
2025-04-12 * "ClientA" "Payment - Invoice #2025-012"
Assets:Business:Checking 5,000.00 USD
Assets:Business:Receivables:ClientA -5,000.00 USD
invoice: "2025-012"
status: "PAID"
days_to_pay: 28
For tax reporting (cash basis), you query when money moved through bank accounts:
; Cash basis income (what the IRS sees)
SELECT
year, month,
sum(position) as cash_received
WHERE
account = 'Assets:Business:Checking'
AND narration ~ 'Payment'
AND year = 2025
GROUP BY year, month
For business reporting (accrual basis), you query when revenue was earned:
; Accrual basis income (what your business actually earned)
SELECT
year, month,
sum(position) as revenue_earned
WHERE
account ~ 'Income:Business'
AND year = 2025
GROUP BY year, month
Same ledger. Two different views. No extra work.
The Accounts You Need
If you want both views, your chart of accounts adds two account types beyond basic cash tracking:
; Receivables (what clients owe you)
2025-01-01 open Assets:Business:Receivables USD
; Or per-client:
2025-01-01 open Assets:Business:Receivables:ClientA USD
2025-01-01 open Assets:Business:Receivables:ClientB USD
; Payables (what you owe vendors)
2025-01-01 open Liabilities:Business:Payables USD
; Or per-vendor:
2025-01-01 open Liabilities:Business:Payables:AWS USD
2025-01-01 open Liabilities:Business:Payables:Contractor USD
These are the bridge accounts between cash and accrual. If you skip them and just record income when paid and expenses when paid, you’re doing cash basis. If you use them to record the obligation first and the payment second, you’re doing accrual basis.
My Recommendation
- For taxes: File cash basis. It’s simpler, gives you more control over timing, and the IRS expects it from most freelancers.
- For your business: Think accrual. Track receivables and payables. Know what you’ve earned versus what you’ve collected.
- In Beancount: Do both. Record invoices as receivables. Record bills as payables. Query by bank account activity for cash view, by income/expense accounts for accrual view.
The freelancers who struggle most are the ones who only see cash. They make pricing decisions based on collections, not earnings. They can’t spot late-paying clients until they’re broke. They think a slow collection month means a bad business month.
Accrual accounting is the lens that shows you what your business actually did. Cash accounting is the lens that shows you what your bank account did. You need both.