Promograph: Solving Retail Promotion Waste with GNNs
Retailers are bleeding billions because traditional promotion logic is essentially blind to how products actually interact in a customer's basket. The "invisible tax" here is the massive inefficiency in spend—discounts are often applied to items people would have bought anyway, or to pairs that don't actually drive incremental lift.
The technical bottleneck is that standard tabular models treat SKU relationships as independent variables. To actually model the ripple effect of a promotion on a category, you need Graph Neural Networks (GNNs). By representing products as nodes and co-purchase patterns as edges, a GNN can propagate the impact of a discount across the entire product graph.
For those trying to implement a similar AI workflow for demand forecasting, the shift from a standard XGBoost approach to a graph-based architecture usually looks like this:
1. Graph Construction: Map SKUs as nodes. Edges are weighted by the strength of the association (lift/support) in historical transaction data.
2. Feature Embedding: Nodes are initialized with static attributes (category, brand, price point).
3. Message Passing: The GNN aggregates features from neighboring nodes, allowing the model to "understand" that a discount on pasta might spike the sales of a specific premium sauce.
4. Prediction: The final layer predicts the delta in volume for both the promoted and non-promoted nodes.
This approach moves the needle from simple "A implies B" correlation to a structural understanding of the retail ecosystem. It's a deep dive into how geometric deep learning handles sparse, high-cardinality retail data far better than flat vectors.
All Replies (3)
This hits home. The cannibalization from bad promos was a total disaster in my CPG days.
Curious if this handles seasonal buying shifts or if the GNN struggles with those spikes?

Love this. I'm sick of those BOGO deals for things I'll never actually buy.