Cash-basis BAS from the bank feed

Biloh reports on a cash basis: a sale and its GST count when the money lands, a purchase when it is paid. G1 and 1A come from bank credits matched to invoices; 1B comes from settled bills and coded debits, but only the GST that has evidence behind it. A purchase over the receipt-only threshold with no tax invoice has its GST held out of 1B and named in an exceptions list, so the worksheet never overstates a claim and never silently drops one. Land the paper and the GST returns to 1B by itself.

What does cash basis mean in practice?

Every figure on the BAS worksheet is recognised on the date money moved at the bank. An invoice raised in the quarter but paid after it contributes nothing to this quarter. A bill dated in June but paid in July is July's purchase. This is the basis most small GST-registered service businesses report on, it is the basis Biloh's close ladder snapshots, and every report says so on its face with basis: "cash".

The accounting basis is a tenant setting (finance.accounting_basis, default cash). The two-sided AR and AP reconciliation view honours an accrual override for date anchoring, but the close, the BAS and the P&L are cash.

Where do the four figures come from?

LabelMeaningSource in Biloh
G1Total sales, GST-inclusiveBank credits matched to invoices in the quarter (the Sales and GST report)
1AGST on salesOne eleventh of each matched receipt at the 10% rate
1BGST on purchases, claimableGST on settled contractor bills as printed on the bill, plus GST on coded debits and splits, less anything held out for missing evidence
Net1A minus 1B, signedPositive is payable to the ATO; negative is a refund due

get_bas_worksheet returns exactly these on the ATO's labels, in the order the form asks for them, plus a PAYG instalment slot. get_gst_position returns the net alone; get_sales_gst_report and get_purchases_gst_report return the rows behind G1 and 1B, one per receipt or paid bill.

Why is 1B the claimable figure, not the raw total?

Australian tax law substantiates a GST claim with evidence, and the standard of evidence rises with the amount. Biloh encodes that as two thresholds:

  • Below finance.gst.receipt_only_threshold_cents (default $82.50) a purchase needs only a record.
  • Above it, a purchase needs a tax invoice before its GST is claimable.
  • Above finance.gst.detailed_tax_invoice_threshold_cents (default $1,000) the ATO additionally wants the tax invoice to name you, the buyer. Whether Biloh refuses to call such a purchase substantiated until that is confirmed is the finance.gst.require_buyer_detail_above_threshold setting.

A purchase over the threshold with no tax invoice attached is in state missing_evidence. Its GST is held out of 1B and named in the worksheet's exceptions under "claimable once paper lands". Nothing is lost: attach the document (from the shoebox, an upload link, or a bill document) and the substantiation state is re-derived, and the GST returns to 1B with no other action. recompute_substantiation re-derives every record from current amounts, documents and thresholds if a threshold is changed.

The effect is that a small 1B always arrives with the list that explains it. An accountant reading the pack sees what was claimed, what was held out and why, and what paper would change the figure.

What never reaches the BAS?

  • Your own transfers. A debit in one of your accounts paired with the equal credit in another (match_transfer_pair) moves both lines to a transfer state: no income, no expense, no GST, while both stay real lines in their balance chains.
  • Personal spend and drawings. A category whose treatment is excluded reaches no line, no subtotal and no net, whatever it has been renamed to.
  • The ATO remittance itself. A category treated as liability_clearing (paying last quarter's BAS) is not an expense.
  • Test data. Rows flagged as test are excluded from every report by default.

How does a mixed receipt get coded honestly?

A bank line carries one category and one GST figure. A $180 supermarket debit that includes $12.50 of cleaning supplies cannot be coded as one thing without either losing the credit or claiming GST on groceries. split_bank_transaction divides the line into typed splits, each with its own category, GST, note and receipt. The splits must sum exactly to the line, no split may claim more than one eleventh of its own amount, and a split claiming GST must carry a document or an on-record attestation of where the paper is. GST is claimed only on the splits that legitimately carry it.

When does the quarter's figure freeze?

When the quarter is closed. run_period_close snapshots received, ex-GST, GST, receipt count and outstanding AR into the close record. The live worksheet can still be read for a closed quarter and will agree, because both are reads of the same library. If a late payment moves a figure, the period is reopened with a reason, corrected, and closed again; the period pack minted from it is versioned rather than overwritten.

Related

Last updated 2026-09-18