Dashboard
Read the Best Selling Products Table
Best Selling Products is a five-row operational ranking by sold quantity for the active branch and dashboard period; it is not an inventory count, profit report or permanent product leaderboard.
- Menu path
- Home -> Dashboard -> Best Selling Products
- Verified from
- Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence
frontend/modules/dashboard.html Best Selling Products table and four columns, frontend/static/script/js/modules/js/dashboard.js loadOverview and renderBestSellers, api/src/models/dashboard.model.js getDashboardBestSellingProductsModel aggregation, api/src/controllers/dashboard.controller.js getOverview branch, time-zone and session-range handling, demo.posnic.io Best Selling Products observed on 2026-09-08
Read the Table in the Right Context
- Open Home -> Dashboard and confirm the active outlet or branch.
- Select Today, This Week, This Month or This Year above the dashboard cards.
- Wait for the period label and Best Selling Products rows to refresh.
- Read the first row as the highest sold quantity in that branch and period, followed by up to four lower-ranked item names.
- Use the matching Sales or Item report before ordering stock, changing prices, paying commission or making an accounting decision.
What Every Column Means
| Column | Exact meaning | Do not interpret it as |
|---|---|---|
| # | Position after sorting the returned groups by total quantity from highest to lowest. | A permanent rank across all time. |
| Name | The item name stored on sale lines, used as the grouping key. | A unique SKU, barcode or immutable item identity. |
| Qty | Sum of item_quantity across matching sale lines for the selected context. | Current stock, number of bills or number of customers. |
| Amount | Sum of each matching sale line's total_amount, formatted in the shop currency. | Profit, cash collected, tax-exclusive revenue or bank settlement. |
Exact Ranking Rules
- Posnic groups sale lines by their stored item_name, adds item_quantity and total_amount, sorts by total quantity descending and returns only five groups.
- The calculation includes sales whose process is Add, Edit or PartialReturn within the resolved date range.
- The signed-in branch and licence context are applied by the dashboard model. Results from another branch are not mixed into the active branch view.
- Date boundaries use the user's configured Posnic time zone. A wrong time-zone setting can move a late-night sale into an unexpected day.
- A user's Sales Session Filter can narrow the controller's normal period range to activity inside that login session.
- Equal quantities have no documented secondary sort. Do not rely on the order of tied rows.
Important Limits Before Acting
| Question | What this table proves | Where to verify |
|---|---|---|
| What sold most? | Which five stored item names have the highest summed line quantity in this period. | Detailed Sales or Item report with the same dates. |
| How much stock remains? | Nothing; Qty is sold quantity. | Inventory item list, stock report or stock log. |
| Which item made most profit? | Nothing; Amount is line value and no cost is deducted. | Item report or profit analysis with reliable cost prices. |
| How many bills contained the item? | Nothing; repeated quantities on one bill are added like quantities across several bills. | Detailed Sales report and bill records. |
| Is the money fully collected? | Nothing; sale-line amount is not a tender or settlement status. | Payment report, pending payments and customer dues. |
| Is one catalog item represented? | Not always; grouping uses the stored name rather than SKU or item id. | Item history and sale-line detail. |
Names, Edits and Returns
- Two distinct catalog items sold under exactly the same stored name can appear as one group because the aggregation key is item_name.
- The same item can appear in separate groups if its stored sale-line name differs across transactions, for example after a rename or spelling change.
- Edited and partially returned sale records are included in the accepted process set. Verify the final bill and return history when a quantity or amount looks surprising.
- The table does not show SKU, barcode, variant, unit, discount, tax, cost or return quantity as separate columns.
- Keep catalog names consistent, but do not rename products only to make this dashboard grouping look cleaner; preserve accurate transaction history and use detailed reports for audit work.
Troubleshoot Best Selling Products
| Symptom | Likely cause | Action |
|---|---|---|
| No sales in this period | No matching sale lines exist after branch, date and possible session filtering. | Confirm the period and branch, then open Sales History with the same context. |
| A recent sale is missing | The wrong period, branch or time-zone boundary is active, or session filtering narrowed the range. | Check the selected button, branch, user time zone and role's Sales Session Filter. |
| An unexpected item ranks first | Its summed quantity is higher even if its amount is lower. | Compare line quantities in the detailed Sales report. |
| One name appears twice | Stored sale-line names differ, often after a rename or spacing change. | Inspect the matching bills and current item record. |
| Different products appear combined | They share the same stored item name. | Use SKU/barcode and item history to separate the records outside this table. |
| Rows show zero or implausible values | Sample, reset or migrated sale-line data may be inconsistent. | Do not use the row operationally until the source bills and item report agree. |
| Amount differs from cash received | Amount is summed sale-line value, not payment-method settlement. | Use Payment Reports and Pending Payments. |
| Only five products appear | The API deliberately limits the ranking to five groups. | Open the Item or detailed Sales report for the complete list. |