Skip to main content

Tax Preparation Guides

Country-specific resources to help with year-end tax preparation using Beancount data

Introduction: Year-end tax preparation can be streamlined by leveraging Beancount’s detailed financial records. Below, we provide country-specific guides for five regions popular among Beancount users – the United States, Canada, Germany, the United Kingdom, and Australia. Each section outlines the typical tax filing process for individuals or small businesses, points to official tax authority resources, and offers tips on using Beancount data (and compatible tools or plugins) to simplify reporting. Use these guides as a starting point to ensure your Beancount ledger effectively supports your tax filing needs.

tax-prep-guides

United States

Year-End Tax Prep Overview: In the US, individuals and sole proprietors prepare annual income tax returns on Form 1040, often with additional schedules. Key steps include:

  • Gather Income Documents: Collect all W-2 forms (wage income), 1099 forms (for freelance income, interest, dividends, etc.), and any other year-end tax statements. The IRS recommends maintaining supporting documents like receipts, invoices, and paid bills in an organized fashion, as these back up the entries on your tax return. Small businesses or self-employed individuals will use Schedule C (Profit or Loss from Business) to report business income and expenses, so ensure you have all business revenue and expense records for the year.
  • Compile Deductions & Credits: Gather records for deductible expenses (e.g. mortgage interest, charitable contributions, medical expenses) and any tax credits. If you run a business, summarize expenses by category (office supplies, travel, etc.) as needed for Schedule C or other schedules.
  • Reconcile Accounts & Financial Statements: Use Beancount to generate an Income Statement (Profit & Loss) and Balance Sheet for the tax year. This helps verify that all income and expense totals match your documentation. It’s common to adjust your books for things like depreciation or inventory counts at year-end.
  • File by Deadline: Individual tax returns are generally due by April 15 of the following year (unless extended). If you need more time, file for an extension by the April deadline, but remember that any taxes owed are still due by April 15 to avoid interest. U.S. taxpayers can file electronically via IRS Free File (for eligible incomes) or using commercial tax software, or mail a paper return.

Official IRS Resources: Leverage IRS publications and tools for accurate guidance. Useful resources include:

  • IRS Self-Employed Tax Center: The IRS “Small Business and Self-Employed” portal provides forms and guidance for sole proprietors and small businesses. For example, it notes that sole proprietors must file Schedule C (Form 1040) to report business income. It also links to resources on recordkeeping, deductible expenses, and tax obligations.
  • IRS “How to File Your Taxes” Guide: The IRS outlines the filing process step-by-step on its website, emphasizing checking if you need to file, gathering all documents, and claiming eligible deductions/credits. This official guide is a good checklist to ensure you’ve covered everything.
  • Recordkeeping Guidelines (IRS Pub. 583): The IRS advises keeping thorough records. As noted in IRS guidance, your books should clearly show gross income, deductions, and credits, and you should retain supporting documents (like invoices, canceled checks, etc.) that substantiate each item on your return. Keeping your Beancount ledger under version control with attachments or references to documents can help meet these requirements.

Using Beancount Data for Tax Reporting: Beancount’s structured data can greatly assist in tax preparation for the US:

  • Leverage Beancount Reports: Generate standard financial reports for the tax year. A Profit & Loss report will give you totals for income and expense categories (useful for Form 1040 and Schedule C). A Balance Sheet as of Dec 31 can help with tracking end-of-year cash, receivables, payables, or inventory (important if you need to report inventory values or account for cash vs. accrual differences). These can be produced via the bean-report command or using Fava’s “Income Statement” view. Many CPAs will ask for a profit/loss and balance sheet; Beancount can output these on demand.
  • Categorize Expenses to Match Tax Forms: Structure your Beancount accounts to align with tax categories. For instance, a self-employed person might have Expenses:Business:Advertising, Expenses:Business:Travel, etc., mirroring the categories on Schedule C. This makes it easy to query totals for each category. You can use bean-query or the Fava query interface to sum up expenses by account for the year, then transfer those totals to your tax forms.
  • Capital Gains and Investments: If you have investments, Beancount’s lot tracking will record purchase and sale dates and amounts. This is useful for Schedule D / Form 8949 (Capital Gains and Losses). You can query your ledger for all asset sales in the year and get their cost basis and proceeds. Note: The US allows specific lot identification for sales (or FIFO by default). Beancount by default tracks lots on a FIFO basis unless lots are specified. Ensure you correctly mark lot sales in Beancount to reflect your chosen method. Also be aware of wash sale rules (losses disallowed if you repurchase stock within 30 days). Beancount won’t automatically flag wash sales, but you can manually adjust or use community tools (see below).
  • Exporting Data: There isn’t a one-click export from Beancount to IRS forms, but you can export data to CSV or Excel. For example, you might export a list of all charitable donations from Beancount to a CSV and attach it to your tax working papers. Some tax software (like TurboTax) allows importing investment transactions via CSV – TurboTax supports a specific “gains/loss” CSV format for stock trades. With Beancount, you can write a custom script or query to produce a CSV of your trading activity that matches these formats, saving manual entry time.

Software and Tools (USA): A variety of tools can work alongside Beancount to help file your return:

  • Tax Filing Software: Popular programs like TurboTax, H&R Block, TaxAct, or FreeTaxUSA are commonly used to prepare returns. These don’t integrate directly with Beancount, but you can use your Beancount-generated summaries to input data. For instance, after getting totals from Beancount for income and deductions, you’d enter those into the software’s interview forms. For investments, as noted, you could import a CSV of stock transactions into TurboTax – consider using Beancount’s data to generate a TXF file or the supported CSV format for seamless import.
  • Spreadsheets: Many technically-inclined filers use spreadsheets to bridge Beancount and tax forms. You can export trial balances or account summaries from Beancount (using bean-report with CSV output) and then use Excel/Google Sheets to map those figures to lines on tax forms. This is useful for customizing how data rolls up (for example, summing multiple Beancount expense accounts into a single line item on Schedule C).
  • Accountant Integration: If you use a CPA or tax preparer, you can share Beancount data with them. While most accountants are used to QuickBooks or Xero files, you can provide PDF or HTML reports from Beancount. One approach is using Bean-bake (a tool in Beancount) to produce a static HTML website of your ledger for the year. This allows an accountant to browse your accounts and transactions in read-only form. Alternatively, exporting a trial balance and general ledger detail to PDF is a conventional way – Beancount’s reports can be printed to PDF and will be similar to what accountants expect. As noted by Beancount’s creator, a tech-savvy accountant can work with these outputs (sometimes needing to adjust for sign conventions on income/liability).

Community Tips & Plugins (USA): The Beancount community has developed a few helpful add-ons for U.S.-specific tax needs:

  • Tax Loss Harvester (Fava Extension): There is a Fava plugin that identifies tax-loss harvesting opportunities and flags potential wash sales. This extension scans your Beancount investment accounts and reports which lots could be sold at a loss for tax purposes, and which of those losses would be disallowed under wash sale rules. This can be useful at year-end for tax planning (realizing losses to offset gains). It’s an advanced tool, primarily for personal investment management, but highlights how Beancount data can be mined for tax strategy.
  • Automatic Depreciation Entries: For small business assets, calculating depreciation for taxes can be tedious. Community plugins exist to automate this. For example, the Flexible Depreciation plugin (part of beancount-plugins) can generate yearly depreciation journal entries based on metadata you add to asset purchases. It supports methods like straight-line or declining balance and even has a mode for the Canadian half-year rule (which can be adapted for U.S. conventions like MACRS). Using such a plugin, you can have Beancount compute your depreciation expense for the year, which you then include on your tax return (Schedule C or Form 4562 for depreciation). This ensures your books and tax figures stay aligned.
  • Fava for Quick Checks: Running a Fava web interface during tax prep can be extremely handy. You can quickly query “Expenses:Taxes:Property” to get property tax totals, or filter transactions by a specific tag (like #deductible) if you tagged deductible items throughout the year. Some users even temporarily open access to Fava for their accountants to answer questions interactively (though one should do this carefully for security). This interactive capability can speed up the back-and-forth of tax preparation.

Canada

Year-End Tax Prep Overview: Canadian residents file an individual T1 General income tax return each year (due by April 30 for most individuals). Small unincorporated businesses (sole proprietors) include their business income on the T1 using a T2125 Statement of Business or Professional Activities. Key steps in the Canadian tax prep process:

  • Gather T-Slips: Collect all tax slips from the year. Common slips include T4 (employment income), T5 (investment income like interest or dividends), T3 (income from trusts/mutual funds), T4A (pension or self-employed commissions), among others. Ensure you have slips for all income sources – the CRA expects you to report all income, and failing to report an amount can lead to a 10% penalty on the unreported amount. Beancount can help track if an expected slip is missing (e.g., you have dividend income recorded but no T5 slip arrived, so you know to follow up).
  • Organize Deductible Expenses and Credits: Compile receipts for expenses that are tax-deductible or eligible for credits. For individuals, this could include RRSP contribution receipts, medical expenses, charitable donation receipts, childcare receipts, etc. If you’re self-employed, gather all business expense receipts (office supplies, vehicle costs, home office expenses, etc.) which you’ll need to enter on the T2125 form. In Canada, keep these receipts for at least six years, as the CRA may request them in a post-filing review.
  • Business Financial Statements: If you have a small business or side gig, prepare a summary of business income and expenses for the year. Beancount can produce this easily as an income statement. The totals will feed into your T2125. For example, the T2125 has specific lines for income and various expense categories (advertising, meals, office, vehicle, etc.). Align your Beancount accounts to these categories for a smoother transfer of totals. Canadian small businesses often operate on a calendar year by default (unlike some countries, Canada generally requires sole proprietors to use the calendar year). Make sure your Beancount data for the calendar year is finalized (all transactions recorded and reconciled) by the time you prepare taxes.
  • Lodge the Return: Most Canadians file online using NETFILE-certified software. After verifying your figures, use your chosen tax software to input the data (or Auto-fill if available – the CRA’s Auto-fill service can import your T-slip information directly into many software programs). Alternatively, fill out paper forms (T1 and schedules) if you prefer manual filing. The main form (T1) plus any schedules (like Schedule 3 for capital gains, or the T2125 for business) and provincial forms comprise the full return. Ensure to meet the deadline (April 30 for individuals, or June 15 if you or your spouse have self-employment income, though any balance owing is still due April 30).

Official CRA Resources: The Canada Revenue Agency provides comprehensive guidance for taxpayers:

  • CRA “Small Businesses and Self-Employed” Hub: The CRA’s official site has a section for small businesses and self-employed individuals. It includes a “Checklist for small businesses” covering key tax responsibilities, and information on topics like GST/HST, business expenses, and recordkeeping. This is a great starting point if you run a business, as it highlights what you need to file (e.g., that unincorporated businesses use a T2125, while incorporated companies file separate T2 returns).
  • Personal Income Tax Guides: CRA’s “Preparing to do your taxes” guide offers a step-by-step on what you need before filing – from required documents to important dates. It reminds filers of things like organizing tax slips, knowing your deduction eligibility, and understanding filing methods. Also, each year the CRA publishes a General Income Tax and Benefit Guide (T1 Guide) which explains line by line of the return – available on the CRA site.
  • T2125 and Tax Form Instructions: If you have business or professional income, review the official form T2125 and its instructions. The CRA website and the form’s guide explain what expenses are allowed and where to enter them. For instance, they describe how to calculate business-use-of-home expenses or vehicle expense claims. Similarly, if you sold investments, refer to Schedule 3 (Capital Gains) instructions to properly report those.
  • CRA Online Services: Use CRA’s online tools: My Account (for individuals) can be used to check your RRSP contribution room, TFSA info, or to use Auto-fill. The CRA also provides a list of NETFILE certified software (some free for low-income users) on its site, ensuring you use an approved program to file electronically.

Using Beancount Data for Canadian Tax Reporting: Beancount’s flexibility helps address some unique aspects of Canadian taxes:

  • Map to Tax Categories: Just as with the US, structure your accounts to match tax categories. For example, if you have employment expenses (for which you have a T2200 and can deduct on the T777 form), keep those in a distinct account (say, Expenses:Employment:Supplies) so you can easily total them. For self-employment, the T2125 categories (advertising, meals, utilities, etc.) should guide your Beancount account structure. A well-structured chart of accounts means generating a tax summary is as easy as running bean-query to sum each category for the year.
  • Capital Gains – Adjusted Cost Base (ACB): Canada’s tax system uses average cost basis for identical securities when calculating capital gains, and it requires inclusion of 50% of capital gains as taxable. Beancount, by default, tracks each lot’s cost and permits specific identification. However, Canadian law effectively treats all identical shares as one pool (except in different accounts). Example: If you buy 100 shares at $10 and later 100 shares at $20 of the same stock, then sell 100 shares, your ACB is $15/share (the average). Beancount would normally let you pick which lot you sold (which could show a $5 gain or $... depending on selection), but for Canadian reporting you must use the averaged cost. Because Beancount doesn’t natively average costs across lots, you’ll need to calculate this. Some community members have solved this by writing custom scripts or plugins. In fact, one user created a Beancount plugin to compute average cost basis in parallel with normal lot tracking. This plugin adds metadata to each sale with the computed ACB, aligning the Beancount output to Canadian rules. Even without a plugin, you can use Beancount’s data: list all transactions for a given security and manually compute the average cost, or export transactions to a spreadsheet to calculate ACB for each sale. Keep in mind Canadian rules like superficial loss (similar to wash sales) and the requirement to convert all amounts to CAD for the tax return. Beancount can handle multi-currency; you can query realized gains in CAD if you record exchange rates for transactions.
  • GST/HST Considerations: If you’re a freelancer or business registered for GST/HST, be sure to separate the sales tax in your Beancount entries. Typically, you’d have something like: when you earn $100 + $5 GST, record income of $100 to a revenue account and $5 to a Liabilities:GST Collected account. This way, your income statements reflect net income and you have a running balance of tax collected to remit. Similarly track input tax credits (GST/HST paid on expenses) in an asset or contra-expense account. At year-end (or each filing period), you can sum these accounts to prepare your GST/HST return. While GST/HST filing is separate from the income tax return, the two are related (for instance, ITCs reduce business expenses for income tax). Beancount’s data helps ensure you’ve claimed all eligible ITCs and reported the correct GST collected.
  • RRSP Contributions and Deductions: If you contribute to an RRSP, you’ll get official contribution receipts. You might also be tracking contributions in Beancount (e.g., transactions moving money into an RRSP investment account). Cross-check your Beancount entries with the official receipts to ensure no contribution is missed or mis-recorded. The total from receipts is what you claim on your tax return (up to your deduction limit). Beancount won’t directly feed this, but it can serve as a personal verification tool.
  • Foreign Income and Tax Credits: If you have any foreign income or taxes (e.g., US stock dividends with withholding tax), your Beancount records will show the foreign income and any tax paid. These are needed for the foreign income tax credit form (T2209) or deduction. By tagging or isolating foreign income in specific accounts (like Income:Dividends:US), you can quickly retrieve totals and withholding amounts to claim the foreign tax credit.

Software and Tools (Canada): Canadians have a range of tax software and tools that can complement Beancount:

  • Tax Preparation Software: Common choices include UFile, TurboTax Canada, Wealthsimple Tax (formerly SimpleTax), StudioTax, and others. These programs support NETFILE and guide you through the return. While they don’t import Beancount files, you can use your Beancount-generated figures to answer the software’s prompts. For example, when the software asks for “business income” and “business expenses by category,” you can refer to your Beancount report of income/expenses. Some software (Wealthsimple Tax, TurboTax) have an Auto-fill my return feature that pulls in T-slip data from CRA – use this to save time, then reconcile it with your Beancount records to ensure nothing is missing or duplicated.
  • Spreadsheets for T2125: If you have many expense accounts, you might create a spreadsheet mapping each Beancount expense account to the corresponding T2125 line. Export your expense totals (bean-query can output a CSV of expenses grouped by account) and paste them into the spreadsheet, which then sums into the categories required. This can serve as a worksheet to input into the tax software or forms.
  • CRA’s Online Forms and Calculators: The CRA offers some online calculators (e.g., for investment income or other scenarios) and fillable PDF forms. If you prefer manual calculation for verification, you can use these along with Beancount data. For instance, if calculating principal residence exemption on a sale of home (Schedule 3 worksheet), you’d use your Beancount records for purchase cost and selling costs to assist.
  • Accounting Software Export (if needed): If you work with an accountant who uses a professional tax package, they might ask for an income statement and trial balance. You can export those from Beancount. In some cases, accountants might import data into QuickBooks or CaseWare. While Beancount doesn’t export directly to those formats, providing a detailed general ledger Excel export might allow them to import or copy data over. It’s not uncommon for accountants to manually enter summary numbers instead, using your Beancount output as reference.

Community Tips & Plugins (Canada): The plaintext accounting community has shared several Canada-specific tips:

  • Handling ACB and Investments: As mentioned, one user created a plugin to track average cost basis for Canadian capital gains reporting. If you deal heavily in stocks or funds in a non-registered account, consider leveraging or writing such a script. Even without it, community advice often suggests maintaining a separate spreadsheet or using tags in Beancount to mark which lots belong to which “ACB pool.” For example, you might reset cost basis via a special transaction when you immigrate to Canada (since Canada deems you acquire holdings at fair market value when you become a resident) – this can be recorded in Beancount as an opening transaction with new cost equal to FMV, helping you keep Canadian-specific basis.
  • Depreciation (Capital Cost Allowance): Canada’s version of depreciation for business assets is Capital Cost Allowance (CCA), which typically uses declining-balance rates with a half-year rule in the first year. The Flexible Depreciation plugin supports a “CRA method” which automates the half-year rule for new assets. By tagging your asset purchases with something like depreciation: "AssetName @0.30" (for a 30% class rate), the plugin can generate yearly CCA entries. This ensures your Beancount expenses include the same CCA you’ll claim on your tax return, which is crucial for consistency. If not using a plugin, you can manually compute CCA (the CRA’s forms like T2125 have CCA worksheets) and record the depreciation expense in Beancount for completeness.
  • GST/HST Plugin or Workflow: While no widely-used GST plugin is specific to Canada, a simple practice is to use Beancount’s features (like custom entries or accounts) to automate GST tracking. For instance, you could write a query to calculate your net GST payable for each filing period from your GST Collected and GST Paid accounts. Some users have shared custom scripts to output GST/HST return details from Beancount data. If your business is small and uses the Quick Method for GST, you might maintain a memo of your quick method calculations in Beancount (via a note or separate file) for transparency.
  • Community Support: The Canadian Beancount community is active on forums and has discussed topics like tracking RRSP vs TFSA contributions, converting USD transactions to CAD for taxes, and more. Searching the mailing list or PTA forum for “Canada” can yield helpful threads. For example, discussions cover how to handle moving between countries (cost basis step-up) or the lack of average-cost booking built-in, which led to the aforementioned solutions. Engaging with these resources can provide insight into best practices.

Germany

Year-End Tax Prep Overview: Germany’s tax system involves an annual income tax return (Einkommensteuererklärung) for individuals, typically filed on a calendar-year basis. For those employed with only wage income, tax is often settled via payroll withholding (and a return may be optional), but anyone with additional income (freelance, investment, etc.) or claiming certain deductions will file a return. Small businesses not required to do double-entry accounting often file an “Einnahmenüberschussrechnung (EÜR)” – a simplified income/expenditure report – as part of their return. Key steps in German tax preparation:

  • Collect Income Statements and Bescheinigungen: Gather your Lohnsteuerbescheinigung (annual wage tax certificate from your employer) if you’re employed, as well as statements for any other income. This could include Kapitalertragsbescheinigungen from banks (showing dividends, interest, and any withholding tax paid), Rent or royalty income records, and any freelance income documentation (invoices issued, etc.). If you received government payments (like unemployment benefits, Elterngeld), have those statements as well.
  • Document Expenses and Deductions (Werbungskosten/Betriebsausgaben): In Germany, employees can deduct certain work-related expenses (Werbungskosten), while self-employed individuals and businesses list business expenses (Betriebsausgaben). Collect receipts for things like professional education, tools, home office (if criteria met), and commuting costs (the Entfernungspauschale is calculated based on distance). If you’re self-employed or own a business, ensure you have all invoices for expenses and have adhered to requirements (e.g., proper VAT invoices). Also gather proof for any special deductions like donations (Spendenquittungen), medical expenses, insurance premiums (many are deductible to a limit), and tax payments (e.g., property tax if you rent out property).
  • Reconcile Financial Records: If you use Beancount for your personal finances or business, reconcile your ledger with actual bank statements and receipts for the year. German taxpayers should be prepared to provide documentation on request. A Beancount ledger can help ensure you haven’t missed any income or expense: cross-check that every bank deposit is accounted for as either income or non-taxable inflow. For small businesses, prepare an EÜR if applicable – essentially a summary of revenues minus expenses, and separate calculations for things like depreciation (AfA) and mileage if claimed.
  • Utilize ELSTER or Tax Software: Germany requires electronic filing for most people. The official online portal is ELSTER (Elektronische Steuererklärung). As of recent years, ELSTER’s online forms are also available in English for easier use. Register for an ELSTER account if you haven’t, which involves getting an activation code by mail, so do this ahead of time. Alternatively, many use commercial tax software (e.g., WISO Steuer, Taxman, Smartsteuer, or English-friendly tools like SteuerGo). These software solutions guide you through the German forms (which can be complex, especially for things like the many Anlage forms). They also handle electronic submission via ELSTER. The deadline for self-filed returns is typically July 31 of the following year (for 2024 income, due July 31, 2025), but an extension is granted automatically until end of February of the second year if you use a professional tax advisor (Steuerberater). Ensure to meet the relevant deadline when you file via ELSTER or software.

Official German Tax Resources: Taxpayers in Germany can refer to official sources for accurate information:

  • Finanzamt and BZSt Information: The Bundeszentralamt für Steuern (BZSt) provides information for taxpayers in multiple languages. For instance, it explains that local Finanzämter (tax offices) are the main contact for income tax matters and provides links to forms. You can find all official tax forms on the Form Server of the tax authorities (Bundesfinanzministerium’s form portal) – including income tax return forms and instructions (Anleitung) for each schedule (Anlage).
  • ELSTER Portal: The official ELSTER website (elster.de) is where you file online. ELSTER has comprehensive help (in German) and video tutorials on using the system. It covers how to fill out each section of the return electronically. There’s also an English-language guide on the basics of using ELSTER (via expat sites and the German tax office announcements) noting that the interface can be switched to English for the main forms as of 2024.
  • Steuerliche Info (Tax Information): The German tax authorities issue official guidance (BMF letters, etc.) on specific topics. For practical purposes, the Anleitung (instruction PDFs) for the tax return and its schedules (like Anlage N for employment, Anlage S for self-employment, Anlage KAP for investments, etc.) are very useful – they explain what can be entered where. These are available on the form server and often in German only. However, websites like Handbook Germany or ** finanzamt.de** provide summaries in English for common questions (e.g., who needs to file, what deductions are allowed).
  • Local Tax Office (Finanzamt): The Finanzamt often provides guidance on their websites for regional taxpayers. If in doubt, you can call or email your local Finanzamt for specific questions. Also note that tax prepayments (Vorauszahlungen) might be required for self-employed individuals – ensure you’ve accounted for any you paid, as they will be credited on your return.

Using Beancount Data for German Tax Reporting: Beancount can be tailored to meet German accounting and tax needs, which have some unique features:

  • German Chart of Accounts Alignment: German businesses often use standardized charts of accounts like SKR03 or SKR04. While personal finances don’t require this, if you’re doing bookkeeping for a German small business in Beancount, consider structuring accounts to map to SKR04 categories (commonly used by tax advisors and DATEV software). For example, SKR04 assigns specific ranges to expense types (advertising, travel, etc.). You can mimic those in your account names or use metadata tags to store the SKR number. This makes it easier if your Steuerberater needs to transfer your data to their system – you can provide a mapping of your accounts to the official taxonomy.
  • Value Added Tax (MwSt/USt): If you’re registered for VAT (Mehrwertsteuer, also called Umsatzsteuer), your Beancount ledger should track VAT collected and paid. Typically, you’d use separate accounts, similar to GST in the Canada example: e.g., Liabilities:VAT Collected for output tax on sales, and Assets:VAT Paid for input tax on purchases. German VAT returns can be quarterly or monthly, plus an annual reconciliation. With Beancount, you can generate the figures for the VAT return (Umsatzsteuervoranmeldung) by summing these accounts for the period. Ensure to also account for any reverse charge transactions or import VAT – for instance, if you purchase services from outside Germany, you may need to both report and deduct VAT (Beancount can handle this by appropriate entries). The Hacker News discussion noted that handling things like reverse charges and multiple tax rates is essential for “proper German accounting”. In Beancount, you might use metadata or accounts to mark transactions with 19% vs 7% VAT, etc. You could even write a custom report to output the exact lines needed for the VAT form (e.g., total 19% sales, total 7% sales, etc.). While not built-in, the data is all there if structured consistently.
  • EÜR and Annual Financial Statements: If you are filing an EÜR (for a small business) instead of a full double-entry balance sheet, essentially you need totals of income and deductible expenses. Beancount can produce this easily via an income statement report for the year. Be mindful of German-specific adjustments in an EÜR, such as the treatment of private use of a car (you may add back a portion as personal use if you claimed full expenses) or home office (which has strict conditions). You might handle these in Beancount by using separate accounts for the deductible portion vs personal portion, or by adding adjusting entries at year-end. If you maintain a full double-entry (Bilanz) for a larger business, Beancount can do that too – you would have accounts for Assets, Liabilities, Equity, etc., and you’d produce a balance sheet (Bilanz) and P&L (GuV) from Beancount to give to your tax advisor. Though some complexities like HGB adjustments might be outside Beancount’s scope, for tax (which is largely cash or modified cash basis for small biz) it should suffice.
  • Depreciation (Abschreibungen/AfA): German tax law specifies depreciation rates for various assets (Absetzung für Abnutzung, AfA). Typically straight-line over a set useful life (though declining balance was allowed for some years in the past for certain assets). With Beancount, you can implement depreciation by either manually posting annual depreciation entries for each asset or using a plugin. For example, if you bought a laptop for €1200, used solely for business, and it’s to be depreciated over 3 years, you could create an entry each year charging €400 to depreciation expense. There are plugins (like the flexible_depreciation plugin mentioned earlier) that could be configured for German rules as well (e.g., 50% immediate write-off for low-value assets under a certain threshold, or the linear depreciation schedules). By recording depreciation in Beancount, your expense accounts will match what you claim on the tax return (Anlage AV for assets). Keep track of the Anlagenspiegel (asset schedule) outside or in Beancount metadata so you know when an asset is fully depreciated.
  • Trade/Business Taxes: If you pay Gewerbesteuer (trade tax) as a business, note that Beancount can help track the payments (as an expense, though not deductible for income tax) and the calculation base. Gewerbesteuer is based on profit with certain adjustments. You might maintain a separate calculation (since certain add-backs are required for interest, etc.), but your Beancount profit is the starting point. Similarly, if you have employees, tracking Lohnsteuer and social contributions in separate accounts (payroll liabilities) can help ensure you’ve accounted for all payments when doing your annual reports.

Software and Tools (Germany): German accountants and taxpayers use a mix of official and third-party tools which can interface with Beancount workflows:

  • ELSTER Online: The free official method to file taxes. ELSTER, now with some English support, allows you to manually enter your tax return forms online. Use your Beancount-generated figures to fill in the fields. For example, if your Beancount P&L shows €50,000 net profit from freelancing, you’ll put that in Anlage S (for self-employed income). If it shows €2,000 of dividend income, you’ll fill that in Anlage KAP (and note any withholding tax). ELSTER doesn’t import from Beancount or spreadsheets, so it’s manual entry, but reliable. You can also upload certain data via ERiC (ELSTER’s API), but that’s typically used by software, not individuals directly.
  • Tax Software (Steuersoftware): Many Germans use commercial software for the convenience of guided interviews and optimized suggestions. Programs like WISO Steuer or SteuerSparErklärung have desktop apps that integrate with ELSTER for submission. Some of these can import data from CSV or other software, but they expect specific formats (often geared to imports from previous years or other accounting systems). While there’s no direct Beancount import, you can usually import a list of expenses or income if you format it right. For instance, a business might import a CSV of all invoices into a tax software to auto-fill revenue entries. You could produce that CSV from Beancount’s records. Additionally, these programs can generate a “Steuerdatei” or PDF of the filled forms – you may cross-verify those against a report you create in Beancount.
  • DATEV Export: If you work with a Steuerberater, they likely use DATEV software. They might ask you for an export in DATEV format. While Beancount doesn’t export to DATEV out-of-the-box, one approach is to use an intermediary: export Beancount to CSV and then use a tool or script to map to DATEV’s format (often a specific CSV layout or XML). The community has discussed compatibility with DATEV, noting that an official integration would require matching the SKR04 chart and data fields. If this is necessary, consider engaging your accountant to see if they can work with raw data. In many cases, providing your finalized financial statements (Balance Sheet, Income Statement) from Beancount and a general ledger detail might be enough for them to make adjusting entries in their system.
  • Spreadsheets for Calculations: Some German tax calculations (like splitting tariff for married couples, or finding the optimal distribution of certain expenses between spouses) can be complex. You might use a spreadsheet to experiment with scenarios. Beancount can supply the base data (e.g., total expenses paid by each spouse). This is outside of Beancount’s scope, but it highlights that having accurate data in one place simplifies using other tools. Additionally, if you maintain a Beancount ledger for a small business, you might use a spreadsheet to prepare GAAP adjustments if needed for bank or official financial statements, while keeping tax-basis accounts in Beancount.

Community Tips & Plugins (Germany): German Beancount users have shared advice to adapt Beancount to local requirements:

  • Use Metadata for Invoices: German law requires detailed documentation, including keeping copies of invoices and linking them to bookkeeping entries. You can use Beancount’s metadata to attach invoice numbers or file links to each transaction (e.g., ; invoice: 2023-INV-1001). This makes it easier in case of an audit: you can filter for all transactions with invoice:2023-INV-1001 and quickly retrieve the associated document. Some have even used plugins or scripts to embed file paths so they can open the scanned invoice directly from Fava.
  • Reverse Charge & VAT Codes: If dealing with EU intra-community services or goods, mark those in Beancount. For example, if you record a service from an EU supplier subject to reverse charge, you might tag the transaction with VAT=ReverseCharge. Then you could create a custom report or query to list all such transactions to fill in Anlage UR (the form where you detail reverse-charged services). By tagging different VAT scenarios (domestic 19%, domestic 7%, EU acquisition, outside scope, etc.), you essentially create an audit trail in Beancount that mirrors what you’ll report in VAT returns. This granular tracking is something a German books system would do; you can emulate it in Beancount’s simple text format.
  • Localization of Terms: The community sometimes creates German translations or localized templates for reports. For example, creating a GuV (Gewinn- und Verlustrechnung) report that uses German headings and groups accounts according to German financial statement presentation. While not default in Beancount, you can customize report templates or use bean-report with your own HTML template to output a income statement in German for your records or for a bank.
  • Asset Pools and GWG (Geringwertige Wirtschaftsgüter): Keep an eye on rules like immediate expensing of low-value assets (up to a certain limit, e.g., ≤800€ can be expensed immediately as GWG). You can handle this by simply expensing such purchases in Beancount (e.g., post the €500 equipment directly to an expense account). For assets above that but eligible for pool depreciation (Sammelposten, in the 250€–1000€ range under older rules), you might have a separate account to track that pool’s depreciation. Some Beancount users maintain an Assets:DepreciationPool account for such cases and write off a fixed percentage each year. This ensures compliance with tax rules while using Beancount to record it.
  • Community Forums: The Plain Text Accounting forum and the Beancount mailing list have threads (in English) from users in Germany asking about best practices. Common topics include aligning with SKR04, handling multi-date requirements (German invoices need invoice date, service period date, and payment date recorded – you can use multiple date fields in Beancount’s syntax or metadata for this). One HN commenter building a German-centric accounting tool noted that things like multiple dates and linking to contracts are required by German GAAP; while Beancount doesn’t natively enforce that, you can certainly use its extensibility (metadata and custom validation plugins) to ensure you’re capturing the needed info. The consensus is that yes, you can do proper German bookkeeping in Beancount, but you must be disciplined in including the required details.
  • Steuerberater Coordination: If you do most of your bookkeeping in Beancount and only use a tax advisor for filing, consider sitting with them once to map your accounts to what they need. Some community members reported success in giving their accountant a Fava read-only view or an exported HTML of Beancount books to drill down into transactions. The accountant can then ask for clarifications on specific bookings. Over time, as they grow comfortable, they might accept the Beancount output for annual accounts. This can save costs, since you’re essentially doing the bookkeeping work.

United Kingdom

Year-End Tax Prep Overview: In the UK, individuals with non-PAYE income or complex tax situations file an annual Self Assessment tax return (usually due by 31 January for the previous tax year, which runs 6 April–5 April). Small businesses might be structured as sole traders (filing as part of Self Assessment) or limited companies (which file corporation tax returns separately). This guide focuses on personal Self Assessment and sole proprietorships. Key steps:

  • Collect Income Records: Gather your P60/P45/P11D forms from employment (summary of pay, tax paid, and any benefits in kind). If you’re self-employed or a landlord, compile your total income for the tax year (e.g., sales invoices, rental statements). Also include bank interest statements, dividend vouchers, and any other income (crypto, gig economy, etc.). Note that UK taxpayers must report all income unless it’s covered by a specific exemption or allowance. For instance, check if you exceeded the £1,000 trading or property allowance (if below, you might not need to report that income, otherwise you do). Beancount can help here by aggregating, say, all your freelance income invoices for the tax year to see if you breach the threshold.
  • Track Deductible Expenses and Allowances: For self-employed individuals, identify all business expenses that are allowable deductions (travel, office costs, phone, etc.) for the tax year. Ensure you have receipts or records for each. If you use the simplified expenses (like flat rate for vehicle or home office) instead of actual costs, note the usage (Beancount can track mileage or home office hours via metadata, for example). If you are employed and had unreimbursed work expenses or qualify for certain relief (like professional fees or uniform expenses), gather those amounts – though note many employment expenses aren’t claimable unless you had to file a return for other reasons. Also collect information on contributions that can affect taxes: pension contributions (especially if higher rate relief is due), charitable Gift Aid donations (these extend your basic rate band), etc.
  • Calculate Taxable Profit (for businesses): If you’re a sole trader, you’ll need to calculate your taxable profit for the business. This is essentially income minus allowable expenses, adjusted for capital allowances (depreciation for tax) and any disallowable items (like personal portion of expenses). Beancount can produce an income statement for your business which is a starting point. From that, apply UK-specific adjustments: e.g., disallow entertainment expenses (client entertainment isn’t deductible in the UK), add back depreciation and subtract capital allowances as per HMRC rules (annual investment allowance or writing down allowance). You might keep a reconciliation in a spreadsheet or within Beancount (using separate accounts for tax adjustments). This final figure goes on the Self Employment section of the tax return (SA103 form).
  • File the Self Assessment: The UK tax year ends on 5 April and the online filing deadline is 31 January following it (paper filing is due 31 October earlier). Most people file online via HMRC’s online portal or using commercial software. When ready to file, log in to HMRC’s Self Assessment portal (or your chosen software) and input the figures: employment income (often pre-filled from HMRC data), self-employment income and expenses, dividends, interest, etc. Double-check each figure against your Beancount reports. The system will calculate your tax liability. If you owe tax, note that payments on account may be required for next year (usually half of the current year’s tax, due 31 Jan and 31 July). Plan your cash flow accordingly; you can also use Beancount to forecast and set aside money for these payments.

Official HMRC Resources: The UK’s HMRC provides clear guidance for Self Assessment filers:

  • HMRC Self Assessment Guidance: The gov.uk guide “Self Assessment tax returns: Overview” explains who must file and the process. It notes that you fill in the return after the tax year (which ends 5 April) and emphasizes the deadlines and penalties for late filing. This is a must-read if you are new to Self Assessment, to ensure you’re required to file and to understand the timeline.
  • Keeping Records: HMRC expects taxpayers to keep adequate records to support their tax return. They suggest holding on to records for at least 5 years after the 31 Jan filing deadline. Specifically, business records of income and expenses, and personal records like interest and dividends. HMRC’s manuals (and gov.uk guidance) list what records self-employed individuals should keep (invoices, receipts, mileage logs, etc.). Essentially, have bank statements and receipts organized – a task Beancount makes easier since you likely input transactions from statements and can attach scans to entries.
  • Self-Employment and Rental Guidance: HMRC provides detailed notes for the self-employment pages (SA103) and property pages (SA105). These notes explain what counts as allowable expenses, how to handle capital allowances, and how to compute things like overlap profits (if your accounting period isn’t aligned to tax year, although new rules are aligning basis periods to tax years). The HS222 pamphlet is useful for capital allowances, for example. All these are on gov.uk in PDF form (search “SA103 notes”).
  • HMRC Online Services: The official HMRC Self Assessment online system is free to use. There’s also an app for simple returns. If you didn’t file online last year, you need to register (get an activation code by post). Once in, the online form is essentially the same as the paper one, with help text. HMRC’s website also has a list of recognised software if you choose to use alternatives. After filing, HMRC’s personal tax account lets you see your tax bill, make payments, or set up a payment plan if needed.

Using Beancount Data for UK Tax Reporting: Beancount can support many aspects of UK tax calculations and recordkeeping:

  • Self Employment Schedules: For sole traders, Beancount can produce the figures you need for the Self Employment pages (SA103). The form has boxes for turnover, allowable expenses (with a breakdown if your turnover is above £85k or if you choose to itemize), capital allowances, etc. If your turnover is below the threshold, you can just report total expenses as one number; Beancount can still provide a breakdown for your reference. If above, you’ll need to break out expenses into categories like office, travel, subsistence, legal fees, etc. By maintaining corresponding accounts (e.g., Expenses:Business:Travel, Expenses:Business:Legal), you can instantly query those totals. UK rules also allow use of simplified expenses (flat rate for use of home, or per mile for car). If you opt for those, you might not record actual expenses in Beancount for those categories (or you record them but then ignore and use the flat rate). You could, for clarity, have an account like Expenses:Car:Actual but then not deduct it, using a manual adjustment to claim the HMRC flat per-mile rate. Document such choices in a note or via a Beancount custom entry so you remember your method at tax time.
  • Investment Reporting: UK taxation of investments requires reporting dividends and interest above certain allowances, and capital gains if over the annual exemption or any disposals where proceeds exceed 4× the exemption. Use Beancount to track dividend income (perhaps in Income:Dividends:UK vs Income:Dividends:Foreign). At year-end, sum your dividends – you’ll need to report the total, and if any had foreign tax withheld, note that for the foreign tax credit (use the Foreign section of SA106). For capital gains, Beancount can list each disposal of assets (stocks, crypto, property etc.). The UK has specific share matching rules: same-day, next 30-day (bed and breakfast), and the Section 104 pool for older holdings (which is an average cost pool) – these rules determine the cost basis of shares sold. Manually computing this can be error-prone. The community developed a Beancount plugin for UK capital gains that applies HMRC’s rules (section 104 averaging, etc.) to calculate gains. By using this plugin on your Beancount data, you can get a report of each sale and its computed gain or loss per UK rules, which you can then use to fill out the capital gains summary on your return. Even without the plugin, you can use Beancount’s detailed lot tracking to assist – just remember Beancount’s default FIFO or specific ID approach is not the UK’s method; you might have to adjust cost basis in your records to mimic the pooling. One approach is to maintain your investments in Beancount using one account per holding (to isolate same-day and 30-day rules) and average costs manually after each purchase – or simply rely on an external calc but use Beancount for the raw data. In any case, ensure all disposals are recorded; the HMRC threshold (currently, ~£50k proceeds or £12k gain) might require you to report even if no tax due.
  • VAT and MTD: If your business is VAT-registered, you likely already use software for submitting VAT returns (Making Tax Digital for VAT mandates digital recordkeeping and submission). While Beancount isn’t one of the “official” MTD software, you could use it for recordkeeping and then use bridging software to file. For example, export your VAT account totals from Beancount and input them into an MTD-compliant spreadsheet or tool to submit to HMRC. Making Tax Digital for Income Tax is upcoming (though postponed to at least 2026+ for many); at that point, HMRC will require more frequent reporting of income/expenses. It’s possible by then that a bridging solution could take Beancount data to file quarterly updates. Already, an open-source project was proposed to interface Beancount with HMRC’s income tax API. Keep an eye on developments if you plan to continue with Beancount once MTD for ITSA becomes mandatory for you.
  • PAYE Coding Checks: Your Beancount ledger can also be used to check your PAYE tax code. For instance, if you record your payslips in Beancount (with gross pay, tax, NI, etc.), you can annualize them and see if the correct tax-free allowance was applied. If you notice a discrepancy (maybe you had underpaid tax showing), you’ll know to look at your HMRC coding notice. This isn’t directly used in filing (since PAYE is handled by employers), but it helps you avoid surprises and ensure the Self Assessment correctly accounts for any under/overpayments.

Software and Tools (UK):

  • HMRC Online Filing: The majority of individuals file through HMRC’s free online service. It’s straightforward for most scenarios. Use it in tandem with Beancount by copying numbers over. One tip: after entering all data, you can view a calculation summary. Some people compare this with their own computation (which you can do by exporting Beancount data to a spreadsheet and applying tax rates to see if it matches within a small rounding tolerance).
  • Commercial Tax Software: There are various third-party software packages (TaxCalc, Taxfiler, Absolute, etc.) and even some newer mobile apps that are HMRC-approved. These can sometimes import data from accounting software or allow spreadsheet imports. If you have complex affairs or multiple self-employed businesses, a software package might help manage multiple schedules more easily. They also often generate a nicely formatted set of schedules you can keep for your records. However, many of these are aimed at accountants and may be overkill for a single filer.
  • Excel for SA103 (Self Employment) and SA105 (Property): If you want to double-check or plan, HMRC provides working sheets (SA103S, SA103F) and SA105 in PDF/ODS formats. You can fill these electronically as a test. Beancount can fill many of the numbers. For example, for a rental property, you could use Beancount to sum up rent received and all expense categories (repairs, insurance, agent fees) for that property; then input into the SA105 form to see the result before officially filing. This can be a good practice to ensure you’re not missing any category.
  • Beancount Plugins for UK Specifics: We already mentioned the UK capital gains plugin. If you invest, this can save hours of manual pooling calculations. There isn’t much else UK-specific that’s publicly available yet, but as MTD approaches, we might see more. For instance, a plugin could be written to format a quarterly income/expense report for MTD filings, or to compute UK-specific allowances (like adjusting personal allowance if income > £100k, etc.). For now, you might rely on personal scripts or spreadsheets for such calculations.
  • Open Banking / Import Tools: Part of tax prep is getting all your transactions in one place – which Beancount excels at if you’ve been diligent. Tools like Beanhub or beancount-import (and many community bank importers) can automatically fetch bank transactions. This ensures your Beancount file is complete with all spending and income. That way, come tax time, you trust that your Beancount income accounts reflect everything. If you started using Beancount mid-year, make sure to import data from the start of the tax year (April 6) for completeness in that first year.

Community Tips & Plugins (UK):

  • UK Capital Gains Plugin: Worth highlighting again – this plugin by Beancount community member Vasily (Evernight on GitHub) implements HMRC’s capital gains rules. It accounts for Section 104 pooling (all holdings before a sale averaged), same-day rule (shares bought on the same day as a sale match that sale), and 30-day bed-and-breakfast rule (shares bought within 30 days after a sale match and adjust the gain). Using this plugin on your Beancount ledger means you can accurately compute things like stock gains and even more exotic cases (it likely handles crypto similarly if you treat each coin as separate asset type). This is an invaluable community contribution since UK rules differ from the FIFO approach many countries use.
  • Tracking Allowances and Bands: Some users tag transactions to help with UK-specific allowances. For example, tagging interest income that falls under the Personal Savings Allowance, or dividends under the Dividend Allowance. While the tax software will ultimately apply the allowance, tagging can help you quickly see if you’ve gone over the allowance. E.g., tag bank interest as #SavingsAllowance and then query the total – if it’s below £1,000 (basic rate taxpayer) or £500 (higher rate), you know no tax on it; if above, you’ll owe tax on the excess.
  • Splitting Tax Year in Beancount: The UK tax year straddles calendar years. Some Beancount users maintain custom views or even two sets of books (or more simply, use the query language) to get data for the tax year. For instance, you can query between dates “2024-04-06 to 2025-04-05” to get the tax year totals. If you consistently use Beancount for many years, consider setting up a query or report for “Tax Year X” to avoid confusion with calendar year totals.
  • Foreign Income and UK Tax: If you have foreign investments or work abroad, the UK system can get complicated (remittance basis, foreign tax credits, etc.). While not UK-specific, one tip is to use Beancount’s currency features to track both GBP and foreign currency for each transaction. For example, if you got USD dividends, record them with GBP equivalents using the exchange rate on that day. Then it’s easy to sum foreign income in GBP for your SA106 form. Also, track foreign tax paid as separate transactions to a tax expense account. These will form the basis of your foreign tax credit claim. The clarity of having this in Beancount is much better than sifting through broker statements at year-end.
  • Use of Tags for Adjustments: UK self-assessment has some peculiar entries, like the adjustment for private use (if you put an expense that has a private element, you’re supposed to add back the private part in the self-employment calculation). You can handle this by not recording private use in expenses at all (split the transaction between business and personal accounts). But if you choose to record 100% of an expense in business and then adjust, you might tag that transaction with #private_use_30% or similar. At tax time, you search for that tag and calculate the add-back. Similarly, if you use the cash basis for accounting (an option for small businesses in UK), interest above £500 is disallowed – you could tag interest expense over that threshold for an adjustment.
  • Community Forums: UK users of Beancount or other plaintext accounting tools sometimes share experiences on forums (e.g., the Plaintext Accounting Google group or Reddit). They discuss things like aligning Beancount with HMRC’s categories and making sure to account for things like payments on account in cash flow. For example, one might create a Expenses:Taxes:SelfAssessment account and record expected payments on account there, to not lose track of them. While not required for filing, it’s a good practice to integrate tax payment planning into your ledger.

Australia

Year-End Tax Prep Overview: Australia’s tax year runs from 1 July to 30 June, with individual tax returns due by 31 October. Individuals (including sole traders) use the ATO’s MyTax system or paper forms to lodge returns, while companies and other entities have their own returns (often with later due dates if using a tax agent). Key steps for Australian taxpayers using Beancount:

  • Gather Income Documents: Collect your PAYG payment summaries (now often just an Income Statement accessible via myGov if your employer uses Single Touch Payroll) for the July–June period. Also gather bank interest statements, dividend statements (including any franking credits information), rental property statements (income and expenses), and records of any other income (e.g., business or contracting income, capital gains from asset sales). Many of these are pre-filled by late July in the ATO’s systems, but you should cross-verify with your own records (from Beancount). For example, if Beancount shows you received $500 in interest from a bank account, ensure an equivalent amount appears in the pre-fill; if not, you may need to add it manually.
  • Compile Deductible Expenses and Receipts: In Australia, common deductions include work-related expenses (union fees, tools, work travel, uniforms, home office expenses), self-education expenses, charitable donations, interest on investment loans, and expenses for investment properties (repairs, property manager fees, etc.). Use Beancount to track these throughout the year by categorizing them appropriately (e.g., Expenses:Deductible:WorkFromHome or Expenses:RentalProperty:Repairs). At year-end, compile the totals. Ensure you have receipts for expenses over A$300 (and in general, keep all receipts, as the ATO can ask for evidence). Note that some deductions have specific substantiation methods (like a cents-per-km method for car, or fixed rate for home office) – decide whether to use actual costs or safe-harbor rates and gather the required info accordingly (Beancount can store, say, total home office hours or electricity bills if you need to calculate actual costs versus the fixed rate).
  • Business and Sole Trader Income: If you run a sole proprietorship or side business, you’ll report your business income and expenses in your individual return (using the Business and Professional Items schedule). Prepare a profit and loss statement for the business for the tax year (1 July–30 June). Beancount can produce this easily. Make sure to account for any adjustments between accounting and tax – for instance, Australia often allows immediate write-off for assets (up to a threshold) or simplified depreciation pools for small businesses; decide on your approach and reflect that in your Beancount ledger (or at least note it so you claim correctly on the return). Also, check if you need to account for private use portions (e.g., if 20% of vehicle use was personal and you claimed all expenses, you’d need to add back 20% as private use).
  • Lodge the Tax Return: By 1 July, the new tax year opens for filing, but it’s wise to wait until late July or August when most information is pre-filled by the ATO. Log into myGov and access ATO MyTax to start your return. MyTax will show income it knows about (from employers, banks, etc.); compare these with your Beancount data and add/correct as needed. Enter any additional income (like your business income, foreign income, etc.) and enter deductions. MyTax has categories for deductions that mirror the sections in the tax return (work expenses, donations, etc.). Use your Beancount totals to fill these in, but be prepared to input descriptions or breakups for certain claims (MyTax might ask for details for big claims). Once all data is input, review the calculated refund or amount owing. The due date for self-lodgment is 31 October. If you use a registered tax agent, you typically get an extension to May of the following year, but you must be registered as a client before 31 October to get that extension.

Official ATO Resources: The Australian Taxation Office provides a wealth of information to assist with tax prep:

  • ATO “Income tax return” Guide: The ATO’s website has specific guidance for different taxpayer types. For individuals and sole traders, see “Individuals – lodging your tax return” which outlines when and how to lodge (e.g., MyTax online via myGov) and the due dates. The ATO emphasizes that if you’re doing it yourself, lodge by 31 October, otherwise engage a tax agent. It also notes that most information is pre-filled by late July for online returns, which is a cue for when to start preparing.
  • ATO Deductions and Offsets: The ATO has detailed pages on what you can claim for work-related expenses (broken down by occupation sometimes), as well as for specific situations (like rental properties or self-education). Refer to these to ensure your Beancount-categorized expenses are indeed deductible. For example, the ATO’s “occupation guides” might say what percentage of a certain expense is typically claimable. Always cross-check with official guidance to avoid claiming something non-deductible.
  • Small Business Corner: If you have business income, ATO’s small business guides explain concessions and obligations. The “Reports and returns for businesses” page highlights what forms are needed (BAS, income tax, PAYG withholding annual summary, etc.). It’s a reminder that beyond the annual return, you might need to have filed your BAS (Business Activity Statements for GST/PAYG) throughout the year. Make sure your Beancount data facilitated those as well.
  • myTax and Pre-fill: The ATO’s online service (myTax) is user-friendly and includes help text on each section. The ATO app and myGov also have features for checking your Notice of Assessment and progress of returns. Officially, the ATO suggests linking your myGov account to the ATO so they can pre-fill data and even partially complete your return. They have a step-by-step on how to lodge online which essentially guides you through logging in, verifying info, and submitting – if using Beancount, you’ll be cross-referencing at the data entry stage.

Using Beancount Data for Australian Tax Reporting: Beancount can assist with both the numbers and recordkeeping for Australian taxes:

  • Financial Year Accounting: Australia’s July–June financial year means you’ll likely need reports that span parts of two calendar years. In Beancount, you can run queries or reports for a custom date range (e.g., 2024-07-01 to 2025-06-30). It may be convenient to maintain a custom balance assertion or closing entry on June 30 to capture year-end balances (especially if you do any accruals). Some users keep their books in fiscal-year segments. Ensure all transactions up to June 30 are entered and that anything dated July 1 or later is excluded for that tax year’s report.
  • PAYG Withholding and Installments: If you have had tax withheld (from salary or contractor payments under PAYG), those amounts will appear in your records. For instance, you might record salary as two splits: net pay to your bank, and PAYG tax to a liability or expense account. By year-end, the total in that PAYG account should match your Income Statement’s tax withheld figure (or the sum of amounts on your payslips). This helps verify the ATO’s pre-fill. Likewise, if you pay PAYG instalments (quarterly prepayments of income tax), those should be recorded (often as a pre-paid tax asset or as an expense). You will claim them on your return to offset the final tax liability. Beancount can provide the total of instalments paid during the year. The ATO will also list them, but it’s good to cross-check.
  • Capital Gains and CGT Discount: Track capital asset transactions in Beancount to facilitate capital gains tax calculations. Australia taxes capital gains with a 50% discount for individuals for assets held >12 months. For each asset sale, you’ll need to know the cost base and the sale proceeds, as well as purchase and sale dates. Beancount naturally records dates and amounts. You can query your sales for the year: For example, list all Income:CapitalGains postings. While Beancount doesn’t automatically apply the 50% discount, you can simply calculate: if a record shows a $10,000 gain and you know the asset was held 2 years, only $5,000 is taxable. You might consider tagging assets with acquisition dates or using lots to separate short-term vs long-term (though in Australia it’s purely time-based, not specific identification for the discount). Be careful with capital losses – these are tracked and can be carried forward. You may want an account for carried-forward losses to remind you next year. If you had prior losses, you’ll apply them before the discount. Using Beancount, you can model this by having a running balance of capital loss carryovers.
  • Franking Credits: Australian dividends often come with franking credits (tax credits for corporate tax already paid). In your Beancount ledger, you might record the full grossed-up dividend as income and the franking credit as a tax credit (maybe as Income:FrankingCredits or a reduction in tax expense). For tax, you must report the franked amount and the franking credit separately. Ensure your records show these clearly. For instance, a $70 cash dividend with $30 franking credit = $100 gross. You could record $100 income and $30 tax credit, or $70 income and $30 in a special account. Either way, at tax time, you’ll report $100 as dividend income and $30 as franking credit (which will count towards your tax paid). Beancount can total your franking credits for the year (sum of all such credits). This should match what’s on your dividend statements and what the ATO pre-fill shows. Franking credits can be quite valuable, so double-check you’ve got them all entered.
  • Foreign Income and FX Gains: If you have foreign investments or income, Beancount’s multi-currency capability is helpful. Record the AUD equivalent of any foreign income on the date received (the ATO requires using the exchange rate on date of receipt or an average rate). By doing so, you can just query the AUD amounts. If you paid foreign tax (like withholding tax on US stocks), track that as well – it’s claimable as a foreign tax offset. Make sure to convert that tax paid to AUD too. Any foreign currency balances might give rise to forex gains taxable under Australia’s rules (if large and not personal use), which gets complicated; but generally, keep an eye on foreign cash accounts around year-end if they fluctuate significantly.

Software and Tools (Australia):

  • myGov and MyTax: As mentioned, the primary tool for individuals is the ATO’s online MyTax. It’s free and covers most situations. The interface is fairly straightforward: you go section by section (Income, Deductions, etc.). The pre-fill can import data for you (like interest, dividends reported by companies, health insurance info for rebates, etc.). Beancount complements this by ensuring you don’t rely solely on pre-fill – for example, if a bank forgot to report something, your ledger would catch it. MyTax also has a handy feature where it will save your progress, so you can start inputting and come back later, which allows you to use Beancount reports to fill incrementally.
  • Tax Agent Software: If you use an accountant, they’ll use professional software (like Xero Tax, HandiTax, etc.). Typically, you would give them summaries of your income and deductions (Beancount printouts or Excel). They input into their software, which files through the Tax Agent portal. If you prefer to use a retail software yourself, options like Etax or H&R Block Online exist; however, they often mirror what MyTax does but with some additional guidance. They might be useful if you want a second check or a different UI. They usually allow importing prior year data but not Beancount data directly. Considering MyTax is free and robust, many tech-savvy users just use MyTax unless their situation is very complex.
  • Spreadsheets and Calculation Tools: The ATO provides calculators for certain deductions (like work-from-home fixed rate calculators) and to check things like Division 43 capital works deductions for rental property. You can use these with data from Beancount (e.g., total hours worked from home, or cost of building improvements). Additionally, if you want to simulate different scenarios (say compare actual car expenses vs cents-per-km), a spreadsheet is useful. Input data from Beancount (fuel, rego, insurance totals vs kilometers driven) to see which yields a bigger deduction.
  • ATO Record-Keeping Apps: The ATO had an app “myDeductions” which allows capturing receipts through the year, and then you can upload the data to pre-fill your return. If you’re using Beancount, you likely are already tracking expenses, so you may not need myDeductions. In fact, your Beancount is playing that role. Just ensure you still keep images of receipts if needed – storing file paths in Beancount or maintaining a separate folder system for receipts (referenced by transaction ID) can be just as effective as the ATO app.
  • Accounting Software Export: If you were using an accounting package (QuickBooks, Xero, MYOB) and moved to Beancount, note that those sometimes produce end-of-year reports tailored to tax. With Beancount, you might emulate some of that with custom reports or by exporting to CSV and then using a known template. For example, some accountants have Excel templates for rental property schedules – you could fill those from Beancount data. While not a direct “tool,” this method leverages known practices in Aussie tax prep while still using your Beancount ledger as the source of truth.

Community Tips & Plugins (Australia): The Australian Beancount community is smaller, but there are general insights that apply:

  • GST Handling: If you run a business and are registered for GST, consider using Beancount’s features to automate GST splits. Some users create a transaction template or an importer that automatically separates GST. For example, an expense of $110 marked as including GST would be entered as $100 expense, $10 to GST Paid. By doing this consistently, when BAS time comes (usually quarterly), you can sum Liabilities:GST:Collected and Assets:GST:Paid to fill in the BAS form. The ATO’s Simpler BAS for small businesses only requires reporting total sales, GST on sales, and GST on purchases. Those figures can be directly pulled from Beancount. Ensuring your Beancount is up to date each quarter means year-end is just another quarter with perhaps an annual GST return (if applicable). If you are below the GST threshold and not registered, your bookkeeping is simpler (no need for tax split entries) – just ensure you don’t accidentally claim GST on expenses in deductions if you’re not entitled (Beancount doesn’t know your GST status; you must).
  • Instant Asset Write-off: Australia has frequently changed the rules for immediate expensing of assets for small businesses (one year it’s $20k, then $30k, then unlimited for certain periods). It’s useful to tag or categorize asset purchases in Beancount. For example, tag a purchase with #InstantWriteoff if you plan to claim it fully. Then, instead of capitalizing it in Beancount, you might directly expense it to a particular account (or move it from assets to expense at year-end). Documenting your approach ensures consistency. If the threshold changes, you can query all asset purchases and see which fall under the new threshold.
  • Personal vs Business Use: For sole traders, Australian returns ask for personal use percentage of some expenses (especially for motor vehicles). One approach in Beancount is to split transactions at entry: e.g., if a car fuel purchase was $100 and you know 30% is private, record $70 to Expenses:Car:Fuel:Business and $30 to Expenses:Car:Fuel:Private. Then only deduct the $70. Alternatively, record all $100 in business expense and use metadata or a note to indicate 30% private, and later manually reduce the claim. The first method is cleaner in the ledger. The key is to be consistent so that your Beancount “books” reflect only the deductible portion if possible, to avoid confusion at tax time.
  • Multi-year Considerations: Australia allows carry-forward of capital losses indefinitely, and as of recently, even some unused loss carry-back for companies (not relevant to individuals though). If you had, say, a net capital loss last year, remember not to expect Beancount to automatically apply it – you might carry it as a memo. Similarly, deferred foreign losses or foreign tax credits might carry over. Keep a note outside or as a Beancount note for these tax attributes, since they aren't strictly accounting transactions until realized.
  • Superannuation: If you're self-employed and made personal super contributions, track them in Beancount (e.g., as a transfer from your bank to Assets:Superannuation or an expense category). You will need to lodge a notice of intent to claim them as a deduction and then report that deduction. Beancount tracking ensures you know how much you contributed and can verify that the super fund received it by year-end. Also, if you’re an employer (even of yourself in a company), track Super Guarantee contributions in payroll entries; they’re not directly on the individual tax return, but they matter for company deductions and compliance.
  • Community Sharing: Aussies discussing plaintext accounting often share little scripts—for example, converting Beancount outputs to the format needed for some ATO schedule. One might write a Python script to parse Beancount’s income statement and output a properly formatted rental property schedule (which could then be reviewed or given to an accountant). The relative smaller user base means less pre-built, but the flexibility of Beancount means with some Python or Excel, you can tailor your output to any required format.
  • Record Retention: The ATO generally requires keeping records for 5 years from the date of notice of assessment. Ensure your Beancount file (and attached documents) are backed up and retained for that period. If you ever needed to reproduce your tax return details or substantiate a claim, having the Beancount ledger and linked receipts is extremely helpful. You might even produce a yearly archive (PDF or HTML export of transactions) for your own storage.

Conclusion: By integrating Beancount into your tax preparation workflow, you can reduce errors and increase efficiency. The key across all countries is to maintain a well-organized ledger aligned with tax categories and to use the official resources as a guide for compliance. Whether it’s generating a profit/loss statement for your CPA in the US, computing an average cost base for Canadian stocks, mapping to Germany’s SKR04 accounts, detailing UK self-employment expenses, or reconciling Australian BAS filings – Beancount’s data and the community’s tools can make these tasks easier. Always double-check against the latest tax laws and consult a tax professional for complex situations, but rest assured that your diligently kept plain-text ledger is a powerful asset for year-end tax prep.

Sources:

  • Internal Revenue Service – Small Business and Self-Employed Tax Center (Schedule C guidance)
  • Beancount Community Discussions – Sharing ledger data with accountants
  • TurboTax Support – Importing CSV of investment transactions
  • Canada Revenue Agency – Small Business Checklist and Income Reporting
  • Beancount Google Group – Handling capital gains for US vs Canada (average cost)
  • HMRC – Self Assessment Guidance (deadlines, record keeping)
  • Plaintext Accounting Forum – Beancount plugin for UK capital gains (HMRC rules)
  • Bundeszentralamt für Steuern – German income tax return info and forms
  • Hacker News – Discussion on German accounting (SKR04, requirements)
  • ATO / MoneySmart (ASIC) – Lodging an Australian tax return (steps, pre-fill)
  • Australian Taxation Office – Business returns and lodgment dates
  • Beancount Plugin Repository – Depreciation plugin (supports CRA half-year rule)