"We finally know which 3 SKUs drive 80% of our LTV. Brain answered it in twelve seconds."
CEO · GCC coffee chain
SKU-level analytics tied to identified buyers via the wallet ID. Per-branch velocity, reorder signals, dead stock. Joined to actual humans, not anonymous transactions.
SKU model
Every till swipe writes a SKU-level event with the buyer's wallet ID attached. SKU + customer + branch + campaign = one row, not a four-system join.
Every till.debit event carries sku_id + wallet_id. The join is one event, not an after-the-fact reconciliation.
Each SKU has per-branch price + on-hand quantity. Updated real-time.
Operator-defined category tree. Velocity aggregates at each level.
Composition
Tied to wallet for buyer identity, to attribution for campaign performance, to customers for personalisation, to brain for plain-language queries.
Which SKUs each customer buys most. Drives personalised incentives + recommendations.
See which SKUs moved when a campaign ran. Close the spend-to-SKU loop directly.
Velocity
Designed for the merchandiser who needs to know 'is my new latte selling at Olaya specifically' without exporting CSVs. Sort by sell-through, revenue, or margin.
Reorder
Operator-defined thresholds + velocity floors. When stock crosses the threshold AND the SKU is moving, a reorder signal fires to dashboard, Slack, or auto-PO.
Reorder only when stock low AND SKU moving. Avoids reordering dead stock.
Dashboard alert, Slack ping, auto-PO. Operator picks per-SKU per-branch.
Every reorder signal logged with cause, action, operator approval.
"We finally know which 3 SKUs drive 80% of our LTV. Brain answered it in twelve seconds."
CEO · GCC coffee chain
"Reorder signals catch dead stock the day it goes dead. We stopped writing off pastry."
Head of supply · GCC F&B chain