Skip to main content

Overview

Freelancer Invoicing Example — beancount.io

A Beancount ledger for running a freelance practice: invoicing on accrual, chasing what is owed, sales tax you collect on someone else's behalf, expenses rebilled to clients, and quarterly estimated tax.

Financial position

Net worth and the accounts that make it up

Net Worth
Assets plus liabilities over the last 12 months
30,950 USD
0 USDfrom previous month
Accounts
Current asset and liability account balances

Money movement

Monthly income and spending by account category

June 2026
Money in
June 2026
—
Top sources
No money movement for this period.
Average of up to 3 preceding periods
+1,597.47 USD
View all
Money out
June 2026
-7,350 USD
Top spending
Average of up to 3 preceding periods
-2,564.13 USD
View all

Recent activity

Posting-aware activity from the journal

Transactions
Newest transactions matching the current dashboard filters

Income vs Expenses

Income vs Expenses
Bar chart comparing total income and expenses for each interval in the selected period.

Balance Sheet

Assets Distribution
Visual representation of Freelancer Invoicing Example — beancount.io assets composition
Liabilities Distribution
Visual representation of Freelancer Invoicing Example — beancount.io liabilities composition
No Data Available

Cash Flow

Cash Flow
Money flow from income sources to expenses and investments

Loading account roles…

README.md

Freelancer Invoicing Example — beancount.io

A Beancount ledger for running a freelance practice: invoicing on accrual, chasing what is owed, sales tax you collect on someone else's behalf, expenses rebilled to clients, and quarterly estimated tax.

The organising idea is that invoicing and getting paid are two different events. An invoice recognises the revenue and creates a receivable; the payment only settles it. Recording revenue when cash lands instead makes your income statement a description of your clients' payment habits rather than of your work.

Quick Start

bash
make install   # Install beancount + fava via uv
make check     # Verify the ledger has zero errors
make serve     # Open Fava at http://localhost:4739

File Guide

FileWhat it demonstrates
main.beanEntry point — options and include directives
accounts.beanPer-client receivables, the sales-tax liability, and the cost chart
transactions/invoicing.beanIssuing invoices with invoice: and due: metadata
transactions/payments.beanOn-time, partial, late, and never — including a bad-debt write-off
transactions/sales-tax.beanTax you collect is a liability, not revenue
transactions/rebilled-expenses.beanPassing project costs to a client, gross vs net
transactions/estimated-taxes.beanReserving cash (not an expense) vs paying it (an expense)

The one thing to copy

Put the invoice number on both the invoice and its payment:

beancount
2026-01-09 * "Northwind Traders" "January retainer"
  invoice: "2026-001"
  due: 2026-02-08
  Assets:Receivable:Northwind   6,000.00 USD
  Income:Consulting            -6,000.00 USD

A per-client receivable account plus due: turns "what is overdue, and by how long" into a balance report instead of a memory exercise.