Product Report
The Product Report is an SKU-first planning view. Its default layout is designed to help an operator decide which products need attention now, not to act as a broad client-wide analytics dashboard.
How demand is counted
Product Report demand is order-based, not shipment-based.
For the selected date range, the report:
- starts from order-line ordered quantity using the order date fallback
ordered_at -> paid_at -> created_at - excludes whole-order cancelled orders
- excludes virtual orders
- subtracts line-level cancelled quantity
- excludes monitoring-only orders
- includes qualifying pre-go-live history sales
- excludes externally fulfilled orders
- keeps merged secondary orders when they remain genuine commercial demand
- keeps refunded and partially refunded orders
- keeps valid unfulfilled orders
- keeps B2B or bulk demand
Last sold at follows that same positive demand cohort.
What it shows
Operational status strip
- Low stock SKUs: warehouse-fulfilled or legacy-unclassified products where on-hand is at or below the product’s low-stock threshold.
- Out of stock SKUs: warehouse-fulfilled or legacy-unclassified products with on-hand at 0.
- SKUs in scope: number of products currently in the report scope after client selection, Active only, and Include non-warehouse products.
The status strip is intentionally small. It exists to help you jump straight to exception SKUs without adding a second client-wide summary dashboard above the table.
Products table
Per SKU, the table includes:
- On hand, Reserved, Available
- Low stock threshold and On-hand vs threshold
- Demand (range): order-based client sales demand in the selected date range.
- Days cover: an estimate of how many days current on-hand stock will last based on selected-range demand.
- Days since last sale
Optional columns remain available from the column picker when you need more context:
- Last sold at
- Demand/day (range)
- Days cover (3m/6m)
- Vs last year
- Vs previous
- Rolling rates
- Seasonal history
- Promotion evidence
- Demand events
Notes:
- Days cover still uses on hand stock, not available stock.
- On-hand vs threshold means
on_hand - low_stock_threshold. Negative means the SKU is below threshold. - The report is intended as a product-level sales-demand planning view, not a shipped-quantity report.
- By default the report excludes products explicitly stored as not requiring warehouse fulfilment, but it keeps legacy products with no canonical fulfilment classification visible.
- Stock-exception views still ignore explicitly non-warehouse products even when Include non-warehouse products is enabled.
Vs last yearandVs previousstay hidden by default so they add context only when explicitly needed.- A historical comparison can now distinguish no comparable history from a real zero baseline. If retained qualifying demand history exists for that comparison boundary, zero remains a real numeric baseline rather than being treated as missing.
Rolling rates,Seasonal history,Promotion evidence, andDemand eventsremain descriptive historical evidence only. They do not forecast demand, imply causality, or change CSV exports in this phase.- Strong promotion evidence means explicit promotion-specific stored fields. Limited evidence means generic discount totals only. Connectors or historical rows without retained discount evidence remain unavailable rather than heuristically inferred.
- SKU and Product values in the table link to the Item view page for drill-down.
- Operational note: non-warehouse classification uses stored canonical fulfilment state. Manual fulfilment-override editing visibility in the Item form is tracked separately from this report.
Run the report
- Go to Operations → Product Report.
- Select:
- Client (only shown if you are not client-locked)
- Start date and End date
- Active only to make active products the authoritative report scope
- Include non-warehouse products when you want explicitly non-warehouse products to appear in the table for demand/history review
- Click Apply.
Tip:
- If you are client-locked (e.g. logged in as a client user or impersonating a client), the report runs for that client.
Export
Export CSV
Use Export CSV to download the current table as CSV, including the current sort/search state and the authoritative report scope.
Columns include on-hand/reserved/available, sold in range, days supply estimates, and sell rate/day.
Compatibility note:
- the CSV keeps the existing Sold (... ) header for compatibility
- that column now means the same order-based client sales demand shown in the live report
- the CSV does not expose a separate shipment-based sold metric
Export Serialised Products
If the client has serialised items, Export Serialised Products downloads a CSV of serial numbers currently in the warehouse, including location and availability.
Notes:
- Only serials with a non-empty serial number are included.
- Quarantine/Returns locations are excluded.