Live Inventory

SKU x location x stock type (16) · grandparent to variant to component · quantity ledger, serial-verified where tagged Live · reconciles 60s Snapshot 29 Jul 09:00 · 52,387u · next 6m 2,847 writes today

Phase 1 · Sales & Cancellations - GATE-1 green, day 6/7 · available vs Shopify 0.04% (limit 0.10) · classifier match 99.7% · unexplained negatives 0 · chain mismatches 0 Gate report →
4,118 balance keys are unverified. Seeded from Shopify levels at MCC, YAS, CCZ, AJM, BAS on 12-07 and not yet covered by a signed count. Cells are underlined. GATE 0 stays amber until each store manager signs. Sign opening balances →
/
Base columns
Thumbnail
Title
Category
Brand
Status
7d sparkline

Location groups shown
HQ_319 · Main WH33,914
MCC · Mirdif3,506
YAS · Yas Mall3,241
AJM · Zahia2,489
CONS · 5 partners646
CCZ · Mall of Emirates1,502
HQ_325 · Ops backroom3,108

Stock-type sub-columns (per location)
STK · DG · DD · QUA · RES · IT→
Add IT← · LIT · RTS · RNI
Add INF · SMP · SQC

Pipeline (i3 new)
IN_PRODUCTION5,565
GIT_INBOUND2,340

Hide all-zero stock-type columns
Persona presets · 5
Ahmad defaultalerts + all locs
Warehouse operatorHQ_319/325
Store managerone store
Replenishment plannercover + pipeline
Financeowned qty + AED

Data-quality views · 8
Negative balance3
Unverified opening4,118
Chain mismatch0
Reserved exceeds stock2
Serial gap12
Overstock > 180d cover64
Aging > 90d311
New this month27

Save current view…
Classic table → Stock health →
Location IN_PRODUCTION and GIT_INBOUND are stock types, not locations. They are held against the destination location and filter from the stock-type row below.
Category Brand Quick
Condition 5 Custody 6 Program 3 Pipeline 2 · i3 new
Days of cover 0 · stockout < 7 · critical 7 to 30 · watch 30 to 90 · healthy 90+ · surplus capital no velocity · cover is NULL, printed as a dash, never 999 28d rolling rate, out-of-stock days excluded from the denominator
SKU / hierarchy Title CatBrandStatus7d HQ_319 · Main WH MCC · Mirdif YAS · Yas Mall AJM · Zahia CONS · 5 partners Pipeline stock types · HQ_319 Roll-up
STKDGDDQUARESIT→ STKDGDDQUARESIT→ STKDGDDQUARESIT→ STKDGDDQUARESIT→ NMSBKSETHFLWTHGINF IN_PRODGIT TOTALDoC
▾ MSR31 Sereen · Women's watch 12 variants 2 combos WatchesMinimalistActive
214▲68-3612 32▼241-23 283--12 172--11 64-2-3 240120 71534
MSR31-07 Rose case · Tan strap WatchesMinimalistActive
41▲22-124 61--11 21---- 3----- 21---1 6024 15328
MSR31-08 Rose case · Black strap WatchesMinimalistActive
382--13 41---1 51---- 2----- -1---1 6024 14341
MSR31-12 Gold case · Ivory strap WatchesMinimalistLow
9▼71--22 11---- 1----- 1----- ------ 4036 946
· BX-MSR31 Giftbox composite = min(comp) recipe v3 WatchesMinimalistDerived
27----- 4----- 3----- 2----- ------ -- 3618
└ recipe MSR31-01 x1 · XTRA-STRAP x1 · BX-CARD x1 Components carry the stock. Limiting component XTRA-STRAP (27 @ HQ_319, 4 @ MCC). A sale of BX-MSR31 posts three recipe_transform rows and zero rows against BX-MSR31, each stamped with recipe_id and recipe_version so a refund six months later reverses the recipe that was actually sold.
▾ FYN Fyne · Jewellery 4 SKUs 1 set JewelleryMinimalistActive
96▲1161247 142--12 112--11 91---1 3221-4 150- 32322
FYN01 Necklace · Silver JewelleryMinimalistActive
52▲63-124 81--11 61---1 5----- 211--2 75- 16719
FYB01 Bracelet · Silver JewelleryMinimalistActive
4421123 61---1 51--1- 41---1 1111-2 75- 15425
· FYS01 Fyne set set = min(FYN01, FYB01) recipe v1 JewelleryMinimalistDerived - 44----- 6----- 5----- 4----- 1----- -- 60-
LBA01 Alyazia handbag · Black & tan HandbagsMinimalistActive
282-135 51--11 41---1 31---- 21-1-2 8040 18331
MIN-2159 Bloom vase · Large unverified HomeMinimalistUnverified
6231-24 112--11 91---1 71---- 1----1 -96 20448
ANQ07B Amiira pendant negative JewelleryMinimalistDrift
0----- -1----- 0----- 0----- ------ -- -1-
PP02 Amber leather parfum 100ml low PerfumeMinimalistLow
6▼9--4813 2----1 1----- 2----- ------ -48 1126
CDW01 Classic daywatch · Steel WatchesMinimalistActive
6341136 92--12 81--11 61---1 42---1 -- 11844
JRY01 Alia ring · Gold vermeil JewelleryMinimalistActive
71▲94--35 102--12 81--11 71---1 21112-3 120- 25727
LLW-BAG-047 Lulwa leather tote · Black HandbagsLulwaActive
142▲18512611 383--24 292--13 242--12 28128546 18060 58138
LLW-PRF-201 Lulwa oud EDP 50ml negative PerfumeLulwaDrift
-31--21 121--1- 81--1- 5----- ------ -24 5311
LLW-JWL-301 Lulwa crescent pendant · Gold out JewelleryLulwaStockout
0----- 0----- 0----- 0----- ------ 20080 280-
MIN-CNL-038 Soy candle · Rose 400g overstock 312d HomeMinimalistDead
1,6408312186 22041-42 1643--31 1202--21 186421- -- 2,245312
MST-CRM-42-BLK Ceramic mug 42cl · Black RES > STK HomeMinimalistConflict
4---92 2---51 61--2- 3----- ------ 160- 1959
LLW-SUN-702 Lulwa aviator sunglasses · Tort pre-order AccessoriesLulwaGIT
0---18- 0---6- 0---4- 0---2- ------ 320240 590-
MSK15-BLK Strap 20mm · Black alias AccessoriesMinimalistRenamed
882--23 121---1 91---1 7----- 31---2 240- 37362
FYN04-S Fyne ear cuff · Sample batch SAMPLE_QC 80h JewelleryMinimalistSLA breach - 0--5-- ------ ------ ------ ------ -- 5-
22 rows Totals · visible rows (derived rows excluded) 2,432418746663 336242-2921 25820--1613 18812--89 67321724527 1,875772 6,439
Σ all Grand total · 1,535 SKUs · 52,387 units · 18,204 balance keys HQ_319 · 33,914u (64.7%) MCC · 3,506u (6.7%) YAS · 3,241u (6.2%) AJM · 2,489u (4.8%) CONS · 646u (1.2%) Pipeline types · 7,905u (15.1%) 52,387u
Fill % Location concentration · share of 52,387u · 686u sits in hidden groups HQ_319 · 33,914 of 52,387 units · 64.7%64.7% MCC · 3,506 units · 6.7%6.7% YAS · 3,241 units · 6.2%6.2% AJM · 2,489 units · 4.8%4.8% Consignment · 646 units · 1.2%1.2% IN_PRODUCTION 5,565 + GIT_INBOUND 2,340 · 15.1%15.1% 100.0%
2 rows selected LBA01 · MIN-2159 Nothing here posts a ledger row. Every action opens a draft owned by another module.

Sellable vs committed · 14 days

Committed is posted reservations plus unposted CSD holds. The gap is what a customer can actually be promised.

SellableAvailableCommitted
29-07 · sellable 44,167 29-07 · available 43,984 29-07 · committed 183 (146 posted RESERVED + 37 unposted holds) 22-07 · sellable 42,910 · the Compare-7d baseline
16-0718-0720-0722-0724-0726-0729-07

Where the 52,387 units sit

By stock type. Sellable is only 84% of what the ledger holds.

STOCK · 44,167u · 84.3% IN_PRODUCTION · 5,565u · 10.6% GIT_INBOUND · 2,340u · 4.5% DISPLAY_GOOD 612 · QUARANTINE 214 · RNI 462 · RESERVED 183 · IT 316 · programs 171 · 0.6% combined 52,387 total units
  • STOCK · sellable44,167 · 84.3%
  • IN_PRODUCTION · i3 new5,565 · 10.6%
  • GIT_INBOUND · i3 new2,340 · 4.5%
  • DISPLAY_GOOD612 · 1.2%
  • RNI · not yet owned462 · 0.9%
  • IT→ + IT← custody316 · 0.6%
  • QUA · RES · programs428 · 0.8%
on_hand 46,213 · owned 48,091 · sellable 44,167 · available 43,984. The four differ on purpose, see the invariant card below.

Heatmap view · SKU x 15 locations

Intensity by available qty. In the app this replaces the pivot in place; shown here for review.

view mode 3 of 4
SKU
HQ_319
HQ_325
MCC
YAS
AJM
CCZ
AJM
BAS
NMS
BKS
ETH
FLW
THG
TRANSIT
SUP_HLD
MSR31-07
41
4
6
2
3
2
1
1
2
-
-
-
-
4
-
LLW-BAG-047
142
20
38
29
24
18
12
9
28
12
8
5
4
11
-
MIN-CNL-038
1,640
42
220
164
120
44
26
18
6
4
2
1
-
-
-
LLW-JWL-301
0
-
0
0
0
0
0
0
-
-
-
-
-
0
0
ANQ07B
0
-
-1
0
0
0
-
-
-
-
-
-
-
-
-
MST-CRM-42-BLK
4
3
2
6
3
2
1
-
-
-
-
-
-
2
-
JRY01
71
14
10
8
7
5
3
2
2
1
1
12
-
3
-
PP02
6
-
2
1
2
-
1
-
-
-
-
-
-
1
-
Intensity 0 1-10 11-30 31-60 61-100 100+ negative Click a SKU label for the side panel. All 15 columns are locations, including the 3 virtual ones. IN_PRODUCTION and GIT_INBOUND are stock types and live in the pivot column group.

Kanban view · by location, lowest available first

The store manager's morning triage: what needs replenishment at my store today.

view mode 4 of 4
HQ_3191,512
LLW-JWL-3010
LLW-SUN-7020
MST-CRM-42-BLK4
PP026
MSR31-129
MSR31-0838
MSR31-0741
CDW0163
LLW-BAG-047142
MCC884
ANQ07B-1
LLW-JWL-3010
MSR31-121
MST-CRM-42-BLK2
PP022
MSR31-084
LBA015
MSR31-076
LLW-BAG-04738
YAS812
LLW-JWL-3010
PP021
MSR31-121
MSR31-072
LBA014
MSR31-085
FYN016
LLW-BAG-04729
AJM744
LLW-JWL-3010
MSR31-121
PP022
MSR31-082
LBA013
MSR31-073
LLW-BAG-04724
CONS206
JRY01 · FLW12
LLW-BAG-047 · NMS28
MIN-CNL-038 · NMS18
FYB01 · BKS1
Pipeline stock types7,905
MSR31-07 · IN_PROD60
MSR31-07 · GIT24
LLW-SUN-702 · GIT240
LLW-JWL-301 · IN_PROD200
MIN-2159 · GIT96

The invariant this page enforces

Every number here is a projection over ledger_entries. Nothing on this page can change one.

on_hand
sum where is_physical. What a count at that location should find. 46,213
sellable
sum where is_sellable. STOCK only. 44,167
committed
RESERVED balance plus holds that have not posted. 183
available
sellable minus unposted holds. Subtracting RESERVED again would double count. 43,984
incoming
IN_PRODUCTION + GIT_INBOUND + IT←RETURN + inbound transfers. 8,289
owned
sum where is_owned. Includes GIT and IT→, excludes RNI. 48,091

Three checks run on every write: qty = SUM(quantity_delta), qty = last balance_after, and entry_count > 0. A key that fails any of them renders as a chain-mismatch cell and drops out of every total. That is the check i2 never had, which is how its sellable reached minus 140,753.

A fourth identity comes from module 03 and is adopted here verbatim rather than restated: balance(composite_sku, any_location, any_stock_type) = 0, always. It is structural, not aspirational: the projection joins skus.is_composite = FALSE, the cache carries a CHECK, and a nightly assertion raises P1 on breach. What a derived row shows instead is min over components of floor(available / component_qty), excluded from every footer sum because its components are already counted.

Recipe versions are pinned per sale. The derived numbers above use the active recipe, because that is what a new sale would decompose with. Every backward-looking trace and every reversal replays the recipe_id stamped on the original recipe_transform rows. A view that mixes the two disagrees with the ledger for any SKU whose recipe was edited, and the disagreement looks exactly like stock drift.

IN_PRODUCTION and GIT_INBOUND are stock types held against the destination location, never locations. The virtual location set is exactly three: TRANSIT, SUPPLIER_HOLD, DISCONTINUED.

Freshness by feed

Shopify webhooks14s ago
ops2 dispatch1m ago
CSD holds42m ago
GRN receipts6m ago
IWMS cartons3m ago
RFID gate22s ago
Influencer Hub4h ago
Cost feed05:12
A stale feed badges the affected measure stale and leaves the last known number. It is never zeroed and never extrapolated.
Loading · 28px skeleton rows so the layout does not jump when the data lands

Could not load the projection.

The balance query did not return within 5 seconds. Nothing was changed.
Error ID i3-live-7f3a9b · 29-07-2026 14:41:04 GST

System health

No balances yet.

Load an opening balance before any sale posts. That order matters: i2 skipped it and deducted from zero for a year.

Load opening stockImport CSV

You cannot see this view.

Live inventory needs the inventory.read scope on your SSO role.

Request accessBack to dashboard
negative blocks GATE 1, auto-opens a drift case low at or below buffer underlined unverified opening balance 41 serial-verified against the unit ledger derived computed, balance is structurally 0, excluded from totals recipe v3 active recipe used for the projection · reversals replay the pinned version RES > STK unposted CSD holds - no velocity, cover cannot be computed J/K rows · Enter open · E correction · X select · Shift+X range · / wedge · Esc clear · ⌘K palette

Connected to

Classic table → Mix analysis → Stock health → SKU detail → Locations → Location detail → Opening stock → Drift → Stock count → Production → Goods in transit → Transfers → 3-way reconcile → Reports → Audit log → Dashboard →