The canonical register · 18 codes · 2 warehouse · 5 retail · 1 channel · 1 third-party · 5 consignment · 4 virtual · every ledger row in i3 names one of these and nothing else
3 locations have not signed their opening balance.CONS_ETHER · CONS_THINGS · 3PL_ARAMEX are seeded from Shopify levels and still flagged unverified. GATE 0 does not close until every balance-bearing location is signed by its responsible manager.Opening stock →
Fill against surveyed capacity
Units held vs units the site can hold · only sites with a completed capacity survey appear
7 of 16 surveyed
At or above the floorBelow the 60% floorUnused capacity9 balance-bearing locations have no capacity survey and show fill as not surveyed, never as 0%
Count freshness
Days since the last accepted count against each location's own policy interval
1 overdue
HQ319HQ325MCCYASCCZAJMBAS3PLNAMBOKETHFLO+THI
FreshWithin policyStatement pendingOverdue
Location register
Grouped by type · every column here is a column in location_profiles · row click opens the location
6 with open work
Code
Name
Custody
Shopify
Sellable
Display
Other types
Value AED
Fill
Count policy
Last count
Devices
Gates
Drift
Staff
Health
Warehouse 2 sites · 34,950 u sellable + 7,905 u supplier pipeline · AED 9.57M · fill 76%
HQ_319
Warehouse 319, City Bay · main fulfilment
minimalist
13404363
31,842
·
9,009
8.86M
82%
rfid daily + blind 7d
today 08:00
G1 G2 H1 H2 ZT411R
2 of 2
2
12
2 drift2 GIT in customs
HQ_325
Warehouse 325 · ops, returns, repairs
minimalist
not bound
3,108
·
899
0.71M
45%
rfid daily
27-07 08:00
H3
none
0
4
audit
Retail 5 stores · 8,643 u · AED 3.61M · fill 66%
MCC
Mirdif City Centre
minimalist
64185434227
2,865
1,049
62
1.04M
70%
blind cycle 30d
18-06 · 41d
RFD40-MCC-1
none
3
3
count overdue
YAS
Yas Mall
minimalist
66535686259
2,214
870
41
0.87M
65%
blind cycle 30d
24-07 · running
RFD40-YAS-1
none
1
2
under audit
CCZ
City Centre Zahia alias ZAH
minimalist
68947837043
1,644
705
28
0.71M
71%
blind cycle 30d
12-07 · 17d
RFD40-CCZ-1
none
0
2
clean
AJM
Al Jimi Mall alias JIMI
minimalist
107288166770
1,502
618
19
0.62M
58%
blind cycle 30d
09-07 · 20d
none
none
1
2
low fill
BAS
Bawabat Al Sharq Mall
minimalist
110885634418
418
371
·
0.37M
62%
blind cycle 30d
21-07 · 8d
RFD40-BAS-1 idle 6d
none
0
2
clean
Channel and third-party 2 entries · 574 u · AED 0.17M
ONLINE
Online · minimalist.ae not balance-bearing
minimalist
not bound
·
·
·
·
n/a
none
never counted
none
n/a
0
·
attribution only
3PL_ARAMEX
Aramex 3PL fulfilment absent from every v2 page
3pl
18370396195
574
·
38
0.17M
not surveyed
monthly statement
30-06 · 29d
none
n/a
2
·
unsigned opening
Consignment 5 partners · 573 u · AED 0.28M · partner-held, excluded from sellable
CONS_NAMSHI
Namshi · partner warehouse, Dubai
partner
not bound
189
24
·
0.09M
not surveyed
monthly statement
30-06 · 29d
none
n/a
0
·
clean
CONS_BOKSHA
Boksha · partner warehouse, Dubai
partner
not bound
142
18
·
0.07M
not surveyed
monthly statement
30-06 · 29d
none
n/a
0
·
clean
CONS_ETHER
Ether · partner warehouse, Sharjah
partner
not bound
98
12
·
0.05M
not surveyed
monthly statement
30-06 · 29d
none
n/a
1
·
unsigned opening
CONS_FLOWARD
Floward · partner warehouse, Dubai
partner
not bound
84
·
·
0.04M
not surveyed
monthly statement
30-06 · 29d
none
n/a
0
·
clean
CONS_THINGS
Things · partner showroom, Abu Dhabi
partner
not bound
60
14
·
0.03M
not surveyed
monthly statement
30-06 · 29d
none
n/a
0
·
unsigned opening
Virtual 4 codes · 512 u · AED 0.24M · no IN_PRODUCTION or GIT_INBOUND here, those are stock types at HQ_319
SUPPLIER_HOLD
Held at supplier · RTS out, awaiting credit or return
supplier
not bound
·
·
412
0.19M
n/a
RTS lifecycle
no physical count
none
n/a
1
·
6 open RTS
TRANSIT
Internal transfer in flight alias IN_TRANSIT
carrier
not bound
·
·
86
0.04M
n/a
transfer lifecycle
no physical count
none
n/a
2
·
2 stale legs, 4d
DISCONTINUED
Discontinued SKU archive not balance-bearing
minimalist
not bound
·
·
·
·
n/a
none
never counted
none
n/a
0
·
84 archived SKUs
UNPLACED
Quarantine · a posting whose location could not be resolved
minimalist
not bound
·
·
14
0.006M
n/a
drained daily, target 0
drain ran 06:00
none
n/a
1
·
14 u for 2d
Totals · 18 locations · sellable 44,167 · display 3,681 · other stock types 10,608 (of which 7,905 is supplier pipeline at HQ_319: 5,565 IN_PRODUCTION + 2,340 GIT_INBOUND) · network value AED 13.87M · open drift 14
Permitted stock types by location
The taxonomy made visible · this is location_stock_type_policy · every module's ledger write is checked against it before insert
16 stock types
Location
STOCK
DISPLAY_GOOD
DISPLAY_DAMAGED
QUARANTINE
WRITTEN_OFF
IN_TRANSIT_CUSTOMER
IN_TRANSIT_RETURN
LOST_IN_TRANSIT
RTS_PENDING
RESERVED
RECEIVED_NOT_INVOICED
INFLUENCER_POOL
SAMPLE_POOL
SAMPLE_QC
IN_PRODUCTION
GIT_INBOUND
HQ_319
Y
·
Y
Y
A
Y
Y
Y
Y
Y
Y
Y
Y
Y
O
O
HQ_325
Y
·
Y
Y
A
·
Y
·
Y
·
·
·
·
·
·
·
MCC
Y
Y
Y
Y
A
Y
·
·
·
Y
·
·
·
·
·
·
YAS
Y
Y
Y
Y
A
Y
·
·
·
Y
·
·
·
·
·
·
CCZ
Y
Y
Y
Y
A
Y
·
·
·
Y
·
·
·
·
·
·
AJM
Y
Y
Y
Y
A
Y
·
·
·
Y
·
·
·
·
·
·
BAS
Y
Y
Y
Y
A
Y
·
·
·
Y
·
·
·
·
·
·
ONLINE
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
3PL_ARAMEX
Y
·
·
·
A
Y
·
Y
·
·
·
·
·
·
·
·
CONS_* (5)
Y
Y
Y
·
A
·
·
·
·
·
·
·
·
·
·
·
SUPPLIER_HOLD
·
·
·
Y
A
·
·
·
Y
·
·
·
·
·
·
·
TRANSIT
·
·
·
·
·
·
Y
Y
·
·
·
·
·
·
·
·
DISCONTINUED
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
UNPLACED
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
Y permittedA permitted with an approval rowO the only location permitted to hold this stock typeforbidden, the write is rejectedA rejected write emits i3.location.policy_violation and never silently defaults
Place or state: how to tell
A virtual location is a place stock notionally sits when it is not at a physical site we operate. A custody or condition stock type is a state stock is in at a real location. Both describe stock that is ours and countable; only one of them answers "where would you go to look for it".
A new concept becomes a location only when all three hold:
a. a party outside i3 is accountable for loss while the stock is there; b. a physical count at any site we operate cannot find it; c. no single one of our locations can be held accountable for chasing it.
Otherwise it is a stock type at the location that is accountable. When in doubt, make it a stock type. A stock type is one more column in this matrix. A location is a count policy, an alias set, a permitted-type row per stock type, a roll-up rule, an opening-balance signature and a foreign key that all fourteen other modules post against.
Worked verdicts.IN_PRODUCTION and GIT_INBOUND fail test (c): HQ_319 chases the PO milestone and the DHL shipment, so they are stock types held at HQ_319, not locations. i2 modelled them as locations and the v2 mockup showed IN_PRODUCTION as a row with 47 SKUs and AED 890K, which makes the same unit countable twice. SUPPLIER_HOLD passes all three: it may be credited and never return, and no warehouse owns it. TRANSIT passes all three: the origin has released it and the destination has not received it.
Customer shipments stay at the dispatching site.IN_TRANSIT_CUSTOMER fails (c) because the dispatching site owns the NDR and RTO chase, so it posts at HQ_319 or the store, never at TRANSIT and never at the customer.
Why the register has aliases
Four different canonical location lists exist across the estate today and none of them reconcile.
The i2 seed carries HQ, ZAH, JIMI, ARAMEX with Shopify ids verified against the admin API on 19-04-2026. The i2 PRD lists HQ_319, CCZ, AJM and five consignment partners. The v2 mockups add ONL and RTL, label HQ_319 as BOM-319, and in one row link to ?code=AJM while rendering the label JIMI.
i3 keeps one register and one alias table. Every historical spelling resolves; nothing is renamed in place; nothing is guessed. Without the alias table the i2 replay of 587K ledger rows cannot map its HQ rows onto HQ_319 at all.
Two register facts that no v2 page shows: 3PL_ARAMEX is bound to a live Shopify location and appears in no dashboard anywhere, and RTL was a balance-bearing row in v2, which would have double counted the whole retail estate. In i3 roll-ups are derived, never stored.