โ† Back to guides

How to Generate a Tax Report for BAS Lodgement in Odoo

Every BAS period, you need to extract GST totals from Odoo and enter them into the ATO portal. Odoo's Tax Report does this for you โ€” but only if your taxes, tax tags, and transactions are set up correctly. This guide covers the step-by-step process of generating, validating, and using the tax report for BAS lodgement.

Step 1: Navigate to the Tax Report

  • Go to Accounting โ†’ Reporting โ†’ Tax Report
  • If you've installed the Australian localisation, you may see it labelled as BAS Report
  • Select the date range โ€” this must match your BAS period exactly (e.g., 1 Oct 2025 โ€“ 31 Dec 2025 for Q2)
  • Ensure the company is correct if you have a multi-company setup
  • The journal filter should include all journals (sales, purchases, bank, miscellaneous) โ€” don't accidentally filter journals out

Step 2: Understand the report layout

The tax report is organised by BAS labels. Here's what each line represents:

  • G1 โ€” Total sales: Revenue from all taxable and GST-free sales. Should roughly match your Profit & Loss revenue for the period.
  • G2 โ€” Export sales: GST-free exports. Subtracted from G1 for the GST calculation.
  • G3 โ€” Other GST-free sales: Domestic GST-free revenue (medical, education, basic food). Subtracted from G1.
  • G10 โ€” Capital purchases: GST-inclusive amount of capital asset purchases.
  • G11 โ€” Non-capital purchases: GST-inclusive amount of operating expense purchases.
  • 1A โ€” GST on sales: The GST amount collected on taxable sales. Should be approximately (G1 - G2 - G3) รท 11.
  • 1B โ€” GST on purchases: GST credits claimed on purchases. Should be approximately (G10 + G11) รท 11.
  • Net GST: 1A minus 1B. Positive = you owe the ATO. Negative = the ATO owes you.
๐Ÿ’ก

A quick sanity check: 1A should be roughly 1/11th of (G1 - G2 - G3). If it's significantly off, you likely have transactions with incorrect tax codes.

Step 3: Drill down into each line

The power of Odoo's tax report is the ability to drill into the details:

  • Click on any BAS label amount to see the individual journal items that make up that total
  • This shows you every transaction with the corresponding tax tag
  • Sort by amount to quickly spot outliers or unusual entries
  • Check for transactions that shouldn't be there: wrong period, wrong tax code, draft entries that were accidentally posted
  • Export the drill-down list to CSV/Excel for detailed review

Step 4: Validate the numbers

Before lodging, cross-check the tax report against other reports:

  • G1 vs Profit & Loss โ€” Total sales (G1) should be close to your P&L revenue for the same period. Differences may be due to timing (cash vs accrual) or non-revenue income.
  • 1A vs GST Collected account โ€” The 1A figure should match the movement in your GST Collected liability account for the period.
  • 1B vs GST Paid account โ€” The 1B figure should match the movement in your GST Paid asset account.
  • G10 + G11 vs total purchases โ€” Should reasonably match your total expense bills and payments for the period.
  • W2 vs PAYG Payable โ€” If you include PAYG on your BAS, cross-check against the PAYG withholding liability account.

Step 5: Handle adjustments

If you find errors during validation:

  • Wrong tax code on a transaction โ€” Reset the invoice/bill to draft, correct the tax, and reconfirm. Or post an adjustment journal entry.
  • Missing transaction โ€” If a bill or invoice is in draft, post it before generating the final BAS figures.
  • Private expense coded with GST โ€” Remove the GST credit by changing the tax to "BAS Excluded" or "No GST Credit".
  • Bad debt adjustment โ€” If you've written off a bad debt, you may need to make a GST adjustment (reduce 1A by the GST component of the bad debt).
  • Prior period adjustment โ€” If you discover an error from a previous BAS period, include the correction in the current BAS (label 1A or 1B as applicable). Note the adjustment.
โ„น๏ธ

The ATO allows you to correct BAS errors in a later period if the net GST error is $10,000 or less. For larger errors, you must request an amendment to the original BAS.

Step 6: Export and lodge

  • Once validated, note down the key BAS figures: G1, G2, G3, G10, G11, 1A, 1B, W1, W2
  • Log in to the ATO Business Portal (portal.ato.gov.au)
  • Navigate to your BAS for the current period
  • Enter the figures from Odoo into the corresponding BAS labels
  • The portal will calculate your net GST and total BAS liability
  • Review and submit
  • Pay the amount by the due date (or note the refund amount)

Step 7: Close the period in Odoo

  • After lodging, record the BAS payment/refund journal entry in Odoo to clear the GST accounts
  • Set the Tax Lock Date in Accounting โ†’ Configuration โ†’ Settings to the end of the lodged period
  • This prevents anyone from posting transactions that would change the already-lodged BAS figures
  • Keep a note or attachment in Odoo documenting the BAS lodgement date and figures for audit trail

Automating with accounting method

The BAS figures depend on your accounting method:

  • Accrual method (most businesses) โ€” GST is reported when invoices are issued/received, regardless of payment. This is Odoo's default.
  • Cash method (turnover under $10M, optional) โ€” GST is reported when cash is actually received/paid. You must enable "Tax Cash Basis" in Odoo settings.
  • If using cash basis: Odoo creates the tax report based on payment dates, not invoice dates. Ensure your bank reconciliation is up to date before generating the report.
  • Your BAS reporting method must match what you've registered with the ATO โ€” don't switch without notifying them.

Common issues with the tax report

  • Missing transactions โ€” Draft/unposted invoices and bills won't appear. Confirm all documents before running the report.
  • Wrong period โ€” Double-check the date range. A one-day error can include or exclude transactions.
  • Transactions with no tax โ€” If someone creates a journal entry without a tax line, it won't appear in the tax report. Review the General Ledger for entries in revenue/expense accounts with zero tax.
  • Multi-company confusion โ€” Ensure you're looking at the correct company's data. Switch companies in the top-right menu if needed.
  • Rounding differences โ€” Odoo rounds tax per line item. Over hundreds of transactions, this can create small differences vs manual calculations. A few dollars of rounding difference is normal.

Want your BAS report to just work?

We configure Odoo's tax reporting so pulling BAS numbers takes 5 minutes, not 5 hours.

Get in touch โ†’