Unit ledger vs quantity ledger vs Shopify available, with an independent human count as a fourth leg. Runs 06:00 Dubai daily. Four legs, each with its own source and observation time. A missing leg is null, never zero.
REC-20260729-01 complete at 06:04 GST. 1,247 keys compared · 1,182 clean · 12 open variances · 31 auto-accepted and posted · 8 suppressed inside the H2 outage window · 14 skipped for coverage below 95%. Value at risk AED 18.2K, down AED 4.1K on yesterday. Largest absolute delta 4 units on MIN-TBL-014 at MCC.
GATE 6: 4 of 7 consecutive passing days. The counted leg resolved on 5 of the last 7 runs, which meets the minimum. 1,118 of 1,247 keys are GATE-6 eligible; 129 are excluded for tag coverage below the live 95% policy and are reported separately, never folded into the clean count.
Unit ledger
1,247 keys · 06:00:12
COUNT of units whose state has counts_as_present, grouped by sku_id, location and stock type.
Quantity ledger
1,247 keys · 06:00:14
inventory_balance from module 02, reconciled rows only. Unreconciled cache keys drop out rather than poison a total.
Shopify available
1,208 keys · 05:52:40
39 keys have no Shopify location mapping, so shopify_qty is null for them and every delta involving it is null. Not zero.
Human count
318 keys · 28-07 20:41
From an approved count session, never from an RFID scan. A second reading of the same RFID data is not an independent leg.
Unit ledgerQuantity ledgerShopify availableHuman countLeg not observed (null, not zero)
Variance trend · 14 days
trend down
16182022252729
Open variancesAmber day, known causeAuto-acceptedGATE 6 target line
Variances
sorted by absolute delta, then value at riskA dash is a null leg. Zero is a real zero.
Code
SKU
Loc
Stock type
Unit
Ledger
Shopify
Count
d U-L
d U-S
Cov
Value AED
Authority
Likely cause
Outcome
RC-0442
MIN-TBL-014
MCC
STOCK
10
14
14
12
-4
-4
100
5,240
undecided
Display units not scanned out of STOCK
investigating
RC-0441
MSR31-07
HQ_319
STOCK
41
38
38
40
+3
+3
100
3,180
rfid_physical
Returns received, disposition not posted
open
RC-0440
LLW-BAG-051
MCC
STOCK
2
5
5
2
-3
-3
100
4,140
rfid_physical
Suspected shrinkage, human count agrees with RFID
investigating
RC-0439
PP02
HQ_319
STOCK
6
6
9
-
0
-3
100
1,410
shopify_sellable
Shopify oversold, inventory_levels sync lag
shopify only
RC-0438
JRY01
YAS
STOCK
10
8
8
-
+2
+2
100
980
rfid_physical
Transfer received early, receive scan not posted
open
RC-0437
CDW01
HQ_319
STOCK
62
63
63
62
-1
-1
100
470
rfid_physical
One unit on the QC bench, untagged move
auto-accepted
RC-0436
TNS01
MCC
STOCK
7
9
9
7
-2
-2
100
1,880
rfid_physical
Two damaged, write-off approved but not booked
open
RC-0435
FYN01
YAS
STOCK
6
5
7
-
+1
-1
100
640
undecided
Three-way split: all pairs disagree, Shopify stale
investigating
RC-0434
LBA01
HQ_319
STOCK
28
28
26
-
0
+2
100
890
shopify_sellable
Shopify not updated after GRN-2319
shopify only
RC-0433
ANQ07B
MCC
STOCK
0
-1
0
-
+1
0
100
0
ledger
Negative balance, oversell, needs a correction
blocking
RC-0432
MIN-VAS-022
MCC
STOCK
30
28
28
30
+2
+2
100
1,240
rfid_physical
Refund restocked physically before the CSD event
resolved
RC-0431
MIN-CSN-031
HQ_319
STOCK
218
216
216
-
+2
+2
100
420
rfid_physical
Count timing against an in-flight dispatch
auto-accepted
RC-0430
MST-CRM-42-BLK
HQ_319
QUARANTINE
3
1
-
-
+2
-
100
2,180
rfid_physical
Two carrier-confirmed returns read at the gate, CSD event pending
open
RC-0429
MIN-2159
HQ_319
STOCK
184
312
312
-
-128
-128
59
0
n/a
Tag coverage 59%, below the 95% policy
skipped coverage
RC-0428
MSR31-07
HQ_319
DISPLAY_GOOD
4
6
6
-
-2
-2
100
1,060
n/a
Inside the H2 device outage window 13:58 to now
suppressed
Resolution never edits a balance and never edits history. An accepted variance posts a compensating ledger_entries pair with source_type='unit_recon' and a link back to this run and line. A row cannot be marked accepted without that pair existing (ck_url_posted).
Authority, applied per pair
Disagreement
Winner
Unit vs ledger, physical presence
RFID gate reads
Unit vs Shopify, sellable
Shopify
Unit vs human count
Human count, then re-scan
Ledger vs Shopify
i3 ledger, push to Shopify
Dispatch and AWB
ops2
Return intent
CSD
Physical receipt
GRN / IWMS
Write-off approval
Finance
Order existence
Shopify
A gate read wins physical existence and only that. It does not decide sellability, ownership or acceptance. A read proves a unit was at a door; it does not prove the receipt was accepted.
Auto-accept policy · live version
Scope
global
Unit bound
absolute delta at or below 2
Value bound
value at risk at or below AED 200
Percent bound
at or below 1.00% of the key balance
Coverage floor
95% tagged, else the key is skipped
Effective from
12-07-2026
Set by
ahmad@minimalist.ae
Reason
"Wave 2 tagging surge, tightened from 3 units after the 22-07 firmware incident"
Both bounds must hold. Two units of an AED 45 candle and two units of an AED 4,200 watch are not the same tolerance. A threshold change is a new dated version with a reason, never an UPDATE: widening a tolerance must be as visible as breaching one.
Run history · GATE 6
29-0712 open · 31 accepted · 14 skippedpass 4/7
28-0716 open · 28 accepted · 15 skippedpass
27-0714 open · 34 accepted · 15 skippedpass
26-0722 open · 38 accepted · 18 skippedamber
25-0719 open · 30 accepted · 19 skippedpass
24-0715 open · 26 accepted · 21 skippedpass
23-0718 open · 29 accepted · 22 skippedpass
22-0723 open · 24 accepted · 24 skippedfail
22-07 failed: an H1 firmware update halved the read rate for four hours and the counted leg did not resolve. The counter reset. GATE 6 needs 7 consecutive passing days with the counted leg on at least 5 of them.
A dark reader produces an artefact cohort, not a shrinkage event. While a device_failure incident is open at a location, its keys are suppressed, not variance. They are counted and reported, never folded into clean.
Tag coverage · location by SKU class
14 keys below the 95% floor
Location
Watches
Jewellery
Handbags
Leather
Perfume
Sunglasses
Composites
HQ_319
98
96
95
71
59
97
n/a
HQ_325
0
0
0
0
0
0
n/a
MCC
97
96
95
88
41
96
n/a
YAS
96
95
92
84
38
96
n/a
CCZ
0
0
0
0
0
0
n/a
AJM
0
0
0
0
0
0
n/a
BAS
0
0
0
0
0
0
n/a
Coverage95% to 100%Skipped, below the coverage floor. Not clean, not a variance.
The identity this page proves
-- fully tagged key
COUNT(unit_state
WHERE key = k
AND counts_as_present)
== inventory_balance.qty(k)
-- partially tagged key
tagged_units(k)
+ declared_untagged(k)
== inventory_balance.qty(k)
declared_untagged is declared, not derived. It comes from the tagging campaign's own signed daily counts. If it were computed as qty - tagged the identity would be true by construction and would prove nothing at all. A disagreement between the declared figure and the residual is itself the finding.
A missing leg is null. An earlier implementation set the Shopify leg to a hardcoded zero, which made every SKU a variance of its own full balance and pinned the accuracy metric at 0%. Here a null leg makes every delta involving it null, and a null delta is not a variance.
The human count leg is human. It comes from an approved count session, never from an RFID scan. Reading the same tags twice and calling the second read "physical" produces a leg that agrees with itself by construction.
Nothing here repairs a cache. The unit-state projection carries last_hop_seq, last_hop_hash and hop_count, verified nightly. A mismatch sets is_reconciled = false and the unit drops out of every total until a compensating hop closes it. No process writes to a projection row to fix it.