Reports

Review Sales Tax Collected

Sales Tax Collected is an operational cross-check built from taxed sale-item rows. It is not a tax return, invoice register or substitute for Tax Summary and statutory GST reports.

Menu path
Reports -> Money -> Tax -> Sales Tax Collected
Verified from
Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence

frontend/modules/taxdiscountReport.html, frontend/static/script/js/modules/js/report_taxdiscount.js, api/src/controllers/sales.controller.js taxSalesReports, api/src/repositories/sale.repository.js taxSalesReportPage

Sales Tax Collected scopeLive demo captured 2026-09-11. No Records is valid when the selected range contains no sale items with a positive stored tax amount.

Run the Report

  1. Open Reports -> Money -> Tax.
  2. Keep Sales Tax Collected selected.
  3. Open Filter.
  4. Choose the reporting date range and one or more branches.
  5. Apply.
  6. Review each Tax Name and Amount, then compare the total with Tax Summary and the underlying sales invoices.

What the Report Includes

RuleCurrent behaviorOperator consequence
Sale processIncludes Add, Edit and PartialReturn sale records.Review return reports separately before treating the result as net tax.
Tax thresholdOnly item rows with stored tax_amount greater than zero are selected.Zero-tax, exempt, missing and malformed tax rows do not appear.
Date fieldThe API filters sale updated_date in the shop timezone.An edited sale can fall into a different window than expected from its original sale date.
BranchOnly selected valid branch IDs are queried.An empty branch selection cannot prove zero tax across the business.
OutputRows are combined by tax name and positive amounts are displayed.Use the amount as a control total, not invoice-level evidence.

How the Amount Is Calculated

  • For inclusive tax, the browser first backs tax out of item_price; for exclusive tax it uses item_price directly.
  • The browser applies the stored line discount before calculating each tax field.
  • Multiple tax_fields create separate components that are combined by tax name.
  • When tax_fields is null but a positive tax exists, the stored tax_name and rate are used.
  • The repository groups by the complete embedded item object before the browser totals rows. Because this is not an invoice-by-invoice tax register, reconcile against Tax Summary and invoices.

Understand No Records

  • No Records means no qualifying taxed item rows were returned for the selected updated-date and branch scope.
  • It does not prove that the shop has no taxable sales or no tax liability.
  • Check that tax was enabled, each item had the correct tax assignment before sale, the sale was saved in the selected branch, and the update date falls inside the range.
  • Use a controlled test sale only in an approved test shop, then confirm the invoice tax and rerun the report.
  • The public demo resets regularly and can legitimately show an empty tax report while ordinary untaxed sales exist.

Export and Access

  • Export All To CSV creates sales-tax-discount-reports.
  • CSV fields are TaxName and Amount, formatted to two decimal places.
  • The export button is disabled when there are no matching records and on the free-plan gated view.
  • The API requires Report Read permission; session filtering can narrow the permitted date range.
  • PDF, CSV, Excel and Email in the page toolbar are shared report-delivery controls, while the row export is the dedicated tax-name CSV.

Reconciliation Checklist

  1. Use identical date and branch scope in Sales Tax Collected and Tax Summary.
  2. Compare tax-name totals with taxable invoice lines.
  3. Review edited sales near the period boundary because this report filters updated_date.
  4. Review partial and full returns separately.
  5. Resolve missing item tax assignments before relying on future reports.
  6. Use the applicable statutory report and accountant-approved process for filing.

Troubleshooting

ProblemCheckAction
Report is emptyBranch, updated-date range and positive item tax_amountCorrect scope and verify a taxed invoice line.
Tax name is unexpectedItem tax or tax-group assignment at sale timeCorrect catalog setup for future sales and preserve historical evidence.
Amount differs from invoice registerInclusive/exclusive price, discount, returns and edited sale dateReconcile at invoice-line level.
Amount differs from Tax SummaryReport scope and each report's calculation pathDo not force a match; identify and document the source records.
Export is unavailableRows, plan and Report Read permissionCorrect access or report scope.