Pricing Data engAnalyticsMLLLM / RAG marketplaceretail Gross margin +3.4pp

Price elasticity engine

5 people · 9 months Data engineer · Econometrician · ML engineer · Analytics engineer · Me — architecture and delivery
the engagement client data — not shown
heard
"We discount because the category manager has a feeling. Sometimes the feeling is right."
real problem

Price changes were never designed as experiments, so elasticity had to be recovered from observational data full of confounded promotions and competitor moves.

system built

A price-and-promotion history layer, elasticity estimation with controls for competitor price and seasonality, a constrained optimiser respecting brand price ladders, and a summary layer that explains each recommendation in the category manager's own vocabulary.

what broke

The optimiser found margin by breaking price architecture across a family. Ladder constraints are now hard, not penalties.

the open rebuild same architecture · public data
dataset

Dunnhumby “The Complete Journey” + Retail Price Optimisation set

what the rebuild covers

Elasticity estimation and the constrained optimiser, with the ladder constraints demonstrated by breaking them first.

artifacts
NotebookCodeDatasetWrite-upDemo
Open the code Open notebook