Tax Report
The Tax tab adds up the tax on every sale in a period. It is built for filing: pick the month or quarter that just closed, read the tax collected and export the file for your accountant.
Every sale already carries its own tax split when it is recorded. The report does not recalculate anything. It totals what the ledger holds.
Where to Find It
Open Analytics in the left sidebar, then the Tax tab.
The tab opens on Last Quarter. A cashier limited to today's reports sees only Today.
How Tax Is Recorded
HandyCafe treats prices as tax included. The amount the customer pays is the gross. The tax is taken out of it using the rate that applied to the sale:
- taxable = amount paid divided by (1 + rate)
- tax = amount paid minus taxable
Session charges use Vat % in Settings, Pricing. That rate applies to every pricing group. Product sales use the tax rate set on the product.
A discount is taken off the taxable amount. Taxable plus tax equals gross on every sale. The same holds for every total on this tab.
A refund counts negative. A cancelled sale and its cancellation cancel each other out. The period shows neither.
The Toolbar
| Control | What it does |
|---|---|
| Today, This Month, Last Month, This Quarter, Last Quarter, This Year | Load that period. |
| Custom | Shows From date and To date fields with date and time. The report loads when both are filled. |
| Day starts at | Shows the business day start hour. Periods are cut on business days, not calendar days. |
| Comparison selector | Off, Previous period or Same period last calendar year. See Period Comparison. |
| Export to CSV | Saves the report. Disabled while loading or when the period is empty. |
The business day start hour is set in Settings, General, Business Day Starts At. With a 05:00 start, a sale at 04:59 on the 1st still belongs to the last day of the previous month.
The Headline Cards
| Card | What it shows |
|---|---|
| Taxable sales | Sales before tax, after discounts. The hint line shows the discount amount taken off. |
| Tax collected | The tax in the period. This is the figure that goes on the return. The hint shows the effective rate: tax collected divided by taxable sales. |
| Total with tax | Taxable sales plus tax. |
| Transactions | The number of sales. Refunds cancel their sale. |
Till ledger total
A line under the cards shows Till ledger total. That is the sum of the ledger in the period, the same figure the Summary page counts as sales.
It is compared with Total with tax. When they agree the line says Matches. Otherwise it shows Difference and the amount. Tips, fees and corrections are not taxed. They are the usual reason for a difference.
The Breakdown Tables
Four tables split the same sales four ways. Each has the columns Taxable, Tax, Gross and Count plus a Total row. All four totals are identical because they cover the same sales.
| Table | Rows |
|---|---|
| By tax rate | One row per rate recorded on the sales. A zero rate is marked No tax. |
| By source | Where the sale came from, such as Sessions, Orders or Consoles. |
| By payment method | How the customer paid. Your own payment methods keep their names. |
| By day | One row per business day in the period. |
A negative amount is shown in red. It means refunds outweighed sales in that row.
Cafeteria Orders
Paid cafeteria orders are not written to the sales ledger. They are therefore not in this report.
When the period has any, an amber strip at the top says how many cafeteria orders were left out and how much tax they carried. The strip appears even when the rest of the period is empty. Add that tax to your return separately. See Cafeteria Orders.
Period Comparison
The comparison selector compares the loaded period with another one.
| Option | Compares with |
|---|---|
| Off | Nothing. |
| Previous period | The period of the same length just before it. |
| Same period last calendar year | The same dates one calendar year earlier. Greyed out when that period cannot be built. |
When a comparison is on:
- A line under the toolbar shows the two date ranges.
- Taxable sales, Tax collected and Total with tax each carry a change badge.
- A Period Comparison table appears at the bottom. It lists Taxable base, VAT and Gross with Current, Baseline, Difference and Change.
Reading the change badge
| Badge | Meaning |
|---|---|
| Green arrow up with a percentage | The figure rose. |
| Red arrow down with a percentage | The figure fell. |
| Grey, with a flat line | No change. |
| New | The baseline was zero and the current figure is above zero. A percentage would be meaningless. |
The percentage is measured against the size of the baseline. A negative baseline does not flip the sign.
Messages in the comparison table
- There is no comparable data in the baseline period. The baseline figures are shown as a dash.
- A rate warning in amber. The two periods do not contain the same set of tax rates. A change in tax may come from a rate change rather than from sales.
- The comparison could not be loaded. The baseline request failed. The main report is not affected.
- There is no data from a year ago yet. Shown when last calendar year is selected but not available.
Procedures
Prepare a quarterly return
- Open Analytics, then Tax. It opens on Last Quarter.
- Read Tax collected.
- Check the Till ledger total line. Investigate a difference before filing.
- Check for the cafeteria strip. Add its tax to the return if present.
- Press Export to CSV and save the file.
Compare a month with the same month last year
- Press Last Month.
- In the comparison selector, choose Same period last calendar year.
- Read the badges on the cards and the Period Comparison table.
- If the rate warning shows, compare By tax rate for both periods before drawing conclusions.
Report a custom range
- Press Custom.
- Fill From date and To date, including the time.
- Leave the second field. The report loads.
What the CSV Contains
The file is named tax-<first business day>_<last business day>.csv. It holds, in order:
- From date and To date of the period the server actually reported, in local time.
- The headline figures: taxable sales, tax collected, total with tax, discounts, transactions and till ledger total.
- The cafeteria note, when there were cafeteria orders.
- The four breakdown tables, each with its total row.
Rates are written as plain numbers such as 20.00. Days are written as ISO dates such as 2026-09-30. Amounts use a dot decimal with no currency symbol. A spreadsheet reads all of them as numbers or dates in any language. The file opens correctly in Excel on Windows.
Permissions
The tab needs the Reporting permission View.
| Role has | Sees |
|---|---|
| Admin | Every sale, any period. |
| Show Full Reports, or Sales, Stock & Payments with Manage | Every sale, any period. |
| Show Today's Reports only | Today only. Only the sales recorded under their own name. The comparison selector is hidden. |
The limit is enforced by the server. See Cashier Roles & Permissions.
There is no edition requirement.
Troubleshooting
"No sales in this period." Nothing was sold. The other cause is that every sale was cancelled or refunded. A period that holds only a sale and its cancellation counts as empty.
"Could not load the tax report." The server could not build the report. Try again.
Tax collected is zero but there were sales. The rate on those sales was zero. Check Vat % in Settings, Pricing and the tax rate on your products. The report shows what was recorded at the time of sale. Changing a rate later does not change past sales.
Till ledger total does not match. Tips, payment fees and corrections change the ledger amount but carry no tax. A small difference from them is expected.
Cafeteria tax is missing. Cafeteria orders are outside the ledger. Use the amber strip figure.