Download our brochure

Enter your name and email to download a copy of our service brochure.

Please click below to download a copy of our service brochure.

Thanks!

Your brochure should be downloading shortly.

There was a problem, please try again or give us a call.

Sending Form

The challenge

One of our fashion retail clients wanted to build a data driven markdown promotions planning tool which optimizes a promotional discounts given a certain budget within a category. The main objective here was to have the maximize sell-through rate ( the rate at which products are cleared from stock ) such that their costs are minimized but by achieving the highest margin.

Step 01.

Discovery

Firstly we had several meetings with key stake holders to understand their business objective completely.Based on that understanding we first assessed their data to understand feasibility of the solution.We observed few initial data challenges which we then helped our client to overcome.Then we built a specific database for building this solution bringing all the data together in one place. At this step we performed several exploratory analysis to understand the relationship between the discounts applied vs the sell-through rate.

Step 02.

Proof of Concept

Jointly with the key stake holders we agreed on a specific category on which we would run the proof of concept. Then we approached the problem step by step as follows:

Step 1 - Seasonality Profiles

Using the historical sales data for each product sub group we first built a seasonality model to extract weekly seasonal indices for each of the product group.We applied Hot-Winter’s method to build seasonality profile for each product group.

Step 2 - Product Lifecycle

Through our initial exploratory analysis we observed that promotional effectiveness varies significantly by different aged products. So for our purposes we needed to build a generic product lifecycle feature.Using a logistic curve fitting exercise we obtained a curve that showed the incremental sales based on product age for a category and then tagged product as Intro, Growth or Maturity stage.

Step 3 - Discount Elasticity

Using the seasonality profile we first de-seasonal-ised the actual product sales to take out the effect of the seasonality from the sales trend.Then based on product hierarchy , we built a cross and self discount elasticity models.This cross elasticities helped us in determining the cannibalization & hallow effect during promotions.

Step 4 - Options Generation

Using the normalized elasticity model , we generated forecasts for each product for large number of combination of promotions for self product and cross products. This gave us a large combination of promotions across all products in the category and its estimated forecasts.This step involved a huge number of iterations and required optimized python codes to generate millions of combinations of promotions into an options database.

Step 5 - Constraints Database

Together with the database of promotions we also developed a large number of combination of constraints. We built a database containing of such constraints. Example of constraints are like no more than 3 multi-buy promotions and minimum 5 price discount promotion.Using business logic and limitations we tried to build a constraints set for each category and sub-categories.

Step 6 - Optimization Algorithm

Finally we developed an optimization algorithm using Mixed Integer Linear  Programming (MILP).The objective of the algorithm is to find the combination of promotions from the options set that maximizes the objective ( Maximize Sell-Through Rate ) with respect to all possible constraints and minimum bound on margin.This optimization algorithm has been set as a function that generates optimum options given the option sets & constraints.

Output

Finally an A/B testing was performed where the optimization recommendations were tested vs a control to understand the effectiveness of the recommendations. This A/B test although at a smaller scale but showed that this algorithm has high potential to improve their current marked down offers.

Step 03.

Scale

The encouraging results from the A/B tested prompted an immediate scale up to few more categories. We performed the same exercise on the Winter markdown data for two other categories. Then step by step we integrated this approach to the end to end decision making for the mark down promotions. The standardized modules built in the initial stage helped us scale this really fast as we already had custom made libraries for this end to end task with several adjustable parameters, which we tuned for each category and deployed them.

Step 04.

Empower

Now we did not want to run this every time again and again for their markdown period. So we developed a basic web-based tool where the category managers would be able to run different scenarios to then get back the optimum discounts for that scenario. This became a self-serve tool where all the heavy lifting is done at the backend of a python flask application and the users get to choose several different options to play with before choosing the final one.

Step 05.

Support

Since the solution heavily relies on having good markdown data , hence it is important that the models gets refreshed every quarter and the new coefficients are incorporated with in the tool. We are still providing support where we work a week in a quarter to update all the coefficients ready for their next markdown planning cycle.

Conclusion

In this project we took our client in a journey where from handling unorganized data in excel, being able to run a handful of manual calculations they moved to a ML based web-platform where they were generating 1000s of scenarios every quarter before their markdown starts. This enables them to optimize their planning resource as well as maximize their margin keeping their costs low.