RFID Gates and Live Feed

The unit ledger, live. Every EPC read from every device, the health of the devices themselves, the 11-state unit lifecycle, and the MIN-2159 tagging campaign. Gate reads are immutable and win physical-existence conflicts only.

SIM Events are synthetic. No ledger row is posted. 1 of 9 devices is commissioned, so PROD reads are structurally impossible for the other 8 (R-12.20). SIMPROD
Device absent: handheld H2 (MC3390xR, HQ_319) last heartbeat 38m ago, threshold 15m. rfid.device_offline raised at 14:03 GST. Gate G1 is unaffected, so dispatch verification continues. Reconciliation variances at HQ_319 zone A3 are suppressed for the outage window (R-12.22), not counted as shrinkage.
Hardware reality: 1 FXR90 commissioned at HQ_319 exit. ZT411R printer, 1 of 2 MC3390xR and 4 of 5 RFD40 sleds are still ordered or delivered. GATE 6 cannot start its 7-day count until every mandatory-flow gate is commissioned and campaign waves 1 and 2 are signed off.
Business
All 4,812
ENCODE 142
DISPATCH 312
RECEIVE 96
ZONE_CHANGE 204
SALE 284
RETURN 31
RETURN_RECEIVE 28
DAMAGE 7
CYCLE_COUNT 3,412
WRITE_OFF 2
Hardware
GATE_EXIT 386
GATE_ENTRY 104
CARTON_SCAN 88
BIN_MOVE 204
MISSED 2
UNAUTHORIZED 1
MISMATCH 3
LOW_BATTERY 1
HEARTBEAT 1,844
Source: prod 710
sim 4,102
Space pause F filter R raw G gates Unit events 3-way reconcile

Live feed

142 events/min · 892 unique units in 5m 10 business types · 12 hardware kinds
TimeEventHWEPCSKUDevice / zoneLinks toLedger effectRoleState
14:36:12.043DISPATCHGATE_EXIT3034F00001D21AMSR31-07G1 · HQ_319 exitDHL 4548827193STOCK > IN_TRANSIT_CUSTconfirmingverified
14:35:02.771SALECARTON_SCAN3034F00002A118MIN-CNL-019S2 sled · YAS counter#MIN10482STOCK -1 @ YASoriginatinglinked 0.97
14:21:10.115DISPATCHGATE_EXIT3034F00001D107MSR31-07G1 · HQ_319 exitTR-0941STOCK > IN_TRANSITconfirmingverified
14:12:44.902RECEIVEGATE_ENTRY3034F000009F02PP02G1 · receiving laneGRN-2319+1 RECEIVED_NOT_INVoriginatingencoded
14:01:15.330ZONE_CHANGEBIN_MOVEx24 batchMSR31-07H1 · A3 to PICKINGMC-4471no postingobservingok
13:40:00.008CYCLE_COUNTCYCLE_COUNTx412mixed 38H1 · zone 319-A3CC-1108no postingobservingzero drift
13:22:08.554RETURN_RECEIVEGATE_ENTRY3034F00003C440JAE17G1 · returns laneCSD-4821IN_TRANSIT_RET > QUARANTINEoriginatinginspect due
12:58:31.201DAMAGEMISMATCH3034F00004B2E1CDW01H1 · QC benchDMG-0441STOCK > QUARANTINEoriginatingtriage
12:31:55.640ENCODETAG_ATTACHx48 batchPP02P1 · ZT411R encode stnPO-2026-116identity onlyobservingprinted 48
11:04:12.070WRITE_OFFTAG_DETACH3034F00007781ATNS01H1 · damage zoneDMG-0438QUARANTINE > WRITTEN_OFForiginatingapproved WO-0091
10:47:03.418ZONE_CHANGEBIN_MOVE3034F000005A19LBA01S1 sled · MCC floordisplay allocationSTOCK > DISPLAY_GOODoriginatingday 0
09:15:40.902DISPATCHGATE_EXITx67 batch38 SKUsG1 · HQ_319 exitDB-0712 · 41 AWBs-67 @ HQ_319confirming67/67
08:52:11.339UNMATCHEDUNAUTHORIZED3034F0000FFA22unknownG1 · HQ_319 exitDRF-0142blocked, no postingobservingdrift
08:44:57.664UNMATCHEDMISSED3034F00008C319MST-CRM-42-BLKG1 · HQ_319 exitDRF-0143blocked, no postingobservingterminal moved
Gate reads are immutable: gate_reads has UPDATE and DELETE revoked. A changed interpretation is a new gate_read_matches row that supersedes the old one. A read with no resolvable unit is recorded in full, routed to drift, and never posts a ledger row (R-12.16, R-12.18).

Devices

7/9
G1FXR90 gate · HQ_319 exit
41s ago · 2,103/day · 47ms
commissioned
G2FXR90 gate · HQ_319 receiving
not installed · site survey done
ordered
G3FXR90 gate · MCC entry
not ordered
planned
H1MC3390xR handheld · HQ_319
2m ago · batt 88% · 1,204 reads
commissioned
H2MC3390xR handheld · HQ_319
38m ago · threshold 15m
offline 38m
S1RFD40 sled · MCC iPad
4m ago · batt 71%
commissioned
S2RFD40 sled · YAS iPad
1m ago · batt 82%
commissioned
S4RFD40 sled · AJM iPad
36m ago · batt 22% · LOW_BATTERY
late 6m
P1ZT411R printer · encode stn
AED 3.8K · 2wk lead · PO raised
ordered
Liveness is an absence rule swept every 5 min, not an event: no event ever arrives from a dead device. Late at expected_heartbeat_seconds, offline at 3x that, per device profile (R-12.21).

Tagging campaign · MIN-2159

Target
139,561 units at HQ_319
Encoded
86,904 (62.3%)
Verified
84,110 read back by handheld (96.8% of encoded)
Rework
412 misencoded, rebound
Wave 1
4,980 / 5,000 high value signed off
Wave 2
81,924 / 84,561 warehouse bulk in progress
Wave 3
0 / 50,000 store stock not started
Rate
~500 tags/hr x 3 staff
Doubles as
the Phase-0 opening count
A campaign day is not closed until the responsible manager signs it. The signature is what makes the day's tagged count usable as an opening-count line (R-12.43).

Gate compliance

GateManifestMatched%
G1 HQ_31931431299.4
G2 HQ_319 in00n/a
G3 MCC00n/a
HQ_32500n/a
YAS / CCZ / AJM / BAS00n/a
A location with no commissioned gate reports n/a, never 0%. A missing measurement is not a failed one.

Unit lifecycle state machine

11 states, a closed edge registry, live unit counts per node. An unregistered hop is a foreign-key violation, not a code review note (R-12.13).

86,904 units under management
announced to new · encode confirmed on arrival · 412 in 24h new to in_stock · zone assign · 1,204 in 24h in_stock to on_display · stock type STOCK to DISPLAY_GOOD · 41 in 24h on_display to in_stock · 28 in 24h in_stock to picked · pick scan · 284 in 24h picked to in_transit · dispatch gate read · 312 in 24h in_transit to in_stock · receive scan at destination · 96 in 24h in_transit to sold · carrier delivered · design decision D1 · 268 in 24h sold to returned · return receive scan · 28 in 24h returned to in_stock · disposition restock · 19 in 24h returned to in_repair · disposition repair · 6 in 24h in_repair back to in_stock after QA pass · 4 in 24h returned to written_off · disposition scrap, requires approval · 3 in 24h in_stock to lost · cycle count confirmed missing, requires approval · 2 in 24h announced · pre-encoded manifest received, goods not yet arrived · not present, not owned announced1,240 new · encoded, not yet placed in a zone new2,104 in_stock · present and owned · the main population in_stock71,80282.6% on_display · stock type DISPLAY_GOOD at an unchanged location · days on display read from entered_state_at on_display1,418 picked · allocated to an order or transfer, still physically at the location picked318 in_transit · not present at any location, still owned · covers customer and inter-location legs in_transit1,684 returned · physically back, not yet dispositioned · quantity sits in QUARANTINE returned142 in_repair · with a vendor, not present, still owned in_repair37 SOLD · terminal · customer kept it · not present, not owned SOLD8,104 WRITTEN_OFF · terminal · requires an approved write-off request (R-12.15) WRITTEN_OFF38 LOST · terminal · confirmed missing after investigation LOST17 lost via cycle count · approval gated, never auto-applied lost via count2
Main population Owned, not present Present, not dispositioned With a vendor Terminal, absorbing Hover any node or edge for its definition and 24h transition count

Read volume by device · 24h

peak 14:00 · 92 reads / 5m
G1 gate · FXR90 · 2,103 reads across 24h H1 handheld · MC3390xR · 1,204 reads S1 and S2 sleds · RFD40 · 892 reads 14:00 peak · 92 reads in 5m · midday dispatch window 13:00 · 2 unmatched reads clustered · DRF-0142 and DRF-0143
000204060810121416182022
G1 gate (FXR90)H1 handheldStore sledsUnmatched cluster

Gate activity heatmap · hour of day

6 gate positions · 24 cells each
00-0506-1112-1718-23
G1 out
G1 in
H1 hand
H2 hand
S1 MCC
S2 YAS
Read density low to high Device dark, cells are absence not zero

Open unmatched reads and unit conflicts

2 unmatched · 3 conflicts Drift workbench
  • Unknown EPC at HQ_319 exit unauthorized3034F0000FFA22 · seen 14 times in one pass, collapsed to one row · decodes to sku_index 4,882 which is not allocated · DRF-0142 Investigate
  • Terminal unit read at a gate P13034F00008C319 · MST-CRM-42-BLK · state SOLD since 18-07 on #MIN10391, read leaving HQ_319 today · either a mis-scan at POS or a unit that never left · DRF-0143 Investigate
  • qty_present_unit_absent 3 unitsMSR31-07 at HQ_319: quantity ledger says 38 sellable, unit ledger finds 35 present at 100% coverage. Three units have a balance and no serial behind them. Reconcile
  • state_stocktype_mismatch 1 unit3034F00003C440 JAE17: unit state returned, quantity ledger still holds it in IN_TRANSIT_RETURN. The receive hop posted, the CSD event has not arrived. Reconcile
  • location_mismatch 2 unitsTR-0941: two units gate-read leaving HQ_319 at 14:21, quantity ledger still shows them at HQ_319 because the ops2 dispatch event has not landed. RFID wins physical existence, so the location moves and the drift closes when ops2 catches up. Open transfer

The rule this page enforces

Two ledgers, one truth. The quantity ledger says how many. The unit ledger says which ones and where. Every unit hop declares exactly one posting role:

originating
the unit event caused the movement. i3 posts the quantity row from it, in the same transaction.
confirming
a quantity row already exists from a sibling event. The hop attaches and raises its evidence grade. It never posts a second row.
observing
no quantity effect. A zone change inside one location and stock type, a heartbeat, a read that changes nothing.

Gate reads are immutable, and they win physical-existence conflicts only. A gate read proves a unit exists at a door. It does not prove the receipt was accepted (GRN owns that), that it is sellable (Shopify owns that), or that it is owned (Finance owns that).

Design decision D1: a unit becomes sold on carrier delivered or on a matched POS scan. Never on dispatch. Dispatch means it left the building.

Connected to

Unit events 3-way reconcile Mobile scanner Drift Stock count Cartons and bins Locations HQ_319 detail Damages Transfers Returns GRN and QC Opening stock SKU detail Device settings