Price elasticity engine
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