Inventory and stock movements reports
Inventory and stock movements reports
Section titled “Inventory and stock movements reports”Two reports cover stock. The Inventory report is a snapshot of what you hold right now. The Stock movements report shows how stock moved over a period. Both are under Analytics. For the date presets, Apply and CSV basics, see Reports overview. For the stock itself, see Inventory overview.
Inventory report
Section titled “Inventory report”Open Analytics, then Inventory report.
The report is live, so it has no date range. The header says “As of” and the time. The filters are Outlets, Categories and Brands. Select Apply after changing them. They apply to all three tabs and to the cards.
| Card | What it means |
|---|---|
| Stock value | “On-hand units at average cost, or supply price when there is no average cost. Stock below zero counts as 0.” If some items have no cost, a line says how many, for example “3 items have no cost”. |
| Retail value | “On-hand units at retail price, excluding tax.” |
| Out of stock | “Active items at zero or below, counted once per outlet.” |
| Dead stock value | “Cost value of stock with no sale in 90 or more days, including items never sold.” This card always uses 90 days, whatever the Dead stock tab is set to. |
Stock on hand
Section titled “Stock on hand”The default tab. Use the Group by list above the table: Product (the default), Variant, Category, Brand or Outlet.
| Column | What it means |
|---|---|
| Product (or the group name) | The name, with SKU and an Inactive tag where it applies. Select it to open the product in a new tab. |
| Category | Shown when you group by product or variant. |
| On hand | Units in stock now. A red Below zero tag marks stock that went negative. |
| Cost value | On-hand units at average cost, or supply price if there’s no average cost. |
| Retail value | On-hand units at retail price, before tax. |
| Margin | The gap between retail and cost value, as a share of retail value. |
| Share of stock value | The row’s cost value as a share of the total. |
The table opens with the highest Cost value first, and ends with a Total row. Stock below zero comes from overselling or from items you don’t track. It counts as zero in the values, and a “Some stock is below zero” notice says how many records are affected.
Running low
Section titled “Running low”Lists products that are out of stock or low at one or more outlets. The Status column reads like “Out at 2 outlets”, “Low at 1 outlet” or “Out at 1, low at 2”. The table opens with the most outlets out first.
- Out means on hand is zero or below.
- Low means the product has a reorder point, and on hand plus stock already on order is at or below it.
Columns: Product, Category, Status, On hand, On order (open purchase orders) and Reorder point. Select the chevron to see each outlet on its own line, with an Out of stock or Low stock tag, its own on-hand (negative numbers show as they are), on order and reorder point. The reorder point shows a dash for an outlet with no rule.
If you can manage purchase orders and your plan includes reorder points, an Open reorder list button takes you to the reorder list. See Reorder list. When nothing qualifies, the tab says “Nothing is out of stock or below its reorder point.”
Dead stock
Section titled “Dead stock”Lists stock that has sat unsold. Use the No sales in list: 30+ days, 60+ days, 90+ days (the default) or 180+ days.
Columns: Product (with an Inactive tag if it applies), Category, On hand, Cost value, Retail value, Last sold and Days since sale. Items that have never sold show “Never”, and sort as the oldest. Only items with stock on hand are listed. When there are none, the tab says “No stock without sales in 90 or more days.” (with the number you chose).
Row limit and export
Section titled “Row limit and export”Each tab holds up to 20,000 rows. Beyond that, a “Showing partial results” notice says “Showing the first 20,000 of” the total items, and suggests narrowing the outlets, categories or brands.
Export CSV saves the tab you’re on, in the same columns, with the “as of” time at the top and a Total row on Stock on hand and Dead stock. The Running low file has one line for each outlet and product, with Outlet, Status, On hand, On order and Reorder point.
Stock movements report
Section titled “Stock movements report”Open Analytics, then Stock movements report. It answers “where did this stock go?” by listing every change to stock and letting you drill from a category down to one movement.
Filters
Section titled “Filters”- Date range: opens on yesterday.
- Group by: Category (the default), Day, Week, Month or Movement type.
- Categories, Brands, Product (type at least two letters, then pick one), Outlets, Staff, Movement type and Reason.
Select Apply after changing a filter.
Reading the table
Section titled “Reading the table”Each row is a group. Select its chevron to open what’s inside it.
- Grouped by Category: category, then product, then SKU, then the single movements.
- Grouped by Day, Week or Month: the period, then the products, then SKUs and movements.
- Grouped by Movement type: the type, then products, then SKUs and movements. For adjustments and stock counts, the reasons come between the type and the products.
The first column is named for the level you’re looking at, such as Category, Product, Period, Movement type or Reason. Rows load 100 at a time. A “Load 100 more” button shows how many are left.
The columns count units, and every figure shows what came in as +, over what went out as −:
| Column | Moves counted |
|---|---|
| Received | Stock received from purchase orders |
| Sold | Register sales |
| Returns | Customer returns (in) and supplier returns (out) |
| Online sold and Online returned | Sales and returns on your online store |
| Transfers | Transfers between outlets, in and out |
| Adjusted | Manual adjustments |
| Counted | Corrections from stock counts |
| In / Out | Everything in, over everything out |
| Net | In minus out |
A Total row sits at the bottom. A dash means nothing moved in that column.
At the SKU level, expand a row to see the individual movements: when, the movement type, the quantity, and under it the outlet, reason, staff member, source and note. These add up to the row above them.
Sorting works on the headings. Day, week and month views read in date order by default. The other views start with the most units moved.
When nothing matches, the report says “No stock moved for these filters.”
Export
Section titled “Export”The Export menu has two files:
- Summary (CSV): one line for each SKU for your current filters, with Category, Product, SKU, a column for each kind of movement (Received, Sold, Customer returns, Supplier returns, Online sold, Online returned, Transfers in, Transfers out, Adjusted in, Adjusted out, Counted in and Counted out), then Units in, Units out and Net. Up to 20,000 SKUs. A line at the top says if there were more. The filters you used are listed at the top of the file.
- Movements (CSV): every single movement of one product, all of its SKUs, newest first. It’s off until you pick a Product and select Apply. Until then the menu item reads “Movements (CSV): pick a product”. Up to 20,000 movements. Columns: Date, Time, Outlet, Product, SKU, Movement type, Direction, Quantity, Reason, Staff, Source and Note. Times are in your store’s time zone.
If an export fails, a message says “Failed to export stock movements”.
If the numbers look wrong
Section titled “If the numbers look wrong”- Stock value looks low. Items with no cost count as zero. The Stock value card tells you how many.
- Stock on hand differs from a product page. The Inventory report floors negative stock at zero in its values. The product page shows the real number.
- An item is missing from Running low. It needs a reorder rule to count as low. It can still be out of stock without one.
- Net on the movements report isn’t your on-hand. It only covers the dates and filters you set.
- A movement is on the wrong day. Movements count on the day they happened.