The Activity Statement is the Australian BAS (or IAS) computed for each client, for each BAS quarter, directly from the ledger. Because Xero does not expose the lodged statement through its API, XBert recalculates the standard BAS labels from the books: G1 total sales, 1A GST on sales and 1B GST on purchases, W1 wages and W2 PAYG withheld, and the net amount for the period (label 9). It lets you build alerts that review GST and PAYG positions before lodgement, watch for period-over-period swings, and pick up coding problems that need a closer look.
Each 1A and 1B figure is worked out two ways - a per-transaction line-tax figure on the client's own GST basis, plus an independent GST control-account ledger cross-check - and a ReconciliationStatus flags where the two methods diverge (RECONCILED, VARIANCE or LEDGER_NOT_AVAILABLE) so you can see at a glance which periods are worth reviewing. WET/LCT (1C–1F) and the PAYG-instalment and FBT labels are ATO-issued and not derivable, so they are reported as null. W1/W2 cover Xero Payroll only - for clients on external payroll (such as Employment Hero) they are 0 with PayrollSource set to none_in_ledger, which means "not in the ledger", not "zero".
The AI will only look back at 12 months' worth of data.
Key Properties:
SourceLink: A stable unique key for the statement period, in the form 'tenantId|periodStartDate|periodEndDate'.
OrganisationName: The trading or display name of the client this Activity Statement belongs to.
OrganisationLegalName: The registered legal name of the client, which may differ from the trading name.
OrganisationTaxNumber: The client's tax registration identifier (the ABN for Australia). May be partially masked.
CountryCode: The ISO country code. Always 'AU' for this data type - the Activity Statement is Australia-specific.
BaseCurrency: The ISO currency code of the client's base/reporting currency, e.g. 'AUD'. All amounts on the row are in this currency.
AccountingBasis: The GST accounting basis recorded on the ledger - 'ACCRUALS' or 'CASH'. Determines how the primary 1A/1B were attributed (see GstReportingBasisApplied).
StatementType: The statement type - 'BAS' when the client is GST registered (a GST control account exists), otherwise 'IAS'.
PeriodStartDate: The inclusive start date of the BAS reporting quarter.
PeriodEndDate: The inclusive end date of the BAS reporting quarter. This is the date field used for time-based questions on this data type.
G1TotalSales: BAS label G1 - total sales for the period (GST-inclusive). Counts invoiced/cash-received sales and receive-money coded to income accounts only (transfers and capital are excluded).
Label1AGstOnSales: BAS label 1A (GST on sales) - the primary, lodgement-grade figure on the client's own basis (cash-attributed for cash reporters, accrual for accruals reporters).
Label1BGstOnPurchases: BAS label 1B (GST on purchases) - the primary, lodgement-grade figure on the client's own basis.
GstReportingBasisApplied: Which basis was used for the primary 1A/1B - 'cash' (GST attributed when payment changes hands, via payments in the period) or 'accrual' (by document date).
Label1AGstOnSalesAccrual: 1A computed on an accrual basis (by document date), regardless of the client's basis. Surfaced for the reconciliation/GST-coding check.
Label1BGstOnPurchasesAccrual: 1B computed on an accrual basis (by document date). Surfaced for the reconciliation/GST-coding check.
Label1AGstOnSalesLedger: 1A computed independently from the GST control-account ledger movement (accrual). Cross-checks the accrual 1A.
Label1BGstOnPurchasesLedger: 1B computed independently from the GST control-account ledger movement (accrual). Cross-checks the accrual 1B.
W1TotalSalaryWages: Total salary, wages and other payments for the whole quarter, from Xero Payroll only. 0 when payroll runs outside the ledger (see PayrollSource). For the figure actually on this BAS see W1BasReported.
W2PaygWithheld: PAYG amounts withheld for the whole quarter, from Xero Payroll. For the figure actually on this BAS see W2BasReported.
W2PaygWithheldLedger: Quarter PAYG withholding computed independently from the PAYG-withholding liability account ledger movement. A cross-check on W2PaygWithheld.
W1BasReported: BAS label W1 as actually reported on this Activity Statement - the whole quarter for quarterly PAYG-W remitters, or only the final month of the quarter for monthly remitters (the earlier two months go on monthly IAS). See PaygWithholdingCycle.
W2BasReported: BAS label W2 as actually reported on this Activity Statement (the final month for monthly remitters, the whole quarter otherwise). This is the figure that feeds label 4 / 8A.
PaygWithholdingCycle: The inferred ATO PAYG-withholding cycle from trailing-12-month withholding - 'monthly' (>= $25k/yr), 'large' (>= $1M/yr), 'quarterly' (< $25k with payroll) or 'none'. Determines whether the BAS W-legs are the final month or the whole quarter.
Label4TotalPaygWithholding: BAS label 4 (total PAYG tax withheld, = W5) as reported on this BAS = W2BasReported. W3 (no-ABN) and W4 (investment) withholding are not derivable. Feeds label 8A.
Label8ATotalOwedToAto: BAS label 8A - total amounts the business owes the ATO = 1A + label 4 (the derivable components; WET/LCT and instalments are null).
Label8BTotalAtoOwesYou: BAS label 8B - total amounts the ATO owes the business = 1B (the derivable component).
Label9NetAmount: BAS label 9 - the net amount for the period = 8A - 8B (GST net plus PAYG withholding). Positive means payable to the ATO; negative means a refund.
Label9NetGst: The GST-only net = 1A - 1B (excludes PAYG withholding). A sub-figure of label 9; use Label9NetAmount for the whole-statement net.
Label9Scope: The scope of Label9NetAmount - 'gst_and_payg_w' when PAYG withholding is included, otherwise 'gst_only'. Instalments (5A) and FBT (6A) are never included (null).
Label1CWetPayable: BAS label 1C (Wine Equalisation Tax payable). Always null - WET has no source data.
Label1DWetRefundable: BAS label 1D (Wine Equalisation Tax refundable). Always null - WET has no source data.
Label1ELctPayable: BAS label 1E (Luxury Car Tax payable). Always null - LCT has no source data.
Label1FLctRefundable: BAS label 1F (Luxury Car Tax refundable). Always null - LCT has no source data.
LabelT1PaygInstalmentIncome: BAS label T1 (PAYG instalment income). Always null here - derivable in principle but not computed.
LabelT2InstalmentRate: BAS label T2 (PAYG instalment rate). Always null - ATO pre-printed, not synced.
LabelT7InstalmentAmount: BAS label T7 (PAYG instalment amount). Always null - ATO pre-printed, not synced.
Label5APaygInstalment: BAS label 5A (PAYG income tax instalment). Always null - needs the ATO-issued rate/amount.
Label6AFbtInstalment: BAS label 6A (FBT instalment). Always null - ATO-notified, not in the ledger.
Label7CFuelTaxCredit: BAS label 7C (fuel tax credit). Always null - needs litres multiplied by the ATO per-litre rate, which is not in the warehouse.
NonDerivableLabelsReason: A plain-English explanation of which labels are null and why.
GstAccountMatchCount: The number of GST control accounts matched. 0 means the ledger cross-check could not run (ReconciliationStatus = LEDGER_NOT_AVAILABLE).
GstAccountMatchMethod: How the GST control account was identified - 'system' (Xero system-account flag, reliable), 'name' (name match) or 'none'.
PayrollSource: The source of W1/W2 - 'xero_payrun' (payroll runs in the ledger) or 'none_in_ledger' (external payroll such as Employment Hero, where W1/W2 are 0 because they are not in the ledger, not because they are zero).
W2Method: The method used for W2 - 'payrun' (from payroll runs) or 'ledger' (PAYG-withholding account fallback when there are no payruns).
GstAnomalyAmount: The absolute GST that hit the control account via unusual entries (tax-coded journal lines or manual journals) and is not in the per-transaction 1A/1B. A large value warrants manual review.
ReconciliationVariance: The difference between the accrual line-tax net GST and the ledger net GST. Near zero means the GST coding in the books is consistent with the GST control account (a coding-quality check, independent of the client's reporting basis).
ReconciliationStatus: The GST-coding confidence - 'RECONCILED' (accrual line-tax and ledger agree), 'VARIANCE' (they diverge, so review GstAnomalyAmount and the books) or 'LEDGER_NOT_AVAILABLE' (no GST control account).
CashBasisApplied: True when the primary 1A/1B were cash-attributed (the client reports GST on a cash basis); false for accrual.
📝 Example Alerts
Alert me when a BAS quarter's ReconciliationStatus is VARIANCE so I can review it before lodging.
Alert me when the net GST for a quarter changes by more than 40% compared to the same quarter last year.
Alert me when a GST-registered client has W1 wages but W2 PAYG withheld is zero.
Alert me when the GST anomaly amount for a period is more than $10,000.
Alert me when a quarter is in a GST refund position (net GST is negative).
