Admin: Sales Reports
The dashboard 7-day revenue chart
The Dashboard (/admin) includes a mini bar chart titled "Revenue — last 7 days": one bar per day with the rupee total above it and the date below. It's a heartbeat view — spot a slow day at a glance, then open Sales Reports for the detail.
The four report tables
/admin/reports renders four tables:
| Table | Columns | What it tells you |
|---|---|---|
| Daily Sales (last 30 days) | Date · Orders · Revenue | One row per calendar day with the order count and full revenue (item totals plus delivery and handling fees). Your trend line and week-over-week comparison source. |
| Sales by Category | Category · Units · Revenue | Item sales rolled up to top-level categories, sorted by revenue. Shows which departments carry the store — useful when planning banners or new subcategories. |
| Sales by Seller | Seller · Units · Revenue | Item sales per store, with platform-owned items grouped as "QuickKart (platform)". Sorted by revenue — your view of which marketplace sellers perform. |
| Top Products | Product · Units · Revenue | The 15 best-selling products by units sold. Watch it for stock planning — pair with the Dashboard's low-stock counter. |
How revenue is computed
- Cancelled orders are always excluded — from every report table, the 7-day chart, and the Dashboard revenue cards. Cancelling an order removes it from revenue retroactively.
- Daily Sales uses order grand totals (items + delivery fee + handling fee), so it reconciles with what customers actually paid.
- The category / seller / top-product tables use item-level revenue (quantity × the price at the moment of purchase). Order items are snapshots, so later price changes never rewrite history. Note this means fee income appears only in Daily Sales.
- Everything is paise-accurate: all money is stored and summed as integer paise (₹1 = 100 paise) and only formatted as rupees for display — no floating-point rounding errors, totals always add up exactly.
- Payment status does not affect these reports — a COD order counts from the moment it is placed, not when the cash arrives.