Skip to main content

14 posts tagged with "Cash Flow"

View all tags

The Complete Guide to Cash Flow Statements: Free Template and Best Practices

· 9 min read
Mike Thrift
Mike Thrift
Marketing Manager

Understanding where your money comes from and where it goes is fundamental to running a successful business. While many business owners focus on their profit and loss statements, the cash flow statement often reveals the real story of your company's financial health. After all, you can be profitable on paper but still run out of cash to pay your bills.

What Is a Cash Flow Statement?

2025-08-14-guide-to-cash-flow-statements

A cash flow statement (also called a statement of cash flows) is a financial document that tracks all the money flowing in and out of your business during a specific period—whether that's a month, quarter, or year. Unlike an income statement that shows revenue when earned (even if payment hasn't arrived), a cash flow statement focuses exclusively on actual cash movements.

Think of it as your business's financial pulse. It shows whether you have enough cash to cover payroll, pay suppliers, invest in growth, and keep the lights on.

Why Your Business Needs a Cash Flow Statement

Cash flow problems are one of the leading causes of small business failure. Even profitable businesses can fail if they don't have enough cash on hand to meet their immediate obligations. Here's why tracking cash flow matters:

Reveals True Liquidity: Your income statement might show a profit, but if customers haven't paid their invoices yet, you might not have actual cash available.

Enables Better Planning: By tracking cash patterns, you can anticipate shortfalls before they become crises and plan for major expenses or investments.

Attracts Investors and Lenders: Stakeholders want to see that your business generates positive cash flow and manages its resources responsibly.

Identifies Problem Areas: You might discover that too much cash is tied up in inventory, or that collection periods are too long.

Supports Growth Decisions: Should you hire that new employee? Lease new equipment? Your cash flow statement helps answer these questions.

The Three Sections of a Cash Flow Statement

Every cash flow statement is organized into three main categories, each telling a different story about your business:

1. Operating Activities

This section covers your day-to-day business operations—the activities that generate your primary revenue. Operating activities include:

  • Cash received from customers for products or services
  • Cash paid to suppliers and vendors
  • Payroll and employee benefits
  • Rent, utilities, and other operating expenses
  • Interest payments
  • Income tax payments

The net cash flow from operations is arguably the most important line on your statement. It shows whether your core business activities are generating positive cash flow. If this number is consistently negative, it's a red flag that your business model may need adjustment.

2. Investing Activities

This section tracks cash flows related to long-term assets and investments:

  • Purchase or sale of property, plant, and equipment
  • Acquisition or disposal of other businesses
  • Purchase or sale of investment securities
  • Loans made to other entities (and repayments received)

For growing companies, this section often shows negative cash flow because they're investing in their future. That's not necessarily bad—it shows you're building for tomorrow. However, you need positive cash flow from operations or financing activities to support these investments.

3. Financing Activities

This section shows how your business raises capital and pays it back:

  • Proceeds from loans or issuing bonds
  • Repayment of debt principal
  • Money invested by owners or shareholders
  • Stock buybacks
  • Dividend payments

This section reveals how you're funding your business and whether you're relying heavily on external financing or generating enough cash internally.

How to Create a Cash Flow Statement

There are two methods for preparing a cash flow statement: the direct method and the indirect method. Most small businesses find the indirect method easier to implement.

Step 1: Start with Net Income Begin with the net income from your income statement for the period.

Step 2: Adjust for Non-Cash Items Add back expenses that didn't involve cash payments:

  • Depreciation and amortization
  • Losses on asset sales (or subtract gains)

Step 3: Adjust for Working Capital Changes

  • Add decreases (or subtract increases) in accounts receivable
  • Subtract increases (or add decreases) in inventory
  • Add increases (or subtract decreases) in accounts payable

For example, if accounts receivable increased by $2,000, subtract this from net income because you recorded revenue but haven't collected the cash yet.

Step 4: Add Investing Activities List all cash flows from buying or selling long-term assets and investments.

Step 5: Add Financing Activities Record all cash flows from debt, equity, and dividend transactions.

Step 6: Calculate Net Change in Cash Add up the net cash from all three sections. This should equal the change in your cash balance between the beginning and end of the period.

The Direct Method

The direct method is more straightforward conceptually but requires more detailed record-keeping. You simply list all cash receipts and payments:

Cash Receipts:

  • Collections from customers
  • Interest received
  • Other operating cash receipts

Cash Payments:

  • Payments to suppliers
  • Payments to employees
  • Interest paid
  • Income taxes paid
  • Other operating cash payments

Subtract total payments from total receipts to get net cash from operating activities, then add the investing and financing sections as described above.

Real-World Example: A Small Bakery

Let's say you own a neighborhood bakery. Here's how a simple monthly cash flow statement might look:

Operating Activities:

  • Net income: $4,000
  • Add: Depreciation: $500
  • Increase in accounts receivable: -$1,000 (customers bought on credit)
  • Decrease in inventory: $800 (used up supplies)
  • Increase in accounts payable: $600 (delayed some supplier payments)
  • Net cash from operations: $4,900

Investing Activities:

  • Purchase of new oven: -$3,000
  • Net cash from investing: -$3,000

Financing Activities:

  • Principal payment on bakery loan: -$500
  • Net cash from financing: -$500

Net increase in cash: $1,400

If you started the month with $5,000 in the bank, you'd end with $6,400.

Best Practices for Using Your Cash Flow Statement

1. Review It Regularly

Don't just create a cash flow statement once a year for your accountant. Review it monthly at minimum, and weekly if your business has tight margins or rapid growth. The more frequently you review it, the faster you can spot and address problems.

2. Create Cash Flow Projections

Use historical data to forecast future cash flows. This helps you anticipate seasonal variations, plan for major expenses, and avoid cash crunches. Most businesses create 12-month rolling forecasts that they update monthly.

3. Watch Key Metrics

Pay special attention to:

  • Operating cash flow: Should be consistently positive
  • Free cash flow: Operating cash flow minus capital expenditures
  • Cash conversion cycle: How long it takes to turn inventory investments back into cash

4. Compare Periods

Look at month-over-month and year-over-year trends. Is your operating cash flow growing? Are you becoming more or less dependent on financing? These trends reveal your business trajectory.

5. Reconcile with Other Statements

Your cash flow statement should tell a consistent story with your balance sheet and income statement. The change in cash on your cash flow statement should match the change in the cash account on your balance sheet.

Common Mistakes to Avoid

Confusing Profit with Cash Flow: Just because you're profitable doesn't mean you have cash. A $10,000 sale on 60-day payment terms helps your income statement today but doesn't help your cash flow for two months.

Ignoring the Operating Section: Some business owners focus only on the bottom line (total change in cash) without analyzing the sources. You want positive cash flow from operations, not just from taking on more debt.

Forgetting Non-Cash Transactions: Depreciation doesn't use cash, but it reduces your net income. Make sure you're adding it back when using the indirect method.

Not Planning for Seasonal Variations: Many businesses have seasonal cash flow patterns. Plan for the lean months during the abundant ones.

Mixing Up Principal and Interest: Interest payments are operating activities; principal payments on loans are financing activities. Keep them separate.

Download Your Free Cash Flow Statement Template

To help you get started tracking your business's cash flow, we've created a free, easy-to-use Excel template that includes:

  • Pre-formatted sections for operating, investing, and financing activities
  • Automatic calculations
  • Both monthly and annual views
  • Customizable line items for your specific business
  • Professional formatting for presentations to lenders or investors

The template uses the indirect method, which works well for most small businesses. Simply enter your financial data, and the template will calculate your cash flows automatically.

Taking Action: Your Next Steps

Understanding and monitoring cash flow is not just about survival—it's about making informed decisions that drive growth. Here's how to put this knowledge into practice:

  1. Start tracking now: Don't wait until next month or next quarter. Download the template and create your first cash flow statement this week.

  2. Set a review schedule: Block time on your calendar to review cash flow at least monthly.

  3. Build a cash cushion: Aim to maintain 3-6 months of operating expenses in cash reserves.

  4. Tighten collections: If accounts receivable are eating up cash, implement stricter payment terms or follow-up procedures.

  5. Manage inventory wisely: Excess inventory ties up cash. Use just-in-time ordering where possible.

  6. Negotiate payment terms: Can you extend payables without damaging vendor relationships? Can you incentivize customers to pay faster?

The Bottom Line

Cash flow management isn't glamorous, but it's essential. Your cash flow statement is one of the most powerful tools you have for understanding your business's financial health and making smart decisions. By tracking where your money comes from and where it goes, you can avoid cash crises, plan for growth, and build a more resilient business.

Remember: revenue is vanity, profit is sanity, but cash is king. Start tracking yours today.


Have questions about creating or interpreting your cash flow statement? Leave a comment below, and we'll help you find answers.

Understanding Accounts Receivable (A Beancount Guide)

· 8 min read
Mike Thrift
Mike Thrift
Marketing Manager

If you run a business that bills clients, you need a rock-solid way to track who owes you money. This is where Accounts Receivable (AR) comes in. It’s more than just a number on a report; it’s the lifeblood of your cash flow.

This guide will walk you through what Accounts Receivable is, why it matters, and how to manage it with precision and clarity using the plain-text accounting system, Beancount.

2025-08-12-understanding-accounts-receivable


TL;DR

Accounts receivable (AR) is the money customers owe you for goods or services you’ve already delivered. It’s a current asset on your balance sheet, central to accrual accounting, and a key driver of your business's cash flow. You can track AR cleanly in Beancount by using customer sub-accounts, linking invoices to payments with ^links, and running a few simple queries. To measure your collection speed, you can calculate AR Turnover and Days Sales Outstanding (DSO). To handle risk, you can use an allowance for doubtful accounts.


What is Accounts Receivable?

Definition Accounts Receivable represents the balance of money due to your firm for goods or services delivered or used but not yet paid for by customers. Under accrual accounting, you recognize this revenue when you earn it, not when you receive the cash. As a result, AR appears as a current asset on your company's balance sheet.

Why It Matters Effectively managing your AR is critical for maintaining healthy liquidity. The faster you collect on your invoices, the shorter your cash conversion cycle—the time it takes to turn your investments in inventory and other resources back into cash. By monitoring metrics like AR Turnover and Days Sales Outstanding (DSO), you can get a clear picture of your collection efficiency and take action to improve it.

Accounts Receivable vs. Accounts Payable (One-Line Refresher)

  • AR = money owed to you (it's an asset).
  • AP = money you owe to others (it's a liability).

The Accounts Receivable Flow in Double-Entry Accounting

Conceptually, the lifecycle of a receivable follows these steps:

  1. Issuing an Invoice (Credit Sale): When you send an invoice, you increase your Assets (specifically, Accounts Receivable) and recognize the Income you've earned.
  2. Cash Collection: When the customer pays, you increase one asset (your Assets:Bank account) and decrease another (Assets:AR). The net effect on your total assets is zero, but your cash position improves.
  3. Discounts or Credits: If you offer an early-payment discount or issue a credit memo, you reduce the customer's AR balance and offset it with a discount expense or a reduction in revenue (contra-revenue).
  4. Bad Debts: Unfortunately, not all invoices get paid. To account for this, you can recognize an allowance for doubtful accounts (a contra-asset that reduces your AR's value) and a corresponding bad debt expense. Later, you can write off a specific uncollectible invoice against this allowance.

Modeling AR in Beancount

Beancount is a plain-text, double-entry accounting system that is perfectly suited for tracking AR. Its use of tags (which start with #), links (which start with ^), and a SQL-like query language (bean-query) makes your entire AR process transparent, auditable, and scriptable.

Suggested Account Structure

A clean chart of accounts is the foundation. Here’s a recommended structure:

Assets:AR
Assets:AR:Clients:<Name>
Assets:AR:Allowance ; A contra-asset account

Income:Sales
Income:Contra:SalesDiscounts ; An alternative to an expense account

Expenses:SalesDiscounts
Expenses:BadDebt

1. Record a Credit Sale (Issue an Invoice)

When you send an invoice to a client, you record it in your ledger.

2025-07-01 * "Acme Co." "Invoice 2025-045 · Web design" ^INV-2025-045 #ar #client:acme
invoice: "2025-045"
due: "2025-07-31"
document: "/invoices/2025/INV-2025-045.pdf"
Assets:AR:Clients:Acme-Co 1200.00 USD
Income:Sales -1200.00 USD
  • The ^INV-2025-045 link is a unique identifier that will tie this invoice to its future payment(s).
  • The document: metadata helps Fava (Beancount's web interface) render a clickable link directly to the invoice PDF.

2. Record Full Payment

When Acme Co. pays the invoice in full, you clear their receivable balance.

2025-07-25 * "Acme Co." "Payment for INV-2025-045" ^INV-2025-045 #ar
Assets:Bank:Checking 1200.00 USD
Assets:AR:Clients:Acme-Co -1200.00 USD

Using the same ^INV-2025-045 link creates a clear audit trail connecting the invoice and the payment.

3. Handling Partial Payments

If a client makes a partial payment, the process is the same. The link keeps everything connected.

2025-07-20 * "Acme Co." "Partial payment INV-2025-045" ^INV-2025-045 #ar
Assets:Bank:Checking 400.00 USD
Assets:AR:Clients:Acme-Co -400.00 USD

A query on ^INV-2025-045 would show the original $1200 invoice and this $400 payment, leaving an $800 balance.

4. Handling an Early-Payment Discount

Let's say you offer a 2% discount on a $1000 invoice if paid early.

2025-07-10 * "Acme Co." "2% early-payment discount on INV-2025-046" ^INV-2025-046 #ar
Assets:Bank:Checking 980.00 USD
Expenses:SalesDiscounts 20.00 USD
Assets:AR:Clients:Acme-Co -1000.00 USD

Here, you clear the full $1000 receivable, record the $980 cash received, and book the $20 discount as an expense. Note: Many ledgers treat sales discounts as contra-revenue instead of an expense. Using an expense account is often simpler for smaller ledgers. The key is to choose one method and use it consistently.

5. Including Sales Tax on Invoices

If you collect sales tax, you record it as a liability at the time of invoicing.

2025-07-01 * "Acme Co." "INV-2025-047 · Hardware + tax" ^INV-2025-047 #ar
invoice: "2025-047"
due: "2025-07-31"
Assets:AR:Clients:Acme-Co 1100.00 USD
Income:Sales -1000.00 USD
Liabilities:Tax:Sales -100.00 USD

You've invoiced for $1100, recognized $1000 in revenue, and now owe $100 to the tax authority.

6. Handling Bad Debts (Allowance Method)

The allowance method is preferred under Generally Accepted Accounting Principles (GAAP) as it better matches expenses to revenues.

Step 1: Estimate and Create the Allowance (e.g., at Year-End) Based on historical data, you estimate a percentage of your receivables may be uncollectible.

2025-12-31 * "Allowance for doubtful accounts (2% of AR)"
Expenses:BadDebt 300.00 USD
Assets:AR:Allowance -300.00 USD

This creates a contra-asset account (Assets:AR:Allowance) that reduces the book value of your total receivables.

Step 2: Write Off a Specific Uncollectible Invoice Later When you are certain an invoice will not be paid, you write it off against the allowance.

2026-03-05 * "Write-off INV-2025-049 for Insolvent Client" ^INV-2025-049 #ar
Assets:AR:Allowance 1200.00 USD
Assets:AR:Clients:Insolvent-Client -1200.00 USD

Notice this transaction does not impact your expenses; the expense was already recognized when you created the allowance.


Minimal Reporting & Queries

You can get quick snapshots of your AR using Fava or bean-query.

Open Receivables by Customer

SELECT account, SUM(position)
WHERE account ~ '^Assets:AR'
GROUP BY account
ORDER BY account;

Journal of AR Activity for a Period

JOURNAL
WHERE account ~ '^Assets:AR'
AND date >= 2025-07-01 AND date < 2025-08-01;

Core AR Metrics (With Quick Formulas)

For these ratios, a practical approach is to use bean-query to export the necessary numbers (period sales, beginning/ending AR balances) and then perform the calculations in a spreadsheet or a script. This keeps your ledger clean and your math explicit.

AR Turnover Ratio

This measures how many times per period your business collects its average accounts receivable. Higher is better.

ARTurnover=fracNetCreditSalesAverageARAR\\ Turnover = \\frac{Net\\ Credit\\ Sales}{Average\\ AR}

DSO (Days Sales Outstanding)

This tells you the average number of days it takes to collect payment after a sale has been made. Lower is better.

DSO=(fracAccountsReceivableTotalCreditSales)timesNumberofDaysDSO = (\\frac{Accounts\\ Receivable}{Total\\ Credit\\ Sales}) \\times Number\\ of\\ Days

Together, these metrics indicate how efficiently you convert invoices into cash.


A Simple Beancount Starter File (Copy/Paste)

; --- Accounts ---------------------------------------------------------------
1970-01-01 open Assets:Bank:Checking USD
1970-01-01 open Assets:AR
1970-01-01 open Assets:AR:Clients:Acme-Co
1970-01-01 open Assets:AR:Allowance
1970-01-01 open Income:Sales
1970-01-01 open Expenses:SalesDiscounts
1970-01-01 open Expenses:BadDebt
1970-01-01 open Liabilities:Tax:Sales USD
; ---------------------------------------------------------------------------

; Example invoice
2025-07-01 * "Acme Co." "Invoice 2025-045 · Web design" ^INV-2025-045 #ar
invoice: "2025-045"
due: "2025-07-31"
document: "/invoices/2025/INV-2025-045.pdf"
Assets:AR:Clients:Acme-Co 1200.00 USD
Income:Sales -1200.00 USD

; Payment received
2025-07-25 * "Acme Co." "Payment INV-2025-045" ^INV-2025-045 #ar
Assets:Bank:Checking 1200.00 USD
Assets:AR:Clients:Acme-Co -1200.00 USD

Operational Tips to Keep AR Healthy

  • Set Clear Terms: Include the due date, late fee policies, and any early-payment discount terms on every invoice.
  • Link Everything: Use consistent ^INV-... links to tie invoices, payments, and credit memos together for a clear audit trail.
  • Attach Documents: Use the document: metadata to link to PDFs of invoices, purchase orders, and contracts.
  • Review Monthly: Check your open AR report at least once a month and follow up on past-due invoices. Watch your AR Turnover and DSO trends to spot problems early.

Further Reading (Sources Used)

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

· 3 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)
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)
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).
  • 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).
  • 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.

Crafting & Tracking Invoices with Beancount

· 6 min read
Mike Thrift
Mike Thrift
Marketing Manager

A plain‑text template, a repeatable workflow, and a single query for “Who still owes me?”


2022-02-12-crafting-tracking-invoices-with-beancount

Invoicing can feel like a chore, stuck between the work you've finished and the payment you're waiting for. But a good invoice process is the backbone of healthy cash flow. It pulls double duty: it clearly tells your clients what they owe and when, and it feeds your accounting system the unassailable facts it needs.

While dedicated SaaS apps can send slick, automated PDFs, they often come with monthly fees and lock your data in a proprietary silo. A lightweight, plain-text approach using Beancount offers a powerful alternative. You can turn each invoice into a clear set of accounting entries, giving you all the benefits of version control, powerful metadata, and instant querying—no subscription required.


The Minimum Viable Invoice (Fields You Should Never Skip)

Before you touch your ledger, you need a professional invoice. The format can be simple, but the contents must be precise. These fields, borrowed from time-tested small-business practice, are non-negotiable.

  • Seller details: Your business name and physical address.
  • Client details: Your client’s name and (ideally) their address.
  • Invoice number: A unique, sequential ID that is never reused. INV-045 follows INV-044.
  • Issue & due dates: Clearly state when the invoice was issued and when payment is expected.
  • Line items: A clear description of services or products, along with quantity, rate, and the line total.
  • Subtotal, tax, and total: Show the math so the client can follow it easily.
  • Optional notes: A place for a thank you, wiring instructions, or a client-provided purchase order number.

To get you started, we've created a set of ready-to-edit templates that include all these fields. The spreadsheet versions even pre-calculate the totals for you.

Note: Invoice templates are coming soon! In the meantime, you can create your own using the fields listed above in Google Docs, Word, Sheets, Excel, or any other document format.


Record the Invoice in Your Ledger

Once you've sent the invoice PDF to your client, you must record it in Beancount. This is a crucial step that recognizes the revenue when it's earned, not just when it's paid. The process involves two distinct transactions.

1. When you issue the invoice:

You create a transaction that moves the total amount from your Income account into Assets:AccountsReceivable. This creates a digital IOU in your books.

; 2025‑07‑21 Invoice #045  Web design sprint for Acme Corp.
2025-07-21 * "Acme Corp" "INV-045 Web design sprint"
Assets:AccountsReceivable 3500.00 USD ; due:2025-08-04
Income:Design:Web
invoice_id: "INV-045"
contact_email: "[email protected]"
link: "docs/invoices/2025-07-21_Acme_INV-045.pdf"

Here, you debit AccountsReceivable and credit your Income account. Notice the rich metadata: the due date, a unique invoice_id, and even a direct link: to the PDF you sent.

2. When the client pays:

When the cash hits your bank account, you record a second transaction to "close out" the IOU. This moves the balance from AccountsReceivable to your checking account.

2025-08-01 * "Acme Corp" "Payment INV-045"
Assets:Bank:Checking 3500.00 USD
Assets:AccountsReceivable
invoice_id: "INV-045"

The balance for INV-045 in Assets:AccountsReceivable is now zero, and your books are perfectly balanced.

Attach the PDF: The link: metadata key is especially powerful when used with Fava, Beancount's web interface. Fava will render a clickable link directly in the transaction view, so the source document is never more than a click away. This workflow was envisioned as early as 2016 in a feature request (GitHub).


One Query to List All Open Invoices

So, who still owes you money? With this system, you don't need to hunt through emails or spreadsheets. You just need one simple query.

Save the following as a file named open-invoices.sql:

SELECT
meta('invoice_id') AS id,
payee,
narration,
date,
number(balance) AS outstanding
WHERE
account = "Assets:AccountsReceivable"
AND balance != 0
ORDER BY
date;

Now, run it from your command line:

bean-query books.beancount open-invoices.sql

In seconds, you'll get a clean, up-to-the-minute aging report of all outstanding invoices, showing the invoice ID, client, date issued, and amount owed. No extra software required.


Automate the Busywork

The beauty of plain text is scriptability. You can automate the tedious parts of this workflow.

  • Template + Pandoc = PDF: Maintain your invoice template in Markdown. A tiny Python script can populate the variables (client name, line items, invoice number), and the command-line tool Pandoc can instantly convert it to a professional PDF.
  • Git Pre-commit Hook: If you store your ledger in Git, a simple pre-commit hook can run checks before you save your work. It can verify that every new invoice_id is unique, that the transaction postings balance to zero, and that the file referenced in the link: metadata actually exists.
  • Cron Job: Set up a scheduled task (a cron job) to run your open-invoices.sql query every night and email you the summary. You'll start each day knowing exactly who needs a friendly nudge.

A Realistic Caveat

Beancount is an accounting tool, not an invoicing service. It will not automatically send payment reminders to your clients or process their credit card payments. The workflow is: you create and send the invoice using your chosen method (like the templates above), and then you book the accounting entries in your ledger.

For most freelancers and small shops, this manual step is a small price to pay for a bulletproof, auditable, and free accounting system that you completely own and control (beancount.io).


Next Steps

Ready to take control of your invoicing? Here’s how to start.

  1. Download a template and use it to create your next real invoice, making sure to use a sequential invoice number.
  2. Store your sent PDFs in a dedicated folder like docs/invoices/ and use the link: metadata key in your Beancount transaction to reference them.
  3. Save the open-invoices.sql query and make running it a part of your weekly financial review.

Plain-text accounting doesn’t mean giving up polish or control—it just means the database is grep-able. With a simple template and the snippets above, you’ll get paid faster and keep your books immaculate.