Use Fava for Reporting
Fava provides a web interface for browsing and querying Beancount data. Install it with pip:
pip install favaStart the server:
fava ledger.beancountThis opens a web interface (default: http://localhost:5000) with several views:
- Income Statement: Shows revenue and expenses for a selected period — the same as an income statement in traditional accounting.
- Balance Sheet: Shows assets, liabilities, and equity at a point in time — equivalent to the balance sheet.
- Trial Balance: Lists all accounts with their balances — the trial balance that confirms debits equal credits.
- Journal: Chronological list of all transactions, filterable by account, payee, or tag.
- Account pages: Click any account to see its transaction history and balance over time.
- Query: Write BQL (Beancount Query Language) queries — a SQL-like language for custom reports:
SELECT account, sum(position) WHERE account ~ "Expenses" GROUP BY account ORDER BY sum(position) DESC
Fava reloads the Beancount file on each page load, so edits to the text file appear immediately in the web interface. For day-to-day use, keep Fava running in a terminal while editing the Beancount file in a text editor — the workflow is edit, save, refresh browser.