On-Hand Inventory
Overview
On-Hand Inventory is your live view of stock — what you have, where it is, what it cost, and whether it is running low. The page has three drill-down levels: a company-wide item summary, a per-location breakdown for each item, and the individual costing layers that make up the stock at each location.
The page is found at Inventory Management → On-Hand Inventory.
Level 1 — Company-Wide Item Summary
The main page opens with four summary cards at the top, then a list of all items that have inventory records.
Summary Cards
| Card | Description |
|---|---|
| Total unique items | Number of distinct items that have at least one inventory record |
| Locations with stock | Number of locations holding a non-zero quantity |
| Records with stock | Total number of item-location records with positive quantity |
| Zero stock records | Item-location records that exist but have reached zero (highlighted in orange as a warning) |
Item List
| Column | Description |
|---|---|
| Item code | The item's unique identifier. Click the column header to sort. |
| Item name | The item's display name |
| Category | The category this item belongs to |
| Total quantity | The total quantity across all locations, shown in the item's preferred display unit (e.g. 770 L, 1500 pcs) |
Toolbar (main list)
| Button | Description |
|---|---|
| View all layers | Opens the All costing layers page for the selected item, showing every cost layer across all locations |
| Filter | Open the filter panel |
| Refresh | Reload the list |
Filtering
Select the Filter icon to open the filter panel:
| Filter | Description |
|---|---|
| Item | Search by item name or item code |
| Category | Show only items in a specific category |
| Location | Show only items that have stock at a specific location |
Level 2 — Per-Location Breakdown
Select any item row to drill into its per-location breakdown. The page header shows the item number and name, and the table lists every location that holds (or has held) stock for this item.
| Column | Description |
|---|---|
| Location | The location name |
| Location code | The location's code |
| Quantity | How much of this item is at this location |
| Unit | The unit of measure for the displayed quantity |
| Minimum threshold | The reorder alert threshold for this item at this location (- if not set) |
| Threshold unit | The unit of measure for the threshold value |
Toolbar (item level)
These toolbar buttons become active when a location row is selected:
| Button | Description |
|---|---|
| Create adjustment | Correct the stock quantity for this item at the selected location |
| Edit threshold | Set or update the minimum stock threshold for this item at this location |
| View all layers | Open the full-page All costing layers view for this item across all locations |
Level 3 — Costing Layers Panel
Select a location row to open the Costing layers panel on the right side of the page. This panel shows the individual stock batches that make up the quantity at that location.
Panel Summary
| Field | Description |
|---|---|
| Total layers | How many distinct cost batches exist at this location for this item |
| Total quantity | The total stock at this location, summed across all layers |
| Total value | The total monetary value of all layers at this location |
Layer Table
Each row represents one stock batch received at a specific point in time:
| Column | Description |
|---|---|
| Purchase date | The date this batch of stock was received |
| Quantity | How much stock remains in this layer |
| Unit cost | The cost per unit for this batch (e.g. 8.00 / L) |
| Layer value | Quantity × unit cost for this batch |
Every purchase receipt creates a new cost layer with the price paid at that time. How these layers are consumed when stock leaves depends on the item's Inventory Model Group:
| Costing method | How layers are consumed on outflow |
|---|---|
| FIFO | Oldest layers consumed first — the earliest batch is always used next |
| LIFO | Newest layers consumed first — the most recent purchase is used next |
| Weighted Average | No layer-by-layer tracking — all stock is valued at the item's current moving average price |
| Standard Cost | All layers carry the fixed standard cost regardless of purchase price |
The costing method is configured per item in Item Model Groups and assigned on the item record in Items.
All Costing Layers — Full Page
Select View all layers to open the full-page view showing every cost layer for this item across all locations in the company.
Summary
| Field | Description |
|---|---|
| Total layers | Total distinct batches company-wide for this item |
| Total quantity | Total stock held across all locations |
| Total value | Total monetary value across all locations |
Below the summary, layers are grouped by location. Each location section shows the same table (Purchase date, Quantity, Unit cost, Layer value) for its own batches.
This view is useful for understanding the full cost profile of an item — for example, to see if older, cheaper stock exists at one location while more expensive recent stock is at another, which matters for purchasing decisions under FIFO or LIFO costing.
Creating a Stock Adjustment
A stock adjustment corrects a discrepancy between the system quantity and the actual physical count. It is the right tool for cycle counts, damaged goods write-offs, and opening balance corrections.
- Select an item from the main list.
- Select the location row where the correction is needed.
- Select Create adjustment in the toolbar.
- Fill in the form:
- New quantity — the correct total quantity after the adjustment (not the difference — the system calculates the difference internally).
- Unit of measure — the unit for the new quantity.
- Reason — a description of why the adjustment is being made (e.g. "Cycle count findings", "Damaged stock write-off").
- Save.
The system calculates the change automatically (positive if the new quantity is higher than current, negative if lower) and creates an Adjustment transaction record visible in Transactions.
Adjustments are permanent and audited. Every adjustment creates an immutable transaction record. If you enter the wrong new quantity, you will need to create another adjustment to correct it.
Al Baraka's team physically counted 730 L of Perfumers Alcohol at General Storage, but the system shows 750 L. They create an adjustment:
- New quantity: 730 L
- Reason: Cycle count 7/21/2026 — evaporation loss
The system deducts 20 L from the General Storage balance and records an Adjustment transaction for full traceability.
Setting a Minimum Threshold
A minimum threshold is the reorder alert level for an item at a specific location. When stock falls below this threshold, the item appears in the Dashboard Stock Alerts panel.
- Select an item from the main list.
- Select the location row where you want to set the threshold.
- Select Edit threshold in the toolbar.
- Enter the minimum threshold quantity and select the unit of measure (must be in the same unit class as the item's inventory unit).
- Save.
To remove a threshold, select Edit threshold and clear the value.
Al Baraka sets a threshold of 1,000 L for Perfumers Alcohol at General Storage. When stock drops to 980 L, the item appears on the Stock Alerts dashboard as a low-stock warning, signalling it is time to raise a purchase order.