View Category Report
Use the Categories report to review units sold and money earned by product category for a selected Harbor Soho reporting period. The report is read-only and uses ticket sales, not the product catalogue alone, to build its rows.
In this article
The Categories report helps managers understand which product families are contributing units and revenue during a selected period. For the GB demo, useful category examples include starters, mains, desserts and drinks when the period contains matching ticket sales.
The report belongs to Reporting > Catalog > Categories and can also be opened directly with `/:orgId/:locationId/reporting/catalog/categories`, optionally with one or more `periods` ranges in the URL.
Before you start
- You are signed in to Antylogic with an organisation and location selected, such as Harbor Demo Group and Harbor Soho.
- Your location role includes at least one accepted report-access permission: `reports:view`, `tpv:view`, `tpv:use`, `catalog:view`, `reservation:view` or `staff:view`.
- The selected period contains service sessions, non-void tickets and non-cancelled ticket items. Product types alone do not create report rows without sold items.
- The location exists and has a valid timezone. Harbor Soho uses `Europe/London`; if a timezone cannot be read, the backend falls back to UTC.
Instructions
- 1.
Open the Categories report
From the location workspace, open Reports, then Catalog, then Categories. The direct route is `/:orgId/:locationId/reporting/catalog/categories` and the page only loads data for the selected location.
- 2.
Select the reporting period
Use the period filter to choose the date range to analyse. URL periods use `YYYY-MM-DD_YYYY-MM-DD`; several ranges can be compared by separating them with `~`.
- 3.
Read the summary totals
Review the summary card for units sold and money earned. These figures come from ticket-item quantities and totals inside the selected range, with void tickets and cancelled items excluded.
- 4.
Review category rows
Use the table to compare category performance. Each row shows the category name, units sold and money earned; names come from product type first, then ticket item kitchen name, with `Sin categoría` as the implemented fallback.
- 5.
Search within categories
Use the table search field to narrow visible rows by category name, for example mains or desserts. Search is local to the table and does not change the backend report query.
- 6.
Compare periods
Add a period when you need to compare category performance across ranges. The added period is calculated as the immediately previous range before the first selected period, and missing category values in a period show as zero.
- 7.
Export on web
On web, open the table export menu to download the currently visible rows as CSV, Excel or PNG. Native app export is intentionally unavailable for this report.
Validations and limits
- If no organisation or location is selected, the screen asks the operator to select a location before consulting reports.
- If the operator lacks the accepted location permissions, the screen shows a no-permission state and the backend also rejects access.
- The frontend calls `GET /api/app/{orgId}/{locationId}/reports?periods=...` and extracts `pages.categories` from the full reporting dashboard.
- There is no categories-only endpoint and no backend filter for category, product, ordering, pagination or table search.
- Invalid URL period fragments are ignored by the backend; if no valid range remains, backend default periods are used.
- Rows include only tickets whose status is not `void` and ticket items whose `ProductionStatus` is not `cancelled`.
- Rows are sorted by money earned in the latest selected period, highest first, with alphabetical ordering for ties.
- CSV, Excel and PNG export use the rows currently visible after local table search filtering and work on web only.
- The action is read-only: it does not create, edit or delete categories, products, tickets or ticket items.
Expected result
The location manager can see which product categories concentrate units and revenue in the selected period, compare category weight across ranges, and export the visible web table when needed.