Traceability is the landing page of the Traceability group in SolaStock. It shows, at a glance, how many lots are close to their expiry date (or already past it) and links to the three traceability screens: Lots / Batches, Serial Numbers and Recalls, plus the expiry reports.
Use it as your daily starting point if you sell perishable, regulated or serial-numbered goods: food, medicine, cosmetics, chemicals, electronics. Typical users are the inventory manager, the quality or compliance officer, and the warehouse supervisor who handles expiring stock.
Traceability is read-mostly. Lots and serial numbers are created by inbound documents (goods receipts, opening stock, stock-in adjustments) for items that are lot- or serial-tracked. The traceability screens list, explain and change the availability status of what was captured; they never move stock themselves.
Where to find it
| Sidebar | Traceability → Traceability (first item of the Traceability group) |
| URL | /inventory/traceability |
| Breadcrumb | Traceability |
| Plan | The Traceability group is part of the batch and expiry tracking plan feature. Lots, serial numbers, recalls and expiry are one feature: if your plan doesn't include it, the whole group is hidden. |
| Permission | View lots, serials, expiry & traceability (inventory.view_traceability) |
The other items in the same sidebar group:
| Sidebar item | URL | Guide |
|---|---|---|
| Lots / Batches | /inventory/traceability/lots |
Lots / Batches |
| Serial Numbers | /inventory/traceability/serials |
Serial Numbers |
| Recalls | /inventory/recalls |
Recalls |
Before you start: turn on tracking for the item
Traceability only has data for items that are set up for it. On the item form (Catalog → Items → New item or Edit item), under Inventory setup → Tracking, tick:
| Checkbox | What it does |
|---|---|
| Lot | Every inbound line of this item asks for a Lot / batch code. Outbound lines (shipments, transfers, stock-out adjustments) ask you to pick the lot. |
| Serial | Every inbound line asks for one serial number per unit; outbound lines ask you to pick the units. |
| Expiry | Every lot of this item needs an Expiry date when it is captured. Only available when Lot is ticked ("Expiry requires lot tracking."). |
Service items cannot be tracked ("Service items don't track stock."). Stock received before you turned tracking on has no lot or serial, so it never appears on these screens. See Items.
Screen tour
The page has three parts, top to bottom.
1. Header
The title Traceability. A yellow Sample data badge appears next to it if no organization is selected in the top bar; pick your organization to see live data.
2. Expiry-risk bar
A highlighted bar summarises lots that are close to expiry:
| Part | Example | Meaning |
|---|---|---|
| Expiring count | "3 lots expire within 90 days", "One lot expires within 90 days", "No lots expire within 90 days" | Lots with an expiry date on or before today + 90 days that are not Consumed. This count includes lots that are already past their date. |
| Expired badge | "2 lots are already expired" (yellow badge) | Of those, how many are already past their expiry date. Only shown when there is at least one. |
| View lots (right side) | Button | Opens Lots / Batches. |
How the numbers are worked out:
- The window is always 90 days on this bar, whatever you set as Expiry warning days in Settings. The expiry reports use your Expiry warning days setting instead.
- At most 200 lots are counted.
- If you are limited to certain warehouses, only lots that currently have stock in your warehouses are counted.
- A lot past its expiry date counts as expired even if nobody has changed its status to Expired yet.
View lots opens the full lot list (newest lots first). It does not filter the list to expiring lots. To see the expiring lots sorted by date, open the Expiry Report card below and run Expiry Risk.
3. Cards
Four clickable cards:
| Card | Hint on the card | Opens |
|---|---|---|
| Lots / Batches | Batch tracking, expiry, and where-used history | Lots / Batches |
| Serial Numbers | Per-unit lifecycle and movement history | Serial Numbers |
| Recalls | Recall cases and affected stock | Recalls |
| Expiry Report | Expiry-risk and inventory-aging reports | Reports (the Reports page, where you pick Expiry Risk, Lot / Expiry or Stock Aging) |
Empty and error states
| What you see | Why | What to do |
|---|---|---|
| A grey loading skeleton | The summary is loading. | Wait a moment. |
| "The traceability data could not be loaded." with Try again | The summary request failed (connection, session or server). | Click Try again. If you lack the traceability permission you will not see the menu item at all. |
| "No lots expire within 90 days" | No lot is at risk, or no item is expiry-tracked yet. | Nothing to do. |
Everyday tasks from the hub
Check what is about to expire
- Open Traceability → Traceability.
- Read the expiry-risk bar. If it shows any lots, click the Expiry Report card.
- On Reports, click Expiry Risk. It lists each lot with Expiry date, Days to expiry (negative = already expired), Status and On-hand quantity, soonest first. The window is your Expiry warning days setting.
- Click a lot code in the report (or search it on Lots / Batches) to see where the stock is.
Take an expiring lot out of circulation
- From the hub, open Lots / Batches and search the lot code.
- Open the lot and click Quarantine, then confirm. The lot can no longer be picked for sales, reservations or transfers without an override. See Lots / Batches.
Start a recall
- Click the Recalls card (or Traceability → Recalls).
- Click New recall. See Recalls for the full procedure.
How traceability blocks stock
The status of a lot or serial number controls whether it can leave the warehouse. These rules apply everywhere stock goes out (shipments, transfers, stock-out adjustments):
| Status | Can it be shipped or moved out? |
|---|---|
| Lot Active | Yes. |
| Lot Expired (or past its expiry date) | Only with Ship expired lots (override). Without it: "Lot … for item … is expired and cannot be shipped without an override." |
| Lot Quarantined or Recalled | Only with Ship quarantined / recalled lots (override). Without it: "Lot … is quarantined and cannot be shipped without an override." |
| Serial Available or Returned | Yes. |
| Serial Quarantined, Damaged, Retired, Shipped | No. The unit is not offered in the serial picker and posting refuses it. |
On a draft shipment, the Override controls panel has two checkboxes, Allow shipping expired lots and Allow shipping quarantined/recalled lots. They are greyed out with (no permission) unless your role holds the matching override permission. Ticking a box is only honoured if you really hold the permission.
When you pick a lot on an outbound line, blocked lots are shown greyed out in the list with their status, for example "LN-2409-17 · 180 available · expires 2026-11-30 (Recalled)".
Permissions
| Permission (as listed in Settings → Custom Roles) | Key | Allows |
|---|---|---|
| View lots, serials, expiry & traceability | inventory.view_traceability |
See the Traceability group, the hub, lots, serials and recalls. |
| Create / edit lots & lot status | inventory.manage_lots |
Lot status buttons (Quarantine, Mark active, Mark consumed). |
| Create / edit serials & serial status | inventory.manage_serials |
Serial status buttons (Quarantine, Mark damaged, Retire). |
| Create / activate / close recall cases | inventory.manage_recalls |
New recall, Activate recall, Close recall. |
| Ship quarantined / recalled lots (override) | inventory.override_quarantine |
Tick Allow shipping quarantined/recalled lots on a shipment. |
| Ship expired lots (override) | inventory.override_expired_lot |
Tick Allow shipping expired lots on a shipment. |
Who has them by default:
| Role | View | Lot / serial status | Recalls | Overrides |
|---|---|---|---|---|
| Organization owner, SolaStock Administrator | Yes | Yes | Yes | Yes |
| Organization Manager or Member with no SolaStock role (treated as Inventory Manager) | Yes | Yes | Yes | Yes |
| Organization Viewer with no SolaStock role, Warehouse User (legacy) | Yes | No | No | No |
| Organization Accountant with no SolaStock role | No | No | No | No |
| Warehouse-scoped roles from Team access: Inventory Manager, Warehouse Manager, Warehouse Operator, Inventory Viewer | No | No | No | No |
| Custom role | Whatever is ticked |
Everyone except the owner and SolaStock Administrator sees only the lots and serial numbers held in the warehouses assigned to them in Team access.
Worked examples
Example 1: Monday expiry check (quick)
Sara Khan is the quality officer at Al Noor Trading LLC, which imports baby formula into Dubai Main.
- On Monday she opens Traceability. The bar says "4 lots expire within 90 days" and the badge "One lot is already expired".
- She clicks Expiry Report, then Expiry Risk on the Reports page. The report shows 4 rows; lot
LN-2406-02has Days to expiry −3 and On-hand quantity 24.0000. - She opens
LN-2406-02on Lots / Batches and clicks Quarantine → Quarantine. The notice reads "Lot marked Quarantined." - The next time a picker tries to ship formula from Dubai Main, the 24 tins in
LN-2406-02are greyed out in the lot list.
Example 2: supplier contamination notice (full scenario)
Omar Haddad, SolaStock Administrator at Al Noor Trading LLC, receives a supplier notice that lot LN-2409-17 of Baby Formula 800 g (SKU BF-800) may be contaminated.
- Find the lot. Traceability → Lots / Batches, search
LN-2409-17, open it. Summary: Received quantity 600.0000, On-hand quantity 180.0000, Reserved quantity 40.0000, Issued / shipped quantity 420.0000. - See where it went. The Shipments / returns tab lists 7 shipments; the Locations tab shows all 180 in Dubai Main bin
A-03-2. - Open a recall. Traceability → Recalls → New recall: Recall number
RC-2026-004, ItemBF-800, Scope Lot, Reason Supplier contamination notice, one lineLN-2409-17with Disposition Return. Save draft → "Recall case created." - Review the impact. The recall shows Affected on-hand quantity 180.0000, Affected reserved quantity 40.0000, Affected shipped quantity 420.0000, and the Customers column lists the 5 customers who received it. Omar clicks Export CSV and sends
RC-2026-004-impact.csvto the sales team. - Activate. Activate recall → Activate. The lot becomes Recalled; the 40 reserved tins can no longer be picked.
- Afterwards. The stock goes back to the supplier through a stock-out adjustment. Customer credits are raised in SolaCount. Omar clicks Close recall. The lot stays Recalled for history.
Back on the hub, LN-2409-17 no longer counts in the expiring figure once it reaches zero stock and is marked Consumed.
How it connects
| Screen / app | Connection |
|---|---|
| Items | Tracking (Lot, Serial, Expiry) is set per item. |
| Purchasing, Opening stock, Adjustments | Inbound documents capture lot codes, expiry dates and serial numbers. |
| Sales & fulfilment, Transfers | Outbound documents pick lots and serials and are blocked by Expired / Quarantined / Recalled status. |
| Reports | Lot / Expiry, Expiry Risk, Lot Trace Report, Serial Report, Serial Lifecycle, Recall Impact. |
| Settings | Picking policy (FEFO suggests the earliest-expiring lot first) and Expiry warning days (default window of the expiry reports). |
| SolaCount | Traceability itself posts nothing to accounting. Only the stock documents (receipts, shipments, adjustments) create journals. |
Tips & common problems
| Problem | Cause | Fix |
|---|---|---|
| The Traceability group is missing from the sidebar | Your plan doesn't include batch and expiry tracking, or your role lacks the view permission. | Ask the owner to check the plan in the Portal, or to grant View lots, serials, expiry & traceability. |
| The bar says no lots expire, but I know some do | The item is not expiry-tracked, the lot has no expiry date, the lot is Consumed, or the stock is in a warehouse you are not assigned to. | Check the item's tracking and your warehouses in Team access. |
| View lots doesn't show only expiring lots | The button opens the full lot list. | Use the Expiry Risk report for an expiry-sorted list. |
| The 90-day figure differs from the Expiry Risk report | The bar always uses 90 days; the report uses Expiry warning days from Settings. | Set Expiry warning days to 90 if you want them to match. |
| "Sample data" badge | No organization is selected. | Pick your organization in the top bar. |