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.