Skip to main content

Review inventory and discrepancies

The Inventory tab is where you find out whether SKU.io and your 3PL agree about what is in the building.

It is a mirror, not a controller: SKU.io copies what VeraCore reports and compares it against its own stock. Nothing here changes anything at the warehouse. If the numbers disagree, the fix is either a mapping, a conversation with your 3PL, or a stock take — never editing this page.

If the quantity columns do not mean what you expect, read The inventory model first. VeraCore's available is not SKU.io's available, and that difference is behind most surprises.

Refresh the mirror

Click Refresh From VeraCore. You get Inventory sync queued — track its progress in the job tray, and the job runs under Sync VeraCore Inventory:. The page reloads itself when the job finishes.

While one is already running the button is disabled: An inventory sync is already running — track its progress in the job tray.

Reload re-reads what SKU.io already holds without calling VeraCore. Use it when you just want the page refreshed.

The subtitle under the heading tells you how current the mirror is — VeraCore Offer balances mirrored into SKU.io. Last synced: …, or Not synced yet. if it has never run.

Deal with unmapped facilities first

If any VeraCore facility has no SKU.io warehouse, a warning sits above everything else:

{n} VeraCore facilities are not mapped to a SKU.io warehouse. Balances from them are mirrored but cannot be compared against SKU.io stock.

The Map Facilities button next to it takes you straight to Warehouse Mappings.

Clear this before you trust anything below it. Stock from an unmapped facility is mirrored but sits outside the comparison entirely, so the discrepancy count is answering a narrower question than it looks like it is.

Read the numbers

Two rows of cards sit above the table.

The segment cards are clickable — each one switches the table to that segment and takes an outline to show it is active:

CardSub-labelMeans
Mirrored Offers{n} multi-product offersEvery balance row SKU.io holds
DiscrepanciesVeraCore available vs SKU.io stockMapped offers where the two disagree — turns amber above zero
SKU.io OnlyNever reported by VeraCoreProducts you stock that VeraCore has never reported
VeraCore OnlyNo SKU.io product mappedVeraCore balances with nowhere to land — turns red above zero

The balance cards total the mirrored stock itself: On Hand (with the row count beneath), Available (Sellable per VeraCore), Committed (Allocated to open orders), and Incoming (with a count of aggregate-only rows).

The Discrepancies count deliberately stays on screen when it is zero. Zero is an answer — nothing is out of balance — and hiding it would make "in balance" look identical to "not loaded yet".

The Warehouse selector at the top scopes everything — cards, segments, table — to one building. It lists only warehouses that are actually mapped, because an unmapped facility cannot scope a comparison. Leave it on All Warehouses for the overall picture.

Whichever segment you are on is written into the URL as ?tab=, so a link to a specific segment can be shared or bookmarked and survives a refresh.

The four segments

All Inventory

Every mirrored balance row, one per offer per facility.

Item, Title, SKU.io Product, Warehouse, UoM, then On Hand, Available, Committed and Incoming, then Source, Last Synced and Updated. Rows with no mapping show an amber Unmapped chip instead of a SKU; a facility with no warehouse shows Not mapped under its name.

Source is the column people miss:

ChipMeans
Per-facilityVeraCore reported this balance against a specific facility
AggregateVeraCore reported no per-facility split, so the aggregate balance was mirrored against the default facility

An Aggregate row is not wrong, but it is less precise — the quantity is real, the building it is attributed to is an assumption. See the aggregate fallback for when this happens and what it costs you.

Rows carrying the purple kit icon are multi-product offers, excluded from discrepancies and stock takes. The tooltip repeats the reason on hover.

The View Ledger action on each row opens the inventory ledger filtered to that item. Search covers item, title, and facility; the advanced filters go further — quantities, flags, dates, facility.

Discrepancies

The one that matters. Covered in its own section below.

SKU.io Only

Products you stock that VeraCore has never reported a balance for.

The alert on the tab states the ambiguity plainly: either the offer does not exist in VeraCore, or it exists but was never mapped. Both look identical from here, which is why the alert links to the Products tab — check there before concluding stock is missing.

Columns are SKU, Name, Type, Unit Cost, and SKU.io Qty — highlighted amber when it is above zero, because a product you believe you hold and your 3PL has never mentioned is worth a look. Export CSV takes the current filtered list.

An empty tab here reads Nothing unaccounted for — every SKU.io product with stock has a matching VeraCore balance.

VeraCore Only

The mirror image, and the more urgent one: VeraCore holds a balance and no SKU.io product is mapped to it, so that stock is invisible to SKU.io.

Each row shows the item, title, facility, the four quantities, and a status of either Needs Review (the matcher found candidates but could not choose) or Unmapped (it found nothing). Map Products in the header goes to the Products tab; the row action goes there pre-filtered to that item.

Until they are mapped these offers are excluded from discrepancies and stock takes, which is the point of the tab: they are the stock the discrepancy report cannot see.

Reading a discrepancy

A discrepancy is defined precisely, and the page says so at the top:

A discrepancy is VeraCore available minus SKU.io on hand for a mapped offer. A negative number means VeraCore holds less than SKU.io thinks — the overselling direction. Multi-product offers are excluded: their balance is a kit roll-up, not a countable position.

So:

  • Negative — VeraCore has less than SKU.io believes. This is the dangerous direction: SKU.io will keep selling stock that is not in the building.
  • Positive — VeraCore has more. Less urgent, but it means you are under-selling, and it often points at a receipt SKU.io never recorded.

The header chip totals the Impact in currency: every row's discrepancy multiplied by its unit cost. Use it to decide whether the list is worth an afternoon.

Each row gives you SKU (linked to the product, with its name beneath), VeraCore Item (linked to that item on the Products tab), Warehouse (linked, or an amber Unmapped, with the VeraCore facility beneath), Unit Cost, In Kits, SKU.io Qty, VeraCore Available, the signed Discrepancy, its Value, and Last Synced.

The Value column is absolute cost exposure and is never negative — the colour comes from the signed discrepancy instead, so a shortfall reads red rather than green.

Export CSV produces the full list with every column, for sending to your 3PL or working through in a spreadsheet.

Before you assume the warehouse is wrong

Most discrepancies are not counting errors. Check these first:

CheckWhy
Is the mirror current?A discrepancy against yesterday's snapshot is a discrepancy against yesterday. Refresh first
Is the offer mapped to the right product?A wrong mapping produces a large, confident, meaningless difference
Is it a kit?Multi-product offers are excluded — if you mapped one anyway, its numbers are a roll-up
Is the row Aggregate?The quantity is real but the warehouse attribution is assumed
Are there unmapped facilities?Stock in one is mirrored but not compared
Is there an open transfer or in-flight receipt?The two systems can legitimately disagree mid-movement

When those are all clean and the difference persists, it is real. Reconcile it with a stock take.

When it is empty: No discrepancies found — SKU.io and VeraCore agree on every mapped offer, or inventory has not been synced yet. That second clause is not filler. Check the last-synced timestamp before celebrating.

How often to do this

Enable the inventory capability on Settings → Sync and the mirror refreshes on its own schedule. The button here is for when you do not want to wait — before a stock take, after your 3PL tells you they have adjusted something, or when a number looks wrong.

Reviewing discrepancies is worth a regular slot regardless of how the sync runs. A small difference caught weekly is a mapping fix; the same difference found after a quarter is an inventory investigation.

Next steps

Last verified: