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.
SIMEvents 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.
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).
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
Gate
Manifest
Matched
%
G1 HQ_319
314
312
99.4
G2 HQ_319 in
0
0
n/a
G3 MCC
0
0
n/a
HQ_325
0
0
n/a
YAS / CCZ / AJM / BAS
0
0
n/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
Main populationOwned, not presentPresent, not dispositionedWith a vendorTerminal, absorbingHover any node or edge for its definition and 24h transition count
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-0142Investigate
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-0143Investigate
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.