05. Inventory Reports

Inventory reporting brings your stock data together in one place: what you hold now, how it has moved, what is reserved against orders, what needs reordering, how fast it sells, and how long it has been sitting. Each view is a tab you can filter, sort, group, save, and export.

After reading this article you will be able to open Inventory reporting, recognise each report tab and the key columns it shows, use the special filters and the bundle toggle, understand how the headline figures are calculated, and save your own custom inventory reports.


Where to find inventory reporting

Open Reporting > Inventory from the main menu. The page opens on the Stock Movement tab by default; switch tabs along the top to move between reports. Access is controlled by the Inventory reporting permission, so the menu item and page only appear for users whose role grants it.

The report tabs, in the order they appear, are:

  • Stock Movement
  • Stock on Hand
  • Stock Allocations
  • Reorder Inventory
  • Inventory Turnover
  • Inventory Aging

Any custom reports you save appear as extra tabs after these six.

Every tab shares the same controls: a filters panel, a grouping selector, column show/hide, sorting, Save Report, and Export Report. See Using the report controls for how filtering, grouping, and exporting work across all reports.


Stock Movement

Use Stock Movement to see how stock changed over a period, line by line, for each product and location. It is the report to reach for when finance or operations need to explain why a quantity or value moved.

It opens filtered to the last 30 days (by record date) and to active products.

Each row covers one product at one location for a movement record and shows:

  • Product, Sku, State, Brand, Product Type, Location, and Date.
  • Opening Balance and Opening Value — the position at the start of the record.
  • Movement in and out, split by type: Shipped Quantity / Shipments, Received Quantity / Receipt Value, Return Quantity / Returns (customer returns), Supplier Returned Quantity / Returns (supplier returns), Adjustment Quantity / Adjustments, Manufactured Quantity / Manufacturing, and Transfer Quantity / Transfer Value.
  • Closing Balance and Closing Value — the position at the end of the record.

When a date range is applied, the report footer summarises the period: opening figures are taken from the first record per product/location, closing figures from the last record per product/location, and the movement columns in between are summed.


Stock on Hand

Use Stock on Hand to see current inventory by product variant. It reflects the live stock position, not a historical period, and opens filtered to active products.

Each row shows the product identifiers — Product, Sku, Barcode, State, Brand, Product Type, Supplier, Updated At — followed by the current pricing and stock figures:

  • Moving Average Cost, Purchase Price, Wholesale Price, Retail Price, Retail Compare Price, Wholesale Compare Price, and Total Cost (the current stock value for the variant).
  • Total Quantity, Total Allocated Quantity, Total Available Quantity (quantity left after allocations), Total Incoming Quantity, Total Buffer Quantity, and On Backorder Quantity.

When your stock spans multiple locations, Stock on Hand adds a grouped column block per location — showing that location’s quantity, allocated, available, incoming, buffer, and alert level figures — so you can compare the same variant across sites.


Stock Allocations

Use Stock Allocations to see which orders are reserving your stock and whether each variant’s demand is being met. It opens with bundles excluded so each row is a stockable variant rather than a parent bundle.

Each row shows Product, Sku, Barcode, Brand, Product Type, Supplier, Updated At, an Inventory Status badge, Requested Allocations, and the quantity columns Total Allocated Quantity, On Backorder Quantity, Total Quantity, Total Available Quantity, Total Incoming Quantity, and Total Buffer Quantity.

The Inventory Status of a variant is one of:

  • Empty — nothing is requested against it.
  • Full — the allocated quantity meets or exceeds the requested quantity.
  • Partial — some, but not all, of the requested quantity is allocated.

Open the Requested Allocations cell (it shows a count and the tooltip Check Allocations details here) to inspect the individual orders requesting that variant.

Use the Bundles filter to switch between Excluded Bundles (the default, showing component variants) and Included Bundles (showing the parent bundle). The filter answers the question “report rows on bundle items instead of their parent bundle?”


Reorder Inventory

Use Reorder Inventory to find variants that are running low and act on them. It opens filtered to a last 30 days sales window so the sold-quantity figure has data to draw on.

Each row carries a selection checkbox plus Product, Sku, Barcode, State, Brand, Product Type, Supplier, Total Quantity, Total Buffer Quantity, Total Allocated Quantity, On Backorder Quantity, Total Available Quantity, Total Incoming Quantity, and Total Sold Quantity.

Two filters are specific to this report:

  • Stock Level — narrows to one of:
  • Low stock ( Available < Min Quantity ) — available stock at or below the variant’s minimum (alert) level.
  • Low stock ( Available + Incoming < Min Quantity ) — still short once incoming stock is counted.
  • Within Threshold ( Min Quantity <= Available <= Max Quantity ) — sitting inside the configured min/max band.
  • Sales date — sets the window used to calculate Total Sold Quantity. Because sold quantity depends on this range, set it before relying on that column.

Select one or more rows and use the Reorder Actions button to Create Purchase Order or Create new transfer from your selection.

The “minimum” used by the stock-level filters is each variant’s alert level set on its location stock record; the “maximum” is the configured max quantity. Variants with no alert level set are not matched by the low-stock filters.

See Create purchase orders or transfers from Reorder Inventory for the full action flow.


Inventory Turnover

Use Inventory Turnover to judge how quickly stock is selling through and to spot slow movers. It opens filtered to the last year by record date.

Each row shows Product, Sku, Barcode, Brand, Product Type, Last movement, State, Opening Balance, Closing Balance, In Quantity, Out Quantity, Sell-Through, COGS, Daily SOH, and Turnover.

Qoblex builds these figures from stock-movement records in the selected period:

  • In Quantity and Out Quantity are the summed inbound and outbound movement quantities.
  • Opening Balance is taken from the earliest movement date in the period; Closing Balance from the latest.
  • COGS is the summed cost of goods sold across the period.
  • Daily SOH is the average of each day’s total closing value across the period.
  • Turnover = COGS ÷ Daily SOH, or 0 when Daily SOH is 0.
  • Sell-Through = Out Quantity ÷ (In Quantity + Opening Balance), or 0 when that denominator is 0.
  • Last movement is the most recent movement date in the period.

Inventory Aging

Use Inventory Aging to see how long your on-hand stock has been sitting and to act on stock that has aged. Each row carries a selection checkbox and a Bulk Actions menu.

Each row shows Product, Sku, Barcode, Brand, Product Type, Last movement, State, On Hand Qty, On hand value, Avg Age (days), Oldest Age (days), and a set of aging buckets — both a quantity (Qty 0-30 through Qty +365) and a value (Value 0-30 through Value +365) for the ranges 0-30, 31-60, 61-90, 91-120, 121-150, 151-180, 181-270, 271-365, and over 365 days.

The aging figures are calculated as of today, using only movement records that still have stock remaining:

  • On Hand Qty is the sum of remaining quantities.
  • A record’s on-hand value is its Closing Value ÷ Closing Balance × remaining quantity (0 when closing balance is not above 0); On hand value for the row sums those.
  • Oldest Age (days) is the greatest age among the variant’s remaining records.
  • Avg Age (days) is the quantity-weighted average age (sum of age × remaining quantity ÷ total on-hand quantity), or 0 when on-hand quantity is 0.
  • Each Qty bucket sums remaining quantity in that age band; each Value bucket sums the on-hand value in the same band.

Select rows and open Bulk Actions to Apply bulk discounts or Apply Mac Adjustment to the chosen variants.

See Apply Inventory Aging bulk actions for the full action flow.


Save a custom inventory report

Once you have a tab filtered, sorted, grouped, and with the columns you want shown, click Save Report, give it a name, and save. The report name is required.

The saved report appears as its own tab after the six base reports, opening with the same setup. Reorder custom reports keep their Reorder Actions button, and saved Stock on Hand reports keep their per-location columns.

Saving a custom report needs an eligible subscription plan. If your plan does not include custom reports, the save dialog shows an eligibility notice and the form stays disabled.


Troubleshooting

The Inventory menu item or page does not appear
Inventory reporting is permission-controlled. Ask an administrator to grant your role the Inventory reporting permission; the menu entry and page only show for users who have it.
A report opens empty
Each report opens with default filters — Stock Movement and Reorder Inventory to a recent date window, Stock Movement and Stock on Hand to active products only, Stock Allocations to bundles excluded. Widen or clear the filters from the filters panel to see more rows.
Total Sold Quantity on Reorder Inventory looks wrong or empty
Sold quantity is calculated from the Sales date range. Set that filter to the period you want before reading the column; with no sales date applied it has no window to total over.
A low-stock filter is not catching a variant I expect
The low-stock filters compare available stock against the variant’s alert level on its location stock record. A variant with no alert level set is not matched. Check the variant’s stock settings for that location.
Stock Allocations never shows the “On Hold” status
The status filter lists On Hold as an option, but the allocation report only assigns Empty, Full, or Partial to rows today. Filtering by On Hold will return no rows.
Export did not download
Exports run in the background; Qoblex emails a download link when the file is ready, which can take several minutes for large reports. Some reports ask you to confirm a date range in the export dialog before they will run.
Save Report is greyed out
Saving custom reports requires an eligible subscription plan. If the dialog shows an eligibility notice, upgrade your plan or contact support to enable custom reports.
Was this article helpful?

Related Articles